diff options
Diffstat (limited to 'llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 203da11ed32..3832b0112b8 100644 --- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -9177,33 +9177,9 @@ bool ARMAsmParser::isITBlockTerminator(MCInst &Inst) const { // Any arithmetic instruction which writes to the PC also terminates the IT // block. - for (unsigned OpIdx = 0; OpIdx < MCID.getNumDefs(); ++OpIdx) { - MCOperand &Op = Inst.getOperand(OpIdx); - if (Op.isReg() && Op.getReg() == ARM::PC) - return true; - } - - if (MCID.hasImplicitDefOfPhysReg(ARM::PC, MRI)) + if (MCID.hasDefOfPhysReg(Inst, ARM::PC, *MRI)) return true; - // Instructions with variable operand lists, which write to the variable - // operands. We only care about Thumb instructions here, as ARM instructions - // obviously can't be in an IT block. - switch (Inst.getOpcode()) { - case ARM::tLDMIA: - case ARM::t2LDMIA: - case ARM::t2LDMIA_UPD: - case ARM::t2LDMDB: - case ARM::t2LDMDB_UPD: - if (listContainsReg(Inst, 3, ARM::PC)) - return true; - break; - case ARM::tPOP: - if (listContainsReg(Inst, 2, ARM::PC)) - return true; - break; - } - return false; } |