void MBlazeFrameInfo::processFunctionBeforeCalleeSavedScan(MachineFunction &MF, RegScavenger *RS) const { MachineFrameInfo *MFI = MF.getFrameInfo(); MBlazeFunctionInfo *MBlazeFI = MF.getInfo<MBlazeFunctionInfo>(); if (MFI->adjustsStack()) { MBlazeFI->setRAStackOffset(0); MFI->CreateFixedObject(4,0,true); } if (hasFP(MF)) { MBlazeFI->setFPStackOffset(4); MFI->CreateFixedObject(4,4,true); } }
void MBlazeFrameLowering:: processFunctionBeforeCalleeSavedScan(MachineFunction &MF, RegScavenger *RS) const { MachineFrameInfo *MFI = MF.getFrameInfo(); MBlazeFunctionInfo *MBlazeFI = MF.getInfo<MBlazeFunctionInfo>(); llvm::CallingConv::ID CallConv = MF.getFunction()->getCallingConv(); bool requiresRA = CallConv == llvm::CallingConv::MBLAZE_INTR; if (MFI->adjustsStack() || requiresRA) { MBlazeFI->setRAStackOffset(0); MFI->CreateFixedObject(4,0,true); } if (hasFP(MF)) { MBlazeFI->setFPStackOffset(4); MFI->CreateFixedObject(4,4,true); } interruptFrameLayout(MF); analyzeFrameIndexes(MF); }