summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-08-24 18:19:42 +0000
committerJim Grosbach <grosbach@apple.com>2011-08-24 18:19:42 +0000
commit6ccd79f4d5e7d09614ab12f75f0a4bb51851710f (patch)
tree28f9b27a89d3abe66e4180ebd57958d84bdc74fa /llvm/lib/Target
parent4ab4a9b897c24e5ae297002c9323946bad1e730a (diff)
downloadbcm5719-llvm-6ccd79f4d5e7d09614ab12f75f0a4bb51851710f.tar.gz
bcm5719-llvm-6ccd79f4d5e7d09614ab12f75f0a4bb51851710f.zip
Add missing explicit writeback operand to tSTMIA_UPD.
rdar://10014745 llvm-svn: 138457
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrThumb.td7
-rw-r--r--llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp2
2 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrThumb.td b/llvm/lib/Target/ARM/ARMInstrThumb.td
index 3b2f0287106..61b94ccef7e 100644
--- a/llvm/lib/Target/ARM/ARMInstrThumb.td
+++ b/llvm/lib/Target/ARM/ARMInstrThumb.td
@@ -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;
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index b76ba3e50ae..32a4fbbb01f 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -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;
OpenPOWER on IntegriCloud