[aot] Fix the name of the mono_gc_wbarrier_range_copy icall. FullAOT with direct...
[mono.git] / mono / mini / mini-runtime.c
index f67497d6836e7989f6d9378287d704d08f1de5da..64528e75c4eede6ff8aec27badb020472dc88502 100644 (file)
@@ -840,7 +840,7 @@ mono_jit_thread_attach (MonoDomain *domain)
        MonoDomain *orig;
        gboolean attached;
 
-       g_assert (!mono_threads_is_coop_enabled ());
+       g_assert (!mono_threads_is_blocking_transition_enabled ());
 
        if (!domain) {
                /* Happens when called from AOTed code which is only used in the root domain. */
@@ -873,7 +873,7 @@ mono_jit_thread_attach (MonoDomain *domain)
 void
 mono_jit_set_domain (MonoDomain *domain)
 {
-       g_assert (!mono_threads_is_coop_enabled ());
+       g_assert (!mono_threads_is_blocking_transition_enabled ());
 
        if (domain)
                mono_domain_set (domain, TRUE);
@@ -1237,6 +1237,7 @@ mono_patch_info_hash (gconstpointer data)
                return (ji->type << 8) | (gssize)info->klass | (gssize)info->method;
        }
        case MONO_PATCH_INFO_JIT_ICALL_ADDR:
+       case MONO_PATCH_INFO_JIT_ICALL_ADDR_NOCALL:
                return (ji->type << 8) | g_str_hash (ji->data.target);
        case MONO_PATCH_INFO_GSHAREDVT_IN_WRAPPER:
                return (ji->type << 8) | mono_signature_hash (ji->data.sig);
@@ -1301,6 +1302,7 @@ mono_patch_info_equal (gconstpointer ka, gconstpointer kb)
        case MONO_PATCH_INFO_VIRT_METHOD:
                return ji1->data.virt_method->klass == ji2->data.virt_method->klass && ji1->data.virt_method->method == ji2->data.virt_method->method;
        case MONO_PATCH_INFO_JIT_ICALL_ADDR:
+       case MONO_PATCH_INFO_JIT_ICALL_ADDR_NOCALL:
                if (ji1->data.target == ji2->data.target)
                        return 1;
                return strcmp (ji1->data.target, ji2->data.target) == 0 ? 1 : 0;
@@ -1353,7 +1355,8 @@ mono_resolve_patch_target (MonoMethod *method, MonoDomain *domain, guint8 *code,
                target = mono_icall_get_wrapper (mi);
                break;
        }
-       case MONO_PATCH_INFO_JIT_ICALL_ADDR: {
+       case MONO_PATCH_INFO_JIT_ICALL_ADDR:
+       case MONO_PATCH_INFO_JIT_ICALL_ADDR_NOCALL: {
                MonoJitICallInfo *mi = mono_find_jit_icall_by_name (patch_info->data.name);
                if (!mi) {
                        g_warning ("unknown MONO_PATCH_INFO_JIT_ICALL_ADDR %s", patch_info->data.name);
@@ -2081,7 +2084,7 @@ lookup_start:
                if ((code = mono_aot_get_method_checked (domain, method, error))) {
                        MonoVTable *vtable;
 
-                       if (mono_runtime_is_critical_method (method) || mono_gc_is_critical_method (method)) {
+                       if (mono_gc_is_critical_method (method)) {
                                /*
                                 * The suspend code needs to be able to lookup these methods by ip in async context,
                                 * so preload their jit info.
@@ -3852,7 +3855,7 @@ mini_init (const char *filename, const char *runtime_version)
        mono_w32handle_init ();
 #endif
 
-       mono_threads_runtime_init (&ticallbacks);
+       mono_thread_info_runtime_init (&ticallbacks);
 
        if (g_hasenv ("MONO_DEBUG")) {
                mini_parse_debug_options ();
@@ -3917,7 +3920,7 @@ mini_init (const char *filename, const char *runtime_version)
        mono_set_generic_sharing_supported (TRUE);
 #endif
 
-       mono_threads_signals_init ();
+       mono_thread_info_signals_init ();
 
 #ifndef MONO_CROSS_COMPILE
        mono_runtime_install_handlers ();
@@ -4242,7 +4245,8 @@ register_icalls (void)
        register_icall (mono_gsharedvt_constrained_call, "mono_gsharedvt_constrained_call", "object ptr ptr ptr ptr ptr", FALSE);
        register_icall (mono_gsharedvt_value_copy, "mono_gsharedvt_value_copy", "void ptr ptr ptr", TRUE);
 
-       register_icall_no_wrapper (mono_gc_get_range_copy_func (), "mono_gc_range_copy", "void ptr ptr int");
+       //WARNING We do runtime selection here but the string *MUST* be to a fallback function that has same signature and behavior
+       register_icall_no_wrapper (mono_gc_get_range_copy_func (), "mono_gc_wbarrier_range_copy", "void ptr ptr int");
 
        register_icall (mono_object_castclass_with_cache, "mono_object_castclass_with_cache", "object object ptr ptr", FALSE);
        register_icall (mono_object_isinst_with_cache, "mono_object_isinst_with_cache", "object object ptr ptr", FALSE);