From ea84c5ee952c62dd0c703c9852d7a60715e4a435 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 25 Apr 2007 04:30:24 +0000 Subject: [PATCH] support for >4G stack frames git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36425 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/PrologEpilogInserter.cpp | 2 +- lib/Target/X86/X86RegisterInfo.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/CodeGen/PrologEpilogInserter.cpp b/lib/CodeGen/PrologEpilogInserter.cpp index a79ba2972ea..d1ed0bbbc30 100644 --- a/lib/CodeGen/PrologEpilogInserter.cpp +++ b/lib/CodeGen/PrologEpilogInserter.cpp @@ -455,7 +455,7 @@ void PEI::calculateFrameObjectOffsets(MachineFunction &Fn) { Offset += FFI->getMaxCallFrameSize(); unsigned AlignMask = TFI.getStackAlignment() - 1; - Offset = (Offset + AlignMask) & ~AlignMask; + Offset = (Offset + AlignMask) & ~uint64_t(AlignMask); } // Update frame info to pretend that this is part of the stack... diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 1d11662232f..007570e69ee 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -1036,7 +1036,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { unsigned FrameLabelId = 0; // Get the number of bytes to allocate from the FrameInfo - unsigned NumBytes = MFI->getStackSize(); + uint64_t NumBytes = MFI->getStackSize(); if (NumBytes) { // adjust stack pointer: ESP -= numbytes if (NumBytes >= 4096 && Subtarget->isTargetCygMing()) { @@ -1091,7 +1091,8 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { if (hasFP(MF)) { // Get the offset of the stack slot for the EBP register... which is // guaranteed to be the last slot by processFunctionBeforeFrameFinalized. - int EBPOffset = MFI->getObjectOffset(MFI->getObjectIndexBegin())+SlotSize; + int64_t EBPOffset = + MFI->getObjectOffset(MFI->getObjectIndexBegin())+SlotSize; // Update the frame offset adjustment. MFI->setOffsetAdjustment(SlotSize-NumBytes); @@ -1128,7 +1129,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { // Add callee saved registers to move list. const std::vector &CSI = MFI->getCalleeSavedInfo(); for (unsigned I = 0, E = CSI.size(); I != E; ++I) { - int Offset = MFI->getObjectOffset(CSI[I].getFrameIdx()); + int64_t Offset = MFI->getObjectOffset(CSI[I].getFrameIdx()); unsigned Reg = CSI[I].getReg(); MachineLocation CSDst(MachineLocation::VirtualFP, Offset); MachineLocation CSSrc(Reg); -- 2.34.1