]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Fixed non-C++ mode 68030 MMU TRY/CATCH.
authorToni Wilen <twilen@winuae.net>
Thu, 8 Nov 2018 16:22:59 +0000 (18:22 +0200)
committerToni Wilen <twilen@winuae.net>
Thu, 8 Nov 2018 16:22:59 +0000 (18:22 +0200)
debug.cpp
include/mmu_common.h
newcpu.cpp

index 90f8f1ff884dab8e6e6a6120346539e2327ba406..6c9182452e5a40aa6e26db48dcc907e48d101560 100644 (file)
--- a/debug.cpp
+++ b/debug.cpp
@@ -459,6 +459,7 @@ int debug_safe_addr (uaecptr addr, int size)
                        else
                                addr = mmu030_translate (addr, regs.s != 0, (debug_mmu_mode & 1), false);
                } CATCH(p) {
+                       STOPTRY;
                        return 0;
                } ENDTRY
                regs.s = olds;
index d3caf6e57500053c6b67c25e093f7943807dd015..c2768c9f4e289860a2fa78d022100ecb346047fa 100644 (file)
@@ -21,6 +21,7 @@ struct m68k_exception {
 #define THROW(n) throw m68k_exception(n)
 #define THROW_AGAIN(var) throw
 #define ENDTRY
+#define STOPTRY
 #else
 /* we are in plain C, just use a stack of long jumps */
 #include <setjmp.h>
@@ -30,6 +31,7 @@ extern int     __exvalue;
                   if (__exvalue==0) { __pushtry(&__exbuf);
 #define CATCH(x)  __poptry(); } else {m68k_exception x=__exvalue; 
 #define ENDTRY    __poptry();}
+#define STOPTRY   __poptry()
 #define THROW(x) if (__is_catched()) {longjmp(__exbuf,x);}
 #define THROW_AGAIN(var) if (__is_catched()) longjmp(*__poptry(),__exvalue)
 #define SAVE_EXCEPTION
index 63ff67d19bf8dc1cb3a5ae390d6769d9023c3385..784628b38e571f4a69ce0b570fd55273c1f2324e 100644 (file)
@@ -9616,6 +9616,7 @@ static void fill_icache030 (uae_u32 addr)
                regs.cacheholdingaddr020 = 0xffffffff;
                regs.cacheholdingdata020 = 0xffffffff;
                end_020_cycle_prefetch(false);
+               STOPTRY;
                return;
        } ENDTRY