diff --git a/InstructionSets/68k/Instruction.hpp b/InstructionSets/68k/Instruction.hpp index 00f9b99b7..b4f086aa5 100644 --- a/InstructionSets/68k/Instruction.hpp +++ b/InstructionSets/68k/Instruction.hpp @@ -102,14 +102,20 @@ enum class Operation: uint8_t { template constexpr bool requires_supervisor(Operation op) { switch(op) { - case Operation::ORItoSR: case Operation::ANDItoSR: case Operation::EORItoSR: + case Operation::MOVEfromSR: + if constexpr (model == Model::M68000) { + return false; + } + [[fallthrough]]; + case Operation::ORItoSR: case Operation::ANDItoSR: + case Operation::EORItoSR: case Operation::RTE: + case Operation::RESET: case Operation::STOP: + case Operation::MOVEtoUSP: case Operation::MOVEfromUSP: return true; default: return false; } - - // TODO: plenty more. } constexpr int size(Operation operation) {