#define ALPHA_JITINFO_H
#include "llvm/Target/TargetJITInfo.h"
-#include "llvm/GlobalValue.h"
-#include <string>
#include <map>
namespace llvm {
class AlphaJITInfo : public TargetJITInfo {
protected:
TargetMachine &TM;
+
+ //because gpdist are paired and relative to the pc of the first inst,
+ //we need to have some state
+ std::map<std::pair<void*, int>, void*> gpdistmap;
public:
- AlphaJITInfo(TargetMachine &tm) : TM(tm)
+ explicit AlphaJITInfo(TargetMachine &tm) : TM(tm)
{ useGOT = true; }
- virtual void *emitFunctionStub(void *Fn, MachineCodeEmitter &MCE);
+ virtual void *emitFunctionStub(const Function* F, void *Fn,
+ JITCodeEmitter &JCE);
virtual LazyResolverFn getLazyResolverFunction(JITCompilerFn);
virtual void relocate(void *Function, MachineRelocation *MR,
unsigned NumRelocs, unsigned char* GOTBase);