X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FExecutionEngine%2FRuntimeDyld.h;h=3dc65e33d4e85d39a9374958757dfc38a2bdb519;hb=c5b28580a94e247300e5d3ccf532e153f2ae6f12;hp=6e18c7cfca52e97afb62a16ceb469c90878b218f;hpb=53c5e7b2e7e36d70bd943cb2d576121435bd5b3f;p=oota-llvm.git diff --git a/include/llvm/ExecutionEngine/RuntimeDyld.h b/include/llvm/ExecutionEngine/RuntimeDyld.h index 6e18c7cfca5..3dc65e33d4e 100644 --- a/include/llvm/ExecutionEngine/RuntimeDyld.h +++ b/include/llvm/ExecutionEngine/RuntimeDyld.h @@ -38,12 +38,12 @@ public: // Allocate ActualSize bytes, or more, for the named function. Return // a pointer to the allocated memory and update Size to reflect how much // memory was acutally allocated. - virtual uint64_t startFunctionBody(const char *Name, uintptr_t &Size) = 0; + virtual uint8_t *startFunctionBody(const char *Name, uintptr_t &Size) = 0; // Mark the end of the function, including how much of the allocated // memory was actually used. - virtual void endFunctionBody(const char *Name, uint64_t FunctionStart, - uint64_t FunctionEnd) = 0; + virtual void endFunctionBody(const char *Name, uint8_t *FunctionStart, + uint8_t *FunctionEnd) = 0; }; class RuntimeDyld { @@ -58,11 +58,15 @@ public: ~RuntimeDyld(); bool loadObject(MemoryBuffer *InputBuffer); - uint64_t getSymbolAddress(StringRef Name); - void reassignSymbolAddress(StringRef Name, uint64_t Addr); - // FIXME: Should be parameterized to get the memory block associated with - // a particular loaded object. - sys::MemoryBlock getMemoryBlock(); + // Get the address of our local copy of the symbol. This may or may not + // be the address used for relocation (clients can copy the data around + // and resolve relocatons based on where they put it). + void *getSymbolAddress(StringRef Name); + // Resolve the relocations for all symbols we currently know about. + void resolveRelocations(); + // Change the address associated with a symbol when resolving relocations. + // Any relocations already associated with the symbol will be re-resolved. + void reassignSymbolAddress(StringRef Name, uint8_t *Addr); StringRef getErrorString(); };