Add getCurrentPCOffset() and addRelocation() methods.
authorChris Lattner <sabre@nondot.org>
Sat, 20 Nov 2004 03:44:39 +0000 (03:44 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 20 Nov 2004 03:44:39 +0000 (03:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18034 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/MachineCodeEmitter.h
lib/CodeGen/MachineCodeEmitter.cpp

index 8b61c7c5d0a411f22c038546581ed51381e9dbec..5bc1d1e266e642130148ff7b59869b3da026caf2 100644 (file)
@@ -75,6 +75,20 @@ public:
   ///
   virtual void emitWord(unsigned W) = 0;
 
+  /// getCurrentPCValue - This returns the address that the next emitted byte
+  /// will be output to.
+  ///
+  virtual uint64_t getCurrentPCValue() = 0;
+
+
+  /// getCurrentPCOffset - Return the offset from the start of the emitted
+  /// buffer that we are currently writing to.
+  virtual uint64_t getCurrentPCOffset() = 0;
+
+  /// addRelocation - Whenever a relocatable address is needed, it should be
+  /// noted with this interface.
+  virtual void addRelocation(const MachineRelocation &MR) = 0;
+  
   /// getGlobalValueAddress - This method is used to get the address of the
   /// specified global value.  In some cases, however, the address may not yet
   /// be known at the point that the method is called (for example, getting the
@@ -90,11 +104,6 @@ public:
   //
   virtual uint64_t getConstantPoolEntryAddress(unsigned Index) = 0;
 
-  // getCurrentPCValue - This returns the address that the next emitted byte
-  // will be output to.
-  //
-  virtual uint64_t getCurrentPCValue() = 0;
-
   // forceCompilationOf - Force the compilation of the specified function, and
   // return its address, because we REALLY need the address now.
   //
index d9e8c88b9ee48991589c2cf3d51a884804b088c7..fde69697642434176a085cffb66689bc199af5e3 100644 (file)
@@ -47,10 +47,15 @@ namespace {
                 << (void*) Ptr << ") ";
     }
 
+    void addRelocation(const MachineRelocation &MR) {
+      std::cout << "<relocation> ";
+    }
+
     uint64_t getGlobalValueAddress(GlobalValue *V) { return 0; }
     uint64_t getGlobalValueAddress(const char *Name) { return 0; }
     uint64_t getConstantPoolEntryAddress(unsigned Num) { return 0; }
     uint64_t getCurrentPCValue() { return 0; }
+    uint64_t getCurrentPCOffset() { return 0; }
 
     // forceCompilationOf - Force the compilation of the specified function, and
     // return its address, because we REALLY need the address now.
@@ -157,6 +162,13 @@ namespace {
     uint64_t getCurrentPCValue() {
       return MCE.getCurrentPCValue();
     }
+    uint64_t getCurrentPCOffset() {
+      return MCE.getCurrentPCOffset();
+    }
+    void addRelocation(const MachineRelocation &MR) {
+      return MCE.addRelocation(MR);
+    }
+
     // forceCompilationOf - Force the compilation of the specified function, and
     // return its address, because we REALLY need the address now.
     //