mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 23:32:27 +00:00
Implement the TargetMachine::getJITStubForFunction method for X86, finegrainify
namespacification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10430 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
459ccab002
commit
65b05ce022
@ -23,8 +23,7 @@
|
||||
#include "Support/Debug.h"
|
||||
#include "Support/Statistic.h"
|
||||
#include "Config/alloca.h"
|
||||
|
||||
namespace llvm {
|
||||
using namespace llvm;
|
||||
|
||||
namespace {
|
||||
Statistic<>
|
||||
@ -54,6 +53,12 @@ namespace {
|
||||
JITResolver *TheJITResolver;
|
||||
}
|
||||
|
||||
void *X86TargetMachine::getJITStubForFunction(Function *F,
|
||||
MachineCodeEmitter &MCE) {
|
||||
if (TheJITResolver == 0)
|
||||
TheJITResolver = new JITResolver(MCE);
|
||||
return (void*)TheJITResolver->getLazyResolver(F);
|
||||
}
|
||||
|
||||
/// addFunctionReference - This method is called when we need to emit the
|
||||
/// address of a function that has not yet been emitted, so we don't know the
|
||||
@ -591,5 +596,3 @@ void Emitter::emitInstruction(MachineInstr &MI) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} // End llvm namespace
|
||||
|
@ -55,6 +55,12 @@ public:
|
||||
virtual bool addPassesToEmitAssembly(PassManager &PM, std::ostream &Out);
|
||||
|
||||
virtual void replaceMachineCodeForFunction (void *Old, void *New);
|
||||
|
||||
/// getJITStubForFunction - Create or return a stub for the specified
|
||||
/// function. This stub acts just like the specified function, except that it
|
||||
/// allows the "address" of the function to be taken without having to
|
||||
/// generate code for it.
|
||||
virtual void *getJITStubForFunction(Function *F, MachineCodeEmitter &MCE);
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
Loading…
x
Reference in New Issue
Block a user