Mips16RegisterInfo.h revision 249423
1239310Sdim//===-- Mips16RegisterInfo.h - Mips16 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 Mips16 implementation of the TargetRegisterInfo class. 11239310Sdim// 12239310Sdim//===----------------------------------------------------------------------===// 13239310Sdim 14239310Sdim#ifndef MIPS16REGISTERINFO_H 15239310Sdim#define MIPS16REGISTERINFO_H 16239310Sdim 17239310Sdim#include "MipsRegisterInfo.h" 18239310Sdim 19239310Sdimnamespace llvm { 20243830Sdimclass Mips16InstrInfo; 21239310Sdim 22239310Sdimclass Mips16RegisterInfo : public MipsRegisterInfo { 23243830Sdim const Mips16InstrInfo &TII; 24239310Sdimpublic: 25249423Sdim Mips16RegisterInfo(const MipsSubtarget &Subtarget, 26249423Sdim const Mips16InstrInfo &TII); 27239310Sdim 28249423Sdim bool requiresRegisterScavenging(const MachineFunction &MF) const; 29249423Sdim 30249423Sdim bool requiresFrameIndexScavenging(const MachineFunction &MF) const; 31249423Sdim 32249423Sdim bool useFPForScavengingIndex(const MachineFunction &MF) const; 33249423Sdim 34249423Sdim bool saveScavengerRegister(MachineBasicBlock &MBB, 35249423Sdim MachineBasicBlock::iterator I, 36249423Sdim MachineBasicBlock::iterator &UseMI, 37249423Sdim const TargetRegisterClass *RC, 38249423Sdim unsigned Reg) const; 39249423Sdim 40249423Sdim virtual const TargetRegisterClass *intRegClass(unsigned Size) const; 41249423Sdim 42239310Sdimprivate: 43239310Sdim virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo, 44239310Sdim int FrameIndex, uint64_t StackSize, 45239310Sdim int64_t SPOffset) const; 46239310Sdim}; 47239310Sdim 48239310Sdim} // end namespace llvm 49239310Sdim 50239310Sdim#endif 51