ARM: Add support for the Thumb2 PLI alternate literal form.
authorTilmann Scheller <tilmann.scheller@googlemail.com>
Tue, 16 Jul 2013 21:52:34 +0000 (21:52 +0000)
committerTilmann Scheller <tilmann.scheller@googlemail.com>
Tue, 16 Jul 2013 21:52:34 +0000 (21:52 +0000)
This adds an instruction alias to make the assembler recognize the alternate literal form: pli [PC, #+/-<imm>]

See A8.8.129 in the ARM ARM (DDI 0406C.b).

Fixes <rdar://problem/14403733>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186459 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrThumb2.td
test/MC/ARM/basic-thumb2-instructions.s

index 8d15630ca53638dbb3a10f8e26916a8f5b336f86..19d76e5017b8071bbd315ec92fa5227c335ceaa8 100644 (file)
@@ -4427,3 +4427,6 @@ def : t2InstAlias<"ldrsh${p}.w $Rt, $addr",
 
 def : t2InstAlias<"add${p} $Rd, pc, $imm",
                   (t2ADR rGPR:$Rd, imm0_4095:$imm, pred:$p)>;
+
+// PLI with alternate literal form.
+def : t2InstAlias<"pli${p} $addr", (t2PLIpci t2ldr_pcrel_imm12:$addr, pred:$p)>;
index 9136aa55fee3478b1d6bfc63fcfbcecddb4cfd3f..50a505e1d3c14b56f120e109551e9c95f5638b65 100644 (file)
@@ -1599,12 +1599,16 @@ _func:
         pli [r6, #33]
         pli [r6, #257]
         pli [r7, #257]
+        pli [pc, #+4095]
+        pli [pc, #-4095]
 
 @ CHECK: pli   [r5, #-4]               @ encoding: [0x15,0xf9,0x04,0xfc]
 @ CHECK: pli   [r6, #32]               @ encoding: [0x96,0xf9,0x20,0xf0]
 @ CHECK: pli   [r6, #33]               @ encoding: [0x96,0xf9,0x21,0xf0]
 @ CHECK: pli   [r6, #257]              @ encoding: [0x96,0xf9,0x01,0xf1]
 @ CHECK: pli   [r7, #257]              @ encoding: [0x97,0xf9,0x01,0xf1]
+@ CHECK: pli    [pc, #4095]             @ encoding: [0x9f,0xf9,0xff,0xff]
+@ CHECK: pli    [pc, #-4095]            @ encoding: [0x1f,0xf9,0xff,0xff]
 
 
 @------------------------------------------------------------------------------