SparcRegisterInfo.h revision 193323
1193323Sed//===- 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#include "SparcGenRegisterInfo.h.inc" 19193323Sed 20193323Sednamespace llvm { 21193323Sed 22193323Sedclass SparcSubtarget; 23193323Sedclass TargetInstrInfo; 24193323Sedclass Type; 25193323Sed 26193323Sedstruct SparcRegisterInfo : public SparcGenRegisterInfo { 27193323Sed SparcSubtarget &Subtarget; 28193323Sed const TargetInstrInfo &TII; 29193323Sed 30193323Sed SparcRegisterInfo(SparcSubtarget &st, const TargetInstrInfo &tii); 31193323Sed 32193323Sed /// Code Generation virtual methods... 33193323Sed const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const; 34193323Sed 35193323Sed const TargetRegisterClass* const* getCalleeSavedRegClasses( 36193323Sed const MachineFunction *MF = 0) const; 37193323Sed 38193323Sed BitVector getReservedRegs(const MachineFunction &MF) const; 39193323Sed 40193323Sed bool hasFP(const MachineFunction &MF) const; 41193323Sed 42193323Sed void eliminateCallFramePseudoInstr(MachineFunction &MF, 43193323Sed MachineBasicBlock &MBB, 44193323Sed MachineBasicBlock::iterator I) const; 45193323Sed 46193323Sed void eliminateFrameIndex(MachineBasicBlock::iterator II, 47193323Sed int SPAdj, RegScavenger *RS = NULL) const; 48193323Sed 49193323Sed void processFunctionBeforeFrameFinalized(MachineFunction &MF) const; 50193323Sed 51193323Sed void emitPrologue(MachineFunction &MF) const; 52193323Sed void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const; 53193323Sed 54193323Sed // Debug information queries. 55193323Sed unsigned getRARegister() const; 56193323Sed unsigned getFrameRegister(MachineFunction &MF) const; 57193323Sed 58193323Sed // Exception handling queries. 59193323Sed unsigned getEHExceptionRegister() const; 60193323Sed unsigned getEHHandlerRegister() const; 61193323Sed 62193323Sed int getDwarfRegNum(unsigned RegNum, bool isEH) const; 63193323Sed}; 64193323Sed 65193323Sed} // end namespace llvm 66193323Sed 67193323Sed#endif 68