14 #ifndef X86_FRAMELOWERING_H
15 #define X86_FRAMELOWERING_H
24 class X86TargetMachine;
33 (sti.is64Bit() ? -8 : -4)),
38 unsigned FramePtr)
const;
54 const std::vector<CalleeSavedInfo> &CSI,
59 const std::vector<CalleeSavedInfo> &CSI,
67 unsigned &FrameReg)
const;
unsigned getStackAlignment() const
int getFrameIndexReference(const MachineFunction &MF, int FI, unsigned &FrameReg) const
X86FrameLowering(const X86TargetMachine &tm, const X86Subtarget &sti)
void processFunctionBeforeCalleeSavedScan(MachineFunction &MF, RegScavenger *RS=NULL) const
void eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator MI) const
void adjustForHiPEPrologue(MachineFunction &MF) const
bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI) const
void adjustForSegmentedStacks(MachineFunction &MF) const
int getFrameIndexOffset(const MachineFunction &MF, int FI) const
bool hasFP(const MachineFunction &MF) const
void emitCalleeSavedFrameMoves(MachineFunction &MF, MCSymbol *Label, unsigned FramePtr) const
void emitPrologue(MachineFunction &MF) const
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const
bool hasReservedCallFrame(const MachineFunction &MF) const
bool spillCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI) const