From 0818fd78286491e62633d4d57e0edc4ebe75d0b6 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 7 May 2022 21:29:12 -0400 Subject: [PATCH] Ensure no status updates fall through the cracks. --- .../M68k/Implementation/PerformImplementation.hpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/InstructionSets/M68k/Implementation/PerformImplementation.hpp b/InstructionSets/M68k/Implementation/PerformImplementation.hpp index c2d3e6cc4..e03540a98 100644 --- a/InstructionSets/M68k/Implementation/PerformImplementation.hpp +++ b/InstructionSets/M68k/Implementation/PerformImplementation.hpp @@ -437,6 +437,7 @@ template < case Operation::MOVEtoSR: status.set_status(src.w); + flow_controller.did_update_status(); break; case Operation::MOVEfromSR: @@ -467,10 +468,13 @@ template < #define apply(op, func) { \ auto sr = status.status(); \ - op(sr, src.w); \ - status.func(sr); \ + op(sr, src.w); \ + func(sr); \ } +#define set_status(x) status.set_status(x); flow_controller.did_update_status() +#define set_ccr(x) status.set_ccr(x) + #define apply_op_sr(op) apply(op, set_status) #define apply_op_ccr(op) apply(op, set_ccr) @@ -484,6 +488,8 @@ template < #undef apply_op_ccr #undef apply_op_sr +#undef set_ccr +#undef set_status #undef apply #undef eor_op #undef or_op @@ -1240,6 +1246,7 @@ template < case Operation::STOP: status.set_status(src.w); + flow_controller.did_update_status(); flow_controller.stop(); break;