MipsFrameLowering.h revision 218885
1161764Sobrien//==--- MipsFrameLowering.h - Define frame lowering for Mips --*- C++ -*---===//
2108746Sobrien//
3108746Sobrien//                     The LLVM Compiler Infrastructure
4108746Sobrien//
5108746Sobrien// This file is distributed under the University of Illinois Open Source
6108746Sobrien// License. See LICENSE.TXT for details.
7108746Sobrien//
8161764Sobrien//===----------------------------------------------------------------------===//
9108746Sobrien//
10108746Sobrien//
11108746Sobrien//
12108746Sobrien//===----------------------------------------------------------------------===//
13108746Sobrien
14108746Sobrien#ifndef ALPHA_FRAMEINFO_H
15108746Sobrien#define ALPHA_FRAMEINFO_H
16108746Sobrien
17108746Sobrien#include "Mips.h"
18161764Sobrien#include "MipsSubtarget.h"
19108746Sobrien#include "llvm/Target/TargetFrameLowering.h"
20161764Sobrien
21108746Sobriennamespace llvm {
22108746Sobrien  class MipsSubtarget;
23108746Sobrien
24108746Sobrienclass MipsFrameLowering : public TargetFrameLowering {
25108746Sobrienprotected:
26108746Sobrien  const MipsSubtarget &STI;
27108746Sobrien
28108746Sobrienpublic:
29161764Sobrien  explicit MipsFrameLowering(const MipsSubtarget &sti)
30161764Sobrien    // FIXME: Is this correct at all?
31161764Sobrien    : TargetFrameLowering(StackGrowsUp, 8, 0), STI(sti) {
32161764Sobrien  }
33161764Sobrien
34108746Sobrien  void adjustMipsStackFrame(MachineFunction &MF) const;
35108746Sobrien
36108746Sobrien  /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
37133936Sobrien  /// the function.
38133936Sobrien  void emitPrologue(MachineFunction &MF) const;
39108746Sobrien  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
40133936Sobrien
41108746Sobrien  bool hasFP(const MachineFunction &MF) const;
42108746Sobrien
43133936Sobrien  void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
44133936Sobrien};
45133936Sobrien
46133936Sobrien} // End llvm namespace
47161764Sobrien
48161764Sobrien#endif
49133936Sobrien