diff options
| author | Cameron Esfahani <dirty@apple.com> | 2010-09-22 22:35:21 +0000 |
|---|---|---|
| committer | Cameron Esfahani <dirty@apple.com> | 2010-09-22 22:35:21 +0000 |
| commit | bbb9287080b5625f75836cf706bf28fe968377b3 (patch) | |
| tree | 98f5be872be0d0ef978468984cdac382acf05517 /llvm/lib/Target | |
| parent | e9e9c08ce2c4f590e59e877a827461bd3c8e08e9 (diff) | |
| download | bcm5719-llvm-bbb9287080b5625f75836cf706bf28fe968377b3.tar.gz bcm5719-llvm-bbb9287080b5625f75836cf706bf28fe968377b3.zip | |
Fix PR8201: Update the code to call via X86::CALL64pcrel32 in the 64-bit case.
llvm-svn: 114597
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86RegisterInfo.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp index 3654f4e5091..94aadd11f79 100644 --- a/llvm/lib/Target/X86/X86RegisterInfo.cpp +++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp @@ -1086,10 +1086,11 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { const char *StackProbeSymbol = Subtarget->isTargetWindows() ? "_chkstk" : "_alloca"; + unsigned CallOp = Is64Bit ? X86::CALL64pcrel32 : X86::CALLpcrel32; if (!isEAXAlive) { BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX) .addImm(NumBytes); - BuildMI(MBB, MBBI, DL, TII.get(X86::CALLpcrel32)) + BuildMI(MBB, MBBI, DL, TII.get(CallOp)) .addExternalSymbol(StackProbeSymbol) .addReg(StackPtr, RegState::Define | RegState::Implicit) .addReg(X86::EFLAGS, RegState::Define | RegState::Implicit); @@ -1102,7 +1103,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { // allocated bytes for EAX. BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX) .addImm(NumBytes - 4); - BuildMI(MBB, MBBI, DL, TII.get(X86::CALLpcrel32)) + BuildMI(MBB, MBBI, DL, TII.get(CallOp)) .addExternalSymbol(StackProbeSymbol) .addReg(StackPtr, RegState::Define | RegState::Implicit) .addReg(X86::EFLAGS, RegState::Define | RegState::Implicit); |

