Recommit 116056, now with the missing file...
[oota-llvm.git] / lib / Target / X86 / X86ISelLowering.cpp
index 66f9612e02759cfca51c155bf0764e608bee1a7f..27226d885d7841f0d893ec9740a7968081bff7f3 100644 (file)
@@ -1701,8 +1701,12 @@ X86TargetLowering::LowerFormalArguments(SDValue Chain,
         TotalNumXMMRegs = 0;
 
       if (IsWin64) {
+        const TargetFrameInfo &TFI = *getTargetMachine().getFrameInfo();
+        // Get to the caller-allocated home save location.  Add 8 to account
+        // for the return address.
+        int HomeOffset = TFI.getOffsetOfLocalArea() + 8;
         FuncInfo->setRegSaveFrameIndex(
-          MFI->CreateFixedObject(1, NumIntRegs * 8, false));
+          MFI->CreateFixedObject(1, NumIntRegs * 8 + HomeOffset, false));
         FuncInfo->setVarArgsFrameIndex(FuncInfo->getRegSaveFrameIndex());
       } else {
         // For X86-64, if there are vararg parameters that are passed via