From 32818177bd7d5266dc08a4034373f20b444a3be6 Mon Sep 17 00:00:00 2001 From: kub Date: Sat, 28 Sep 2019 17:12:56 +0200 Subject: [PATCH] sh2 drc: drc exit, block linking and branch handling revised (overlooked commit) --- cpu/sh2/compiler.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cpu/sh2/compiler.c b/cpu/sh2/compiler.c index 932f21cf..2c9e5b7a 100644 --- a/cpu/sh2/compiler.c +++ b/cpu/sh2/compiler.c @@ -3270,7 +3270,7 @@ static void REGPARM(2) *sh2_translate(SH2 *sh2, int tcache_id) emith_cmp_r_imm(sr, 0); #if LOOP_OPTIMIZER - u8 *jp = NULL; + void *jp = NULL; if (op_flags[i] & OF_BASIC_LOOP) { // if exiting a pinned loop pinned regs must be written back to ctx // since they are reloaded in the loop entry code @@ -3292,8 +3292,10 @@ static void REGPARM(2) *sh2_translate(SH2 *sh2, int tcache_id) } emith_jump_cond_patchable(DCOND_LE, tcache_ptr); #if LOOP_OPTIMIZER - if (op_flags[i] & OF_BASIC_LOOP) + if (op_flags[i] & OF_BASIC_LOOP) { + emith_flush(); emith_jump_patch(jp, tcache_ptr, NULL); + } #endif #if (DRC_DEBUG & 32) -- 2.39.5