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 {
24public:
25  MipsSERegisterInfo(const MipsSubtarget &Subtarget);
26
27  bool requiresRegisterScavenging(const MachineFunction &MF) const override;
28
29  bool requiresFrameIndexScavenging(const MachineFunction &MF) const override;
30
31  const TargetRegisterClass *intRegClass(unsigned Size) const override;
32
33private:
34  void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
35                   int FrameIndex, uint64_t StackSize,
36                   int64_t SPOffset) const override;
37};
38
39} // end namespace llvm
40
41#endif
42