From d90fb062804f0ba16f04a56aa5a111477ab53311 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 4 Nov 2023 16:04:17 +0200 Subject: [PATCH] 5100b7 --- cpuemu_0.cpp | 90 ++++++++++++++++++ cpuemu_11.cpp | 48 ++++++++++ cpuemu_13.cpp | 48 ++++++++++ cpuemu_20.cpp | 24 +++++ cpuemu_21.cpp | 24 +++++ cpuemu_22.cpp | 24 +++++ cpuemu_23.cpp | 24 +++++ cpuemu_24.cpp | 26 +++++ cpuemu_31.cpp | 10 ++ cpuemu_32.cpp | 10 ++ cpuemu_33.cpp | 10 ++ cpuemu_34.cpp | 10 ++ cpuemu_35.cpp | 10 ++ cpuemu_40.cpp | 178 +++++++++++++++++++++++++++++++++++ cpuemu_50.cpp | 90 ++++++++++++++++++ custom.cpp | 21 ++--- drawing.cpp | 2 +- od-win32/win32.h | 4 +- od-win32/winuaechangelog.txt | 11 +++ 19 files changed, 650 insertions(+), 14 deletions(-) diff --git a/cpuemu_0.cpp b/cpuemu_0.cpp index 663012a1..ace50936 100644 --- a/cpuemu_0.cpp +++ b/cpuemu_0.cpp @@ -19162,7 +19162,9 @@ uae_u32 REGPARAM2 op_4e73_0_ff(uae_u32 opcode) return (16 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (24 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -19197,9 +19199,11 @@ uae_u32 REGPARAM2 op_4e75_0_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpc(); m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -19307,9 +19311,11 @@ uae_u32 REGPARAM2 op_4e90_0_ff(uae_u32 opcode) } put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (16 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -19332,9 +19338,11 @@ uae_u32 REGPARAM2 op_4ea8_0_ff(uae_u32 opcode) } put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -19358,9 +19366,11 @@ uae_u32 REGPARAM2 op_4eb0_0_ff(uae_u32 opcode) } put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (26 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -19381,9 +19391,11 @@ uae_u32 REGPARAM2 op_4eb8_0_ff(uae_u32 opcode) } put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -19404,9 +19416,11 @@ uae_u32 REGPARAM2 op_4eb9_0_ff(uae_u32 opcode) } put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (20 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -19428,9 +19442,11 @@ uae_u32 REGPARAM2 op_4eba_0_ff(uae_u32 opcode) } put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -19453,9 +19469,11 @@ uae_u32 REGPARAM2 op_4ebb_0_ff(uae_u32 opcode) } put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (26 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -24044,9 +24062,11 @@ uae_u32 REGPARAM2 op_6100_0_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -24068,9 +24088,11 @@ uae_u32 REGPARAM2 op_6101_0_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -24091,9 +24113,11 @@ uae_u32 REGPARAM2 op_61ff_0_ff(uae_u32 opcode) return (6 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (22 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -42525,7 +42549,9 @@ uae_u32 REGPARAM2 op_4e73_1_ff(uae_u32 opcode) return (16 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (24 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -45351,7 +45377,9 @@ uae_u32 REGPARAM2 op_4e73_2_ff(uae_u32 opcode) return (16 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (24 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -45385,9 +45413,11 @@ uae_u32 REGPARAM2 op_4e75_2_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpc(); m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -45462,9 +45492,11 @@ uae_u32 REGPARAM2 op_4e90_2_ff(uae_u32 opcode) return (0 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (16 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -45487,9 +45519,11 @@ uae_u32 REGPARAM2 op_4ea8_2_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -45513,9 +45547,11 @@ uae_u32 REGPARAM2 op_4eb0_2_ff(uae_u32 opcode) return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (26 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -45536,9 +45572,11 @@ uae_u32 REGPARAM2 op_4eb8_2_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -45559,9 +45597,11 @@ uae_u32 REGPARAM2 op_4eb9_2_ff(uae_u32 opcode) return (4 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (20 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -45583,9 +45623,11 @@ uae_u32 REGPARAM2 op_4eba_2_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -45608,9 +45650,11 @@ uae_u32 REGPARAM2 op_4ebb_2_ff(uae_u32 opcode) return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (26 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -46129,9 +46173,11 @@ uae_u32 REGPARAM2 op_6100_2_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -46154,9 +46200,11 @@ uae_u32 REGPARAM2 op_6101_2_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -46178,9 +46226,11 @@ uae_u32 REGPARAM2 op_61ff_2_ff(uae_u32 opcode) return (6 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (22 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } @@ -47394,7 +47444,9 @@ uae_u32 REGPARAM2 op_4e73_3_ff(uae_u32 opcode) return (16 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (24 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -51794,7 +51846,9 @@ uae_u32 REGPARAM2 op_4e73_4_ff(uae_u32 opcode) return (16 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (24 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -51810,9 +51864,11 @@ uae_u32 REGPARAM2 op_4e75_4_ff(uae_u32 opcode) return (0 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -51882,9 +51938,11 @@ uae_u32 REGPARAM2 op_4eb0_4_ff(uae_u32 opcode) return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (22 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 4,0 B */ @@ -51913,9 +51971,11 @@ uae_u32 REGPARAM2 op_4ebb_4_ff(uae_u32 opcode) return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (22 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 4,0 B */ @@ -52935,9 +52995,11 @@ uae_u32 REGPARAM2 op_6100_4_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 0,0 B */ @@ -52964,9 +53026,11 @@ uae_u32 REGPARAM2 op_6101_4_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -52991,9 +53055,11 @@ uae_u32 REGPARAM2 op_61ff_4_ff(uae_u32 opcode) return (2 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -60188,7 +60254,9 @@ uae_u32 REGPARAM2 op_4e73_5_ff(uae_u32 opcode) return (12 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_setpc_j(pc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (20 * CYCLE_UNIT / 2 + count_cycles) | (((3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -60204,9 +60272,11 @@ uae_u32 REGPARAM2 op_4e75_5_ff(uae_u32 opcode) return (0 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -60288,9 +60358,11 @@ uae_u32 REGPARAM2 op_4e90_5_ff(uae_u32 opcode) return (4 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (16 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -60320,9 +60392,11 @@ uae_u32 REGPARAM2 op_4ea8_5_ff(uae_u32 opcode) return (6 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 0,0 B */ @@ -60352,9 +60426,11 @@ uae_u32 REGPARAM2 op_4eb0_5_ff(uae_u32 opcode) return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (22 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 4,0 B */ @@ -60382,9 +60458,11 @@ uae_u32 REGPARAM2 op_4eb8_5_ff(uae_u32 opcode) return (6 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 0,0 B */ @@ -60411,9 +60489,11 @@ uae_u32 REGPARAM2 op_4eb9_5_ff(uae_u32 opcode) return (8 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (20 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 6 0,0 B */ @@ -60442,9 +60522,11 @@ uae_u32 REGPARAM2 op_4eba_5_ff(uae_u32 opcode) return (6 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 0,0 B */ @@ -60473,9 +60555,11 @@ uae_u32 REGPARAM2 op_4ebb_5_ff(uae_u32 opcode) return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (22 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 4,0 B */ @@ -63235,9 +63319,11 @@ uae_u32 REGPARAM2 op_6100_5_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 4 0,0 B */ @@ -63266,9 +63352,11 @@ uae_u32 REGPARAM2 op_6101_5_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ @@ -63295,9 +63383,11 @@ uae_u32 REGPARAM2 op_61ff_5_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return (10 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return (18 * CYCLE_UNIT / 2 + count_cycles) | (((1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4) << 16); } /* 2 0,0 B */ diff --git a/cpuemu_11.cpp b/cpuemu_11.cpp index 6d9670a7..c4b4d97c 100644 --- a/cpuemu_11.cpp +++ b/cpuemu_11.cpp @@ -42420,7 +42420,9 @@ uae_u32 REGPARAM2 op_4e73_11_ff(uae_u32 opcode) } newsr = sr; newpc = pc; m68k_setpci_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif get_word_000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -42521,9 +42523,11 @@ uae_u32 REGPARAM2 op_4e75_11_ff(uae_u32 opcode) } m68k_areg(regs, 7) += 4; m68k_setpci_j(newpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -42762,9 +42766,11 @@ uae_u32 REGPARAM2 op_4e90_11_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 12 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_000_prefetch(2); @@ -42821,9 +42827,11 @@ uae_u32 REGPARAM2 op_4ea8_11_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 14 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_000_prefetch(2); @@ -42886,9 +42894,11 @@ uae_u32 REGPARAM2 op_4eb0_11_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 18 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_000_prefetch(2); @@ -42943,9 +42953,11 @@ uae_u32 REGPARAM2 op_4eb8_11_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 14 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_000_prefetch(2); @@ -43005,9 +43017,11 @@ uae_u32 REGPARAM2 op_4eb9_11_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 16 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_000_prefetch(2); @@ -43063,9 +43077,11 @@ uae_u32 REGPARAM2 op_4eba_11_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 14 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_000_prefetch(2); @@ -43127,9 +43143,11 @@ uae_u32 REGPARAM2 op_4ebb_11_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 18 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_000_prefetch(2); @@ -52738,9 +52756,11 @@ uae_u32 REGPARAM2 op_6100_11_ff(uae_u32 opcode) return 6 * CYCLE_UNIT / 2 + count_cycles; } m68k_incpci(s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -52794,9 +52814,11 @@ uae_u32 REGPARAM2 op_6101_11_ff(uae_u32 opcode) return 6 * CYCLE_UNIT / 2 + count_cycles; } m68k_incpci(s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -52848,9 +52870,11 @@ uae_u32 REGPARAM2 op_61ff_11_ff(uae_u32 opcode) return 6 * CYCLE_UNIT / 2 + count_cycles; } m68k_incpci(s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -122078,7 +122102,9 @@ uae_u32 REGPARAM2 op_4e73_12_ff(uae_u32 opcode) } m68k_setpci_j(pc); opcode |= 0x20000; + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif get_word_000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -122124,9 +122150,11 @@ uae_u32 REGPARAM2 op_4e75_12_ff(uae_u32 opcode) } m68k_areg(regs, 7) += 4; m68k_setpci_j(newpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -122310,9 +122338,11 @@ uae_u32 REGPARAM2 op_4e90_12_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 12 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_000_prefetch(2); @@ -122369,9 +122399,11 @@ uae_u32 REGPARAM2 op_4ea8_12_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 14 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -122435,9 +122467,11 @@ uae_u32 REGPARAM2 op_4eb0_12_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 18 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -122493,9 +122527,11 @@ uae_u32 REGPARAM2 op_4eb8_12_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 14 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -122556,9 +122592,11 @@ uae_u32 REGPARAM2 op_4eb9_12_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 16 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -122615,9 +122653,11 @@ uae_u32 REGPARAM2 op_4eba_12_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 14 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -122680,9 +122720,11 @@ uae_u32 REGPARAM2 op_4ebb_12_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return 18 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -132021,9 +132063,11 @@ uae_u32 REGPARAM2 op_6100_12_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 10 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -132080,9 +132124,11 @@ uae_u32 REGPARAM2 op_6101_12_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 10 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -132137,9 +132183,11 @@ uae_u32 REGPARAM2 op_61ff_12_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 10 * CYCLE_UNIT / 2 + count_cycles; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; diff --git a/cpuemu_13.cpp b/cpuemu_13.cpp index 5372e74c..7d9bb900 100644 --- a/cpuemu_13.cpp +++ b/cpuemu_13.cpp @@ -42642,7 +42642,9 @@ void REGPARAM2 op_4e73_13_ff(uae_u32 opcode) } newsr = sr; newpc = pc; m68k_setpci_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif get_word_ce000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -42743,9 +42745,11 @@ void REGPARAM2 op_4e75_13_ff(uae_u32 opcode) } m68k_areg(regs, 7) += 4; m68k_setpci_j(newpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -42988,9 +42992,11 @@ void REGPARAM2 op_4e90_13_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_ce000_prefetch(2); @@ -43048,9 +43054,11 @@ void REGPARAM2 op_4ea8_13_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_ce000_prefetch(2); @@ -43114,9 +43122,11 @@ void REGPARAM2 op_4eb0_13_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_ce000_prefetch(2); @@ -43172,9 +43182,11 @@ void REGPARAM2 op_4eb8_13_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_ce000_prefetch(2); @@ -43234,9 +43246,11 @@ void REGPARAM2 op_4eb9_13_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_ce000_prefetch(2); @@ -43293,9 +43307,11 @@ void REGPARAM2 op_4eba_13_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_ce000_prefetch(2); @@ -43358,9 +43374,11 @@ void REGPARAM2 op_4ebb_13_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_ce000_prefetch(2); @@ -53127,9 +53145,11 @@ void REGPARAM2 op_6100_13_ff(uae_u32 opcode) return; } m68k_incpci(s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_ce000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -53185,9 +53205,11 @@ void REGPARAM2 op_6101_13_ff(uae_u32 opcode) return; } m68k_incpci(s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_ce000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -53241,9 +53263,11 @@ void REGPARAM2 op_61ff_13_ff(uae_u32 opcode) return; } m68k_incpci(s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_ce000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -123279,7 +123303,9 @@ void REGPARAM2 op_4e73_14_ff(uae_u32 opcode) } m68k_setpci_j(pc); opcode |= 0x20000; + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif get_word_ce000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -123325,9 +123351,11 @@ void REGPARAM2 op_4e75_14_ff(uae_u32 opcode) } m68k_areg(regs, 7) += 4; m68k_setpci_j(newpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -123516,9 +123544,11 @@ void REGPARAM2 op_4e90_14_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; get_word_ce000_prefetch(2); @@ -123576,9 +123606,11 @@ void REGPARAM2 op_4ea8_14_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -123643,9 +123675,11 @@ void REGPARAM2 op_4eb0_14_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -123702,9 +123736,11 @@ void REGPARAM2 op_4eb8_14_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -123765,9 +123801,11 @@ void REGPARAM2 op_4eb9_14_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -123825,9 +123863,11 @@ void REGPARAM2 op_4eba_14_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -123891,9 +123931,11 @@ void REGPARAM2 op_4ebb_14_ff(uae_u32 opcode) exception2_write(opcode, dsta + 2, 0x1, nextpc, 1); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif regs.ir = regs.irc; opcode = regs.ir; if(regs.t1) opcode |= 0x10000; @@ -133359,9 +133401,11 @@ void REGPARAM2 op_6100_14_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_ce000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -133420,9 +133464,11 @@ void REGPARAM2 op_6101_14_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_ce000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; @@ -133479,9 +133525,11 @@ void REGPARAM2 op_61ff_14_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif get_word_ce000_prefetch(0); if(hardware_bus_error) { int pcoffset = 0; diff --git a/cpuemu_20.cpp b/cpuemu_20.cpp index ddb356fc..32166d46 100644 --- a/cpuemu_20.cpp +++ b/cpuemu_20.cpp @@ -19988,7 +19988,9 @@ uae_u32 REGPARAM2 op_4e73_20_ff(uae_u32 opcode) return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_setpci_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif fill_prefetch_020_ntx(); return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20023,9 +20025,11 @@ uae_u32 REGPARAM2 op_4e75_20_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpci(); m68k_do_rtsi(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -20133,9 +20137,11 @@ uae_u32 REGPARAM2 op_4e90_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20158,9 +20164,11 @@ uae_u32 REGPARAM2 op_4ea8_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20184,9 +20192,11 @@ uae_u32 REGPARAM2 op_4eb0_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20207,9 +20217,11 @@ uae_u32 REGPARAM2 op_4eb8_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20230,9 +20242,11 @@ uae_u32 REGPARAM2 op_4eb9_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20254,9 +20268,11 @@ uae_u32 REGPARAM2 op_4eba_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20279,9 +20295,11 @@ uae_u32 REGPARAM2 op_4ebb_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -25121,9 +25139,11 @@ uae_u32 REGPARAM2 op_6100_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -25146,9 +25166,11 @@ uae_u32 REGPARAM2 op_6101_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -25170,9 +25192,11 @@ uae_u32 REGPARAM2 op_61ff_20_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } diff --git a/cpuemu_21.cpp b/cpuemu_21.cpp index cb18d4ca..edca3cc8 100644 --- a/cpuemu_21.cpp +++ b/cpuemu_21.cpp @@ -21698,7 +21698,9 @@ void REGPARAM2 op_4e73_21_ff(uae_u32 opcode) return; } m68k_setpci_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif fill_prefetch_020_ntx(); return; } @@ -21736,9 +21738,11 @@ void REGPARAM2 op_4e75_21_ff(uae_u32 opcode) /* op H:1,T:0,C:8 */ uaecptr oldpc = m68k_getpci(); m68k_do_rts_ce020(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -21851,9 +21855,11 @@ void REGPARAM2 op_4e90_21_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -21878,9 +21884,11 @@ void REGPARAM2 op_4ea8_21_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -21906,9 +21914,11 @@ void REGPARAM2 op_4eb0_21_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -21931,9 +21941,11 @@ void REGPARAM2 op_4eb8_21_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -21956,9 +21968,11 @@ void REGPARAM2 op_4eb9_21_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -21982,9 +21996,11 @@ void REGPARAM2 op_4eba_21_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -22009,9 +22025,11 @@ void REGPARAM2 op_4ebb_21_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -27277,9 +27295,11 @@ void REGPARAM2 op_6100_21_ff(uae_u32 opcode) return; } m68k_do_bsr_ce020(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -27303,9 +27323,11 @@ void REGPARAM2 op_6101_21_ff(uae_u32 opcode) return; } m68k_do_bsr_ce020(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } @@ -27328,9 +27350,11 @@ void REGPARAM2 op_61ff_21_ff(uae_u32 opcode) return; } m68k_do_bsr_ce020(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_020(); return; } diff --git a/cpuemu_22.cpp b/cpuemu_22.cpp index b8950253..5c6414f2 100644 --- a/cpuemu_22.cpp +++ b/cpuemu_22.cpp @@ -19989,7 +19989,9 @@ uae_u32 REGPARAM2 op_4e73_22_ff(uae_u32 opcode) return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_setpci_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif fill_prefetch_030_ntx(); return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20024,9 +20026,11 @@ uae_u32 REGPARAM2 op_4e75_22_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpci(); m68k_do_rtsi(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -20134,9 +20138,11 @@ uae_u32 REGPARAM2 op_4e90_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20159,9 +20165,11 @@ uae_u32 REGPARAM2 op_4ea8_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20185,9 +20193,11 @@ uae_u32 REGPARAM2 op_4eb0_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20208,9 +20218,11 @@ uae_u32 REGPARAM2 op_4eb8_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20231,9 +20243,11 @@ uae_u32 REGPARAM2 op_4eb9_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20255,9 +20269,11 @@ uae_u32 REGPARAM2 op_4eba_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -20280,9 +20296,11 @@ uae_u32 REGPARAM2 op_4ebb_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -25122,9 +25140,11 @@ uae_u32 REGPARAM2 op_6100_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -25147,9 +25167,11 @@ uae_u32 REGPARAM2 op_6101_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -25171,9 +25193,11 @@ uae_u32 REGPARAM2 op_61ff_22_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } diff --git a/cpuemu_23.cpp b/cpuemu_23.cpp index 3d916ace..f6fbba2b 100644 --- a/cpuemu_23.cpp +++ b/cpuemu_23.cpp @@ -21699,7 +21699,9 @@ void REGPARAM2 op_4e73_23_ff(uae_u32 opcode) return; } m68k_setpci_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif fill_prefetch_030_ntx(); return; } @@ -21737,9 +21739,11 @@ void REGPARAM2 op_4e75_23_ff(uae_u32 opcode) /* op H:1,T:0,C:8 */ uaecptr oldpc = m68k_getpci(); m68k_do_rts_ce030(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -21852,9 +21856,11 @@ void REGPARAM2 op_4e90_23_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -21879,9 +21885,11 @@ void REGPARAM2 op_4ea8_23_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -21907,9 +21915,11 @@ void REGPARAM2 op_4eb0_23_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -21932,9 +21942,11 @@ void REGPARAM2 op_4eb8_23_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -21957,9 +21969,11 @@ void REGPARAM2 op_4eb9_23_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -21983,9 +21997,11 @@ void REGPARAM2 op_4eba_23_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -22010,9 +22026,11 @@ void REGPARAM2 op_4ebb_23_ff(uae_u32 opcode) return; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -27278,9 +27296,11 @@ void REGPARAM2 op_6100_23_ff(uae_u32 opcode) return; } m68k_do_bsr_ce030(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -27304,9 +27324,11 @@ void REGPARAM2 op_6101_23_ff(uae_u32 opcode) return; } m68k_do_bsr_ce030(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -27329,9 +27351,11 @@ void REGPARAM2 op_61ff_23_ff(uae_u32 opcode) return; } m68k_do_bsr_ce030(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } diff --git a/cpuemu_24.cpp b/cpuemu_24.cpp index 113c1ce5..456ef4ab 100644 --- a/cpuemu_24.cpp +++ b/cpuemu_24.cpp @@ -19108,7 +19108,9 @@ void REGPARAM2 op_4e73_24_ff(uae_u32 opcode) return; } m68k_setpci_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return; } /* 2 0,0 B */ @@ -19142,9 +19144,11 @@ void REGPARAM2 op_4e75_24_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpci(); m68k_do_rtsi(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci_j(oldpc); @@ -19250,9 +19254,11 @@ void REGPARAM2 op_4e90_24_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 2 0,0 B */ @@ -19274,9 +19280,11 @@ void REGPARAM2 op_4ea8_24_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 4 0,0 B */ @@ -19299,9 +19307,11 @@ void REGPARAM2 op_4eb0_24_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 2 2,0 B */ @@ -19321,9 +19331,11 @@ void REGPARAM2 op_4eb8_24_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 4 0,0 B */ @@ -19343,9 +19355,11 @@ void REGPARAM2 op_4eb9_24_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 6 0,0 B */ @@ -19366,9 +19380,11 @@ void REGPARAM2 op_4eba_24_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 4 0,0 B */ @@ -19390,9 +19406,11 @@ void REGPARAM2 op_4ebb_24_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 2 2,0 B */ @@ -23954,9 +23972,11 @@ void REGPARAM2 op_6100_24_ff(uae_u32 opcode) return; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 4 0,0 B */ @@ -23977,9 +23997,11 @@ void REGPARAM2 op_6101_24_ff(uae_u32 opcode) return; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 2 0,0 B */ @@ -23999,9 +24021,11 @@ void REGPARAM2 op_61ff_24_ff(uae_u32 opcode) return; } m68k_do_bsri(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return; } /* 6 0,0 B */ @@ -42464,7 +42488,9 @@ void REGPARAM2 op_4e73_25_ff(uae_u32 opcode) return; } m68k_setpci_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return; } /* 2 0,0 B */ diff --git a/cpuemu_31.cpp b/cpuemu_31.cpp index 605363a5..23a3517a 100644 --- a/cpuemu_31.cpp +++ b/cpuemu_31.cpp @@ -21097,7 +21097,9 @@ uae_u32 REGPARAM2 op_4e73_31_ff(uae_u32 opcode) return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_setpci(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } /* 2 0,0 B */ @@ -21136,9 +21138,11 @@ uae_u32 REGPARAM2 op_4e75_31_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpci(); m68k_do_rts_mmu040(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci(oldpc); @@ -26379,9 +26383,11 @@ uae_u32 REGPARAM2 op_6100_31_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu040(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -26403,9 +26409,11 @@ uae_u32 REGPARAM2 op_6101_31_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu040(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -26426,9 +26434,11 @@ uae_u32 REGPARAM2 op_61ff_31_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu040(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } diff --git a/cpuemu_32.cpp b/cpuemu_32.cpp index 3c80e174..83b9c716 100644 --- a/cpuemu_32.cpp +++ b/cpuemu_32.cpp @@ -21749,7 +21749,9 @@ uae_u32 REGPARAM2 op_4e73_32_ff(uae_u32 opcode) return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_setpci(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } /* 2 0,0 B */ @@ -21783,9 +21785,11 @@ uae_u32 REGPARAM2 op_4e75_32_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpci(); m68k_do_rts_mmu030(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci(oldpc); @@ -27022,9 +27026,11 @@ uae_u32 REGPARAM2 op_6100_32_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu030(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -27047,9 +27053,11 @@ uae_u32 REGPARAM2 op_6101_32_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu030(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -27071,9 +27079,11 @@ uae_u32 REGPARAM2 op_61ff_32_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu030(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } diff --git a/cpuemu_33.cpp b/cpuemu_33.cpp index 2a530e87..fac5fad3 100644 --- a/cpuemu_33.cpp +++ b/cpuemu_33.cpp @@ -20041,7 +20041,9 @@ uae_u32 REGPARAM2 op_4e73_33_ff(uae_u32 opcode) return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_setpci(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } /* 2 0,0 B */ @@ -20080,9 +20082,11 @@ uae_u32 REGPARAM2 op_4e75_33_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpci(); m68k_do_rts_mmu060(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci(oldpc); @@ -25018,9 +25022,11 @@ uae_u32 REGPARAM2 op_6100_33_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu060(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -25042,9 +25048,11 @@ uae_u32 REGPARAM2 op_6101_33_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu060(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -25065,9 +25073,11 @@ uae_u32 REGPARAM2 op_61ff_33_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu060(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } diff --git a/cpuemu_34.cpp b/cpuemu_34.cpp index 1d075715..9954b74f 100644 --- a/cpuemu_34.cpp +++ b/cpuemu_34.cpp @@ -22695,7 +22695,9 @@ uae_u32 REGPARAM2 op_4e73_34_ff(uae_u32 opcode) return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_setpci(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif fill_prefetch_030_ntx(); return (3 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -22730,9 +22732,11 @@ uae_u32 REGPARAM2 op_4e75_34_ff(uae_u32 opcode) int count_cycles = 0; uaecptr oldpc = m68k_getpci(); m68k_do_rts_mmu030c(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci(oldpc); @@ -28219,9 +28223,11 @@ uae_u32 REGPARAM2 op_6100_34_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu030c(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -28244,9 +28250,11 @@ uae_u32 REGPARAM2 op_6101_34_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu030c(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } @@ -28268,9 +28276,11 @@ uae_u32 REGPARAM2 op_61ff_34_ff(uae_u32 opcode) return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } m68k_do_bsr_mmu030c(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return (1 * 4 * CYCLE_UNIT / 2 + count_cycles) * 4; } diff --git a/cpuemu_35.cpp b/cpuemu_35.cpp index 909ee9dc..29d18a72 100644 --- a/cpuemu_35.cpp +++ b/cpuemu_35.cpp @@ -24403,7 +24403,9 @@ void REGPARAM2 op_4e73_35_ff(uae_u32 opcode) return; } m68k_setpci(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif fill_prefetch_030_ntx(); return; } @@ -24441,9 +24443,11 @@ void REGPARAM2 op_4e75_35_ff(uae_u32 opcode) /* op H:1,T:0,C:8 */ uaecptr oldpc = m68k_getpci(); m68k_do_rts_mmu030c(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpci() & 1) { uaecptr faultpc = m68k_getpci(); m68k_setpci(oldpc); @@ -30373,9 +30377,11 @@ void REGPARAM2 op_6100_35_ff(uae_u32 opcode) return; } m68k_do_bsr_mmu030c(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -30399,9 +30405,11 @@ void REGPARAM2 op_6101_35_ff(uae_u32 opcode) return; } m68k_do_bsr_mmu030c(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } @@ -30424,9 +30432,11 @@ void REGPARAM2 op_61ff_35_ff(uae_u32 opcode) return; } m68k_do_bsr_mmu030c(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif fill_prefetch_030(); return; } diff --git a/cpuemu_40.cpp b/cpuemu_40.cpp index 88cc46ba..aebdfb31 100644 --- a/cpuemu_40.cpp +++ b/cpuemu_40.cpp @@ -18257,7 +18257,9 @@ uae_u32 REGPARAM2 op_4e73_40_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -18290,9 +18292,11 @@ uae_u32 REGPARAM2 op_4e75_40_ff(uae_u32 opcode) { uaecptr oldpc = m68k_getpc(); m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -18396,9 +18400,11 @@ uae_u32 REGPARAM2 op_4e90_40_ff(uae_u32 opcode) } put_long_jit(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18420,9 +18426,11 @@ uae_u32 REGPARAM2 op_4ea8_40_ff(uae_u32 opcode) } put_long_jit(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18445,9 +18453,11 @@ uae_u32 REGPARAM2 op_4eb0_40_ff(uae_u32 opcode) } put_long_jit(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18467,9 +18477,11 @@ uae_u32 REGPARAM2 op_4eb8_40_ff(uae_u32 opcode) } put_long_jit(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18489,9 +18501,11 @@ uae_u32 REGPARAM2 op_4eb9_40_ff(uae_u32 opcode) } put_long_jit(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18512,9 +18526,11 @@ uae_u32 REGPARAM2 op_4eba_40_ff(uae_u32 opcode) } put_long_jit(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18536,9 +18552,11 @@ uae_u32 REGPARAM2 op_4ebb_40_ff(uae_u32 opcode) } put_long_jit(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -22883,9 +22901,11 @@ uae_u32 REGPARAM2 op_6100_40_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -22906,9 +22926,11 @@ uae_u32 REGPARAM2 op_6101_40_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -22928,9 +22950,11 @@ uae_u32 REGPARAM2 op_61ff_40_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -40603,7 +40627,9 @@ uae_u32 REGPARAM2 op_4e73_41_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -43255,7 +43281,9 @@ uae_u32 REGPARAM2 op_4e73_42_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -43287,9 +43315,11 @@ uae_u32 REGPARAM2 op_4e75_42_ff(uae_u32 opcode) { uaecptr oldpc = m68k_getpc(); m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -43361,9 +43391,11 @@ uae_u32 REGPARAM2 op_4e90_42_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43385,9 +43417,11 @@ uae_u32 REGPARAM2 op_4ea8_42_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43410,9 +43444,11 @@ uae_u32 REGPARAM2 op_4eb0_42_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43432,9 +43468,11 @@ uae_u32 REGPARAM2 op_4eb8_42_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43454,9 +43492,11 @@ uae_u32 REGPARAM2 op_4eb9_42_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43477,9 +43517,11 @@ uae_u32 REGPARAM2 op_4eba_42_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43501,9 +43543,11 @@ uae_u32 REGPARAM2 op_4ebb_42_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43986,9 +44030,11 @@ uae_u32 REGPARAM2 op_6100_42_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -44010,9 +44056,11 @@ uae_u32 REGPARAM2 op_6101_42_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -44033,9 +44081,11 @@ uae_u32 REGPARAM2 op_61ff_42_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -45195,7 +45245,9 @@ uae_u32 REGPARAM2 op_4e73_43_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -49322,7 +49374,9 @@ uae_u32 REGPARAM2 op_4e73_44_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -49337,9 +49391,11 @@ uae_u32 REGPARAM2 op_4e75_44_ff(uae_u32 opcode) return 0; } m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -49406,9 +49462,11 @@ uae_u32 REGPARAM2 op_4eb0_44_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -49435,9 +49493,11 @@ uae_u32 REGPARAM2 op_4ebb_44_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -50395,9 +50455,11 @@ uae_u32 REGPARAM2 op_6100_44_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -50423,9 +50485,11 @@ uae_u32 REGPARAM2 op_6101_44_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -50449,9 +50513,11 @@ uae_u32 REGPARAM2 op_61ff_44_ff(uae_u32 opcode) return 0; } m68k_do_bsr(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -57277,7 +57343,9 @@ uae_u32 REGPARAM2 op_4e73_45_ff(uae_u32 opcode) return 0; } m68k_setpc_j(pc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -57292,9 +57360,11 @@ uae_u32 REGPARAM2 op_4e75_45_ff(uae_u32 opcode) return 0; } m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -57374,9 +57444,11 @@ uae_u32 REGPARAM2 op_4e90_45_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -57404,9 +57476,11 @@ uae_u32 REGPARAM2 op_4ea8_45_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -57434,9 +57508,11 @@ uae_u32 REGPARAM2 op_4eb0_45_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -57462,9 +57538,11 @@ uae_u32 REGPARAM2 op_4eb8_45_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -57490,9 +57568,11 @@ uae_u32 REGPARAM2 op_4eb9_45_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 6 0,0 B */ @@ -57519,9 +57599,11 @@ uae_u32 REGPARAM2 op_4eba_45_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -57548,9 +57630,11 @@ uae_u32 REGPARAM2 op_4ebb_45_ff(uae_u32 opcode) return 0; } put_long_jit(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -60119,9 +60203,11 @@ uae_u32 REGPARAM2 op_6100_45_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -60149,9 +60235,11 @@ uae_u32 REGPARAM2 op_6101_45_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -60177,9 +60265,11 @@ uae_u32 REGPARAM2 op_61ff_45_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -63095,9 +63185,11 @@ uae_u32 REGPARAM2 op_4e75_46_ff(uae_u32 opcode) return 0; } m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -63144,9 +63236,11 @@ uae_u32 REGPARAM2 op_4e90_46_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -63174,9 +63268,11 @@ uae_u32 REGPARAM2 op_4ea8_46_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -63204,9 +63300,11 @@ uae_u32 REGPARAM2 op_4eb0_46_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -63232,9 +63330,11 @@ uae_u32 REGPARAM2 op_4eb8_46_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -63260,9 +63360,11 @@ uae_u32 REGPARAM2 op_4eb9_46_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 6 0,0 B */ @@ -63289,9 +63391,11 @@ uae_u32 REGPARAM2 op_4eba_46_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -63318,9 +63422,11 @@ uae_u32 REGPARAM2 op_4ebb_46_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -65889,9 +65995,11 @@ uae_u32 REGPARAM2 op_6100_46_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -65919,9 +66027,11 @@ uae_u32 REGPARAM2 op_6101_46_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -65947,9 +66057,11 @@ uae_u32 REGPARAM2 op_61ff_46_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -68865,9 +68977,11 @@ uae_u32 REGPARAM2 op_4e75_47_ff(uae_u32 opcode) return 0; } m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -68914,9 +69028,11 @@ uae_u32 REGPARAM2 op_4e90_47_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -68944,9 +69060,11 @@ uae_u32 REGPARAM2 op_4ea8_47_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -68974,9 +69092,11 @@ uae_u32 REGPARAM2 op_4eb0_47_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -69002,9 +69122,11 @@ uae_u32 REGPARAM2 op_4eb8_47_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -69030,9 +69152,11 @@ uae_u32 REGPARAM2 op_4eb9_47_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 6 0,0 B */ @@ -69059,9 +69183,11 @@ uae_u32 REGPARAM2 op_4eba_47_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -69088,9 +69214,11 @@ uae_u32 REGPARAM2 op_4ebb_47_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -71659,9 +71787,11 @@ uae_u32 REGPARAM2 op_6100_47_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -71689,9 +71819,11 @@ uae_u32 REGPARAM2 op_6101_47_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -71717,9 +71849,11 @@ uae_u32 REGPARAM2 op_61ff_47_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -74635,9 +74769,11 @@ uae_u32 REGPARAM2 op_4e75_48_ff(uae_u32 opcode) return 0; } m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -74684,9 +74820,11 @@ uae_u32 REGPARAM2 op_4e90_48_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -74714,9 +74852,11 @@ uae_u32 REGPARAM2 op_4ea8_48_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -74744,9 +74884,11 @@ uae_u32 REGPARAM2 op_4eb0_48_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -74772,9 +74914,11 @@ uae_u32 REGPARAM2 op_4eb8_48_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -74800,9 +74944,11 @@ uae_u32 REGPARAM2 op_4eb9_48_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 6 0,0 B */ @@ -74829,9 +74975,11 @@ uae_u32 REGPARAM2 op_4eba_48_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -74858,9 +75006,11 @@ uae_u32 REGPARAM2 op_4ebb_48_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -77429,9 +77579,11 @@ uae_u32 REGPARAM2 op_6100_48_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -77459,9 +77611,11 @@ uae_u32 REGPARAM2 op_6101_48_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -77487,9 +77641,11 @@ uae_u32 REGPARAM2 op_61ff_48_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -80405,9 +80561,11 @@ uae_u32 REGPARAM2 op_4e75_49_ff(uae_u32 opcode) return 0; } m68k_do_rts(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -80454,9 +80612,11 @@ uae_u32 REGPARAM2 op_4e90_49_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -80484,9 +80644,11 @@ uae_u32 REGPARAM2 op_4ea8_49_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -80514,9 +80676,11 @@ uae_u32 REGPARAM2 op_4eb0_49_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -80542,9 +80706,11 @@ uae_u32 REGPARAM2 op_4eb8_49_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -80570,9 +80736,11 @@ uae_u32 REGPARAM2 op_4eb9_49_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 6 0,0 B */ @@ -80599,9 +80767,11 @@ uae_u32 REGPARAM2 op_4eba_49_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -80628,9 +80798,11 @@ uae_u32 REGPARAM2 op_4ebb_49_ff(uae_u32 opcode) return 0; } put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -83199,9 +83371,11 @@ uae_u32 REGPARAM2 op_6100_49_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -83229,9 +83403,11 @@ uae_u32 REGPARAM2 op_6101_49_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -83257,9 +83433,11 @@ uae_u32 REGPARAM2 op_61ff_49_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ diff --git a/cpuemu_50.cpp b/cpuemu_50.cpp index 1bd9816e..5143e275 100644 --- a/cpuemu_50.cpp +++ b/cpuemu_50.cpp @@ -18311,7 +18311,9 @@ uae_u32 REGPARAM2 op_4e73_50_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -18344,9 +18346,11 @@ uae_u32 REGPARAM2 op_4e75_50_ff(uae_u32 opcode) { uaecptr oldpc = m68k_getpc(); m68k_do_rtsi_jit(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -18450,9 +18454,11 @@ uae_u32 REGPARAM2 op_4e90_50_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18474,9 +18480,11 @@ uae_u32 REGPARAM2 op_4ea8_50_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18499,9 +18507,11 @@ uae_u32 REGPARAM2 op_4eb0_50_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18521,9 +18531,11 @@ uae_u32 REGPARAM2 op_4eb8_50_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18543,9 +18555,11 @@ uae_u32 REGPARAM2 op_4eb9_50_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18566,9 +18580,11 @@ uae_u32 REGPARAM2 op_4eba_50_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -18590,9 +18606,11 @@ uae_u32 REGPARAM2 op_4ebb_50_ff(uae_u32 opcode) } x_put_long(m68k_areg(regs, 7) - 4, nextpc); m68k_areg(regs, 7) -= 4; + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -22937,9 +22955,11 @@ uae_u32 REGPARAM2 op_6100_50_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -22960,9 +22980,11 @@ uae_u32 REGPARAM2 op_6101_50_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -22982,9 +23004,11 @@ uae_u32 REGPARAM2 op_61ff_50_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -40675,7 +40699,9 @@ uae_u32 REGPARAM2 op_4e73_51_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -43345,7 +43371,9 @@ uae_u32 REGPARAM2 op_4e73_52_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -43377,9 +43405,11 @@ uae_u32 REGPARAM2 op_4e75_52_ff(uae_u32 opcode) { uaecptr oldpc = m68k_getpc(); m68k_do_rtsi_jit(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -43451,9 +43481,11 @@ uae_u32 REGPARAM2 op_4e90_52_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43475,9 +43507,11 @@ uae_u32 REGPARAM2 op_4ea8_52_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43500,9 +43534,11 @@ uae_u32 REGPARAM2 op_4eb0_52_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43522,9 +43558,11 @@ uae_u32 REGPARAM2 op_4eb8_52_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43544,9 +43582,11 @@ uae_u32 REGPARAM2 op_4eb9_52_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43567,9 +43607,11 @@ uae_u32 REGPARAM2 op_4eba_52_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -43591,9 +43633,11 @@ uae_u32 REGPARAM2 op_4ebb_52_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -44076,9 +44120,11 @@ uae_u32 REGPARAM2 op_6100_52_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -44100,9 +44146,11 @@ uae_u32 REGPARAM2 op_6101_52_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -44123,9 +44171,11 @@ uae_u32 REGPARAM2 op_61ff_52_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif if(regs.t0) check_t0_trace(); return 0; } @@ -45285,7 +45335,9 @@ uae_u32 REGPARAM2 op_4e73_53_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -49412,7 +49464,9 @@ uae_u32 REGPARAM2 op_4e73_54_ff(uae_u32 opcode) return 0; } m68k_setpc_j(newpc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -49427,9 +49481,11 @@ uae_u32 REGPARAM2 op_4e75_54_ff(uae_u32 opcode) return 0; } m68k_do_rtsi_jit(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -49496,9 +49552,11 @@ uae_u32 REGPARAM2 op_4eb0_54_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -49525,9 +49583,11 @@ uae_u32 REGPARAM2 op_4ebb_54_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -50485,9 +50545,11 @@ uae_u32 REGPARAM2 op_6100_54_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -50513,9 +50575,11 @@ uae_u32 REGPARAM2 op_6101_54_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -50539,9 +50603,11 @@ uae_u32 REGPARAM2 op_61ff_54_ff(uae_u32 opcode) return 0; } m68k_do_bsri_jit(nextpc, s); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -57367,7 +57433,9 @@ uae_u32 REGPARAM2 op_4e73_55_ff(uae_u32 opcode) return 0; } m68k_setpc_j(pc); + #ifdef DEBUGGER branch_stack_pop_rte(oldpc); + #endif return 0; } /* 2 0,0 B */ @@ -57382,9 +57450,11 @@ uae_u32 REGPARAM2 op_4e75_55_ff(uae_u32 opcode) return 0; } m68k_do_rtsi_jit(); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_pop_rts(oldpc); } + #endif if (m68k_getpc() & 1) { uaecptr faultpc = m68k_getpc(); m68k_setpc_j(oldpc); @@ -57464,9 +57534,11 @@ uae_u32 REGPARAM2 op_4e90_55_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -57494,9 +57566,11 @@ uae_u32 REGPARAM2 op_4ea8_55_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -57524,9 +57598,11 @@ uae_u32 REGPARAM2 op_4eb0_55_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -57552,9 +57628,11 @@ uae_u32 REGPARAM2 op_4eb8_55_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -57580,9 +57658,11 @@ uae_u32 REGPARAM2 op_4eb9_55_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 6 0,0 B */ @@ -57609,9 +57689,11 @@ uae_u32 REGPARAM2 op_4eba_55_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -57638,9 +57720,11 @@ uae_u32 REGPARAM2 op_4ebb_55_ff(uae_u32 opcode) return 0; } x_put_long(m68k_areg(regs, 7), nextpc); + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 4,0 B */ @@ -60209,9 +60293,11 @@ uae_u32 REGPARAM2 op_6100_55_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 4 0,0 B */ @@ -60239,9 +60325,11 @@ uae_u32 REGPARAM2 op_6101_55_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ @@ -60267,9 +60355,11 @@ uae_u32 REGPARAM2 op_61ff_55_ff(uae_u32 opcode) exception3_read_prefetch(opcode, addr); return 0; } + #ifdef DEBUGGER if (debugmem_trace) { branch_stack_push(oldpc, nextpc); } + #endif return 0; } /* 2 0,0 B */ diff --git a/custom.cpp b/custom.cpp index e2ab9097..6a3cbacd 100644 --- a/custom.cpp +++ b/custom.cpp @@ -693,15 +693,16 @@ static void check_nocustom(void) } } -STATIC_INLINE int ecsshres(void) +STATIC_INLINE bool ecsshres(void) { return bplcon0_res == RES_SUPERHIRES && ecs_denise && !aga_mode; } -STATIC_INLINE int nodraw(void) +STATIC_INLINE bool nodraw(void) { struct amigadisplay *ad = &adisplays[0]; - return !currprefs.cpu_memory_cycle_exact && ad->framecnt != 0; + bool nd = !currprefs.cpu_memory_cycle_exact && ad->framecnt != 0; + return nd; } STATIC_INLINE int diw_to_hpos(int diw) @@ -1615,14 +1616,11 @@ static void decide_hdiw_check(int hpos, int start_diw_hpos, int end_diw_hpos) decide_hdiw_check_stop(start_diw_hpos, end_diw_hpos); } // check also hblank if there is chance it has been moved to visible area - static bool xcv = true; - if (xcv && 1) { - if (hstrobe_conflict || vhposw_modified) { - decide_hdiw_blank_check_start(hpos, start_diw_hpos, end_diw_hpos); - } - if (hdiwstate_blank == diw_states::DIW_waiting_stop) { - decide_hdiw_blank_check_stop(hpos, start_diw_hpos, end_diw_hpos); - } + if (hstrobe_conflict || vhposw_modified) { + decide_hdiw_blank_check_start(hpos, start_diw_hpos, end_diw_hpos); + } + if (hdiwstate_blank == diw_states::DIW_waiting_stop) { + decide_hdiw_blank_check_stop(hpos, start_diw_hpos, end_diw_hpos); } hdiw_denisecounter_abs += end_diw_hpos - start_diw_hpos; } @@ -13010,6 +13008,7 @@ static void hsync_handler_pre(bool onvsync) hdiw_counter += maxhpos * 2; if (!hstrobe_conflict) { + // OCS Denise freerunning horizontal counter if (!ecs_denise && vpos == get_equ_vblank_endline() - 1) { hdiw_counter++; } diff --git a/drawing.cpp b/drawing.cpp index cc25a59f..9990f132 100644 --- a/drawing.cpp +++ b/drawing.cpp @@ -572,7 +572,7 @@ static void set_vblanking_limits(void) bool hardwired = true; if (ecs_agnus) { hardwired = (new_beamcon0 & BEAMCON0_VARVBEN) == 0; - // ECS Denise with exhblank: always use thisline_decision.vb blanking method + // ECS Denise with exthblank: always use thisline_decision.vb blanking method if (ecs_denise && !aga_mode && exthblank) { hardwired = false; } diff --git a/od-win32/win32.h b/od-win32/win32.h index 2af3883e..b07b2fe1 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("Beta 6") +#define WINUAEBETA _T("Beta 7") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2023, 10, 21) +#define WINUAEDATE MAKEBD(2023, 11, 4) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index de6e3a67..a00f98d4 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,15 @@ +Beta 7: + +- Fixed on screen keyboard transparency in D3D9/11 modes. It previously only worked in D3D11 HDR mode. +- Ignore "Main window always on top" misc setting in D3D11 mode. D3D10+ windowed mode is not possible if always on top window flag is set. Previously this caused fallback to D3D9 mode. This does not make sense in my opinion and it does not seem to be mentioned in documentation but CreateSwapChainForHwnd() fails if it is set. Debug D3D11 DLLs also report that it failed due to unsupported window flag. +- Do not do unnecessary graphics setup reset if RTG mode changed but only parameter that changed was color depth and mode is not fullscreen with match depth if possible enabled. (b1) +- If D3D11 screen init decided that new requested mode has same parameters as old mode, skip also other unnecessary graphics reinitializations. +- Do not enable temporary frameskip in warp mode if debug overscan mode is enabled, it can cause random glitches. Warp mode normally enables frameskip in non-ce modes. +- Ignore backwards or same line vertical VPOSW writes if it was CPU write and CPU emulation is not in accurate mode. This basically reverts VPOSW updates to pre-5.0 behavior when CPU is not at least in memory cycle exact mode, supporting only usual "fake NTSC" modes. At least AR3 does stupid things with VPOSW that can't work if CPU is not slow enough. +- Added generic support for emulation of IDE controllers that have in-circuit programmable flash/EEPROM chip. +- Flash/EEPROM emulation updates (support write protection enable/disable commands, parallel EEPROM partial writes supported) + Beta 6: - On screen Amiga keyboard. -- 2.47.3