summaryrefslogtreecommitdiff
path: root/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-04-25 04:30:24 +0000
committerChris Lattner <sabre@nondot.org>2007-04-25 04:30:24 +0000
commitea84c5ee952c62dd0c703c9852d7a60715e4a435 (patch)
tree6a4fc00329939ea9f70edcf578fd988ed0577258 /lib/Target
parente47b1446d8f072107c45168aa77fd9c6e0327c32 (diff)
downloadllvm-ea84c5ee952c62dd0c703c9852d7a60715e4a435.tar.gz
llvm-ea84c5ee952c62dd0c703c9852d7a60715e4a435.tar.bz2
llvm-ea84c5ee952c62dd0c703c9852d7a60715e4a435.tar.xz
support for >4G stack frames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36425 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/X86/X86RegisterInfo.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp
index 1d11662232..007570e69e 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<CalleeSavedInfo> &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);