The opcode names ("tLDM", "tLDM_UPD") used for conflict resolution have been stale since

the change to ("tLDMIA", "tLDMIA_UPD").  Update the conflict resolution code and add
test cases for that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128247 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Johnny Chen 2011-03-24 23:42:31 +00:00
parent 1090d7711b
commit 8c13335c9a
2 changed files with 8 additions and 2 deletions

View File

@ -142,3 +142,9 @@
# CHECK: stmia r5!, {r0, r1, r2, r3, r4}
0x1f 0xc5
# CHECK: ldmia r5, {r0, r1, r2, r3, r4, r5}
0x3f 0xcd
# CHECK: ldmia r5!, {r0, r1, r2, r3, r4}
0x1f 0xcd

View File

@ -1382,7 +1382,7 @@ bool ARMFilterChooser::emit(raw_ostream &o, unsigned &Indentation) {
// 2. source registers are identical => VMOVQ; otherwise => VORRq
// 3. LDR, LDRcp => return LDR for now.
// FIXME: How can we distinguish between LDR and LDRcp? Do we need to?
// 4. tLDM, tLDM_UPD => Rn = Inst{10-8}, reglist = Inst{7-0},
// 4. tLDMIA, tLDMIA_UPD => Rn = Inst{10-8}, reglist = Inst{7-0},
// wback = registers<Rn> = 0
// NOTE: (tLDM, tLDM_UPD) resolution must come before Advanced SIMD
// addressing mode resolution!!!
@ -1423,7 +1423,7 @@ bool ARMFilterChooser::emit(raw_ostream &o, unsigned &Indentation) {
<< "; // Returning LDR for {LDR, LDRcp}\n";
return true;
}
if (name1 == "tLDM" && name2 == "tLDM_UPD") {
if (name1 == "tLDMIA" && name2 == "tLDMIA_UPD") {
// Inserting the opening curly brace for this case block.
--Indentation; --Indentation;
o.indent(Indentation) << "{\n";