UNPKG

68kcounter

Version:
436 lines 58.9 kB
"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