summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJyoti Allur <jyoti.allur@samsung.com>2015-01-14 10:48:16 +0000
committerJyoti Allur <jyoti.allur@samsung.com>2015-01-14 10:48:16 +0000
commit5a1391410d384fe221cb2abec95f0d63d77794de (patch)
tree154aff1ecab20a0e929883276fbe7b00e349f9ff /llvm/lib
parent190fbda6ded9cfdf67b0903e82a0cd0853da3a73 (diff)
downloadbcm5719-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.cpp8
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;
}
OpenPOWER on IntegriCloud