Don't forget to transfer implicit uses of return instruction.
authorEvan Cheng <evan.cheng@apple.com>
Sun, 8 Jan 2012 20:41:16 +0000 (20:41 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Sun, 8 Jan 2012 20:41:16 +0000 (20:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147752 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/Thumb1FrameLowering.cpp

index 16c7cbc4a0d719f83c802d13534ec829f7c71dec..bb327b0bb78ca529407491ef0cfde61c7b8c764a 100644 (file)
@@ -278,8 +278,11 @@ void Thumb1FrameLowering::emitEpilogue(MachineFunction &MF,
 
     emitSPUpdate(MBB, MBBI, TII, dl, *RegInfo, VARegSaveSize);
 
-    AddDefaultPred(BuildMI(MBB, MBBI, dl, TII.get(ARM::tBX_RET_vararg))
-      .addReg(ARM::R3, RegState::Kill));
+    MachineInstrBuilder MIB =
+      BuildMI(MBB, MBBI, dl, TII.get(ARM::tBX_RET_vararg))
+      .addReg(ARM::R3, RegState::Kill);
+    AddDefaultPred(MIB);
+    MIB->copyImplicitOps(&*MBBI);
     // erase the old tBX_RET instruction
     MBB.erase(MBBI);
   }