MachineInstr *NewMI = NULL;
if (Opc == ARM::MOVr || Opc == ARM::t2MOVr) {
// If it is updating CPSR, then it cannot be folded.
- if (MI->getOperand(4).getReg() != ARM::CPSR) {
+ if (MI->getOperand(4).getReg() != ARM::CPSR || MI->getOperand(4).isDead()) {
unsigned Pred = MI->getOperand(2).getImm();
unsigned PredReg = MI->getOperand(3).getReg();
if (OpNum == 0) { // move -> store
MachineInstr* MI,
const SmallVectorImpl<unsigned> &Ops,
MachineInstr* LoadMI) const {
+ // FIXME
return 0;
}
unsigned Opc = MI->getOpcode();
if (Opc == ARM::MOVr || Opc == ARM::t2MOVr) {
// If it is updating CPSR, then it cannot be folded.
- return MI->getOperand(4).getReg() != ARM::CPSR;
+ return MI->getOperand(4).getReg() != ARM::CPSR ||MI->getOperand(4).isDead();
} else if (Opc == ARM::FCPYS || Opc == ARM::FCPYD) {
return true;
} else if (Opc == ARM::VMOVD || Opc == ARM::VMOVQ) {