[ji] Add a mini-llvm.h header file for the functions implemented by the LLVM backend.
[mono.git] / mono / mini / mini-llvm.h
1 #ifndef __MONO_MINI_LLVM_H__
2 #define __MONO_MINI_LLVM_H__
3
4 #include "mini.h"
5
6 /* LLVM backend */
7 /* KEEP THIS IN SYNCH WITH mini-llvm-loaded.c */
8 void     mono_llvm_init                     (void) MONO_LLVM_INTERNAL;
9 void     mono_llvm_cleanup                  (void) MONO_LLVM_INTERNAL;
10 void     mono_llvm_emit_method              (MonoCompile *cfg) MONO_LLVM_INTERNAL;
11 void     mono_llvm_emit_call                (MonoCompile *cfg, MonoCallInst *call) MONO_LLVM_INTERNAL;
12 void     mono_llvm_create_aot_module        (MonoAssembly *assembly, const char *global_prefix, gboolean emit_dwarf, gboolean static_link, gboolean llvm_only) MONO_LLVM_INTERNAL;
13 void     mono_llvm_emit_aot_module          (const char *filename, const char *cu_name) MONO_LLVM_INTERNAL;
14 void     mono_llvm_emit_aot_file_info       (MonoAotFileInfo *info, gboolean has_jitted_code) MONO_LLVM_INTERNAL;
15 void     mono_llvm_emit_aot_data            (const char *symbol, guint8 *data, int data_len) MONO_LLVM_INTERNAL;
16 void     mono_llvm_check_method_supported   (MonoCompile *cfg) MONO_LLVM_INTERNAL;
17 void     mono_llvm_free_domain_info         (MonoDomain *domain) MONO_LLVM_INTERNAL;
18 MONO_API void mono_personality              (void);
19 int      mono_llvm_load                     (const char* bpath);
20 void     mono_llvm_rethrow_exception (MonoObject *ex);
21 void     mono_llvm_throw_exception (MonoObject *ex);
22 void     mono_llvm_throw_corlib_exception (guint32 ex_token_index);
23 void     mono_llvm_resume_exception (void);
24 gint32   mono_llvm_match_exception (MonoJitInfo *jinfo, guint32 region_start, guint32 region_end);
25 void     mono_llvm_clear_exception (void);
26 MonoObject *mono_llvm_load_exception (void);
27 void     mono_llvm_reset_exception (void);
28 void     mono_llvm_raise_exception (MonoException *e);
29
30 gboolean mini_llvm_init                     (void);
31
32 #endif