* Simplify TargetRegisterClass implementations
[oota-llvm.git] / lib / Target / X86 / X86RegisterInfo.h
index be3cbc09bc1909df623dd46f556ca52ba082c26b..5b0c30cdde535dc06324e1dc1779a56e1848cbe6 100644 (file)
@@ -14,8 +14,8 @@ class Type;
 struct X86RegisterInfo : public MRegisterInfo {
   X86RegisterInfo();
 
-  MRegisterInfo::const_iterator const_regclass_begin() const;
-  MRegisterInfo::const_iterator const_regclass_end() const;
+  MRegisterInfo::const_iterator regclass_begin() const;
+  MRegisterInfo::const_iterator regclass_end() const;
 
   MachineBasicBlock::iterator
   storeReg2RegOffset(MachineBasicBlock *MBB,
@@ -29,12 +29,30 @@ struct X86RegisterInfo : public MRegisterInfo {
                     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;