diff --git a/InstructionSets/68k/Decoder.cpp b/InstructionSets/68k/Decoder.cpp index 74cc72c9a..ad48bd3cc 100644 --- a/InstructionSets/68k/Decoder.cpp +++ b/InstructionSets/68k/Decoder.cpp @@ -408,6 +408,16 @@ template Preinstruction Predecoder::validated case AddressingMode::None: return Preinstruction(); } + + case OpT(Operation::DIVU): case OpT(Operation::DIVS): + case OpT(Operation::MULU): case OpT(Operation::MULS): + switch(original.mode<0>()) { + default: return original; + + case AddressingMode::AddressRegisterDirect: + case AddressingMode::None: + return Preinstruction(); + } } } diff --git a/OSBindings/Mac/Clock SignalTests/m68kDecoderTests.mm b/OSBindings/Mac/Clock SignalTests/m68kDecoderTests.mm index 21a52bcdd..01397129c 100644 --- a/OSBindings/Mac/Clock SignalTests/m68kDecoderTests.mm +++ b/OSBindings/Mac/Clock SignalTests/m68kDecoderTests.mm @@ -241,12 +241,14 @@ template NSString *operand(Preinstruction instruction, uint16_t opco // case Operation::ORw: instruction = @"OR.w"; break; // case Operation::ORl: instruction = @"OR.l"; break; + case Operation::MULU: instruction = @"MULU"; break; + case Operation::MULS: instruction = @"MULS"; break; + case Operation::DIVU: instruction = @"DIVU"; break; + case Operation::DIVS: instruction = @"DIVS"; break; + /* TODO: - MULU, MULS, - DIVU, DIVS, - RTE, RTR, TRAP, TRAPV,