summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86MachineFunctionInfo.h
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-08-30 19:39:58 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-08-30 19:39:58 +0000
commit76927d758657b3a511c73467ec5a7288795c1513 (patch)
treedb44df7735985e459f5d1cd47bd84dfba4d9f079 /lib/Target/X86/X86MachineFunctionInfo.h
parent0f9827cd9417c7385c92fa4a0d8d8b4242b3729d (diff)
downloadllvm-76927d758657b3a511c73467ec5a7288795c1513.tar.gz
llvm-76927d758657b3a511c73467ec5a7288795c1513.tar.bz2
llvm-76927d758657b3a511c73467ec5a7288795c1513.tar.xz
Emit segmented-stack specific code into function prologues for
X86. Modify the pass added in the previous patch to call this new code. This new prologues generated will call a libgcc routine (__morestack) to allocate more stack space from the heap when required Patch by Sanjoy Das. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138812 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86MachineFunctionInfo.h')
-rw-r--r--lib/Target/X86/X86MachineFunctionInfo.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/Target/X86/X86MachineFunctionInfo.h b/lib/Target/X86/X86MachineFunctionInfo.h
index 06043ecd3f..97e88b57cb 100644
--- a/lib/Target/X86/X86MachineFunctionInfo.h
+++ b/lib/Target/X86/X86MachineFunctionInfo.h
@@ -65,6 +65,9 @@ class X86MachineFunctionInfo : public MachineFunctionInfo {
unsigned VarArgsGPOffset;
/// VarArgsFPOffset - X86-64 vararg func fp reg offset.
unsigned VarArgsFPOffset;
+ /// ArgumentStackSize - The number of bytes on stack consumed by the arguments
+ /// being passed on the stack.
+ unsigned ArgumentStackSize;
public:
X86MachineFunctionInfo() : ForceFramePointer(false),
@@ -77,7 +80,8 @@ public:
VarArgsFrameIndex(0),
RegSaveFrameIndex(0),
VarArgsGPOffset(0),
- VarArgsFPOffset(0) {}
+ VarArgsFPOffset(0),
+ ArgumentStackSize(0) {}
explicit X86MachineFunctionInfo(MachineFunction &MF)
: ForceFramePointer(false),
@@ -91,7 +95,8 @@ public:
VarArgsFrameIndex(0),
RegSaveFrameIndex(0),
VarArgsGPOffset(0),
- VarArgsFPOffset(0) {}
+ VarArgsFPOffset(0),
+ ArgumentStackSize(0) {}
bool getForceFramePointer() const { return ForceFramePointer;}
void setForceFramePointer(bool forceFP) { ForceFramePointer = forceFP; }
@@ -128,6 +133,9 @@ public:
unsigned getVarArgsFPOffset() const { return VarArgsFPOffset; }
void setVarArgsFPOffset(unsigned Offset) { VarArgsFPOffset = Offset; }
+
+ unsigned getArgumentStackSize() const { return ArgumentStackSize; }
+ void setArgumentStackSize(unsigned size) { ArgumentStackSize = size; }
};
} // End llvm namespace