]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Added branch instructions missing IPL checks.
authorToni Wilen <twilen@winuae.net>
Wed, 4 Mar 2020 18:46:07 +0000 (20:46 +0200)
committerToni Wilen <twilen@winuae.net>
Wed, 4 Mar 2020 18:46:07 +0000 (20:46 +0200)
gencpu.cpp

index 98341e52dfe59a19e3cdd48293fb3e0eb81f578e..b639a23e01b683d52dca7f658db170cd9a50c39d 100644 (file)
@@ -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();