SparcRegisterInfo.h revision 234353
1239310Sdim//===-- SparcRegisterInfo.h - Sparc Register Information Impl ---*- 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 Sparc implementation of the TargetRegisterInfo class. 11239310Sdim// 12239310Sdim//===----------------------------------------------------------------------===// 13239310Sdim 14239310Sdim#ifndef SPARCREGISTERINFO_H 15249423Sdim#define SPARCREGISTERINFO_H 16243830Sdim 17239310Sdim#include "llvm/Target/TargetRegisterInfo.h" 18249423Sdim 19239310Sdim#define GET_REGINFO_HEADER 20249423Sdim#include "SparcGenRegisterInfo.inc" 21249423Sdim 22249423Sdimnamespace llvm { 23239310Sdim 24239310Sdimclass SparcSubtarget; 25239310Sdimclass TargetInstrInfo; 26239310Sdimclass Type; 27239310Sdim 28239310Sdimstruct SparcRegisterInfo : public SparcGenRegisterInfo { 29239310Sdim SparcSubtarget &Subtarget; 30239310Sdim const TargetInstrInfo &TII; 31239310Sdim 32239310Sdim SparcRegisterInfo(SparcSubtarget &st, const TargetInstrInfo &tii); 33239310Sdim 34239310Sdim /// Code Generation virtual methods... 35239310Sdim const uint16_t *getCalleeSavedRegs(const MachineFunction *MF = 0) const; 36239310Sdim 37239310Sdim BitVector getReservedRegs(const MachineFunction &MF) const; 38239310Sdim 39239310Sdim void eliminateCallFramePseudoInstr(MachineFunction &MF, 40239310Sdim MachineBasicBlock &MBB, 41239310Sdim MachineBasicBlock::iterator I) const; 42239310Sdim 43239310Sdim void eliminateFrameIndex(MachineBasicBlock::iterator II, 44239310Sdim int SPAdj, RegScavenger *RS = NULL) const; 45239310Sdim 46239310Sdim void processFunctionBeforeFrameFinalized(MachineFunction &MF) const; 47239310Sdim 48239310Sdim // Debug information queries. 49239310Sdim unsigned getFrameRegister(const MachineFunction &MF) const; 50239310Sdim 51239310Sdim // Exception handling queries. 52239310Sdim unsigned getEHExceptionRegister() const; 53239310Sdim unsigned getEHHandlerRegister() const; 54239310Sdim}; 55239310Sdim 56239310Sdim} // end namespace llvm 57239310Sdim 58239310Sdim#endif 59239310Sdim