diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2012-08-04 13:25:58 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2012-08-04 13:25:58 +0000 |
| commit | ef731edf530059ed8a1324043b5934ee4f59aa70 (patch) | |
| tree | fc8593216604fd50162ea4c839c0d2738192453f /llvm/lib/Target/ARM | |
| parent | 3a4fdfeceb13ca3e8cf607323b53eaf71070c06a (diff) | |
| download | bcm5719-llvm-ef731edf530059ed8a1324043b5934ee4f59aa70.tar.gz bcm5719-llvm-ef731edf530059ed8a1324043b5934ee4f59aa70.zip | |
Skip impdef regs during eabi save/restore list emission to workaround PR11902
llvm-svn: 161301
Diffstat (limited to 'llvm/lib/Target/ARM')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMAsmPrinter.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp index 9a1ce06f3a3..f93a45d3ada 100644 --- a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp @@ -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: |

