Fix the allocation of shadow space for the Win64 calling convention

in X86FastISel. Patch by Jan Sjodin.

llvm-svn: 105290
This commit is contained in:
Dan Gohman 2010-06-01 21:09:47 +00:00
parent b69c68742a
commit 47a0724425
1 changed files with 6 additions and 0 deletions

View 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.