summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCJITInfo.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-10-14 23:53:41 +0000
committerChris Lattner <sabre@nondot.org>2005-10-14 23:53:41 +0000
commitb9459b731a0b6345d1e14083fcfa6508646ba81d (patch)
treed3a50758f36b024cc747e568bf6b136fc82d27f4 /lib/Target/PowerPC/PPCJITInfo.h
parent2668959b8879097db368aec7d76c455260abc75b (diff)
downloadllvm-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.h20
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