mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
ExecutionEngine interface to re-map addresses for engines that support it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148264 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
#include "llvm/ExecutionEngine/RuntimeDyld.h"
|
||||
#include "llvm/Object/MachOObject.h"
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/ADT/IndexedMap.h"
|
||||
#include "llvm/ADT/StringMap.h"
|
||||
#include "llvm/ADT/Twine.h"
|
||||
@@ -45,10 +46,14 @@ protected:
|
||||
// Indexed by SectionID.
|
||||
SmallVector<sys::MemoryBlock, 32> Sections;
|
||||
// For each section, the address it will be considered to live at for
|
||||
// relocations. The same as the pointer the above memory block for hosted
|
||||
// relocations. The same as the pointer to the above memory block for hosted
|
||||
// JITs. Indexed by SectionID.
|
||||
SmallVector<uint64_t, 32> SectionLoadAddress;
|
||||
|
||||
// Keep a map of starting local address to the SectionID which references it.
|
||||
// Lookup function for when we assign virtual addresses.
|
||||
DenseMap<void *, unsigned> SectionLocalMemToID;
|
||||
|
||||
// Master symbol table. As modules are loaded and external symbols are
|
||||
// resolved, their addresses are stored here as a SectionID/Offset pair.
|
||||
typedef std::pair<unsigned, uint64_t> SymbolLoc;
|
||||
@@ -90,6 +95,8 @@ public:
|
||||
|
||||
virtual void reassignSectionAddress(unsigned SectionID, uint64_t Addr) = 0;
|
||||
|
||||
void mapSectionAddress(void *LocalAddress, uint64_t TargetAddress);
|
||||
|
||||
// Is the linker in an error state?
|
||||
bool hasError() { return HasError; }
|
||||
|
||||
|
Reference in New Issue
Block a user