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; }
void emitWordAt(unsigned W, unsigned *Ptr) {
MCE.emitWordAt(W, Ptr);
}
- uint64_t getGlobalValueAddress(GlobalValue *V) {
- return MCE.getGlobalValueAddress(V);
- }
- uint64_t getGlobalValueAddress(const char *Name) {
- return MCE.getGlobalValueAddress(Name);
- }
uint64_t getConstantPoolEntryAddress(unsigned Num) {
return MCE.getConstantPoolEntryAddress(Num);
}
}
DEBUG(std::cerr << "JIT: Stub emitted at [" << Stub << "] for function '"
- << F->getName() << "\n");
+ << F->getName() << "'\n");
// Finally, keep track of the stub-to-Function mapping so that the
// JITCompilerFn knows which function to compile!
virtual uint64_t getCurrentPCValue();
virtual uint64_t getCurrentPCOffset();
- virtual uint64_t getGlobalValueAddress(GlobalValue *V);
- virtual uint64_t getGlobalValueAddress(const char *Name);
virtual uint64_t getConstantPoolEntryAddress(unsigned Entry);
// forceCompilationOf - Force the compilation of the specified function, and
*Ptr = W;
}
-uint64_t Emitter::getGlobalValueAddress(GlobalValue *V) {
- // Try looking up the function to see if it is already compiled, if not return
- // 0.
- if (Function *F = dyn_cast<Function>(V)) {
- void *Addr = TheJIT->getPointerToGlobalIfAvailable(F);
- if (Addr == 0 && F->hasExternalLinkage()) {
- // Do not output stubs for external functions.
- Addr = TheJIT->getPointerToFunction(F);
- }
- return (intptr_t)Addr;
- } else {
- return (intptr_t)TheJIT->getOrEmitGlobalVariable(cast<GlobalVariable>(V));
- }
-}
-uint64_t Emitter::getGlobalValueAddress(const char *Name) {
- return (intptr_t)TheJIT->getPointerToNamedFunction(Name);
-}
-
// getConstantPoolEntryAddress - Return the address of the 'ConstantNum' entry
// in the constant pool that was last emitted with the 'emitConstantPool'
// method.