1235633Sdim//===-- SparcRegisterInfo.h - Sparc Register Information Impl ---*- C++ -*-===// 2193323Sed// 3193323Sed// The LLVM Compiler Infrastructure 4193323Sed// 5193323Sed// This file is distributed under the University of Illinois Open Source 6193323Sed// License. See LICENSE.TXT for details. 7193323Sed// 8193323Sed//===----------------------------------------------------------------------===// 9193323Sed// 10193323Sed// This file contains the Sparc implementation of the TargetRegisterInfo class. 11193323Sed// 12193323Sed//===----------------------------------------------------------------------===// 13193323Sed 14193323Sed#ifndef SPARCREGISTERINFO_H 15193323Sed#define SPARCREGISTERINFO_H 16193323Sed 17193323Sed#include "llvm/Target/TargetRegisterInfo.h" 18193323Sed 19224145Sdim#define GET_REGINFO_HEADER 20224145Sdim#include "SparcGenRegisterInfo.inc" 21224145Sdim 22193323Sednamespace llvm { 23193323Sed 24193323Sedclass SparcSubtarget; 25193323Sedclass TargetInstrInfo; 26193323Sedclass Type; 27193323Sed 28193323Sedstruct SparcRegisterInfo : public SparcGenRegisterInfo { 29193323Sed SparcSubtarget &Subtarget; 30218893Sdim 31263509Sdim SparcRegisterInfo(SparcSubtarget &st); 32193323Sed 33218893Sdim /// Code Generation virtual methods... 34235633Sdim const uint16_t *getCalleeSavedRegs(const MachineFunction *MF = 0) const; 35263509Sdim const uint32_t* getCallPreservedMask(CallingConv::ID CC) const; 36193323Sed 37263509Sdim const uint32_t* getRTCallPreservedMask(CallingConv::ID CC) const; 38263509Sdim 39193323Sed BitVector getReservedRegs(const MachineFunction &MF) const; 40193323Sed 41252723Sdim const TargetRegisterClass *getPointerRegClass(const MachineFunction &MF, 42252723Sdim unsigned Kind) const; 43193323Sed 44212904Sdim void eliminateFrameIndex(MachineBasicBlock::iterator II, 45252723Sdim int SPAdj, unsigned FIOperandNum, 46252723Sdim RegScavenger *RS = NULL) const; 47193323Sed 48252723Sdim void processFunctionBeforeFrameFinalized(MachineFunction &MF, 49252723Sdim RegScavenger *RS = NULL) const; 50193323Sed 51193323Sed // Debug information queries. 52199481Srdivacky unsigned getFrameRegister(const MachineFunction &MF) const; 53193323Sed}; 54193323Sed 55193323Sed} // end namespace llvm 56193323Sed 57193323Sed#endif 58