diff --git a/InstructionSets/68k/Decoder.cpp b/InstructionSets/68k/Decoder.cpp index db3cd618e..5c9cc3907 100644 --- a/InstructionSets/68k/Decoder.cpp +++ b/InstructionSets/68k/Decoder.cpp @@ -345,6 +345,32 @@ template Preinstruction Predecoder::validated case AddressingMode::None: return Preinstruction(); } + + case MOVEMtoMw: case MOVEMtoMl: + switch(original.mode<1>()) { + default: return original; + + case AddressingMode::DataRegisterDirect: + case AddressingMode::AddressRegisterDirect: + case AddressingMode::AddressRegisterIndirectWithPostincrement: + case AddressingMode::ImmediateData: + case AddressingMode::ProgramCounterIndirectWithDisplacement: + case AddressingMode::ProgramCounterIndirectWithIndex8bitDisplacement: + case AddressingMode::None: + return Preinstruction(); + } + + case MOVEMtoRw: case MOVEMtoRl: + switch(original.mode<0>()) { + default: return original; + + case AddressingMode::DataRegisterDirect: + case AddressingMode::AddressRegisterDirect: + case AddressingMode::AddressRegisterIndirectWithPredecrement: + case AddressingMode::ImmediateData: + case AddressingMode::None: + return Preinstruction(); + } } }