* Simplify TargetRegisterClass implementations
[oota-llvm.git] / lib / Target / X86 / X86RegisterInfo.h
index 5487612c9249665d3d53d9fdb616cb969fbee43e..5b0c30cdde535dc06324e1dc1779a56e1848cbe6 100644 (file)
@@ -14,27 +14,45 @@ 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,
-                     MachineBasicBlock::iterator &MBBI,
+                     MachineBasicBlock::iterator MBBI,
                      unsigned DestReg, unsigned SrcReg, 
                      unsigned ImmOffset, unsigned dataSize) const;
 
   MachineBasicBlock::iterator
   loadRegOffset2Reg(MachineBasicBlock *MBB,
-                    MachineBasicBlock::iterator &MBBI,
+                    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;
@@ -43,9 +61,6 @@ struct X86RegisterInfo : public MRegisterInfo {
 
   unsigned getNumRegClasses() const;
 
-  void buildReg2RegClassMap(std::map<unsigned,const TargetRegisterClass*>&
-                            Reg2RegClassMap) const;
-
 };
 
 #endif