Add missing explicit writeback operand to tSTMIA_UPD.
authorJim Grosbach <grosbach@apple.com>
Wed, 24 Aug 2011 18:19:42 +0000 (18:19 +0000)
committerJim Grosbach <grosbach@apple.com>
Wed, 24 Aug 2011 18:19:42 +0000 (18:19 +0000)
rdar://10014745

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

lib/Target/ARM/ARMInstrThumb.td
lib/Target/ARM/AsmParser/ARMAsmParser.cpp

index 3b2f02871064c9d8dd036762efa9a77de771be20..61b94ccef7ee12aecb1518cc429d5795dd8bca45 100644 (file)
@@ -726,9 +726,10 @@ def tLDMIA_UPD :
 
 // There is no non-writeback version of STM for Thumb.
 let mayStore = 1, hasExtraSrcRegAllocReq = 1 in
-def tSTMIA_UPD : T1I<(outs),
-                     (ins tGPR:$Rn, pred:$p, reglist:$regs, variable_ops),
-                     IIC_iStore_mu, "stm${p}\t$Rn!, $regs", []>,
+def tSTMIA_UPD : Thumb1I<(outs GPR:$wb),
+                         (ins tGPR:$Rn, pred:$p, reglist:$regs, variable_ops),
+                         AddrModeNone, 2, IIC_iStore_mu,
+                         "stm${p}\t$Rn!, $regs", "$Rn = $wb", []>,
                      T1Encoding<{1,1,0,0,0,?}> {
   bits<3> Rn;
   bits<8> regs;
index b76ba3e50aedfa0ed361e202c5e9ea85d6d5afe9..32a4fbbb01f02536f488ffb374ea7029e906fa5e 100644 (file)
@@ -3152,7 +3152,7 @@ validateInstruction(MCInst &Inst,
   }
   case ARM::tSTMIA_UPD: {
     bool listContainsBase;
-    if (checkLowRegisterList(Inst, 3, 0, 0, listContainsBase))
+    if (checkLowRegisterList(Inst, 4, 0, 0, listContainsBase))
       return Error(Operands[4]->getStartLoc(),
                    "registers must be in range r0-r7");
     break;