diff options
Diffstat (limited to 'lib/Target/CellSPU/SPUFrameInfo.h')
-rw-r--r-- | lib/Target/CellSPU/SPUFrameInfo.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/Target/CellSPU/SPUFrameInfo.h b/lib/Target/CellSPU/SPUFrameInfo.h index f511acd649..89ce1e9d65 100644 --- a/lib/Target/CellSPU/SPUFrameInfo.h +++ b/lib/Target/CellSPU/SPUFrameInfo.h @@ -12,19 +12,30 @@ // //===----------------------------------------------------------------------===// -#if !defined(SPUFRAMEINFO_H) +#ifndef SPU_FRAMEINFO_H +#define SPU_FRAMEINFO_H +#include "SPURegisterInfo.h" #include "llvm/Target/TargetFrameInfo.h" #include "llvm/Target/TargetMachine.h" -#include "SPURegisterInfo.h" namespace llvm { + class SPUSubtarget; + class SPUFrameInfo: public TargetFrameInfo { - const TargetMachine &TM; + const SPUSubtarget &Subtarget; std::pair<unsigned, int> LR[1]; public: - SPUFrameInfo(const TargetMachine &tm); + SPUFrameInfo(const SPUSubtarget &sti); + + //! Determine the frame's layour + void determineFrameLayout(MachineFunction &MF) const; + + /// emitProlog/emitEpilog - These methods insert prolog and epilog code into + /// the function. + void emitPrologue(MachineFunction &MF) const; + void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const; //! Return a function's saved spill slots /*! @@ -71,5 +82,4 @@ namespace llvm { }; } -#define SPUFRAMEINFO_H 1 #endif |