LLVM API Documentation
#include <PPCJITInfo.h>
Public Member Functions | |
| PPCJITInfo (PPCTargetMachine &tm, bool tmIs64Bit) | |
| virtual void * | emitFunctionStub (const Function *F, void *Fn, MachineCodeEmitter &MCE) |
| virtual LazyResolverFn | getLazyResolverFunction (JITCompilerFn) |
| virtual void | relocate (void *Function, MachineRelocation *MR, unsigned NumRelocs, unsigned char *GOTBase) |
| virtual void | replaceMachineCodeForFunction (void *Old, void *New) |
Protected Attributes | |
| PPCTargetMachine & | TM |
| bool | is64Bit |
Definition at line 22 of file PPCJITInfo.h.
| llvm::PPCJITInfo::PPCJITInfo | ( | PPCTargetMachine & | tm, | |
| bool | tmIs64Bit | |||
| ) | [inline] |
| void * PPCJITInfo::emitFunctionStub | ( | const Function * | F, | |
| void * | Fn, | |||
| MachineCodeEmitter & | MCE | |||
| ) | [virtual] |
emitFunctionStub - Use the specified MachineCodeEmitter object to emit a small native function that simply calls the function at the specified address. Return the address of the resultant function.
Reimplemented from llvm::TargetJITInfo.
Definition at line 332 of file PPCJITInfo.cpp.
References EmitBranchToAt(), llvm::MachineCodeEmitter::emitWordBE(), llvm::MachineCodeEmitter::finishGVStub(), llvm::MachineCodeEmitter::getCurrentPCValue(), llvm::PPCTargetMachine::getSubtargetImpl(), llvm::sys::Memory::InvalidateInstructionCache(), is64Bit, llvm::PPCSubtarget::isMachoABI(), PPC32CompilationCallback(), PPC64CompilationCallback(), llvm::MachineCodeEmitter::startGVStub(), and TM.
| TargetJITInfo::LazyResolverFn PPCJITInfo::getLazyResolverFunction | ( | JITCompilerFn | Fn | ) | [virtual] |
Definition at line 322 of file PPCJITInfo.cpp.
References is64Bit, JITCompilerFunction, PPC32CompilationCallback(), and PPC64CompilationCallback().
| void PPCJITInfo::relocate | ( | void * | Function, | |
| MachineRelocation * | MR, | |||
| unsigned | NumRelocs, | |||
| unsigned char * | GOTBase | |||
| ) | [virtual] |
relocate - Before the JIT can run a block of code that has been emitted, it must rewrite the code to contain the actual addresses of any referenced global symbols.
Reimplemented from llvm::TargetJITInfo.
Definition at line 381 of file PPCJITInfo.cpp.
References llvm::MachineRelocation::getConstantVal(), llvm::MachineRelocation::getMachineCodeOffset(), llvm::MachineRelocation::getRelocationType(), llvm::MachineRelocation::getResultPointer(), llvm::PPC::reloc_absolute_high, llvm::PPC::reloc_absolute_low, llvm::PPC::reloc_absolute_low_ix, llvm::PPC::reloc_pcrel_bcx, and llvm::PPC::reloc_pcrel_bx.
| void PPCJITInfo::replaceMachineCodeForFunction | ( | void * | Old, | |
| void * | New | |||
| ) | [virtual] |
replaceMachineCodeForFunction - Make it so that calling the function whose machine code is at OLD turns into a call to NEW, perhaps by overwriting OLD with a branch to NEW. This is used for self-modifying code.
Implements llvm::TargetJITInfo.
Definition at line 436 of file PPCJITInfo.cpp.
References EmitBranchToAt(), and is64Bit.
PPCTargetMachine& llvm::PPCJITInfo::TM [protected] |
bool llvm::PPCJITInfo::is64Bit [protected] |
Definition at line 25 of file PPCJITInfo.h.
Referenced by emitFunctionStub(), getLazyResolverFunction(), PPCJITInfo(), and replaceMachineCodeForFunction().