diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-02-22 22:47:46 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-02-22 22:47:46 +0000 |
commit | 15f6ed348f26135a1790dbc98de208cec565bec6 (patch) | |
tree | 2442d406724f4f29e6fb40937af88fd820094c37 /llvm/lib | |
parent | 6c5ac6de5c0605332cdb44218401b854ea8658c3 (diff) | |
download | bcm5719-llvm-15f6ed348f26135a1790dbc98de208cec565bec6.tar.gz bcm5719-llvm-15f6ed348f26135a1790dbc98de208cec565bec6.zip |
The predicate index isn't fixed, so scan for it to make sure we get the proper
value.
Thumb2 uses the tADJCALLSTACK* instructions, and doesn't need t2 versions, so
remove the FIXME entry.
llvm-svn: 96817
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp index 91e3550d077..6d5c48a9e63 100644 --- a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp @@ -1124,8 +1124,9 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, // Replace the pseudo instruction with a new instruction... unsigned Opc = Old->getOpcode(); - ARMCC::CondCodes Pred = (ARMCC::CondCodes)Old->getOperand(1).getImm(); - // FIXME: Thumb2 version of ADJCALLSTACKUP and ADJCALLSTACKDOWN? + int PIdx = Old->findFirstPredOperandIdx(); + ARMCC::CondCodes Pred = (PIdx == -1) + ? ARMCC::AL : (ARMCC::CondCodes)Old->getOperand(PIdx).getImm(); if (Opc == ARM::ADJCALLSTACKDOWN || Opc == ARM::tADJCALLSTACKDOWN) { // Note: PredReg is operand 2 for ADJCALLSTACKDOWN. unsigned PredReg = Old->getOperand(2).getReg(); |