X86RegisterInfo.h revision 2adb3959f629bdacab0e47b29e52139595523236
1//===- X86RegisterInfo.h - X86 Register Information Impl ----------*-C++-*-===// 2// 3// This file contains the X86 implementation of the MRegisterInfo class. 4// 5//===----------------------------------------------------------------------===// 6 7#ifndef X86REGISTERINFO_H 8#define X86REGISTERINFO_H 9 10#include "llvm/Target/MRegisterInfo.h" 11 12class Type; 13 14struct X86RegisterInfo : public MRegisterInfo { 15 X86RegisterInfo(); 16 17 MRegisterInfo::const_iterator const_regclass_begin() const; 18 MRegisterInfo::const_iterator const_regclass_end() const; 19 20 MachineBasicBlock::iterator 21 storeReg2RegOffset(MachineBasicBlock *MBB, 22 MachineBasicBlock::iterator MBBI, 23 unsigned DestReg, unsigned SrcReg, 24 unsigned ImmOffset, unsigned dataSize) const; 25 26 MachineBasicBlock::iterator 27 loadRegOffset2Reg(MachineBasicBlock *MBB, 28 MachineBasicBlock::iterator MBBI, 29 unsigned DestReg, unsigned SrcReg, 30 unsigned ImmOffset, unsigned dataSize) const; 31 32 unsigned getFramePointer() const; 33 unsigned getStackPointer() const; 34 35 const unsigned* getCalleeSaveRegs() const; 36 const unsigned* getCallerSaveRegs() const; 37 38 MachineBasicBlock::iterator emitPrologue(MachineBasicBlock *MBB, 39 MachineBasicBlock::iterator MBBI, 40 unsigned numBytes) const; 41 42 MachineBasicBlock::iterator emitEpilogue(MachineBasicBlock *MBB, 43 MachineBasicBlock::iterator MBBI, 44 unsigned numBytes) const; 45 46 /// Returns register class appropriate for input SSA register 47 /// 48 const TargetRegisterClass *getClassForReg(unsigned Reg) const; 49 50 const TargetRegisterClass* getRegClassForType(const Type* Ty) const; 51 52 unsigned getNumRegClasses() const; 53 54}; 55 56#endif 57