LLVM API Documentation
00001 //===- PPC32JITInfo.h - PowerPC/Darwin JIT interface --------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file was developed by the LLVM research group and is distributed under 00006 // the University of Illinois Open Source License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file contains the PowerPC implementation of the TargetJITInfo class. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef POWERPC_DARWIN_JITINFO_H 00015 #define POWERPC_DARWIN_JITINFO_H 00016 00017 #include "PowerPCJITInfo.h" 00018 00019 namespace llvm { 00020 class TargetMachine; 00021 class IntrinsicLowering; 00022 00023 class PPC32JITInfo : public PowerPCJITInfo { 00024 public: 00025 PPC32JITInfo(TargetMachine &tm) : PowerPCJITInfo(tm) {} 00026 00027 virtual void *emitFunctionStub(void *Fn, MachineCodeEmitter &MCE); 00028 virtual LazyResolverFn getLazyResolverFunction(JITCompilerFn); 00029 virtual void relocate(void *Function, MachineRelocation *MR, 00030 unsigned NumRelocs); 00031 00032 /// replaceMachineCodeForFunction - Make it so that calling the function 00033 /// whose machine code is at OLD turns into a call to NEW, perhaps by 00034 /// overwriting OLD with a branch to NEW. This is used for self-modifying 00035 /// code. 00036 /// 00037 virtual void replaceMachineCodeForFunction(void *Old, void *New); 00038 }; 00039 } 00040 00041 #endif