Skip impdef regs during eabi save/restore list emission to workaround PR11902

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161301 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Anton Korobeynikov 2012-08-04 13:25:58 +00:00
parent 161474d198
commit ad62e92279

View File

@ -1136,8 +1136,14 @@ void ARMAsmPrinter::EmitUnwindingInstruction(const MachineInstr *MI) {
assert(SrcReg == ARM::SP &&
"Only stack pointer as a source reg is supported");
for (unsigned i = StartOp, NumOps = MI->getNumOperands() - NumOffset;
i != NumOps; ++i)
RegList.push_back(MI->getOperand(i).getReg());
i != NumOps; ++i) {
const MachineOperand &MO = MI->getOperand(i);
// Actually, there should never be any impdef stuff here. Skip it
// temporary to workaround PR11902.
if (MO.isImplicit())
continue;
RegList.push_back(MO.getReg());
}
break;
case ARM::STR_PRE_IMM:
case ARM::STR_PRE_REG: