From c525eff6018ba007c26e6e2a02272839b36ce3af Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 5 Mar 2016 12:24:10 +0200 Subject: [PATCH] 68020/030 RTE should not support 68040+ and 68010-only frames. --- gencpu.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gencpu.cpp b/gencpu.cpp index e5c6dd32..88545055 100644 --- a/gencpu.cpp +++ b/gencpu.cpp @@ -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"); -- 2.47.3