diff options
author | Chris Lattner <sabre@nondot.org> | 2004-11-20 03:44:39 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-11-20 03:44:39 +0000 |
commit | 47012c0c711fd10901fb30643def557af7bbb4a9 (patch) | |
tree | 844c9eaf7fc2dc552426dc59955e8d9fc19fd71d | |
parent | fab11a711021768cd3cf30f699bf4adf26fdaccf (diff) | |
download | external_llvm-47012c0c711fd10901fb30643def557af7bbb4a9.zip external_llvm-47012c0c711fd10901fb30643def557af7bbb4a9.tar.gz external_llvm-47012c0c711fd10901fb30643def557af7bbb4a9.tar.bz2 |
Add getCurrentPCOffset() and addRelocation() methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18034 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/MachineCodeEmitter.h | 19 | ||||
-rw-r--r-- | lib/CodeGen/MachineCodeEmitter.cpp | 12 |
2 files changed, 26 insertions, 5 deletions
diff --git a/include/llvm/CodeGen/MachineCodeEmitter.h b/include/llvm/CodeGen/MachineCodeEmitter.h index 8b61c7c..5bc1d1e 100644 --- a/include/llvm/CodeGen/MachineCodeEmitter.h +++ b/include/llvm/CodeGen/MachineCodeEmitter.h @@ -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. // diff --git a/lib/CodeGen/MachineCodeEmitter.cpp b/lib/CodeGen/MachineCodeEmitter.cpp index d9e8c88..fde6969 100644 --- a/lib/CodeGen/MachineCodeEmitter.cpp +++ b/lib/CodeGen/MachineCodeEmitter.cpp @@ -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. // |