mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +00:00
Instantiate a JITMemoryManager for MCJIT Dyld
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128485 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -67,7 +67,7 @@ ExecutionEngine *MCJIT::createJIT(Module *M,
|
||||
MCJIT::MCJIT(Module *m, TargetMachine *tm, TargetJITInfo &tji,
|
||||
JITMemoryManager *JMM, CodeGenOpt::Level OptLevel,
|
||||
bool AllocateGVsWithCode)
|
||||
: ExecutionEngine(m), TM(tm), M(m), OS(Buffer) {
|
||||
: ExecutionEngine(m), TM(tm), M(m), OS(Buffer), Dyld(JMM) {
|
||||
|
||||
PM.add(new TargetData(*TM->getTargetData()));
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/ADT/Twine.h"
|
||||
#include "llvm/ExecutionEngine/RuntimeDyld.h"
|
||||
#include "llvm/ExecutionEngine/JITMemoryManager.h"
|
||||
#include "llvm/Object/MachOObject.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
@@ -34,6 +35,9 @@ class RuntimeDyldImpl {
|
||||
unsigned CPUType;
|
||||
unsigned CPUSubtype;
|
||||
|
||||
// The JITMemoryManager to load objects into.
|
||||
JITMemoryManager *JMM;
|
||||
|
||||
// Master symbol table. As modules are loaded and external symbols are
|
||||
// resolved, their addresses are stored here.
|
||||
StringMap<void*> SymbolTable;
|
||||
@@ -68,7 +72,7 @@ class RuntimeDyldImpl {
|
||||
const InMemoryStruct<macho::SymtabLoadCommand> &SymtabLC);
|
||||
|
||||
public:
|
||||
RuntimeDyldImpl() : HasError(false) {}
|
||||
RuntimeDyldImpl(JITMemoryManager *jmm) : JMM(jmm), HasError(false) {}
|
||||
|
||||
bool loadObject(MemoryBuffer *InputBuffer);
|
||||
|
||||
@@ -526,8 +530,8 @@ bool RuntimeDyldImpl::loadObject(MemoryBuffer *InputBuffer) {
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// RuntimeDyld class implementation
|
||||
RuntimeDyld::RuntimeDyld() {
|
||||
Dyld = new RuntimeDyldImpl;
|
||||
RuntimeDyld::RuntimeDyld(JITMemoryManager *JMM) {
|
||||
Dyld = new RuntimeDyldImpl(JMM);
|
||||
}
|
||||
|
||||
RuntimeDyld::~RuntimeDyld() {
|
||||
|
||||
Reference in New Issue
Block a user