[netcore] Implement missing Bmi1/Bmi2 intrinsics (#16919)
[mono-project.git] / mono / mini / mini-llvm.h
blob703c1b23dd4376e6fc2b8eb1bdd1ef6a2d24c473
1 /**
2 * \file
3 */
5 #ifndef __MONO_MINI_LLVM_H__
6 #define __MONO_MINI_LLVM_H__
8 #include "mini.h"
9 #include "aot-runtime.h"
11 /* LLVM backend */
13 typedef enum {
14 LLVM_MODULE_FLAG_STATIC = (1 << 0),
15 LLVM_MODULE_FLAG_LLVM_ONLY = (1 << 1),
16 LLVM_MODULE_FLAG_DWARF = (1 << 2),
17 LLVM_MODULE_FLAG_CODEVIEW = (1 << 3),
18 LLVM_MODULE_FLAG_INTERP = (1 << 4)
19 } LLVMModuleFlags;
21 /* KEEP THIS IN SYNCH WITH mini-llvm-loaded.c */
22 void mono_llvm_init (void) MONO_LLVM_INTERNAL;
23 void mono_llvm_cleanup (void) MONO_LLVM_INTERNAL;
24 void mono_llvm_emit_method (MonoCompile *cfg) MONO_LLVM_INTERNAL;
25 void mono_llvm_emit_call (MonoCompile *cfg, MonoCallInst *call) MONO_LLVM_INTERNAL;
26 void mono_llvm_create_aot_module (MonoAssembly *assembly, const char *global_prefix, int initial_got_size, LLVMModuleFlags flags) MONO_LLVM_INTERNAL;
27 void mono_llvm_emit_aot_module (const char *filename, const char *cu_name) MONO_LLVM_INTERNAL;
28 void mono_llvm_emit_aot_file_info (MonoAotFileInfo *info, gboolean has_jitted_code) MONO_LLVM_INTERNAL;
29 void mono_llvm_emit_aot_data (const char *symbol, guint8 *data, int data_len) MONO_LLVM_INTERNAL;
30 void mono_llvm_check_method_supported (MonoCompile *cfg) MONO_LLVM_INTERNAL;
31 void mono_llvm_free_domain_info (MonoDomain *domain) MONO_LLVM_INTERNAL;
32 MONO_API void mono_personality (void);
33 int mono_llvm_load (const char* bpath);
34 void mono_llvm_create_vars (MonoCompile *cfg) MONO_LLVM_INTERNAL;
35 void mono_llvm_fixup_aot_module (void) MONO_LLVM_INTERNAL;
37 gboolean mini_llvm_init (void);
39 #endif