diff options
author | Chris Lattner <sabre@nondot.org> | 2005-10-14 23:53:41 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-10-14 23:53:41 +0000 |
commit | b9459b731a0b6345d1e14083fcfa6508646ba81d (patch) | |
tree | d3a50758f36b024cc747e568bf6b136fc82d27f4 /lib/Target/PowerPC/PPCJITInfo.h | |
parent | 2668959b8879097db368aec7d76c455260abc75b (diff) | |
download | llvm-b9459b731a0b6345d1e14083fcfa6508646ba81d.tar.gz llvm-b9459b731a0b6345d1e14083fcfa6508646ba81d.tar.bz2 llvm-b9459b731a0b6345d1e14083fcfa6508646ba81d.tar.xz |
Merge PPCJITInfo.h and PPC32JITInfo.h. Note that the PowerPCJITInfo
and PPC32JITInfo classes should be merged.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23744 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCJITInfo.h')
-rw-r--r-- | lib/Target/PowerPC/PPCJITInfo.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/PPCJITInfo.h b/lib/Target/PowerPC/PPCJITInfo.h index e91bff2769..9a24ee6d5b 100644 --- a/lib/Target/PowerPC/PPCJITInfo.h +++ b/lib/Target/PowerPC/PPCJITInfo.h @@ -1,4 +1,4 @@ -//===- PowerPCJITInfo.h - PowerPC impl. of the JIT interface ----*- C++ -*-===// +//===- PPCJITInfo.h - PowerPC impl. of the JIT interface --------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -19,6 +19,7 @@ namespace llvm { class TargetMachine; + // FIXME: Merge into one PPCJITInfo class. class PowerPCJITInfo : public TargetJITInfo { protected: TargetMachine &TM; @@ -31,6 +32,23 @@ namespace llvm { /// virtual void addPassesToJITCompile(FunctionPassManager &PM); }; + + class PPC32JITInfo : public PowerPCJITInfo { + public: + PPC32JITInfo(TargetMachine &tm) : PowerPCJITInfo(tm) {} + + virtual void *emitFunctionStub(void *Fn, MachineCodeEmitter &MCE); + virtual LazyResolverFn getLazyResolverFunction(JITCompilerFn); + virtual void relocate(void *Function, MachineRelocation *MR, + unsigned NumRelocs, unsigned char* GOTBase); + + /// 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. + /// + virtual void replaceMachineCodeForFunction(void *Old, void *New); + }; } #endif |