Index: llvm/trunk/lib/Target/ARM/ARMInstrInfo.td =================================================================== --- llvm/trunk/lib/Target/ARM/ARMInstrInfo.td +++ llvm/trunk/lib/Target/ARM/ARMInstrInfo.td @@ -822,6 +822,7 @@ def Imm0_65535ExprAsmOperand: AsmOperandClass { let Name = "Imm0_65535Expr"; let RenderMethod = "addImmOperands"; + let DiagnosticString = "operand must be an immediate in the range [0,0xffff] or a relocatable expression"; } def imm0_65535_expr : Operand { Index: llvm/trunk/test/MC/ARM/diagnostics.s =================================================================== --- llvm/trunk/test/MC/ARM/diagnostics.s +++ llvm/trunk/test/MC/ARM/diagnostics.s @@ -175,7 +175,7 @@ @ Out of range immediate for MOV movw r9, 0x10000 -@ CHECK-ERRORS: error: invalid operand for instruction +@ CHECK-ERRORS: error: operand must be an immediate in the range [0,0xffff] or a relocatable expression @ CHECK-ERRORS: movw r9, 0x10000 @ CHECK-ERRORS: ^ @@ -187,7 +187,7 @@ @ Out of range immediate for MOVT movt r9, 0x10000 -@ CHECK-ERRORS: error: invalid operand for instruction +@ CHECK-ERRORS: error: operand must be an immediate in the range [0,0xffff] or a relocatable expression @ CHECK-ERRORS: movt r9, 0x10000 @ CHECK-ERRORS: ^ Index: llvm/trunk/test/MC/ARM/thumb2-diagnostics.s =================================================================== --- llvm/trunk/test/MC/ARM/thumb2-diagnostics.s +++ llvm/trunk/test/MC/ARM/thumb2-diagnostics.s @@ -80,10 +80,14 @@ foo2: movw r0, foo2 movt r0, foo2 + movt r0, #0x10000 + movt r0, #0x10000 @ CHECK-ERRORS: error: immediate expression for mov requires :lower16: or :upper16 @ CHECK-ERRORS: ^ @ CHECK-ERRORS: immediate expression for mov requires :lower16: or :upper16 @ CHECK-ERRORS: ^ +@ CHECK-ERRORS: error: operand must be an immediate in the range [0,0xffff] or a relocatable expression +@ CHECK-ERRORS: error: operand must be an immediate in the range [0,0xffff] or a relocatable expression and sp, r1, #80008000 and pc, r1, #80008000