6 * Zoltan Varga (vargaz@gmail.com)
8 * (C) 2009 Novell, Inc.
11 #ifndef __MONO_LLVM_JIT_H__
12 #define __MONO_LLVM_JIT_H__
16 #include "llvm-c/Core.h"
17 #include "llvm-c/ExecutionEngine.h"
23 /* These can't go into mini-<ARCH>.h since thats not included into llvm-jit.cpp */
24 #if defined(TARGET_AMD64) && (defined(TARGET_OSX)||defined(__linux__))
25 #define MONO_ARCH_LLVM_JIT_SUPPORTED 1
26 #elif defined(TARGET_X86) && (defined(TARGET_OSX)||defined(__linux__))
27 #define MONO_ARCH_LLVM_JIT_SUPPORTED 1
32 typedef unsigned char * (AllocCodeMemoryCb
) (LLVMValueRef function
, int size
);
33 typedef void (FunctionEmittedCb
) (LLVMValueRef function
, void *start
, void *end
);
34 typedef void (ExceptionTableCb
) (void *data
);
36 typedef void* MonoEERef
;
39 mono_llvm_create_ee (LLVMModuleProviderRef MP
, AllocCodeMemoryCb
*alloc_cb
, FunctionEmittedCb
*emitted_cb
, ExceptionTableCb
*exception_cb
, LLVMExecutionEngineRef
*ee
);
42 mono_llvm_dispose_ee (MonoEERef
*mono_ee
);
45 mono_llvm_compile_method (MonoEERef mono_ee
, LLVMValueRef method
, int nvars
, LLVMValueRef
*callee_vars
, gpointer
*callee_addrs
, gpointer
*eh_frame
);
48 mono_llvm_set_unhandled_exception_handler (void);
52 #endif /* __MONO_LLVM_JIT_H__ */