1239310Sdim//===-- MipsSERegisterInfo.h - Mips32/64 Register Information ---*- C++ -*-===//
2239310Sdim//
3239310Sdim//                     The LLVM Compiler Infrastructure
4239310Sdim//
5239310Sdim// This file is distributed under the University of Illinois Open Source
6239310Sdim// License. See LICENSE.TXT for details.
7239310Sdim//
8239310Sdim//===----------------------------------------------------------------------===//
9239310Sdim//
10239310Sdim// This file contains the Mips32/64 implementation of the TargetRegisterInfo
11239310Sdim// class.
12239310Sdim//
13239310Sdim//===----------------------------------------------------------------------===//
14239310Sdim
15239310Sdim#ifndef MIPSSEREGISTERINFO_H
16239310Sdim#define MIPSSEREGISTERINFO_H
17239310Sdim
18239310Sdim#include "MipsRegisterInfo.h"
19239310Sdim
20239310Sdimnamespace llvm {
21243830Sdimclass MipsSEInstrInfo;
22239310Sdim
23239310Sdimclass MipsSERegisterInfo : public MipsRegisterInfo {
24239310Sdimpublic:
25263508Sdim  MipsSERegisterInfo(const MipsSubtarget &Subtarget);
26239310Sdim
27243830Sdim  bool requiresRegisterScavenging(const MachineFunction &MF) const;
28243830Sdim
29243830Sdim  bool requiresFrameIndexScavenging(const MachineFunction &MF) const;
30243830Sdim
31249423Sdim  virtual const TargetRegisterClass *intRegClass(unsigned Size) const;
32239310Sdim
33239310Sdimprivate:
34239310Sdim  virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
35239310Sdim                           int FrameIndex, uint64_t StackSize,
36239310Sdim                           int64_t SPOffset) const;
37239310Sdim};
38239310Sdim
39239310Sdim} // end namespace llvm
40239310Sdim
41239310Sdim#endif
42