diff options
author | Jyoti Allur <jyoti.allur@samsung.com> | 2015-01-14 10:48:16 +0000 |
---|---|---|
committer | Jyoti Allur <jyoti.allur@samsung.com> | 2015-01-14 10:48:16 +0000 |
commit | 5a1391410d384fe221cb2abec95f0d63d77794de (patch) | |
tree | 154aff1ecab20a0e929883276fbe7b00e349f9ff /llvm/lib | |
parent | 190fbda6ded9cfdf67b0903e82a0cd0853da3a73 (diff) | |
download | bcm5719-llvm-5a1391410d384fe221cb2abec95f0d63d77794de.tar.gz bcm5719-llvm-5a1391410d384fe221cb2abec95f0d63d77794de.zip |
Correct POP handling for v7m
llvm-svn: 225972
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 2c2860dad8d..6a00b28f37a 100644 --- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -190,7 +190,7 @@ class ARMAsmParser : public MCTargetAsmParser { } bool validatetLDMRegList(MCInst Inst, const OperandVector &Operands, - unsigned ListNo, bool IsPop = false); + unsigned ListNo, bool IsARPop = false); bool validatetSTMRegList(MCInst Inst, const OperandVector &Operands, unsigned ListNo); @@ -6027,7 +6027,7 @@ static bool instIsBreakpoint(const MCInst &Inst) { bool ARMAsmParser::validatetLDMRegList(MCInst Inst, const OperandVector &Operands, - unsigned ListNo, bool IsPop) { + unsigned ListNo, bool IsARPop) { const ARMOperand &Op = static_cast<const ARMOperand &>(*Operands[ListNo]); bool HasWritebackToken = Op.isToken() && Op.getToken() == "!"; @@ -6035,7 +6035,7 @@ bool ARMAsmParser::validatetLDMRegList(MCInst Inst, bool ListContainsLR = listContainsReg(Inst, ListNo, ARM::LR); bool ListContainsPC = listContainsReg(Inst, ListNo, ARM::PC); - if (!IsPop && ListContainsSP) + if (!IsARPop && ListContainsSP) return Error(Operands[ListNo + HasWritebackToken]->getStartLoc(), "SP may not be in the register list"); else if (ListContainsPC && ListContainsLR) @@ -6338,7 +6338,7 @@ bool ARMAsmParser::validateInstruction(MCInst &Inst, !isThumbTwo()) return Error(Operands[2]->getStartLoc(), "registers must be in range r0-r7 or pc"); - if (validatetLDMRegList(Inst, Operands, 2, /*IsPop=*/true)) + if (validatetLDMRegList(Inst, Operands, 2, !isMClass())) return true; break; } |