]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
68020/030 RTE should not support 68040+ and 68010-only frames.
authorToni Wilen <twilen@winuae.net>
Sat, 5 Mar 2016 10:24:10 +0000 (12:24 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 5 Mar 2016 10:24:10 +0000 (12:24 +0200)
gencpu.cpp

index e5c6dd32a005fc3a9508b12dc25da57ba863ff92..88545055c1de01405eae103034398dbd17d0daf6 100644 (file)
@@ -3820,13 +3820,14 @@ static void gen_opcode (unsigned int opcode)
                    printf ("\t\telse if (frame == 0x2) { m68k_areg (regs, 7) += offset + 4; break; }\n");
                    if (using_mmu == 68060) {
                                printf ("\t\telse if (frame == 0x4) { m68k_do_rte_mmu060 (a); m68k_areg (regs, 7) += offset + 8; break; }\n");
-                       } else {
+                       } else if (cpu_level >= 4) {
                                printf ("\t\telse if (frame == 0x4) { m68k_areg (regs, 7) += offset + 8; break; }\n");
                        }
-                   printf ("\t\telse if (frame == 0x8) { m68k_areg (regs, 7) += offset + 50; break; }\n");
+                       if (cpu_level == 1) // 68010 only
+                               printf ("\t\telse if (frame == 0x8) { m68k_areg (regs, 7) += offset + 50; break; }\n");
                        if (using_mmu == 68040) {
                        printf ("\t\telse if (frame == 0x7) { m68k_do_rte_mmu040 (a); m68k_areg (regs, 7) += offset + 52; break; }\n");
-                       } else {
+                       } else if (cpu_level >= 4) {
                        printf ("\t\telse if (frame == 0x7) { m68k_areg (regs, 7) += offset + 52; break; }\n");
                        }
                        printf ("\t\telse if (frame == 0x9) { m68k_areg (regs, 7) += offset + 12; break; }\n");