Fix the allocation of shadow space for the Win64 calling convention
authorDan Gohman <gohman@apple.com>
Tue, 1 Jun 2010 21:09:47 +0000 (21:09 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 1 Jun 2010 21:09:47 +0000 (21:09 +0000)
in X86FastISel. Patch by Jan Sjodin.

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

lib/Target/X86/X86FastISel.cpp

index 33a1919cce64d7616aa5690bb051fe064cbc6bc7..47ee820b286001165368a7fae291de64693cb4cc 100644 (file)
@@ -1391,6 +1391,12 @@ bool X86FastISel::X86SelectCall(const Instruction *I) {
   // Analyze operands of the call, assigning locations to each operand.
   SmallVector<CCValAssign, 16> ArgLocs;
   CCState CCInfo(CC, false, TM, ArgLocs, I->getParent()->getContext());
+  
+  // Allocate shadow area for Win64
+  if (Subtarget->isTargetWin64()) {  
+    CCInfo.AllocateStack(32, 8); 
+  }
+
   CCInfo.AnalyzeCallOperands(ArgVTs, ArgFlags, CCAssignFnForCall(CC));
 
   // Get a count of how many bytes are to be pushed on the stack.