68kcounter
Version:
68000 ASM source code cycle counter
436 lines • 58.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.baseTimes = exports.lookupTimes = void 0;
const syntax_1 = require("../syntax");
const { BCC, DBCC, SCC, SHIFT } = syntax_1.mnemonicGroups;
const { B, W, L } = syntax_1.Qualifiers;
const RegList = [syntax_1.AddressingModes.RegList, syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.An];
// Effective Address Calculation Times:
// prettier-ignore
exports.lookupTimes = {
// B/W L
// Register:
[syntax_1.AddressingModes.Dn]: [[0, 0, 0], [0, 0, 0]],
[syntax_1.AddressingModes.An]: [[0, 0, 0], [0, 0, 0]],
// Memory:
[syntax_1.AddressingModes.AnIndir]: [[4, 1, 0], [8, 2, 0]],
[syntax_1.AddressingModes.AnPostInc]: [[4, 1, 0], [8, 2, 0]],
[syntax_1.AddressingModes.AnPreDec]: [[6, 1, 0], [10, 2, 0]],
[syntax_1.AddressingModes.AnDisp]: [[8, 2, 0], [12, 3, 0]],
[syntax_1.AddressingModes.AnDispIx]: [[10, 2, 0], [14, 3, 0]],
[syntax_1.AddressingModes.AbsW]: [[8, 2, 0], [12, 3, 0]],
[syntax_1.AddressingModes.AbsL]: [[12, 3, 0], [16, 4, 0]],
[syntax_1.AddressingModes.PcDisp]: [[8, 2, 0], [12, 3, 0]],
[syntax_1.AddressingModes.PcDispIx]: [[10, 2, 0], [14, 3, 0]],
// Immediate:
[syntax_1.AddressingModes.Imm]: [[4, 1, 0], [8, 2, 0]],
};
// prettier-ignore
exports.baseTimes = [
// Mnemonics: Sizes: Operands: Timings: N Multipliers:
//----------------------------------------------------------------------------------------------------------------
// MOVE INSTRUCTION EXECUTION TIMES:
// Move Byte and Word Instruction Execution Times:
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.An], [[4, 1, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnIndir], [[8, 1, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnPostInc], [[8, 1, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnPreDec], [[8, 1, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnDisp], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnDispIx], [[14, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AbsW], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AbsL], [[16, 3, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.An], [[4, 1, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnIndir], [[8, 1, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnPostInc], [[8, 1, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnPreDec], [[8, 1, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnDisp], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnDispIx], [[14, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AbsW], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AbsL], [[16, 3, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.Dn], [[8, 2, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.An], [[8, 2, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnIndir], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnPostInc], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnPreDec], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnDisp], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnDispIx], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AbsW], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AbsL], [[20, 4, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.Dn], [[8, 2, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.An], [[8, 2, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnIndir], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnPostInc], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnPreDec], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnDisp], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnDispIx], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AbsW], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AbsL], [[20, 4, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.Dn], [[10, 2, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.An], [[10, 2, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnIndir], [[14, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnPostInc], [[14, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnPreDec], [[14, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnDisp], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnDispIx], [[20, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AbsW], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AbsL], [[22, 4, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.Dn], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.An], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnIndir], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnPostInc], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnPreDec], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnDisp], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnDispIx], [[22, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AbsW], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AbsL], [[24, 5, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.Dn], [[14, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.An], [[14, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnIndir], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnPostInc], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnPreDec], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnDisp], [[22, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnDispIx], [[24, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AbsW], [[22, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AbsL], [[26, 5, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.Dn], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.An], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnIndir], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnPostInc], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnPreDec], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnDisp], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnDispIx], [[22, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AbsW], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AbsL], [[24, 5, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.Dn], [[16, 4, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.An], [[16, 4, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnIndir], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnPostInc], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnPreDec], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnDisp], [[24, 5, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnDispIx], [[26, 5, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AbsW], [[24, 5, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AbsL], [[28, 6, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.Dn], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.An], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnIndir], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnPostInc], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnPreDec], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnDisp], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnDispIx], [[22, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AbsW], [[20, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AbsL], [[24, 5, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.Dn], [[14, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.An], [[14, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnIndir], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnPostInc], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnPreDec], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnDisp], [[22, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnDispIx], [[24, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AbsW], [[22, 4, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AbsL], [[26, 5, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[8, 2, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.An], [[8, 2, 0]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnIndir], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnPostInc], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnPreDec], [[12, 2, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnDisp], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnDispIx], [[18, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AbsW], [[16, 3, 1]]],
[[syntax_1.Mnemonics.MOVE], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AbsL], [[20, 4, 1]]],
//----------------------------------------------------------------------------------------------------------------
// Move Long Instruction Execution Times:
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.An], [[4, 1, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnIndir], [[12, 1, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnPostInc], [[12, 1, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnPreDec], [[12, 1, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnDisp], [[16, 2, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AnDispIx], [[18, 2, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AbsW], [[16, 2, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AbsL], [[20, 3, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.An], [[4, 1, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnIndir], [[12, 1, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnPostInc], [[12, 1, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnPreDec], [[12, 1, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnDisp], [[16, 2, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AnDispIx], [[18, 2, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AbsW], [[16, 2, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.An, syntax_1.AddressingModes.AbsL], [[20, 3, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.Dn], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.An], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnIndir], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnPostInc], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnPreDec], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnDisp], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AnDispIx], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AbsW], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.AbsL], [[28, 5, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.Dn], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.An], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnIndir], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnPostInc], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnPreDec], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnDisp], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AnDispIx], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AbsW], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPostInc, syntax_1.AddressingModes.AbsL], [[28, 5, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.Dn], [[14, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.An], [[14, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnIndir], [[22, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnPostInc], [[22, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnPreDec], [[22, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnDisp], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AnDispIx], [[28, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AbsW], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnPreDec, syntax_1.AddressingModes.AbsL], [[30, 5, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.Dn], [[16, 4, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.An], [[16, 4, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnIndir], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnPostInc], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnPreDec], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnDisp], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AnDispIx], [[30, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AbsW], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.AbsL], [[32, 6, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.Dn], [[18, 4, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.An], [[18, 4, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnIndir], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnPostInc], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnPreDec], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnDisp], [[30, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AnDispIx], [[32, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AbsW], [[30, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.AbsL], [[34, 6, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.Dn], [[16, 4, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.An], [[16, 4, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnIndir], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnPostInc], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnPreDec], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnDisp], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AnDispIx], [[30, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AbsW], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.AbsL], [[32, 6, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.Dn], [[20, 5, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.An], [[20, 5, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnIndir], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnPostInc], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnPreDec], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnDisp], [[32, 6, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AnDispIx], [[34, 6, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AbsW], [[32, 6, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.AbsL], [[36, 7, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.Dn], [[16, 4, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.An], [[16, 4, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnIndir], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnPostInc], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnPreDec], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnDisp], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AnDispIx], [[30, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AbsW], [[28, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.AbsL], [[32, 6, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.Dn], [[18, 4, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.An], [[18, 4, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnIndir], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnPostInc], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnPreDec], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnDisp], [[30, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AnDispIx], [[32, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AbsW], [[30, 5, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.AbsL], [[34, 6, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE, syntax_1.Mnemonics.MOVEA], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.An], [[12, 3, 0]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnIndir], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnPostInc], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnPreDec], [[20, 3, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnDisp], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AnDispIx], [[26, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AbsW], [[24, 4, 2]]],
[[syntax_1.Mnemonics.MOVE], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.AbsL], [[28, 5, 2]]],
//----------------------------------------------------------------------------------------------------------------
// STANDARD INSTRUCTION EXECUTION TIMES:
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.SUB], [B, W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.An], [[8, 1, 0]]],
[[syntax_1.Mnemonics.ADDA, syntax_1.Mnemonics.SUBA], [W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.An], [[8, 1, 0]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.SUB], [B, W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.SUB], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[8, 1, 1]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.ADDA, syntax_1.Mnemonics.SUB, syntax_1.Mnemonics.SUBA], [L], [syntax_1.addressingModeGroups.M, syntax_1.AddressingModes.An], [[6, 1, 0]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.SUB], [L], [syntax_1.addressingModeGroups.M, syntax_1.AddressingModes.Dn], [[6, 1, 0]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.ADDA, syntax_1.Mnemonics.SUB, syntax_1.Mnemonics.SUBA], [L], [syntax_1.addressingModeGroups.DI, syntax_1.AddressingModes.An], [[8, 1, 0]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.SUB], [L], [syntax_1.addressingModeGroups.DI, syntax_1.AddressingModes.Dn], [[8, 1, 0]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.SUB], [L], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[12, 1, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.OR], [B, W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.OR], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[8, 1, 1]]],
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.OR], [L], [syntax_1.addressingModeGroups.M, syntax_1.AddressingModes.Dn], [[6, 1, 0]]],
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.OR], [L], [syntax_1.addressingModeGroups.DI, syntax_1.AddressingModes.Dn], [[8, 1, 0]]],
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.OR], [L], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[12, 1, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.EOR], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.EOR], [B, W], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[8, 1, 1]]],
[[syntax_1.Mnemonics.EOR], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[8, 1, 0]]],
[[syntax_1.Mnemonics.EOR], [L], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[12, 1, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.CMP], [B, W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.An], [[6, 1, 0]]],
[[syntax_1.Mnemonics.CMPA], [W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.An], [[6, 1, 0]]],
[[syntax_1.Mnemonics.CMP, syntax_1.Mnemonics.CMPA], [L], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.An], [[6, 1, 0]]],
[[syntax_1.Mnemonics.CMP], [L], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.Dn], [[6, 1, 0]]],
[[syntax_1.Mnemonics.CMP], [B, W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.DIVS], [W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.Dn], [[158, 1, 0]]],
[[syntax_1.Mnemonics.DIVU], [W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.Dn], [[140, 1, 0]]],
[[syntax_1.Mnemonics.MULS, syntax_1.Mnemonics.MULU], [W], [syntax_1.addressingModeGroups.EA, syntax_1.AddressingModes.Dn], [[38, 1, 0]], [2, 0, 0]],
//----------------------------------------------------------------------------------------------------------------
// Immediate Instruction Execution Times:
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.ADDI, syntax_1.Mnemonics.SUB, syntax_1.Mnemonics.SUBI], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[8, 2, 0]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.ADDI, syntax_1.Mnemonics.SUB, syntax_1.Mnemonics.SUBI], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[12, 2, 1]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.ADDI, syntax_1.Mnemonics.SUB, syntax_1.Mnemonics.SUBI], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[16, 3, 0]]],
[[syntax_1.Mnemonics.ADD, syntax_1.Mnemonics.ADDI, syntax_1.Mnemonics.SUB, syntax_1.Mnemonics.SUBI], [L], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[20, 3, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.ADDQ, syntax_1.Mnemonics.SUBQ], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.ADDQ, syntax_1.Mnemonics.SUBQ], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.An], [[8, 1, 0]]],
[[syntax_1.Mnemonics.ADDQ, syntax_1.Mnemonics.SUBQ], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[8, 1, 1]]],
[[syntax_1.Mnemonics.ADDQ, syntax_1.Mnemonics.SUBQ], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[8, 1, 0]]],
[[syntax_1.Mnemonics.ADDQ, syntax_1.Mnemonics.SUBQ], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.An], [[8, 1, 0]]],
[[syntax_1.Mnemonics.ADDQ, syntax_1.Mnemonics.SUBQ], [L], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[12, 1, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.ANDI, syntax_1.Mnemonics.OR, syntax_1.Mnemonics.ORI], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[8, 2, 0]]],
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.ANDI, syntax_1.Mnemonics.OR, syntax_1.Mnemonics.ORI], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[12, 2, 1]]],
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.ANDI, syntax_1.Mnemonics.OR, syntax_1.Mnemonics.ORI], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[16, 3, 0]]],
[[syntax_1.Mnemonics.AND, syntax_1.Mnemonics.ANDI, syntax_1.Mnemonics.OR, syntax_1.Mnemonics.ORI], [L], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[20, 3, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.CMP, syntax_1.Mnemonics.CMPI], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[8, 2, 0]]],
[[syntax_1.Mnemonics.CMP, syntax_1.Mnemonics.CMPI], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[8, 2, 0]]],
[[syntax_1.Mnemonics.CMP, syntax_1.Mnemonics.CMPI], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[14, 3, 0]]],
[[syntax_1.Mnemonics.CMP, syntax_1.Mnemonics.CMPI], [L], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[12, 3, 0]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.EOR, syntax_1.Mnemonics.EORI], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[8, 2, 0]]],
[[syntax_1.Mnemonics.EOR, syntax_1.Mnemonics.EORI], [B, W], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[12, 2, 1]]],
[[syntax_1.Mnemonics.EOR, syntax_1.Mnemonics.EORI], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[16, 3, 0]]],
[[syntax_1.Mnemonics.EOR, syntax_1.Mnemonics.EORI], [L], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[20, 3, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVEQ], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
//----------------------------------------------------------------------------------------------------------------
// SINGLE OPERAND INSTRUCTION EXECUTION TIMES: Taken Not taken:
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.CLR, syntax_1.Mnemonics.NOT, syntax_1.Mnemonics.NEG], [B, W], [syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.CLR, syntax_1.Mnemonics.NOT, syntax_1.Mnemonics.NEG], [B, W], [syntax_1.addressingModeGroups.M], [[8, 1, 1]]],
[[syntax_1.Mnemonics.CLR, syntax_1.Mnemonics.NOT, syntax_1.Mnemonics.NEG], [L], [syntax_1.AddressingModes.Dn], [[6, 1, 0]]],
[[syntax_1.Mnemonics.CLR, syntax_1.Mnemonics.NOT, syntax_1.Mnemonics.NEG], [L], [syntax_1.addressingModeGroups.M], [[12, 1, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.NBCD], [B], [syntax_1.AddressingModes.Dn], [[6, 1, 0]]],
[[syntax_1.Mnemonics.NBCD], [B], [syntax_1.addressingModeGroups.M], [[8, 1, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.NEGX], [B, W], [syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.NEGX], [B, W], [syntax_1.addressingModeGroups.M], [[8, 1, 1]]],
[[syntax_1.Mnemonics.NEGX], [L], [syntax_1.AddressingModes.Dn], [[6, 1, 0]]],
[[syntax_1.Mnemonics.NEGX], [L], [syntax_1.addressingModeGroups.M], [[12, 1, 2]]],
//----------------------------------------------------------------------------------------------------------------
[SCC, [B], [syntax_1.AddressingModes.Dn], [[4, 1, 0], [6, 1, 0]]],
[SCC, [B], [syntax_1.addressingModeGroups.M], [[8, 1, 1], [8, 1, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.TAS], [B], [syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.TAS], [B], [syntax_1.addressingModeGroups.M], [[10, 1, 1]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.TST], [B, W, L], [syntax_1.AddressingModes.Dn], [[4, 1, 0]]],
[[syntax_1.Mnemonics.TST], [B, W, L], [syntax_1.addressingModeGroups.M], [[4, 1, 0]]],
//----------------------------------------------------------------------------------------------------------------
// SHIFT/ROTATE INSTRUCTION EXECUTION TIMES:
//----------------------------------------------------------------------------------------------------------------
[SHIFT, [B, W], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[6, 1, 0]], [2, 0, 0]],
[SHIFT, [B, W], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[8, 1, 1]], [2, 0, 0]],
[SHIFT, [B, W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[6, 1, 0]], [2, 0, 0]],
[SHIFT, [B, W], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[8, 1, 1]], [2, 0, 0]],
[SHIFT, [B, W], [syntax_1.AddressingModes.Dn], [[8, 1, 0]],],
[SHIFT, [B, W], [syntax_1.addressingModeGroups.M], [[8, 1, 1]],],
[SHIFT, [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[8, 1, 0]], [2, 0, 0]],
[SHIFT, [L], [syntax_1.AddressingModes.Dn], [[10, 1, 0]],],
[SHIFT, [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[8, 1, 0]], [2, 0, 0]],
//----------------------------------------------------------------------------------------------------------------
// BIT MANIPULATION INSTRUCTION EXECUTION TIMES:
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.BCHG, syntax_1.Mnemonics.BSET, syntax_1.Mnemonics.BCLR], [B], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[8, 1, 1]]],
[[syntax_1.Mnemonics.BCHG, syntax_1.Mnemonics.BSET, syntax_1.Mnemonics.BCLR], [B], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[12, 2, 1]]],
[[syntax_1.Mnemonics.BCHG, syntax_1.Mnemonics.BSET], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[8, 1, 0]]],
[[syntax_1.Mnemonics.BCHG, syntax_1.Mnemonics.BSET], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[12, 2, 0]]],
[[syntax_1.Mnemonics.BCLR], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[10, 1, 0]]],
[[syntax_1.Mnemonics.BCLR], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[14, 2, 0]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.BTST], [B], [syntax_1.AddressingModes.Dn, syntax_1.addressingModeGroups.M], [[4, 1, 0]]],
[[syntax_1.Mnemonics.BTST], [B], [syntax_1.AddressingModes.Imm, syntax_1.addressingModeGroups.M], [[8, 2, 0]]],
[[syntax_1.Mnemonics.BTST], [B], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Imm], [[10, 2, 0]]],
[[syntax_1.Mnemonics.BTST], [L], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.Dn], [[6, 1, 0]]],
[[syntax_1.Mnemonics.BTST], [L], [syntax_1.AddressingModes.Imm, syntax_1.AddressingModes.Dn], [[10, 2, 0]]],
//----------------------------------------------------------------------------------------------------------------
// CONDITIONAL INSTRUCTION EXECUTION TIMES: Taken: Not taken: Expired:
//----------------------------------------------------------------------------------------------------------------
[BCC, [B], [syntax_1.AddressingModes.AbsL], [[10, 2, 0], [8, 1, 0]]],
[BCC, [W], [syntax_1.AddressingModes.AbsL], [[10, 2, 0], [12, 2, 0]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.BRA], [B, W], [syntax_1.AddressingModes.AbsL], [[10, 2, 0]]],
[[syntax_1.Mnemonics.BSR], [B, W], [syntax_1.AddressingModes.AbsL], [[18, 2, 2]]],
//----------------------------------------------------------------------------------------------------------------
[DBCC, [W], [syntax_1.AddressingModes.Dn, syntax_1.AddressingModes.AbsL], [[10, 2, 0], [12, 2, 0], [14, 3, 0]]],
//----------------------------------------------------------------------------------------------------------------
// JMP, JSR, LEA, PEA, AND MOVEM INSTRUCTION EXECUTION TIMES:
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.JMP], [null], [syntax_1.AddressingModes.AnIndir], [[8, 2, 0]]],
[[syntax_1.Mnemonics.JMP], [null], [syntax_1.AddressingModes.AnDisp], [[10, 2, 0]]],
[[syntax_1.Mnemonics.JMP], [null], [syntax_1.AddressingModes.AnDispIx], [[14, 2, 0]]],
[[syntax_1.Mnemonics.JMP], [null], [syntax_1.AddressingModes.AbsW], [[10, 2, 0]]],
[[syntax_1.Mnemonics.JMP], [null], [syntax_1.AddressingModes.AbsL], [[12, 3, 0]]],
[[syntax_1.Mnemonics.JMP], [null], [syntax_1.AddressingModes.PcDisp], [[10, 2, 0]]],
[[syntax_1.Mnemonics.JMP], [null], [syntax_1.AddressingModes.PcDispIx], [[14, 2, 0]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.JSR], [null], [syntax_1.AddressingModes.AnIndir], [[16, 2, 2]]],
[[syntax_1.Mnemonics.JSR], [null], [syntax_1.AddressingModes.AnDisp], [[18, 2, 2]]],
[[syntax_1.Mnemonics.JSR], [null], [syntax_1.AddressingModes.AnDispIx], [[22, 2, 2]]],
[[syntax_1.Mnemonics.JSR], [null], [syntax_1.AddressingModes.AbsW], [[18, 2, 2]]],
[[syntax_1.Mnemonics.JSR], [null], [syntax_1.AddressingModes.AbsL], [[20, 3, 2]]],
[[syntax_1.Mnemonics.JSR], [null], [syntax_1.AddressingModes.PcDisp], [[18, 2, 2]]],
[[syntax_1.Mnemonics.JSR], [null], [syntax_1.AddressingModes.PcDispIx], [[22, 2, 2]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.LEA], [L], [syntax_1.AddressingModes.AnIndir, syntax_1.AddressingModes.An], [[4, 1, 0]]],
[[syntax_1.Mnemonics.LEA], [L], [syntax_1.AddressingModes.AnDisp, syntax_1.AddressingModes.An], [[8, 2, 0]]],
[[syntax_1.Mnemonics.LEA], [L], [syntax_1.AddressingModes.AnDispIx, syntax_1.AddressingModes.An], [[12, 2, 0]]],
[[syntax_1.Mnemonics.LEA], [L], [syntax_1.AddressingModes.AbsW, syntax_1.AddressingModes.An], [[8, 2, 0]]],
[[syntax_1.Mnemonics.LEA], [L], [syntax_1.AddressingModes.AbsL, syntax_1.AddressingModes.An], [[12, 3, 0]]],
[[syntax_1.Mnemonics.LEA], [L], [syntax_1.AddressingModes.PcDisp, syntax_1.AddressingModes.An], [[8, 2, 0]]],
[[syntax_1.Mnemonics.LEA], [L], [syntax_1.AddressingModes.PcDispIx, syntax_1.AddressingModes.An], [[12, 2, 0]]],
//----------------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.PEA], [L], [syntax_1.AddressingModes.AnIndir], [[12, 1, 2]]],
[[syntax_1.Mnemonics.PEA], [L], [syntax_1.AddressingModes.AnDisp], [[16, 2, 2]]],
[[syntax_1.Mnemonics.PEA], [L], [syntax_1.AddressingModes.AnDispIx], [[20, 2, 2]]],
[[syntax_1.Mnemonics.PEA], [L], [syntax_1.AddressingModes.AbsW], [[16, 2, 2]]],
[[syntax_1.Mnemonics.PEA], [L], [syntax_1.AddressingModes.AbsL], [[20, 3, 2]]],
[[syntax_1.Mnemonics.PEA], [L], [syntax_1.AddressingModes.PcDisp], [[16, 2, 2]]],
[[syntax_1.Mnemonics.PEA], [L], [syntax_1.AddressingModes.PcDispIx], [[20, 2, 2]]],
// M => R --------------------------------------------------------------------------------------------------------
[[syntax_1.Mnemonics.MOVEM], [W], [syntax_1.Add