From: Johnny Chen Date: Thu, 24 Mar 2011 23:42:31 +0000 (+0000) Subject: The opcode names ("tLDM", "tLDM_UPD") used for conflict resolution have been stale... X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=8c13335c9ad8b558e548e81a5adbd958f1e04753;p=oota-llvm.git 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 --- diff --git a/test/MC/Disassembler/ARM/thumb-tests.txt b/test/MC/Disassembler/ARM/thumb-tests.txt index 895769c3dea..ae28082deca 100644 --- a/test/MC/Disassembler/ARM/thumb-tests.txt +++ b/test/MC/Disassembler/ARM/thumb-tests.txt @@ -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 diff --git a/utils/TableGen/ARMDecoderEmitter.cpp b/utils/TableGen/ARMDecoderEmitter.cpp index 728e6698159..914ea0ee940 100644 --- a/utils/TableGen/ARMDecoderEmitter.cpp +++ b/utils/TableGen/ARMDecoderEmitter.cpp @@ -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 = 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";