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