Clean up Thumb load/store multiple definitions.

There is no non-writeback store multiple instruction in Thumb1, so
don't define one. As a result load multiple is the only instantiation of
the multiclass, so refactor that away entirely.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138338 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach
2011-08-23 17:41:15 +00:00
parent e732cb0043
commit cefe4c9c48
3 changed files with 35 additions and 44 deletions

View File

@@ -146,7 +146,7 @@ void ARMInstPrinter::printInst(const MCInst *MI, raw_ostream &O) {
return;
}
if (Opcode == ARM::tLDMIA || Opcode == ARM::tSTMIA) {
if (Opcode == ARM::tLDMIA) {
bool Writeback = true;
unsigned BaseReg = MI->getOperand(0).getReg();
for (unsigned i = 3; i < MI->getNumOperands(); ++i) {
@@ -154,12 +154,7 @@ void ARMInstPrinter::printInst(const MCInst *MI, raw_ostream &O) {
Writeback = false;
}
if (Opcode == ARM::tLDMIA)
O << "\tldm";
else if (Opcode == ARM::tSTMIA)
O << "\tstm";
else
llvm_unreachable("Unknown opcode!");
O << "\tldm";
printPredicateOperand(MI, 1, O);
O << '\t' << getRegisterName(BaseReg);