diff options
| author | Dan Gohman <gohman@apple.com> | 2010-06-01 21:09:47 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2010-06-01 21:09:47 +0000 |
| commit | 8b51330c5162cc1cd36ab3d3e6c35189efa5fd1d (patch) | |
| tree | 28529f7e4276f8233212dc55046bc5f1b9d460da /lib/Target/X86/X86FastISel.cpp | |
| parent | 34d232fedc1a596d319eb12e085de40995a21031 (diff) | |
| download | external_llvm-8b51330c5162cc1cd36ab3d3e6c35189efa5fd1d.zip external_llvm-8b51330c5162cc1cd36ab3d3e6c35189efa5fd1d.tar.gz external_llvm-8b51330c5162cc1cd36ab3d3e6c35189efa5fd1d.tar.bz2 | |
Fix the allocation of shadow space for the Win64 calling convention
in X86FastISel. Patch by Jan Sjodin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105290 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86FastISel.cpp')
| -rw-r--r-- | lib/Target/X86/X86FastISel.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp index 33a1919..47ee820 100644 --- a/lib/Target/X86/X86FastISel.cpp +++ b/lib/Target/X86/X86FastISel.cpp @@ -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. |
