[mini] Handle magic interfaces in common_trampoline as if they were variant.
[mono.git] / mono / mini / aot-compiler.c
index e4b2378a3e822f033baf8474b29064bef69e441f..c2dd1b28eebe419ab43ba79e3b25c250012db779 100644 (file)
@@ -3978,6 +3978,8 @@ add_wrappers (MonoAotCompile *acfg)
                                add_method (acfg, m);
                        if ((m = mono_gc_get_managed_allocator_by_type (i, MANAGED_ALLOCATOR_SLOW_PATH)))
                                add_method (acfg, m);
+                       if ((m = mono_gc_get_managed_allocator_by_type (i, MANAGED_ALLOCATOR_PROFILER)))
+                               add_method (acfg, m);
                }
 
                /* write barriers */
@@ -5818,6 +5820,8 @@ encode_patch (MonoAotCompile *acfg, MonoJumpInfo *patch_info, guint8 *buf, guint
                break;
        case MONO_PATCH_INFO_INTERRUPTION_REQUEST_FLAG:
                break;
+       case MONO_PATCH_INFO_PROFILER_ALLOCATION_COUNT:
+               break;
        case MONO_PATCH_INFO_RGCTX_FETCH:
        case MONO_PATCH_INFO_RGCTX_SLOT_INDEX: {
                MonoJumpInfoRgctxEntry *entry = patch_info->data.rgctx_entry;
@@ -6737,10 +6741,6 @@ emit_trampolines (MonoAotCompile *acfg)
 #ifdef DISABLE_REMOTING
                        if (tramp_type == MONO_TRAMPOLINE_GENERIC_VIRTUAL_REMOTING)
                                continue;
-#endif
-#ifndef MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD
-                       if (tramp_type == MONO_TRAMPOLINE_HANDLER_BLOCK_GUARD)
-                               continue;
 #endif
                        mono_arch_create_generic_trampoline ((MonoTrampolineType)tramp_type, &info, acfg->aot_opts.use_trampolines_page? 2: TRUE);
                        emit_trampoline (acfg, acfg->got_offset, info);
@@ -6821,11 +6821,6 @@ emit_trampolines (MonoAotCompile *acfg)
                        }
                }
 
-#ifdef MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD_AOT
-               mono_arch_create_handler_block_trampoline (&info, TRUE);
-               emit_trampoline (acfg, acfg->got_offset, info);
-#endif
-
                if (mono_aot_mode_is_interp (&acfg->aot_opts)) {
                        mono_arch_get_enter_icall_trampoline (&info);
                        emit_trampoline (acfg, acfg->got_offset, info);
@@ -11627,7 +11622,7 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
 #ifdef ENABLE_LLVM
        if (acfg->llvm) {
                llvm_acfg = acfg;
-               mono_llvm_create_aot_module (acfg->image->assembly, acfg->global_prefix, TRUE, acfg->aot_opts.static_link, acfg->aot_opts.llvm_only);
+               mono_llvm_create_aot_module (acfg->image->assembly, acfg->global_prefix, acfg->nshared_got_entries, TRUE, acfg->aot_opts.static_link, acfg->aot_opts.llvm_only);
        }
 #endif