From e6dc2e0d3111109c71b7e37a0973f518cf3d0095 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 25 Apr 2022 11:49:14 -0400 Subject: [PATCH] Add EXG, EXT. --- InstructionSets/68k/Decoder.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/InstructionSets/68k/Decoder.cpp b/InstructionSets/68k/Decoder.cpp index e212bbf14..bffdc8e16 100644 --- a/InstructionSets/68k/Decoder.cpp +++ b/InstructionSets/68k/Decoder.cpp @@ -320,6 +320,29 @@ template uint32_t Predecoder::invalid_operands() { AllModesNoAn, Dn >::value; + + case EXGRtoR: + return ~TwoOperandMask< + Dn, + Dn + >::value; + + case EXGAtoA: + return ~TwoOperandMask< + An, + An + >::value; + + case EXGRtoA: + return ~TwoOperandMask< + Dn, + An + >::value; + + case OpT(Operation::EXTbtow): case OpT(Operation::EXTwtol): + return ~OneOperandMask< + Dn + >::value; } } @@ -366,6 +389,8 @@ template Preinstruction Predecoder::validated case OpT(Operation::EORb): case OpT(Operation::EORw): case OpT(Operation::EORl): case EORIb: case EORIw: case EORIl: case OpT(Operation::EORItoCCR): + case EXGRtoR: case EXGAtoA: case EXGRtoA: + case OpT(Operation::EXTbtow): case OpT(Operation::EXTwtol): case OpT(Operation::NBCD): { const auto invalid = invalid_operands(); const auto observed = operand_mask(original);