MipsSERegisterInfo.h revision 249423
1//===-- MipsSERegisterInfo.h - Mips32/64 Register Information ---*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file contains the Mips32/64 implementation of the TargetRegisterInfo
11// class.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef MIPSSEREGISTERINFO_H
16#define MIPSSEREGISTERINFO_H
17
18#include "MipsRegisterInfo.h"
19
20namespace llvm {
21class MipsSEInstrInfo;
22
23class MipsSERegisterInfo : public MipsRegisterInfo {
24  const MipsSEInstrInfo &TII;
25
26public:
27  MipsSERegisterInfo(const MipsSubtarget &Subtarget,
28                     const MipsSEInstrInfo &TII);
29
30  bool requiresRegisterScavenging(const MachineFunction &MF) const;
31
32  bool requiresFrameIndexScavenging(const MachineFunction &MF) const;
33
34  virtual const TargetRegisterClass *intRegClass(unsigned Size) const;
35
36private:
37  virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
38                           int FrameIndex, uint64_t StackSize,
39                           int64_t SPOffset) const;
40};
41
42} // end namespace llvm
43
44#endif
45