mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
sh2 drc: drc exit, block linking and branch handling revised (overlooked commit)
This commit is contained in:
parent
06bc3c0693
commit
32818177bd
1 changed files with 4 additions and 2 deletions
|
@ -3270,7 +3270,7 @@ static void REGPARM(2) *sh2_translate(SH2 *sh2, int tcache_id)
|
||||||
emith_cmp_r_imm(sr, 0);
|
emith_cmp_r_imm(sr, 0);
|
||||||
|
|
||||||
#if LOOP_OPTIMIZER
|
#if LOOP_OPTIMIZER
|
||||||
u8 *jp = NULL;
|
void *jp = NULL;
|
||||||
if (op_flags[i] & OF_BASIC_LOOP) {
|
if (op_flags[i] & OF_BASIC_LOOP) {
|
||||||
// if exiting a pinned loop pinned regs must be written back to ctx
|
// if exiting a pinned loop pinned regs must be written back to ctx
|
||||||
// since they are reloaded in the loop entry code
|
// 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);
|
emith_jump_cond_patchable(DCOND_LE, tcache_ptr);
|
||||||
#if LOOP_OPTIMIZER
|
#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);
|
emith_jump_patch(jp, tcache_ptr, NULL);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (DRC_DEBUG & 32)
|
#if (DRC_DEBUG & 32)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue