[ARM] Thumb2 LDR (literal) should accept PC as the destination
The version of this instruction with the .w suffix already correctly accepts this, but the alias without the .w did not. Differential Revision: https://reviews.llvm.org/D26499 llvm-svn: 286446
This commit is contained in:
parent
12e8a92acd
commit
18ca2adf2d
|
@ -4407,7 +4407,7 @@ def : t2InstAlias<"ldrsh${p} $Rt, $addr",
|
|||
(t2LDRSHs rGPR:$Rt, t2addrmode_so_reg:$addr, pred:$p)>;
|
||||
|
||||
def : t2InstAlias<"ldr${p} $Rt, $addr",
|
||||
(t2LDRpci GPRnopc:$Rt, t2ldrlabel:$addr, pred:$p)>;
|
||||
(t2LDRpci GPR:$Rt, t2ldrlabel:$addr, pred:$p)>;
|
||||
def : t2InstAlias<"ldrb${p} $Rt, $addr",
|
||||
(t2LDRBpci rGPR:$Rt, t2ldrlabel:$addr, pred:$p)>;
|
||||
def : t2InstAlias<"ldrh${p} $Rt, $addr",
|
||||
|
|
|
@ -886,6 +886,7 @@ _func:
|
|||
ldr.w r5, _foo
|
||||
ldr lr, (_strcmp-4)
|
||||
ldr sp, _foo
|
||||
ldr pc, _foo
|
||||
|
||||
@ CHECK: ldr.w r5, _foo @ encoding: [0x5f'A',0xf8'A',A,0x50'A']
|
||||
@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
|
||||
|
@ -898,6 +899,10 @@ _func:
|
|||
@ CHECK: ldr.w sp, _foo @ encoding: [0x5f'A',0xf8'A',A,0xd0'A']
|
||||
@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
|
||||
@ CHECK-BE: ldr.w sp, _foo @ encoding: [0xf8'A',0x5f'A',0xd0'A',A]
|
||||
@ CHECK-BE: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
|
||||
@ CHECK: ldr.w pc, _foo @ encoding: [0x5f'A',0xf8'A',A,0xf0'A']
|
||||
@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
|
||||
@ CHECK-BE: ldr.w pc, _foo @ encoding: [0xf8'A',0x5f'A',0xf0'A',A]
|
||||
@ CHECK-BE: @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
|
||||
|
||||
ldr r7, [pc, #8]
|
||||
|
|
Loading…
Reference in New Issue