summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-11-09 23:44:23 +0000
committerJim Grosbach <grosbach@apple.com>2011-11-09 23:44:23 +0000
commit25bc0901702671099d930e465174624a1eadf7fe (patch)
tree40d0fe1144c6c5ec582779bc19f56b27840a3706
parent2d4055b68301867f0326afd3a80fbd58af825178 (diff)
downloadbcm5719-llvm-25bc0901702671099d930e465174624a1eadf7fe.tar.gz
bcm5719-llvm-25bc0901702671099d930e465174624a1eadf7fe.zip
Thumb2 assembly parsing STMDB w/ optional .w suffix.
rdar://10422955 llvm-svn: 144242
-rw-r--r--llvm/lib/Target/ARM/ARMInstrThumb2.td6
-rw-r--r--llvm/test/MC/ARM/basic-thumb2-instructions.s2
2 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrThumb2.td b/llvm/lib/Target/ARM/ARMInstrThumb2.td
index d06510744a1..0a282266c40 100644
--- a/llvm/lib/Target/ARM/ARMInstrThumb2.td
+++ b/llvm/lib/Target/ARM/ARMInstrThumb2.td
@@ -3971,6 +3971,12 @@ def : t2InstAlias<"push${p} $regs", (t2STMDB_UPD SP, pred:$p, reglist:$regs)>;
def : t2InstAlias<"pop${p}.w $regs", (t2LDMIA_UPD SP, pred:$p, reglist:$regs)>;
def : t2InstAlias<"pop${p} $regs", (t2LDMIA_UPD SP, pred:$p, reglist:$regs)>;
+// STMDB/STMDB_UPD aliases w/ the optional .w suffix
+def : t2InstAlias<"stmdb${p}.w $Rn, $regs",
+ (t2STMDB GPR:$Rn, pred:$p, reglist:$regs)>;
+def : t2InstAlias<"stmdb${p}.w $Rn!, $regs",
+ (t2STMDB_UPD GPR:$Rn, pred:$p, reglist:$regs)>;
+
// LDMDB/LDMDB_UPD aliases w/ the optional .w suffix
def : t2InstAlias<"ldmdb${p}.w $Rn, $regs",
(t2LDMDB GPR:$Rn, pred:$p, reglist:$regs)>;
diff --git a/llvm/test/MC/ARM/basic-thumb2-instructions.s b/llvm/test/MC/ARM/basic-thumb2-instructions.s
index b9205a357c3..061f991dd28 100644
--- a/llvm/test/MC/ARM/basic-thumb2-instructions.s
+++ b/llvm/test/MC/ARM/basic-thumb2-instructions.s
@@ -2303,11 +2303,13 @@ _func:
stmdb r4, {r5, r6}
stmdb r5!, {r3, r8}
stmea r5!, {r3, r8}
+ stmdb.w r5, {r0, r1}
@ CHECK: stmdb r4, {r4, r5, r8, r9} @ encoding: [0x04,0xe9,0x30,0x03]
@ CHECK: stmdb r4, {r5, r6} @ encoding: [0x04,0xe9,0x60,0x00]
@ CHECK: stmdb r5!, {r3, r8} @ encoding: [0x25,0xe9,0x08,0x01]
@ CHECK: stm.w r5!, {r3, r8} @ encoding: [0xa5,0xe8,0x08,0x01]
+@ CHECK: stmdb r5, {r0, r1} @ encoding: [0x05,0xe9,0x03,0x00]
@------------------------------------------------------------------------------
OpenPOWER on IntegriCloud