mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-20 08:54:08 +00:00
Make sure the alternate PC+imm syntax of LDR instruction with a small
immediate generates the narrow version. Needed when doing round-trip assemble/disassemble testing using the alternate syntax that specifies 'pc' directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170255 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
07acee7a09
commit
a827a47923
@ -5723,7 +5723,12 @@ processInstruction(MCInst &Inst,
|
||||
}
|
||||
// Aliases for alternate PC+imm syntax of LDR instructions.
|
||||
case ARM::t2LDRpcrel:
|
||||
Inst.setOpcode(ARM::t2LDRpci);
|
||||
// Select the narrow version if the immediate will fit.
|
||||
if (Inst.getOperand(1).getImm() > 0 &&
|
||||
Inst.getOperand(1).getImm() <= 0xff)
|
||||
Inst.setOpcode(ARM::tLDRpci);
|
||||
else
|
||||
Inst.setOpcode(ARM::t2LDRpci);
|
||||
return true;
|
||||
case ARM::t2LDRBpcrel:
|
||||
Inst.setOpcode(ARM::t2LDRBpci);
|
||||
|
@ -3509,3 +3509,7 @@ _func:
|
||||
@ CHECK: ldrh.w r11, [pc, #-22] @ encoding: [0x3f,0xf8,0x16,0xb0]
|
||||
@ CHECK: ldrsb.w r11, [pc, #-22] @ encoding: [0x1f,0xf9,0x16,0xb0]
|
||||
@ CHECK: ldrsh.w r11, [pc, #-22] @ encoding: [0x3f,0xf9,0x16,0xb0]
|
||||
|
||||
@ rdar://12596361
|
||||
ldr r1, [pc, #12]
|
||||
@ CHECK: ldr.n r1, [pc, #12] @ encoding: [0x03,0x49]
|
||||
|
Loading…
x
Reference in New Issue
Block a user