Rip JIT specific stuff out of TargetMachine, as per PR176
[oota-llvm.git] / lib / Target / X86 / X86RegisterInfo.h
index 243861bfebf2c118d305700180e8be9d9f151460..77a8a1a405329ae7b2bbc815e62b0d0a3b777339 100644 (file)
@@ -1,4 +1,11 @@
-//===- X86RegisterInfo.h - X86 Register Information Impl ----------*-C++-*-===//
+//===- X86RegisterInfo.h - X86 Register Information Impl --------*- C++ -*-===//
+// 
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// 
+//===----------------------------------------------------------------------===//
 //
 // This file contains the X86 implementation of the MRegisterInfo class.
 //
@@ -9,9 +16,44 @@
 
 #include "llvm/Target/MRegisterInfo.h"
 
-struct X86RegisterInfo : public MRegisterInfo {
+class llvm::Type;
+
+#include "X86GenRegisterInfo.h.inc"
+
+namespace llvm {
+
+struct X86RegisterInfo : public X86GenRegisterInfo {
   X86RegisterInfo();
+  const TargetRegisterClass* getRegClassForType(const Type* Ty) const;
+
+  /// Code Generation virtual methods...
+  int storeRegToStackSlot(MachineBasicBlock &MBB,
+                          MachineBasicBlock::iterator &MBBI,
+                          unsigned SrcReg, int FrameIndex,
+                          const TargetRegisterClass *RC) const;
 
+  int loadRegFromStackSlot(MachineBasicBlock &MBB,
+                           MachineBasicBlock::iterator &MBBI,
+                           unsigned DestReg, int FrameIndex,
+                           const TargetRegisterClass *RC) const;
+  
+  int copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI,
+                  unsigned DestReg, unsigned SrcReg,
+                  const TargetRegisterClass *RC) const;
+
+  int eliminateCallFramePseudoInstr(MachineFunction &MF,
+                                    MachineBasicBlock &MBB,
+                                    MachineBasicBlock::iterator &I) const;
+
+  int eliminateFrameIndex(MachineFunction &MF,
+                          MachineBasicBlock::iterator &II) const;
+
+  int processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
+
+  int emitPrologue(MachineFunction &MF) const;
+  int emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
 };
 
+} // End llvm namespace
+
 #endif