aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/CellSPU/SPUFrameInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/CellSPU/SPUFrameInfo.h')
-rw-r--r--lib/Target/CellSPU/SPUFrameInfo.h20
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