mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-30 17:33:24 +00:00
Define functions that get or set the size of area on callee's stack frame which
is used to save va_arg or byval arguments passed in registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143992 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c4d6fd569d
commit
213b2a2188
@ -51,12 +51,16 @@ private:
|
|||||||
mutable int DynAllocFI; // Frame index of dynamically allocated stack area.
|
mutable int DynAllocFI; // Frame index of dynamically allocated stack area.
|
||||||
unsigned MaxCallFrameSize;
|
unsigned MaxCallFrameSize;
|
||||||
|
|
||||||
|
// Size of area on callee's stack frame which is used to save va_arg or
|
||||||
|
// byval arguments passed in registers.
|
||||||
|
unsigned RegSaveAreaSize;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MipsFunctionInfo(MachineFunction& MF)
|
MipsFunctionInfo(MachineFunction& MF)
|
||||||
: MF(MF), SRetReturnReg(0), GlobalBaseReg(0),
|
: MF(MF), SRetReturnReg(0), GlobalBaseReg(0),
|
||||||
VarArgsFrameIndex(0), InArgFIRange(std::make_pair(-1, 0)),
|
VarArgsFrameIndex(0), InArgFIRange(std::make_pair(-1, 0)),
|
||||||
OutArgFIRange(std::make_pair(-1, 0)), GPFI(0), DynAllocFI(0),
|
OutArgFIRange(std::make_pair(-1, 0)), GPFI(0), DynAllocFI(0),
|
||||||
MaxCallFrameSize(0)
|
MaxCallFrameSize(0), RegSaveAreaSize(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
bool isInArgFI(int FI) const {
|
bool isInArgFI(int FI) const {
|
||||||
@ -100,6 +104,11 @@ public:
|
|||||||
|
|
||||||
unsigned getMaxCallFrameSize() const { return MaxCallFrameSize; }
|
unsigned getMaxCallFrameSize() const { return MaxCallFrameSize; }
|
||||||
void setMaxCallFrameSize(unsigned S) { MaxCallFrameSize = S; }
|
void setMaxCallFrameSize(unsigned S) { MaxCallFrameSize = S; }
|
||||||
|
|
||||||
|
unsigned getRegSaveAreaSize() const { return RegSaveAreaSize; }
|
||||||
|
void setRegSaveAreaSize(unsigned S) {
|
||||||
|
if (RegSaveAreaSize < S) RegSaveAreaSize = S;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end of namespace llvm
|
} // end of namespace llvm
|
||||||
|
Loading…
Reference in New Issue
Block a user