3232void
3333mono_arch_patch_callsite (guint8 * method_start , guint8 * code_ptr , guint8 * addr )
3434{
35+ MONO_SCOPE_ENABLE_JIT_WRITE ();
36+
3537 mono_arm_patch (code_ptr - 4 , addr , MONO_R_ARM64_BL );
3638 mono_arch_flush_icache (code_ptr - 4 , 4 );
3739}
@@ -113,6 +115,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
113115
114116 buf_len = 768 ;
115117 buf = code = mono_global_codeman_reserve (buf_len );
118+ MONO_SCOPE_ENABLE_JIT_WRITE ();
116119
117120 /*
118121 * We are getting called by a specific trampoline, ip1 contains the trampoline argument.
@@ -328,6 +331,7 @@ mono_arch_create_specific_trampoline (gpointer arg1, MonoTrampolineType tramp_ty
328331 * Pass the argument in ip1, clobbering ip0.
329332 */
330333 tramp = mono_get_trampoline_code (tramp_type );
334+ MONO_SCOPE_ENABLE_JIT_WRITE ();
331335
332336 buf = code = mono_global_codeman_reserve (buf_len );
333337
@@ -352,6 +356,8 @@ mono_arch_get_unbox_trampoline (MonoMethod *m, gpointer addr)
352356 MonoDomain * domain = mono_domain_get ();
353357
354358 start = code = mono_domain_code_reserve (domain , size );
359+ MONO_SCOPE_ENABLE_JIT_WRITE ();
360+
355361 code = mono_arm_emit_imm64 (code , ARMREG_IP0 , (guint64 )addr );
356362 arm_addx_imm (code , ARMREG_R0 , ARMREG_R0 , sizeof (MonoObject ));
357363 arm_brx (code , ARMREG_IP0 );
@@ -369,6 +375,8 @@ mono_arch_get_static_rgctx_trampoline (gpointer arg, gpointer addr)
369375 MonoDomain * domain = mono_domain_get ();
370376
371377 start = code = mono_domain_code_reserve (domain , buf_len );
378+ MONO_SCOPE_ENABLE_JIT_WRITE ();
379+
372380 code = mono_arm_emit_imm64 (code , MONO_ARCH_RGCTX_REG , (guint64 )arg );
373381 code = mono_arm_emit_imm64 (code , ARMREG_IP0 , (guint64 )addr );
374382 arm_brx (code , ARMREG_IP0 );
@@ -407,6 +415,7 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
407415
408416 buf_size = 64 + 16 * depth ;
409417 code = buf = mono_global_codeman_reserve (buf_size );
418+ MONO_SCOPE_ENABLE_JIT_WRITE ();
410419
411420 rgctx_null_jumps = g_malloc0 (sizeof (guint8 * ) * (depth + 2 ));
412421 njumps = 0 ;
@@ -493,6 +502,7 @@ mono_arch_create_general_rgctx_lazy_fetch_trampoline (MonoTrampInfo **info, gboo
493502 tramp_size = 32 ;
494503
495504 code = buf = mono_global_codeman_reserve (tramp_size );
505+ MONO_SCOPE_ENABLE_JIT_WRITE ();
496506
497507 mono_add_unwind_op_def_cfa (unwind_ops , code , buf , ARMREG_SP , 0 );
498508
@@ -531,6 +541,7 @@ mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gbo
531541 MonoJumpInfo * ji = NULL ;
532542
533543 code = buf = mono_global_codeman_reserve (tramp_size );
544+ MONO_SCOPE_ENABLE_JIT_WRITE ();
534545
535546 /* Compute stack frame size and offsets */
536547 offset = 0 ;
@@ -631,6 +642,8 @@ mono_arch_get_enter_icall_trampoline (MonoTrampInfo **info)
631642 buf_len = 512 + 1024 ;
632643 start = code = (guint8 * ) mono_global_codeman_reserve (buf_len );
633644
645+ MONO_SCOPE_ENABLE_JIT_WRITE ();
646+
634647 /* save FP and LR */
635648 framesize += 2 * sizeof (mgreg_t );
636649
0 commit comments