-//===- X86RegisterInfo.h - X86 Register Information Impl ----------*-C++-*-===//
+//===- X86RegisterInfo.h - X86 Register Information Impl --------*- C++ -*-===//
//
// This file contains the X86 implementation of the MRegisterInfo class.
//
struct X86RegisterInfo : public MRegisterInfo {
X86RegisterInfo();
- void storeReg2RegOffset(MachineBasicBlock &MBB,
- MachineBasicBlock::iterator &MBBI,
- unsigned SrcReg, unsigned DestReg, unsigned ImmOffset,
- const TargetRegisterClass *RC) const;
+ const unsigned* getCalleeSaveRegs() const;
- void loadRegOffset2Reg(MachineBasicBlock &MBB,
- MachineBasicBlock::iterator &MBBI,
- unsigned DestReg, unsigned SrcReg, unsigned ImmOffset,
- const TargetRegisterClass *RC) const;
+ /// Returns register class appropriate for input SSA register
+ ///
+ const TargetRegisterClass *getClassForReg(unsigned Reg) const;
+ const TargetRegisterClass* getRegClassForType(const Type* Ty) const;
- void moveReg2Reg(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI,
+ /// Code Generation virtual methods...
+ void storeRegToStackSlot(MachineBasicBlock &MBB,
+ MachineBasicBlock::iterator &MBBI,
+ unsigned SrcReg, int FrameIndex,
+ const TargetRegisterClass *RC) const;
+
+ void loadRegFromStackSlot(MachineBasicBlock &MBB,
+ MachineBasicBlock::iterator &MBBI,
+ unsigned DestReg, int FrameIndex,
+ const TargetRegisterClass *RC) const;
+
+ void copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI,
unsigned DestReg, unsigned SrcReg,
const TargetRegisterClass *RC) const;
- void moveImm2Reg(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI,
- unsigned DestReg, unsigned Imm,
- const TargetRegisterClass *RC) const;
+ void eliminateCallFramePseudoInstr(MachineFunction &MF,
+ MachineBasicBlock &MBB,
+ MachineBasicBlock::iterator &I) const;
- unsigned getFramePointer() const;
- unsigned getStackPointer() const;
+ void eliminateFrameIndex(MachineFunction &MF,
+ MachineBasicBlock::iterator &II) const;
- const unsigned* getCalleeSaveRegs() const;
- const unsigned* getCallerSaveRegs() const;
+ void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
- void emitPrologue(MachineFunction &MF, unsigned numBytes) const;
- void emitEpilogue(MachineBasicBlock &MBB, unsigned numBytes) const;
-
- /// Returns register class appropriate for input SSA register
- ///
- const TargetRegisterClass *getClassForReg(unsigned Reg) const;
-
- const TargetRegisterClass* getRegClassForType(const Type* Ty) const;
+ void emitPrologue(MachineFunction &MF) const;
+ void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
};
#endif