When doing Thumb disassembly, there's no need to consider t2ADDrSPi12/t2SUBrSPi12,
authorJohnny Chen <johnny.chen@apple.com>
Tue, 20 Apr 2010 18:45:24 +0000 (18:45 +0000)
committerJohnny Chen <johnny.chen@apple.com>
Tue, 20 Apr 2010 18:45:24 +0000 (18:45 +0000)
as their generic counterparts t2ADDri12/t2SUBri12 should suffice.

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

test/MC/Disassembler/thumb-tests.txt
utils/TableGen/ARMDecoderEmitter.cpp

index da166d350e8a7c488e79252c42da31f66ef3266d..bfce44e8b196e7a2717353b00ed39e4ea0fc4584 100644 (file)
@@ -60,6 +60,9 @@
 # CHECK:       subw    r0, pc, #1
 0xaf 0xf2 0x01 0x00
 
+# CHECK:       subw    r0, sp, #835
+0xad 0xf2 0x43 0x30
+
 # CHECK:       uqadd16 r3, r4, r5
 0x94 0xfa 0x55 0xf3
 
index 0bb55ce9f3f6071cf5d3da739a9e336c55859125..c879a54b35545320da33cc5be568e380bca54f04 100644 (file)
@@ -1699,8 +1699,12 @@ bool ARMDecoderEmitter::ARMDEBackend::populateInstruction(
     // Ignore tADDrSP, tADDspr, and tPICADD, prefer the generic tADDhirr.
     // Ignore t2SUBrSPs, prefer the t2SUB[S]r[r|s].
     // Ignore t2ADDrSPs, prefer the t2ADD[S]r[r|s].
+    // Ignore t2ADDrSPi/t2SUBrSPi, which have more generic couterparts.
+    // Ignore t2ADDrSPi12/t2SUBrSPi12, which have more generic couterparts
     if (Name == "tADDrSP" || Name == "tADDspr" || Name == "tPICADD" ||
-        Name == "t2SUBrSPs" || Name == "t2ADDrSPs")
+        Name == "t2SUBrSPs" || Name == "t2ADDrSPs" ||
+        Name == "t2ADDrSPi" || Name == "t2SUBrSPi" ||
+        Name == "t2ADDrSPi12" || Name == "t2SUBrSPi12")
       return false;
 
     // Ignore t2LDRDpci, prefer the generic t2LDRDi8, t2LDRD_PRE, t2LDRD_POST.
@@ -1723,7 +1727,6 @@ bool ARMDecoderEmitter::ARMDEBackend::populateInstruction(
     //   tLDRcp conflicts with tLDRspi
     //   tRestore conflicts with tLDRspi
     //   t2LEApcrelJT conflicts with t2LEApcrel
-    //   t2ADDrSPi/t2SUBrSPi have more generic couterparts
     if (Name == "tBfar" ||
         /* Name == "tCMNz" || */ Name == "tCMPzi8" || Name == "tCMPzr" ||
         Name == "tCMPzhir" || /* Name == "t2CMNzrr" || Name == "t2CMNzrs" ||
@@ -1731,7 +1734,7 @@ bool ARMDecoderEmitter::ARMDEBackend::populateInstruction(
         Name == "t2CMPzri" || Name == "tPOP_RET" || Name == "t2LDM_RET" ||
         Name == "tMOVCCi" || Name == "tMOVCCr" || Name == "tBR_JTr" ||
         Name == "tSpill" || Name == "tLDRcp" || Name == "tRestore" ||
-        Name == "t2LEApcrelJT" || Name == "t2ADDrSPi" || Name == "t2SUBrSPi")
+        Name == "t2LEApcrelJT")
       return false;
   }