Copy implicit defs (e.g. r0) when changing tBX_RET to tPOP_RET. This bug is
authorEvan Cheng <evan.cheng@apple.com>
Sat, 7 Jan 2012 02:55:54 +0000 (02:55 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Sat, 7 Jan 2012 02:55:54 +0000 (02:55 +0000)
exposed with an upcoming change will would delete the copy to return register
because there is no use! It's amazing anything works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147715 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/Thumb1FrameLowering.cpp

index e171b274deb7047213637fca73243c04639a4b4d..16c7cbc4a0d719f83c802d13534ec829f7c71dec 100644 (file)
@@ -350,6 +350,7 @@ restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
         continue;
       Reg = ARM::PC;
       (*MIB).setDesc(TII.get(ARM::tPOP_RET));
+      MIB->copyImplicitOps(&*MI);
       MI = MBB.erase(MI);
     }
     MIB.addReg(Reg, getDefRegState(true));