[jit] Add flags to MonoCompile to allow the removal of arch-specific ifdefs from...
[mono.git] / mono / mini / mini.h
index 44e906662bc7cdfb6afe1ba0ba785057062ff875..d014b54b571e9f6132554cda694f9e96bfade510 100644 (file)
 #endif
 
 /* Version number of the AOT file format */
-#define MONO_AOT_FILE_VERSION 123
+#define MONO_AOT_FILE_VERSION 124
 
 //TODO: This is x86/amd64 specific.
 #define mono_simd_shuffle_mask(a,b,c,d) ((a) | ((b) << 2) | ((c) << 4) | ((d) << 6))
@@ -338,6 +338,12 @@ typedef struct {
        MonoCodeManager *code_mp;
 } MonoJitDynamicMethodInfo;
 
+/* An extension of MonoGenericParamFull used in generic sharing */
+typedef struct {
+       MonoGenericParamFull param;
+       MonoGenericParam *parent;
+} MonoGSharedGenericParam;
+
 #define domain_jit_info(domain) ((MonoJitDomainInfo*)((domain)->runtime_info))
 
 /* Contains a list of ips which needs to be patched when a method is compiled */
@@ -1589,6 +1595,18 @@ typedef struct {
        guint            gsharedvt : 1;
        guint            r4fp : 1;
        guint            llvm_only : 1;
+       guint            need_got_var : 1;
+       guint            have_card_table_wb : 1;
+       guint            have_op_generic_class_init : 1;
+       guint            emulate_mul_div : 1;
+       guint            emulate_div : 1;
+       guint            emulate_long_shift_opts : 1;
+       guint            have_objc_get_selector : 1;
+       guint            have_generalized_imt_thunk : 1;
+       guint            have_tls_get : 1;
+       guint            have_liverange_ops: 1;
+       guint            gshared_supported : 1;
+       guint            use_fpstack : 1;
        int              r4_stack_type;
        gpointer         debug_info;
        guint32          lmf_offset;
@@ -2883,6 +2901,7 @@ MonoType* mini_type_get_underlying_type (MonoType *type);
 MonoMethod* mini_get_shared_method (MonoMethod *method);
 MonoMethod* mini_get_shared_method_to_register (MonoMethod *method);
 MonoMethod* mini_get_shared_method_full (MonoMethod *method, gboolean all_vt, gboolean is_gsharedvt);
+MonoType* mini_get_shared_gparam (MonoType *t, MonoType *constraint);
 int mini_get_rgctx_entry_slot (MonoJumpInfoRgctxEntry *entry);
 
 int mini_type_stack_size (MonoType *t, int *align);