diff --git a/mono/mini/mini-amd64.c b/mono/mini/mini-amd64.c index 35af56026325db0b007e9e44258fb7c03ec32852..174d5d2e90e83b287b221b69bf4bad9761d5ab6a 100644 --- a/mono/mini/mini-amd64.c +++ b/mono/mini/mini-amd64.c @@ -7044,6 +7044,18 @@ get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *cod if (code_len) *code_len = code - start; + + if (mono_jit_map_is_enabled ()) { + char *buff; + if (has_target) + buff = (char*)"delegate_invoke_has_target"; + else + buff = g_strdup_printf ("delegate_invoke_no_target_%d", param_count); + mono_emit_jit_tramp (start, code - start, buff); + if (!has_target) + g_free (buff); + } + return start; } diff --git a/mono/mini/mini-trampolines.c b/mono/mini/mini-trampolines.c index 41b06d2c2cf1c8f3406f771a961bbc3c617b32df..f20a208f21c2ee9264f3b279523e6d50f3045843 100644 --- a/mono/mini/mini-trampolines.c +++ b/mono/mini/mini-trampolines.c @@ -1079,6 +1079,8 @@ create_trampoline_code (MonoTrampolineType tramp_type) code = mono_arch_create_generic_trampoline (tramp_type, &info, FALSE); if (info) { mono_save_trampoline_xdebug_info (info); + if (mono_jit_map_is_enabled ()) + mono_emit_jit_tramp (info->code, info->code_size, info->name); mono_tramp_info_free (info); } @@ -1205,6 +1207,8 @@ mono_create_generic_class_init_trampoline (void) if (info) { mono_save_trampoline_xdebug_info (info); + if (mono_jit_map_is_enabled ()) + mono_emit_jit_tramp (info->code, info->code_size, info->name); mono_tramp_info_free (info); } } @@ -1383,6 +1387,8 @@ mono_create_rgctx_lazy_fetch_trampoline (guint32 offset) tramp = mono_arch_create_rgctx_lazy_fetch_trampoline (offset, &info, FALSE); if (info) { mono_save_trampoline_xdebug_info (info); + if (mono_jit_map_is_enabled ()) + mono_emit_jit_tramp (info->code, info->code_size, info->name); mono_tramp_info_free (info); } ptr = mono_create_ftnptr (mono_get_root_domain (), tramp); @@ -1426,6 +1432,8 @@ mono_create_monitor_enter_trampoline (void) code = mono_arch_create_monitor_enter_trampoline (&info, FALSE); if (info) { mono_save_trampoline_xdebug_info (info); + if (mono_jit_map_is_enabled ()) + mono_emit_jit_tramp (info->code, info->code_size, info->name); mono_tramp_info_free (info); } } @@ -1458,6 +1466,8 @@ mono_create_monitor_exit_trampoline (void) code = mono_arch_create_monitor_exit_trampoline (&info, FALSE); if (info) { mono_save_trampoline_xdebug_info (info); + if (mono_jit_map_is_enabled ()) + mono_emit_jit_tramp (info->code, info->code_size, info->name); mono_tramp_info_free (info); } } diff --git a/mono/mini/tramp-amd64.c b/mono/mini/tramp-amd64.c index 214eff5d153d245829dcc52f55e27fd86ab6a5ab..253e3237d64c331bdd1c71bcbee28bc732060ff1 100644 --- a/mono/mini/tramp-amd64.c +++ b/mono/mini/tramp-amd64.c @@ -610,6 +610,9 @@ mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info) if (info) *info = mono_tramp_info_create (g_strdup_printf ("nullified_class_init_trampoline"), buf, code - buf, NULL, NULL); + if (mono_jit_map_is_enabled ()) + mono_emit_jit_tramp (buf, code - buf, "nullified_class_init_trampoline"); + return buf; } diff --git a/mono/mini/tramp-x86.c b/mono/mini/tramp-x86.c index 4d4704d6b3b355e53afda03e56ab9ddb189c7db1..853ae68f094212c22a9c20464dea8d44f6dd7f4a 100644 --- a/mono/mini/tramp-x86.c +++ b/mono/mini/tramp-x86.c @@ -509,13 +509,6 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf nullified_class_init_trampoline = mono_arch_get_nullified_class_init_trampoline (NULL); } - if (mono_jit_map_is_enabled ()) { - char *buff; - buff = mono_get_generic_trampoline_name (tramp_type); - mono_emit_jit_tramp (buf, code - buf, buff); - g_free (buff); - } - return buf; } @@ -659,12 +652,6 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info if (info) *info = mono_tramp_info_create (mono_get_rgctx_fetch_trampoline_name (slot), buf, code - buf, ji, unwind_ops); - if (mono_jit_map_is_enabled ()) { - char *buff = mono_get_rgctx_fetch_trampoline_name (slot); - mono_emit_jit_tramp (buf, code - buf, buff); - g_free (buff); - } - return buf; } @@ -719,9 +706,6 @@ mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean a if (info) *info = mono_tramp_info_create (g_strdup_printf ("generic_class_init_trampoline"), buf, code - buf, ji, unwind_ops); - if (mono_jit_map_is_enabled ()) - mono_emit_jit_tramp (buf, code - buf, "generic_class_init_trampoline"); - return buf; } @@ -854,9 +838,6 @@ mono_arch_create_monitor_enter_trampoline (MonoTrampInfo **info, gboolean aot) if (info) *info = mono_tramp_info_create (g_strdup_printf ("monitor_enter_trampoline"), buf, code - buf, ji, unwind_ops); - if (mono_jit_map_is_enabled ()) - mono_emit_jit_tramp (buf, code - buf, "monitor_enter_trampoline"); - return buf; } @@ -956,9 +937,6 @@ mono_arch_create_monitor_exit_trampoline (MonoTrampInfo **info, gboolean aot) if (info) *info = mono_tramp_info_create (g_strdup_printf ("monitor_exit_trampoline"), buf, code - buf, ji, unwind_ops); - if (mono_jit_map_is_enabled ()) - mono_emit_jit_tramp (buf, code - buf, "monitor_exit_trampoline"); - return buf; }