X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FX86%2FX86RegisterInfo.h;h=5b0c30cdde535dc06324e1dc1779a56e1848cbe6;hb=439b76730d40e8a8a95f2231bce95ff211a95ead;hp=243861bfebf2c118d305700180e8be9d9f151460;hpb=726140821f96e3472a8eccef0c67c0b5ad65a1d9;p=oota-llvm.git diff --git a/lib/Target/X86/X86RegisterInfo.h b/lib/Target/X86/X86RegisterInfo.h index 243861bfebf..5b0c30cdde5 100644 --- a/lib/Target/X86/X86RegisterInfo.h +++ b/lib/Target/X86/X86RegisterInfo.h @@ -9,9 +9,58 @@ #include "llvm/Target/MRegisterInfo.h" +class Type; + struct X86RegisterInfo : public MRegisterInfo { X86RegisterInfo(); + MRegisterInfo::const_iterator regclass_begin() const; + MRegisterInfo::const_iterator regclass_end() const; + + MachineBasicBlock::iterator + storeReg2RegOffset(MachineBasicBlock *MBB, + MachineBasicBlock::iterator MBBI, + unsigned DestReg, unsigned SrcReg, + unsigned ImmOffset, unsigned dataSize) const; + + MachineBasicBlock::iterator + loadRegOffset2Reg(MachineBasicBlock *MBB, + MachineBasicBlock::iterator MBBI, + unsigned DestReg, unsigned SrcReg, + unsigned ImmOffset, unsigned dataSize) const; + + MachineBasicBlock::iterator + moveReg2Reg(MachineBasicBlock *MBB, + MachineBasicBlock::iterator MBBI, + unsigned DestReg, unsigned SrcReg, unsigned dataSize) const; + + MachineBasicBlock::iterator + moveImm2Reg(MachineBasicBlock *MBB, + MachineBasicBlock::iterator MBBI, + unsigned DestReg, unsigned Imm, unsigned dataSize) const; + + unsigned getFramePointer() const; + unsigned getStackPointer() const; + + const unsigned* getCalleeSaveRegs() const; + const unsigned* getCallerSaveRegs() const; + + MachineBasicBlock::iterator emitPrologue(MachineBasicBlock *MBB, + MachineBasicBlock::iterator MBBI, + unsigned numBytes) const; + + MachineBasicBlock::iterator emitEpilogue(MachineBasicBlock *MBB, + MachineBasicBlock::iterator MBBI, + unsigned numBytes) const; + + /// Returns register class appropriate for input SSA register + /// + const TargetRegisterClass *getClassForReg(unsigned Reg) const; + + const TargetRegisterClass* getRegClassForType(const Type* Ty) const; + + unsigned getNumRegClasses() const; + }; #endif