diff --git a/InstructionSets/M68k/Sequence.cpp b/InstructionSets/M68k/Sequence.cpp index e6cd93588..dc45925bd 100644 --- a/InstructionSets/M68k/Sequence.cpp +++ b/InstructionSets/M68k/Sequence.cpp @@ -23,6 +23,43 @@ template uint16_t Sequence::steps_for(Operation operation) { // This handles a NOP, and not much else. default: return 0; + // + // No operands that require fetching. + // + case Operation::LEA: + return Steps< + Step::Perform + >::value; + + // + // No logic, custom bus activity required. + // + case Operation::PEA: + return Steps< + Step::SpecificBusActivity + >::value; + + // + // Single operand, read. + // + case Operation::MOVEtoSR: case Operation::MOVEtoCCR: case Operation::MOVEtoUSP: + case Operation::ORItoSR: case Operation::ORItoCCR: + case Operation::ANDItoSR: case Operation::ANDItoCCR: + case Operation::EORItoSR: case Operation::EORItoCCR: + return Steps< + Step::FetchOp1, + Step::Perform + >::value; + + // + // Single operand, write. + // + case Operation::MOVEfromSR: case Operation::MOVEfromUSP: + return Steps< + Step::Perform, + Step::StoreOp1 + >::value; + // // Single operand, read-modify-write. //