(MFI->getObjectOffset(MipsFI->getGPFI()) + RegSize) :
MipsFI->getMaxCallFrameSize();
unsigned StackSize = AlignOffset(LocalVarAreaOffset, StackAlign) +
- AlignOffset(MipsFI->getRegSaveAreaSize(), StackAlign) +
AlignOffset(MFI->getStackSize(), StackAlign);
// Update stack size
if (IsRegLoc) {
Reg = std::find(Mips64IntRegs, Mips64IntRegs + 8, VA.getLocReg());
FOOffset = (Reg - Mips64IntRegs) * 8 - 8 * 8;
- MipsFI->setRegSaveAreaSize(-FOOffset);
}
else
FOOffset = VA.getLocMemOffset();
mutable int DynAllocFI; // Frame index of dynamically allocated stack area.
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:
MipsFunctionInfo(MachineFunction& MF)
: MF(MF), SRetReturnReg(0), GlobalBaseReg(0),
VarArgsFrameIndex(0), InArgFIRange(std::make_pair(-1, 0)),
OutArgFIRange(std::make_pair(-1, 0)), GPFI(0), DynAllocFI(0),
- MaxCallFrameSize(0), RegSaveAreaSize(0)
+ MaxCallFrameSize(0)
{}
bool isInArgFI(int FI) const {
unsigned getMaxCallFrameSize() const { return MaxCallFrameSize; }
void setMaxCallFrameSize(unsigned S) { MaxCallFrameSize = S; }
-
- unsigned getRegSaveAreaSize() const { return RegSaveAreaSize; }
- void setRegSaveAreaSize(unsigned S) {
- if (RegSaveAreaSize < S) RegSaveAreaSize = S;
- }
};
} // end of namespace llvm