When doing Thumb disassembly, there's no need to consider t2ADDrSPi12/t2SUBrSPi12,

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
This commit is contained in:
Johnny Chen 2010-04-20 18:45:24 +00:00
parent b545cde675
commit 56a1afb6b0
2 changed files with 9 additions and 3 deletions

View File

@ -60,6 +60,9 @@
# CHECK: subw r0, pc, #1 # CHECK: subw r0, pc, #1
0xaf 0xf2 0x01 0x00 0xaf 0xf2 0x01 0x00
# CHECK: subw r0, sp, #835
0xad 0xf2 0x43 0x30
# CHECK: uqadd16 r3, r4, r5 # CHECK: uqadd16 r3, r4, r5
0x94 0xfa 0x55 0xf3 0x94 0xfa 0x55 0xf3

View File

@ -1699,8 +1699,12 @@ bool ARMDecoderEmitter::ARMDEBackend::populateInstruction(
// Ignore tADDrSP, tADDspr, and tPICADD, prefer the generic tADDhirr. // Ignore tADDrSP, tADDspr, and tPICADD, prefer the generic tADDhirr.
// Ignore t2SUBrSPs, prefer the t2SUB[S]r[r|s]. // Ignore t2SUBrSPs, prefer the t2SUB[S]r[r|s].
// Ignore t2ADDrSPs, prefer the t2ADD[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" || 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; return false;
// Ignore t2LDRDpci, prefer the generic t2LDRDi8, t2LDRD_PRE, t2LDRD_POST. // Ignore t2LDRDpci, prefer the generic t2LDRDi8, t2LDRD_PRE, t2LDRD_POST.
@ -1723,7 +1727,6 @@ bool ARMDecoderEmitter::ARMDEBackend::populateInstruction(
// tLDRcp conflicts with tLDRspi // tLDRcp conflicts with tLDRspi
// tRestore conflicts with tLDRspi // tRestore conflicts with tLDRspi
// t2LEApcrelJT conflicts with t2LEApcrel // t2LEApcrelJT conflicts with t2LEApcrel
// t2ADDrSPi/t2SUBrSPi have more generic couterparts
if (Name == "tBfar" || if (Name == "tBfar" ||
/* Name == "tCMNz" || */ Name == "tCMPzi8" || Name == "tCMPzr" || /* Name == "tCMNz" || */ Name == "tCMPzi8" || Name == "tCMPzr" ||
Name == "tCMPzhir" || /* Name == "t2CMNzrr" || Name == "t2CMNzrs" || Name == "tCMPzhir" || /* Name == "t2CMNzrr" || Name == "t2CMNzrs" ||
@ -1731,7 +1734,7 @@ bool ARMDecoderEmitter::ARMDEBackend::populateInstruction(
Name == "t2CMPzri" || Name == "tPOP_RET" || Name == "t2LDM_RET" || Name == "t2CMPzri" || Name == "tPOP_RET" || Name == "t2LDM_RET" ||
Name == "tMOVCCi" || Name == "tMOVCCr" || Name == "tBR_JTr" || Name == "tMOVCCi" || Name == "tMOVCCr" || Name == "tBR_JTr" ||
Name == "tSpill" || Name == "tLDRcp" || Name == "tRestore" || Name == "tSpill" || Name == "tLDRcp" || Name == "tRestore" ||
Name == "t2LEApcrelJT" || Name == "t2ADDrSPi" || Name == "t2SUBrSPi") Name == "t2LEApcrelJT")
return false; return false;
} }