This is the patch (only for 68030 and 68040 as Previous does not use other CPUs):
diff -ruB /Users/andi/Desktop/previous-code-r969-branches-branch_softfloat/src/cpu/newcpu.c /Users/andi/Desktop/Previous_Latest/src/cpu/newcpu.c
--- /Users/andi/Desktop/previous-code-r969-branches-branch_softfloat/src/cpu/newcpu.c 2021-03-06 07:25:26.000000000 +0100
+++ /Users/andi/Desktop/Previous_Latest/src/cpu/newcpu.c 2021-03-09 18:42:21.000000000 +0100
@@ -6064,8 +6064,10 @@
#endif
if (regs.spcflags) {
- if (do_specialties (cpu_cycles))
+ if (do_specialties (cpu_cycles)) {
+ STOPTRY;
return;
+ }
}
}
} CATCH (prb) {
@@ -6192,8 +6194,10 @@
lastintr = intr;
#endif
if (regs.spcflags) {
- if (do_specialties (cpu_cycles))
+ if (do_specialties (cpu_cycles)) {
+ STOPTRY;
return;
+ }
}
}
Am 09.03.2021 um 13:55 schrieb Nicolas Pomarède <npomarede@xxxxxxxxxxxx>:
Le 09/03/2021 à 10:59, Andreas Grabher a écrit :
There is a bug in the run-loops affecting the C implementation of try/catch:
Before returning after non-zero do_specialties() we need to call STOPTRY. That call is missing. C++ WinUAE is not affected.
Hi
at which line in the source ?