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
15280031Sdim#ifndef LLVM_LIB_TARGET_MIPS_MIPSSEREGISTERINFO_H
16280031Sdim#define LLVM_LIB_TARGET_MIPS_MIPSSEREGISTERINFO_H
17239310Sdim
18239310Sdim#include "MipsRegisterInfo.h"
19239310Sdim
20239310Sdimnamespace llvm {
21243830Sdimclass MipsSEInstrInfo;
22239310Sdim
23239310Sdimclass MipsSERegisterInfo : public MipsRegisterInfo {
24239310Sdimpublic:
25288943Sdim  MipsSERegisterInfo();
26239310Sdim
27276479Sdim  bool requiresRegisterScavenging(const MachineFunction &MF) const override;
28243830Sdim
29276479Sdim  bool requiresFrameIndexScavenging(const MachineFunction &MF) const override;
30243830Sdim
31276479Sdim  const TargetRegisterClass *intRegClass(unsigned Size) const override;
32239310Sdim
33239310Sdimprivate:
34276479Sdim  void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
35276479Sdim                   int FrameIndex, uint64_t StackSize,
36276479Sdim                   int64_t SPOffset) const override;
37239310Sdim};
38239310Sdim
39239310Sdim} // end namespace llvm
40239310Sdim
41239310Sdim#endif
42