Subject: [PATCH 1/1] cpu: preserve condition flags across MMU longjmp

The plain-C MMU cores save condition flags in automatic locals updated after
setjmp. Those values are indeterminate after longjmp unless volatile. An
instruction fetch fault can therefore restore stale flags and change a
conditional branch when the guest resumes.

Keep the saved flags volatile in the 68030, 68040 and 68060 loops. This
retains the existing recovery logic and optimized build. The 68040 path is
validated with cold-page branch controls and NEXTSTEP library regressions;
the other two paths have the same source-level defect but remain untested.

---
--- a/src/cpu/newcpu.c
+++ b/src/cpu/newcpu.c
@@ -6211,7 +6211,7 @@
 /* MMU 68060  */
 static void m68k_run_mmu060 (void)
 {
-	struct flag_struct f;
+	volatile struct flag_struct f;
 	int halt = 0;
 
 	check_halt();
@@ -6300,7 +6300,7 @@
 /* Aranym MMU 68040  */
 static void m68k_run_mmu040 (void)
 {
-	struct flag_struct f;
+	volatile struct flag_struct f;
 	int halt = 0;
 
 	check_halt();
@@ -6361,7 +6361,7 @@
 // Previous MMU 68030
 static void m68k_run_mmu030 (void)
 {
-	struct flag_struct f;
+	volatile struct flag_struct f;
 	int halt = 0;
 
 #ifdef WINUAE_FOR_HATARI
