From: Toni Wilen Date: Wed, 4 Mar 2020 18:46:07 +0000 (+0200) Subject: Added branch instructions missing IPL checks. X-Git-Tag: 4400~103 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=5cedb828bff257841359a6b5cbec5c3e2bfaf9f9;p=francis%2Fwinuae.git Added branch instructions missing IPL checks. --- diff --git a/gencpu.cpp b/gencpu.cpp index 98341e52..b639a23e 100644 --- a/gencpu.cpp +++ b/gencpu.cpp @@ -1014,6 +1014,13 @@ static void check_ipl (void) ipl_fetched = 1; } +static void check_ipl_always(void) +{ + if (using_ce || isce020()) + out("ipl_fetch();\n"); +} + + static void irc2ir (bool dozero) { if (!using_prefetch) @@ -7109,6 +7116,7 @@ static void gen_opcode (unsigned int opcode) if (using_prefetch) { incpc ("(uae_s32)src + 2"); fill_prefetch_full_000_special(NULL); + check_ipl_always(); if (using_ce) out("return;\n"); else @@ -7117,6 +7125,7 @@ static void gen_opcode (unsigned int opcode) incpc ("(uae_s32)src + 2"); add_head_cycs (6); fill_prefetch_full_020(); + check_ipl_always(); returncycles (10); } pop_ins_cnt(); @@ -7291,7 +7300,7 @@ bccl_not68020: out("}\n"); setpc("oldpc"); - check_ipl(); + check_ipl_always(); returncycles(0); out("}\n"); out("regs.loop_mode = 0;\n"); @@ -7312,6 +7321,7 @@ bccl_not68020: } irc2ir(); add_head_cycs (6); + check_ipl_always(); if (using_prefetch || using_ce) { copy_opcode();