Implement printing more, implement opcode output more
[oota-llvm.git] / lib / Target / X86 / X86RegisterInfo.h
1 //===- X86RegisterInfo.h - X86 Register Information Impl ----------*-C++-*-===//
2 //
3 // This file contains the X86 implementation of the MRegisterInfo class.
4 //
5 //===----------------------------------------------------------------------===//
6
7 #ifndef X86REGISTERINFO_H
8 #define X86REGISTERINFO_H
9
10 #include "llvm/Target/MRegisterInfo.h"
11
12 class Type;
13
14 struct X86RegisterInfo : public MRegisterInfo {
15   X86RegisterInfo();
16
17   MRegisterInfo::const_iterator const_regclass_begin() const;
18   MRegisterInfo::const_iterator const_regclass_end() const;
19
20   void copyReg2PCRel(MachineBasicBlock *MBB,
21                      MachineBasicBlock::iterator &MBBI,
22                      unsigned SrcReg, unsigned ImmOffset,
23                      unsigned dataSize) const;
24
25   void copyPCRel2Reg(MachineBasicBlock *MBB,
26                      MachineBasicBlock::iterator &MBBI,
27                      unsigned ImmOffset, unsigned DestReg,
28                      unsigned dataSize) const;
29
30   /// Returns register class appropriate for input SSA register
31   /// 
32   const TargetRegisterClass *getClassForReg(unsigned Reg) const;
33
34   const TargetRegisterClass* getRegClassForType(const Type* Ty) const;
35
36   unsigned getNumRegClasses() const;
37
38
39 };
40
41 #endif