diff --git a/Processors/68000/Implementation/68000Implementation.hpp b/Processors/68000/Implementation/68000Implementation.hpp index c077afe0a..92fc359b6 100644 --- a/Processors/68000/Implementation/68000Implementation.hpp +++ b/Processors/68000/Implementation/68000Implementation.hpp @@ -332,6 +332,9 @@ template void Proces active_program_ = nullptr; active_micro_op_ = short_exception_micro_ops_; populate_trap_steps(8, status()); + + // The location of the failed instruction is what should end up on the stack. + program_counter_.full -= 4; } else { // Standard instruction dispatch. active_program_ = &instructions[decoded_instruction_.full];