convert a bunch of std::strings to use StringRef. This should eliminate
[oota-llvm.git] / include / llvm / Target / TargetJITInfo.h
index 0ae24169b86b6434d9b90cdfe89cfc30571921f2..9545689cb711aeb4e674d98897a4a24667e0d93f 100644 (file)
@@ -23,8 +23,7 @@
 namespace llvm {
   class Function;
   class GlobalValue;
-  class MachineBasicBlock;
-  class MachineCodeEmitter;
+  class JITCodeEmitter;
   class MachineRelocation;
 
   /// TargetJITInfo - Target specific information required by the Just-In-Time
@@ -40,27 +39,35 @@ namespace llvm {
     ///
     virtual void replaceMachineCodeForFunction(void *Old, void *New) = 0;
 
-    /// emitGlobalValueIndirectSym - Use the specified MachineCodeEmitter object
+    /// emitGlobalValueIndirectSym - Use the specified JITCodeEmitter object
     /// to emit an indirect symbol which contains the address of the specified
     /// ptr.
     virtual void *emitGlobalValueIndirectSym(const GlobalValue* GV, void *ptr,
-                                             MachineCodeEmitter &MCE) {
+                                             JITCodeEmitter &JCE) {
       assert(0 && "This target doesn't implement emitGlobalValueIndirectSym!");
       return 0;
     }
 
-    /// emitFunctionStub - Use the specified MachineCodeEmitter object to emit a
+    /// emitFunctionStub - Use the specified JITCodeEmitter object to emit a
     /// small native function that simply calls the function at the specified
     /// address.  Return the address of the resultant function.
     virtual void *emitFunctionStub(const Function* F, void *Fn,
-                                   MachineCodeEmitter &MCE) {
+                                   JITCodeEmitter &JCE) {
       assert(0 && "This target doesn't implement emitFunctionStub!");
       return 0;
     }
+    
+    /// emitFunctionStubAtAddr - Use the specified JITCodeEmitter object to
+    /// emit a small native function that simply calls Fn. Emit the stub into
+    /// the supplied buffer.
+    virtual void emitFunctionStubAtAddr(const Function* F, void *Fn,
+                                        void *Buffer, JITCodeEmitter &JCE) {
+      assert(0 && "This target doesn't implement emitFunctionStubAtAddr!");
+    }
 
     /// getPICJumpTableEntry - Returns the value of the jumptable entry for the
     /// specific basic block.
-    virtual intptr_t getPICJumpTableEntry(intptr_t BB, intptr_t JTBase) {
+    virtual uintptr_t getPICJumpTableEntry(uintptr_t BB, uintptr_t JTBase) {
       assert(0 && "This target doesn't implement getPICJumpTableEntry!");
       return 0;
     }
@@ -105,7 +112,7 @@ namespace llvm {
     }
 
     /// needsGOT - Allows a target to specify that it would like the
-    // JIT to manage a GOT for it.
+    /// JIT to manage a GOT for it.
     bool needsGOT() const { return useGOT; }
 
     /// hasCustomConstantPool - Allows a target to specify that constant
@@ -118,7 +125,7 @@ namespace llvm {
 
     /// allocateSeparateGVMemory - If true, globals should be placed in
     /// separately allocated heap memory rather than in the same
-    /// code memory allocated by MachineCodeEmitter.
+    /// code memory allocated by JITCodeEmitter.
     virtual bool allocateSeparateGVMemory() const { return false; }
   protected:
     bool useGOT;