X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-s390x.c;h=5fa10b9901430817b229f45457e23c1b4a3e4466;hb=1f8da92d47d91af1524dfbbc67f3b089909f0aaf;hp=3676ab578b7f1318326a1fd6b0983aa4d660a5d4;hpb=a20a0459befa90061dbddfa73baa2334df751258;p=mono.git diff --git a/mono/mini/mini-s390x.c b/mono/mini/mini-s390x.c index 3676ab578b7..5fa10b99014 100644 --- a/mono/mini/mini-s390x.c +++ b/mono/mini/mini-s390x.c @@ -2926,24 +2926,20 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb) guint offset; guint8 *code = cfg->native_code + cfg->code_len; guint last_offset = 0; - int max_len, cpos, src2; + int max_len, src2; /* we don't align basic blocks of loops on s390 */ if (cfg->verbose_level > 2) g_print ("Basic block %d starting at offset 0x%x\n", bb->block_num, bb->native_offset); - cpos = bb->max_offset; - - if (cfg->prof_options & MONO_PROFILE_COVERAGE) { - //MonoCoverageInfo *cov = mono_get_coverage_info (cfg->method); - //g_assert (!mono_compile_aot); - //cpos += 6; - //if (bb->cil_code) - // cov->data [bb->dfn].iloffset = bb->cil_code - cfg->cil_code; - /* this is not thread save, but good enough */ - /* fixme: howto handle overflows? */ - //x86_inc_mem (code, &cov->data [bb->dfn].count); + if ((cfg->prof_options & MONO_PROFILE_COVERAGE) && cfg->coverage_info) { + MonoProfileCoverageInfo *cov = cfg->coverage_info; + g_assert (!mono_compile_aot); + cov->data [bb->dfn].cil_code = bb->cil_code; + /* This is not thread save, but good enough */ + S390_SET (code, s390_r1, &cov->data [bb->dfn].count); + s390_alsi (code, 0, s390_r1, 1); } MONO_BB_FOR_EACH_INS (bb, ins) { @@ -4613,8 +4609,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb) g_assert_not_reached (); } - cpos += max_len; - last_offset = offset; } @@ -4649,8 +4643,8 @@ mono_arch_register_lowlevel_calls (void) /*------------------------------------------------------------------*/ void -mono_arch_patch_code (MonoMethod *method, MonoDomain *domain, - guint8 *code, MonoJumpInfo *ji, MonoCodeManager *dyn_code_mp, gboolean run_cctors) +mono_arch_patch_code (MonoCompile *cfg, MonoMethod *method, MonoDomain *domain, + guint8 *code, MonoJumpInfo *ji, gboolean run_cctors) { MonoJumpInfo *patch_info; @@ -4675,6 +4669,9 @@ mono_arch_patch_code (MonoMethod *method, MonoDomain *domain, case MONO_PATCH_INFO_CLASS_INIT: case MONO_PATCH_INFO_GENERIC_CLASS_INIT: case MONO_PATCH_INFO_RGCTX_FETCH: + case MONO_PATCH_INFO_MONITOR_ENTER: + case MONO_PATCH_INFO_MONITOR_ENTER_V4: + case MONO_PATCH_INFO_MONITOR_EXIT: case MONO_PATCH_INFO_ABS: { S390_EMIT_CALL (ip, target); continue;