32 lines
1009 B
C++
32 lines
1009 B
C++
#ifndef LLVM_LIB_TARGET_FOOT_FOOTFRAMELOWERING_H
|
|
#define LLVM_LIB_TARGET_FOOT_FOOTFRAMELOWERING_H
|
|
|
|
#include "llvm/CodeGen/TargetFrameLowering.h"
|
|
|
|
namespace llvm {
|
|
|
|
class FootSubtarget;
|
|
|
|
class FootFrameLowering : public TargetFrameLowering {
|
|
protected:
|
|
bool hasFPImpl(const MachineFunction &MF) const override;
|
|
|
|
public:
|
|
FootFrameLowering(const FootSubtarget &Sti)
|
|
: TargetFrameLowering(TargetFrameLowering::StackGrowsDown, Align(8), 0) {}
|
|
|
|
void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override;
|
|
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override;
|
|
|
|
MachineBasicBlock::iterator
|
|
eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
|
MachineBasicBlock::iterator MI) const override;
|
|
|
|
void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs,
|
|
RegScavenger *RS) const override;
|
|
};
|
|
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_LIB_TARGET_FOOT_FOOTFRAMELOWERING_H
|