From a99ec28134c2fd0a21c446a58bf6406b8aa1a580 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Thu, 6 Jan 2011 00:50:34 +0000 Subject: [PATCH] PR8919 - LLVM incorrectly generates "_alloca" as the stack probing call. That works only on MinGW32. On 64-bit, the function to call is "__chkstk". Patch by KS Sreeram! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122934 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86FrameInfo.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/Target/X86/X86FrameInfo.cpp b/lib/Target/X86/X86FrameInfo.cpp index afadb4c9b3d..5a8d9768f84 100644 --- a/lib/Target/X86/X86FrameInfo.cpp +++ b/lib/Target/X86/X86FrameInfo.cpp @@ -566,6 +566,8 @@ void X86FrameInfo::emitPrologue(MachineFunction &MF) const { const char *StackProbeSymbol = STI.isTargetWindows() ? "_chkstk" : "_alloca"; + if (Is64Bit && STI.isTargetCygMing()) + StackProbeSymbol = "__chkstk"; unsigned CallOp = Is64Bit ? X86::CALL64pcrel32 : X86::CALLpcrel32; if (!isEAXAlive) { BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX)