From e55659e2aab2a01f8f98b50414eea4816e913f3f Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 17 Jan 2021 13:44:39 +0200 Subject: [PATCH] Restore (an)+/-(an) modification before generating unimplemented instruction exception. --- gencpu.cpp | 6 ++++++ newcpu_common.cpp | 2 -- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gencpu.cpp b/gencpu.cpp index df6747be..67a893c9 100644 --- a/gencpu.cpp +++ b/gencpu.cpp @@ -8634,6 +8634,9 @@ bccl_not68020: out("cpu_restore_fixup();\n"); out("}\n"); } + out("if (e < 0) {\n"); + out("op_unimpl(opcode);\n"); + out("}\n"); write_return_cycles(0); out("}\n"); break; @@ -8648,6 +8651,9 @@ bccl_not68020: out("cpu_restore_fixup();\n"); out("}\n"); } + out("if (e < 0) {\n"); + out("op_unimpl(opcode);\n"); + out("}\n"); write_return_cycles(0); out("}\n"); break; diff --git a/newcpu_common.cpp b/newcpu_common.cpp index 7427add8..cf257d14 100644 --- a/newcpu_common.cpp +++ b/newcpu_common.cpp @@ -1242,7 +1242,6 @@ static void divul_divbyzero(uae_u16 extra, uae_s64 a, uaecptr oldpc) int m68k_divl(uae_u32 opcode, uae_u32 src, uae_u16 extra, uaecptr oldpc) { if ((extra & 0x400) && currprefs.int_no_unimplemented && currprefs.cpu_model == 68060) { - op_unimpl (opcode); return -1; } @@ -1315,7 +1314,6 @@ int m68k_divl(uae_u32 opcode, uae_u32 src, uae_u16 extra, uaecptr oldpc) int m68k_mull (uae_u32 opcode, uae_u32 src, uae_u16 extra) { if ((extra & 0x400) && currprefs.int_no_unimplemented && currprefs.cpu_model == 68060) { - op_unimpl (opcode); return -1; } if (extra & 0x800) { -- 2.47.3