The form of BuildMI used for TAILJMPr was changing the register
authorDale Johannesen <dalej@apple.com>
Tue, 15 Jun 2010 03:13:49 +0000 (03:13 +0000)
committerDale Johannesen <dalej@apple.com>
Tue, 15 Jun 2010 03:13:49 +0000 (03:13 +0000)
containing the target address, an input, into an output.  I don't
think this actually broke anything on x86 (it does on ARM), but
it's wrong.

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

lib/Target/X86/X86RegisterInfo.cpp

index e74db6d5fcfaebecf411850beebaa38a77beca57..b80a40ecea47dc5eea2d7bd14e3818b1988ea433 100644 (file)
@@ -1279,9 +1279,11 @@ void X86RegisterInfo::emitEpilogue(MachineFunction &MF,
       for (unsigned i = 0; i != 5; ++i)
         MIB.addOperand(MBBI->getOperand(i));
     } else if (RetOpcode == X86::TCRETURNri64) {
-      BuildMI(MBB, MBBI, DL, TII.get(X86::TAILJMPr64), JumpTarget.getReg());
+      BuildMI(MBB, MBBI, DL, TII.get(X86::TAILJMPr64)).
+        addReg(JumpTarget.getReg(), JumpTarget.getTargetFlags());
     } else {
-      BuildMI(MBB, MBBI, DL, TII.get(X86::TAILJMPr), JumpTarget.getReg());
+      BuildMI(MBB, MBBI, DL, TII.get(X86::TAILJMPr)).
+        addReg(JumpTarget.getReg(), JumpTarget.getTargetFlags());
     }
 
     MachineInstr *NewMI = prior(MBBI);