[wasm] Add a --runtime-arg= argument to runtime-tests.js to allow setting runtime...
[mono-project.git] / mono / mini / llvm-jit.h
blobed7ddca91995b53ae0220eca595bb1eb81185dab
1 /**
2 * \file
3 * LLVM backend
5 * Authors:
6 * Zoltan Varga (vargaz@gmail.com)
8 * (C) 2009 Novell, Inc.
9 */
11 #ifndef __MONO_LLVM_JIT_H__
12 #define __MONO_LLVM_JIT_H__
14 #include <glib.h>
16 #include "llvm-c/Core.h"
17 #include "llvm-c/ExecutionEngine.h"
19 #ifdef HAVE_UNWIND_H
20 #include <unwind.h>
21 #endif
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
28 #endif
30 G_BEGIN_DECLS
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;
38 MonoEERef
39 mono_llvm_create_ee (LLVMModuleProviderRef MP, AllocCodeMemoryCb *alloc_cb, FunctionEmittedCb *emitted_cb, ExceptionTableCb *exception_cb, LLVMExecutionEngineRef *ee);
41 void
42 mono_llvm_dispose_ee (MonoEERef *mono_ee);
44 gpointer
45 mono_llvm_compile_method (MonoEERef mono_ee, LLVMValueRef method, int nvars, LLVMValueRef *callee_vars, gpointer *callee_addrs, gpointer *eh_frame);
47 void
48 mono_llvm_set_unhandled_exception_handler (void);
50 G_END_DECLS
52 #endif /* __MONO_LLVM_JIT_H__ */