Thumb2 assembly parsing and encoding for REV16/REVSH.
authorJim Grosbach <grosbach@apple.com>
Thu, 15 Sep 2011 19:46:13 +0000 (19:46 +0000)
committerJim Grosbach <grosbach@apple.com>
Thu, 15 Sep 2011 19:46:13 +0000 (19:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139828 91177308-0d34-0410-b5e6-96231b3b80d8

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

index 9467f36f984b185af07ff08b3391b3e9e50ff10c..6043597761242275e0e6247de84f5df3d4f824e0 100644 (file)
@@ -3841,5 +3841,7 @@ 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)>;
 
-// Alias for REV without the ".w" optional width specifier.
+// Alias for REV/REV16/REVSH without the ".w" optional width specifier.
 def : t2InstAlias<"rev${p} $Rd, $Rm", (t2REV rGPR:$Rd, rGPR:$Rm, pred:$p)>;
+def : t2InstAlias<"rev16${p} $Rd, $Rm", (t2REV16 rGPR:$Rd, rGPR:$Rm, pred:$p)>;
+def : t2InstAlias<"revsh${p} $Rd, $Rm", (t2REVSH rGPR:$Rd, rGPR:$Rm, pred:$p)>;
index 9723407bbb0287318bc6c9ad83d4812580ac85b2..26be6f0e25296bab778a46ac73d2e0b99a624a76 100644 (file)
@@ -1441,6 +1441,38 @@ _func:
 @ CHECK: revne.w r1, r8                 @ encoding: [0x98,0xfa,0x88,0xf1]
 
 
+@------------------------------------------------------------------------------
+@ REV16
+@------------------------------------------------------------------------------
+        rev16.w r1, r2
+        rev16 r2, r8
+        itt ne
+        rev16ne r1, r2
+        rev16ne r1, r8
+
+       rev16.w r1, r2                  @ encoding: [0x92,0xfa,0x92,0xf1]
+       rev16.w r2, r8                  @ encoding: [0x98,0xfa,0x98,0xf2]
+       itt     ne                      @ encoding: [0x1c,0xbf]
+       rev16ne r1, r2                  @ encoding: [0x51,0xba]
+       rev16ne.w       r1, r8          @ encoding: [0x98,0xfa,0x98,0xf1]
+
+
+@------------------------------------------------------------------------------
+@ REVSH
+@------------------------------------------------------------------------------
+        revsh.w r1, r2
+        revsh r2, r8
+        itt ne
+        revshne r1, r2
+        revshne r1, r8
+
+       revsh.w r1, r2                  @ encoding: [0x92,0xfa,0xb2,0xf1]
+       revsh.w r2, r8                  @ encoding: [0x98,0xfa,0xb8,0xf2]
+       itt     ne                      @ encoding: [0x1c,0xbf]
+       revshne r1, r2                  @ encoding: [0xd1,0xba]
+       revshne.w       r1, r8          @ encoding: [0x98,0xfa,0xb8,0xf1]
+
+
 @------------------------------------------------------------------------------
 @ SUB (register)
 @------------------------------------------------------------------------------