mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-28 14:14:51 +00:00
aa5b9c0f6f
be deleted. This will be reapplied as soon as possible and before the 3.6 branch date at any rate. Approved by Jim Grosbach, Lang Hames, Rafael Espindola. This reverts commits r215111, 215115, 215116, 215117, 215136. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215154 91177308-0d34-0410-b5e6-96231b3b80d8
68 lines
2.1 KiB
C++
68 lines
2.1 KiB
C++
//==- SparcJITInfo.h - Sparc Implementation of the JIT Interface -*- C++ -*-==//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains the declaration of the SparcJITInfo class.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SPARCJITINFO_H
|
|
#define SPARCJITINFO_H
|
|
|
|
#include "llvm/CodeGen/MachineConstantPool.h"
|
|
#include "llvm/CodeGen/MachineFunction.h"
|
|
#include "llvm/Target/TargetJITInfo.h"
|
|
|
|
namespace llvm {
|
|
class SparcTargetMachine;
|
|
|
|
class SparcJITInfo : public TargetJITInfo {
|
|
|
|
bool IsPIC;
|
|
|
|
public:
|
|
explicit SparcJITInfo()
|
|
: IsPIC(false) {}
|
|
|
|
/// 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.
|
|
///
|
|
void replaceMachineCodeForFunction(void *Old, void *New) override;
|
|
|
|
// getStubLayout - Returns the size and alignment of the largest call stub
|
|
// on Sparc.
|
|
StubLayout getStubLayout() override;
|
|
|
|
|
|
/// emitFunctionStub - Use the specified JITCodeEmitter object to emit a
|
|
/// small native function that simply calls the function at the specified
|
|
/// address.
|
|
void *emitFunctionStub(const Function *F, void *Fn,
|
|
JITCodeEmitter &JCE) override;
|
|
|
|
/// getLazyResolverFunction - Expose the lazy resolver to the JIT.
|
|
LazyResolverFn getLazyResolverFunction(JITCompilerFn) override;
|
|
|
|
/// 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.
|
|
void relocate(void *Function, MachineRelocation *MR,
|
|
unsigned NumRelocs, unsigned char *GOTBase) override;
|
|
|
|
/// Initialize - Initialize internal stage for the function being JITted.
|
|
void Initialize(const MachineFunction &MF, bool isPIC) {
|
|
IsPIC = isPIC;
|
|
}
|
|
|
|
};
|
|
}
|
|
|
|
#endif
|