From 898788c6bcc2abfe0e1c7b21c14394352963acd6 Mon Sep 17 00:00:00 2001 From: Tilmann Scheller Date: Tue, 16 Jul 2013 21:52:34 +0000 Subject: [PATCH] ARM: Add support for the Thumb2 PLI alternate literal form. This adds an instruction alias to make the assembler recognize the alternate literal form: pli [PC, #+/-] See A8.8.129 in the ARM ARM (DDI 0406C.b). Fixes . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186459 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMInstrThumb2.td | 3 +++ test/MC/ARM/basic-thumb2-instructions.s | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/lib/Target/ARM/ARMInstrThumb2.td b/lib/Target/ARM/ARMInstrThumb2.td index 8d15630ca53..19d76e5017b 100644 --- a/lib/Target/ARM/ARMInstrThumb2.td +++ b/lib/Target/ARM/ARMInstrThumb2.td @@ -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)>; diff --git a/test/MC/ARM/basic-thumb2-instructions.s b/test/MC/ARM/basic-thumb2-instructions.s index 9136aa55fee..50a505e1d3c 100644 --- a/test/MC/ARM/basic-thumb2-instructions.s +++ b/test/MC/ARM/basic-thumb2-instructions.s @@ -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] @------------------------------------------------------------------------------