* Simplify TargetRegisterClass implementations
[oota-llvm.git] / lib / Target / X86 / X86RegisterInfo.h
index 6e240e2a0667f0ccab53afe0268c46ec249abe3c..5b0c30cdde535dc06324e1dc1779a56e1848cbe6 100644 (file)
@@ -14,18 +14,44 @@ 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;
 
-  void copyReg2PCRel(MachineBasicBlock *MBB,
-                     MachineBasicBlock::iterator &MBBI,
-                     unsigned SrcReg, unsigned ImmOffset,
-                     unsigned dataSize) const;
+  MachineBasicBlock::iterator
+  storeReg2RegOffset(MachineBasicBlock *MBB,
+                     MachineBasicBlock::iterator MBBI,
+                     unsigned DestReg, unsigned SrcReg, 
+                     unsigned ImmOffset, unsigned dataSize) const;
 
-  void copyPCRel2Reg(MachineBasicBlock *MBB,
-                     MachineBasicBlock::iterator &MBBI,
-                     unsigned ImmOffset, unsigned DestReg,
-                     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
   /// 
@@ -35,7 +61,6 @@ struct X86RegisterInfo : public MRegisterInfo {
 
   unsigned getNumRegClasses() const;
 
-
 };
 
 #endif