1*09467b48Spatrick //===-- MipsSERegisterInfo.h - Mips32/64 Register Information ---*- C++ -*-===//
2*09467b48Spatrick //
3*09467b48Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*09467b48Spatrick // See https://llvm.org/LICENSE.txt for license information.
5*09467b48Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*09467b48Spatrick //
7*09467b48Spatrick //===----------------------------------------------------------------------===//
8*09467b48Spatrick //
9*09467b48Spatrick // This file contains the Mips32/64 implementation of the TargetRegisterInfo
10*09467b48Spatrick // class.
11*09467b48Spatrick //
12*09467b48Spatrick //===----------------------------------------------------------------------===//
13*09467b48Spatrick 
14*09467b48Spatrick #ifndef LLVM_LIB_TARGET_MIPS_MIPSSEREGISTERINFO_H
15*09467b48Spatrick #define LLVM_LIB_TARGET_MIPS_MIPSSEREGISTERINFO_H
16*09467b48Spatrick 
17*09467b48Spatrick #include "MipsRegisterInfo.h"
18*09467b48Spatrick 
19*09467b48Spatrick namespace llvm {
20*09467b48Spatrick 
21*09467b48Spatrick class MipsSERegisterInfo : public MipsRegisterInfo {
22*09467b48Spatrick public:
23*09467b48Spatrick   MipsSERegisterInfo();
24*09467b48Spatrick 
25*09467b48Spatrick   bool requiresRegisterScavenging(const MachineFunction &MF) const override;
26*09467b48Spatrick 
27*09467b48Spatrick   bool requiresFrameIndexScavenging(const MachineFunction &MF) const override;
28*09467b48Spatrick 
29*09467b48Spatrick   const TargetRegisterClass *intRegClass(unsigned Size) const override;
30*09467b48Spatrick 
31*09467b48Spatrick private:
32*09467b48Spatrick   void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
33*09467b48Spatrick                    int FrameIndex, uint64_t StackSize,
34*09467b48Spatrick                    int64_t SPOffset) const override;
35*09467b48Spatrick };
36*09467b48Spatrick 
37*09467b48Spatrick } // end namespace llvm
38*09467b48Spatrick 
39*09467b48Spatrick #endif
40