diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index c1a745216e8..07679a60ffd 100644 --- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -5245,8 +5245,8 @@ processInstruction(MCInst &Inst, // 'as' behaviour. Make sure the wide encoding wasn't explicit. if (Inst.getOperand(0).getReg() != Inst.getOperand(1).getReg() || Inst.getOperand(5).getReg() != 0 || - (static_cast(Operands[2])->isToken() && - static_cast(Operands[2])->getToken() == ".w")) + (static_cast(Operands[3])->isToken() && + static_cast(Operands[3])->getToken() == ".w")) break; MCInst TmpInst; TmpInst.setOpcode(ARM::tADDhirr); diff --git a/test/MC/ARM/mode-switch.s b/test/MC/ARM/mode-switch.s index 99bd4b53108..9d4995439e8 100644 --- a/test/MC/ARM/mode-switch.s +++ b/test/MC/ARM/mode-switch.s @@ -4,7 +4,7 @@ .code 16 add.w r0, r0, r1 -@ CHECK: add r0, r1 @ encoding: [0x08,0x44] +@ CHECK: add.w r0, r0, r1 @ encoding: [0x00,0xeb,0x01,0x00] .code 32 add r0, r0, r1