SparcRegisterInfo.h revision 234353
1234353Sdim//===-- 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; 30193323Sed const TargetInstrInfo &TII; 31218893Sdim 32193323Sed SparcRegisterInfo(SparcSubtarget &st, const TargetInstrInfo &tii); 33193323Sed 34218893Sdim /// Code Generation virtual methods... 35234353Sdim const uint16_t *getCalleeSavedRegs(const MachineFunction *MF = 0) const; 36193323Sed 37193323Sed BitVector getReservedRegs(const MachineFunction &MF) const; 38193323Sed 39193323Sed void eliminateCallFramePseudoInstr(MachineFunction &MF, 40193323Sed MachineBasicBlock &MBB, 41193323Sed MachineBasicBlock::iterator I) const; 42193323Sed 43212904Sdim void eliminateFrameIndex(MachineBasicBlock::iterator II, 44212904Sdim int SPAdj, RegScavenger *RS = NULL) const; 45193323Sed 46193323Sed void processFunctionBeforeFrameFinalized(MachineFunction &MF) const; 47193323Sed 48193323Sed // Debug information queries. 49199481Srdivacky unsigned getFrameRegister(const MachineFunction &MF) const; 50193323Sed 51193323Sed // Exception handling queries. 52193323Sed unsigned getEHExceptionRegister() const; 53193323Sed unsigned getEHHandlerRegister() const; 54193323Sed}; 55193323Sed 56193323Sed} // end namespace llvm 57193323Sed 58193323Sed#endif 59