m68kdecode
Version:
Port of deplinenoise/m68kdecode to Typescript
2,603 lines (2,602 loc) • 97.9 kB
text/typescript
/* eslint-disable jest/no-conditional-expect */
import {
ABS16,
ABS32,
AR,
ARDEC,
ARDISP,
ARINC,
ARIND,
ARIndexer,
Bitfield,
Condition,
ConditionCode,
CONTROLREG,
DISP,
DPAIR,
DR,
DRIndexer,
DYNAMIC,
FloatFormat,
FPAIR,
FPCondition,
FPConditionCode,
FPF_BYTE_INT,
FPF_DOUBLE,
FPF_EXTENDED_REAL,
FPF_LONG_INT,
FPF_PACKED_DECIMAL_REAL_DYNAMIC,
FPF_PACKED_DECIMAL_REAL_STATIC,
FPF_SINGLE,
FPF_WORD_INT,
FR,
IMM16,
IMM32,
IMM8,
Implied,
instructionToString,
PackAdjustment,
PCDISP,
REGLIST,
STATIC,
} from "../src";
import { decodeInstruction } from "../src/decode";
import { drDisp, drDispScale, simpleDisp } from "../src/lib";
describe("decodeInstruction", () => {
it.each([
[
" move.b d0,d1",
[0x12, 0x00],
{
size: 1,
operation: "MOVE",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" move.b d2,d3",
[0x16, 0x02],
{
size: 1,
operation: "MOVE",
operands: [DR(2), DR(3)],
extra: null,
},
],
[
" move.b d4,d5",
[0x1a, 0x04],
{
size: 1,
operation: "MOVE",
operands: [DR(4), DR(5)],
extra: null,
},
],
[
" move.b d6,d7",
[0x1e, 0x06],
{
size: 1,
operation: "MOVE",
operands: [DR(6), DR(7)],
extra: null,
},
],
[
" movea.w a0,a1",
[0x32, 0x48],
{
size: 2,
operation: "MOVEA",
operands: [AR(0), AR(1)],
extra: null,
},
],
[
" movea.w a2,a3",
[0x36, 0x4a],
{
size: 2,
operation: "MOVEA",
operands: [AR(2), AR(3)],
extra: null,
},
],
[
" movea.w a4,a5",
[0x3a, 0x4c],
{
size: 2,
operation: "MOVEA",
operands: [AR(4), AR(5)],
extra: null,
},
],
[
" movea.w a6,a7",
[0x3e, 0x4e],
{
size: 2,
operation: "MOVEA",
operands: [AR(6), AR(7)],
extra: null,
},
],
[
" move.b 123(a0,d0),d3",
[0x16, 0x30, 0x00, 0x7b],
{
size: 1,
operation: "MOVE",
operands: [ARDISP(0, drDisp(0, 123)), DR(3)],
extra: null,
},
],
[
" move.w 123(a0,d0),d3",
[0x36, 0x30, 0x00, 0x7b],
{
size: 2,
operation: "MOVE",
operands: [ARDISP(0, drDisp(0, 123)), DR(3)],
extra: null,
},
],
[
" move.l 123(a0,d0),d3",
[0x26, 0x30, 0x00, 0x7b],
{
size: 4,
operation: "MOVE",
operands: [ARDISP(0, drDisp(0, 123)), DR(3)],
extra: null,
},
],
[
" movea.l 123(a0,d0),a1",
[0x22, 0x70, 0x00, 0x7b],
{
size: 4,
operation: "MOVEA",
operands: [ARDISP(0, drDisp(0, 123)), AR(1)],
extra: null,
},
],
[
" movea.w 123(a0,d0),a1",
[0x32, 0x70, 0x00, 0x7b],
{
size: 2,
operation: "MOVEA",
operands: [ARDISP(0, drDisp(0, 123)), AR(1)],
extra: null,
},
],
[
" move.b #$12,d7",
[0x1e, 0x3c, 0x00, 0x12],
{
size: 1,
operation: "MOVE",
operands: [IMM8(0x12), DR(7)],
extra: null,
},
],
[
" move.w #$1234,d7",
[0x3e, 0x3c, 0x12, 0x34],
{
size: 2,
operation: "MOVE",
operands: [IMM16(0x1234), DR(7)],
extra: null,
},
],
[
" move.l #$12345678,d7",
[0x2e, 0x3c, 0x12, 0x34, 0x56, 0x78],
{
size: 4,
operation: "MOVE",
operands: [IMM32(0x12345678), DR(7)],
extra: null,
},
],
[
" move.l D1,-(A2)",
[0x25, 0x01],
{
size: 4,
operation: "MOVE",
operands: [DR(1), ARDEC(2)],
extra: null,
},
],
[
" move.l D1,(A2)+",
[0x24, 0xc1],
{
size: 4,
operation: "MOVE",
operands: [DR(1), ARINC(2)],
extra: null,
},
],
[
" move.l -(A4),(A2)+",
[0x24, 0xe4],
{
size: 4,
operation: "MOVE",
operands: [ARDEC(4), ARINC(2)],
extra: null,
},
],
[
" movea.l 4.w,A0",
[0x20, 0x78, 0x00, 0x04],
{
size: 4,
operation: "MOVEA",
operands: [ABS16(4), AR(0)],
extra: null,
},
],
[
" movea.l $11223344,A0",
[0x20, 0x79, 0x11, 0x22, 0x33, 0x44],
{
size: 4,
operation: "MOVEA",
operands: [ABS32(0x11223344), AR(0)],
extra: null,
},
],
[
" move.w #$1234,123(d0)",
[0x31, 0xbc, 0x12, 0x34, 0x01, 0xa0, 0x00, 0x7b],
{
size: 2,
operation: "MOVE",
operands: [
IMM16(0x1234),
DISP({
baseDisplacement: 123,
outerDisplacement: 0,
indexer: DRIndexer(0, 0),
indirection: null,
}),
],
extra: null,
},
],
[
" move.w -8(pc),d3",
[0x36, 0x3a, 0xff, 0xf8],
{
size: 2,
operation: "MOVE",
operands: [
PCDISP(2, {
baseDisplacement: -8,
outerDisplacement: 0,
indexer: null,
indirection: null,
}),
DR(3),
],
extra: null,
},
],
[
" move.w -8(pc,d2*8),d3",
[0x36, 0x3b, 0x26, 0xf8],
{
size: 2,
operation: "MOVE",
operands: [
PCDISP(2, {
baseDisplacement: -8,
outerDisplacement: 0,
indexer: DRIndexer(2, 3),
indirection: null,
}),
DR(3),
],
extra: null,
},
],
[
" move.w 123(a1,d2*4),9876(a2,d3*2)",
[0x35, 0xb1, 0x24, 0x7b, 0x33, 0x20, 0x26, 0x94],
{
size: 2,
operation: "MOVE",
operands: [
ARDISP(1, drDispScale(2, 123, 2)),
ARDISP(2, drDispScale(3, 9876, 1)),
],
extra: null,
},
],
[
" move.w d0,12345(a0,a1*2)",
[0x31, 0x80, 0x93, 0x20, 0x30, 0x39],
{
size: 2,
operation: "MOVE",
operands: [
DR(0),
ARDISP(0, {
baseDisplacement: 12345,
outerDisplacement: 0,
indexer: ARIndexer(1, 1),
indirection: null,
}),
],
extra: null,
},
],
[
" lea (a0),a1",
[0x43, 0xd0],
{
size: 4,
operation: "LEA",
operands: [ARIND(0), AR(1)],
extra: null,
},
],
[
" lea 8(a0),a1",
[0x43, 0xe8, 0x00, 0x08],
{
size: 4,
operation: "LEA",
operands: [ARDISP(0, simpleDisp(8)), AR(1)],
extra: null,
},
],
[
" ori.b #17,ccr",
[0x00, 0x3c, 0x00, 0x11],
{
size: 1,
operation: "ORITOCCR",
operands: [IMM8(17), Implied()],
extra: null,
},
],
[
" ori.w #$1234,sr",
[0x00, 0x7c, 0x12, 0x34],
{
size: 2,
operation: "ORITOSR",
operands: [IMM16(0x1234), Implied()],
extra: null,
},
],
[
" ori.w #$1234,d0",
[0x00, 0x40, 0x12, 0x34],
{
size: 2,
operation: "ORI",
operands: [IMM16(0x1234), DR(0)],
extra: null,
},
],
[
" ori.b #$12,d2",
[0x00, 0x02, 0x00, 0x12],
{
size: 1,
operation: "ORI",
operands: [IMM8(0x12), DR(2)],
extra: null,
},
],
[
" ori.w #$1234,123(a0,d0)",
[0x00, 0x70, 0x12, 0x34, 0x00, 0x7b],
{
size: 2,
operation: "ORI",
operands: [IMM16(0x1234), ARDISP(0, drDisp(0, 123))],
extra: null,
},
],
[
" ori.l #$12345678,-(a0)",
[0x00, 0xa0, 0x12, 0x34, 0x56, 0x78],
{
size: 4,
operation: "ORI",
operands: [IMM32(0x12345678), ARDEC(0)],
extra: null,
},
],
[
" andi.b #17,ccr",
[0x02, 0x3c, 0x00, 0x11],
{
size: 1,
operation: "ANDITOCCR",
operands: [IMM8(17), Implied()],
extra: null,
},
],
[
" andi.w #$1234,sr",
[0x02, 0x7c, 0x12, 0x34],
{
size: 2,
operation: "ANDITOSR",
operands: [IMM16(0x1234), Implied()],
extra: null,
},
],
[
" andi.w #$1234,d0",
[0x02, 0x40, 0x12, 0x34],
{
size: 2,
operation: "ANDI",
operands: [IMM16(0x1234), DR(0)],
extra: null,
},
],
[
" andi.b #$12,d2",
[0x02, 0x02, 0x00, 0x12],
{
size: 1,
operation: "ANDI",
operands: [IMM8(0x12), DR(2)],
extra: null,
},
],
[
" andi.w #$1234,123(a0,d0)",
[0x02, 0x70, 0x12, 0x34, 0x00, 0x7b],
{
size: 2,
operation: "ANDI",
operands: [IMM16(0x1234), ARDISP(0, drDisp(0, 123))],
extra: null,
},
],
[
" andi.l #$12345678,-(a0)",
[0x02, 0xa0, 0x12, 0x34, 0x56, 0x78],
{
size: 4,
operation: "ANDI",
operands: [IMM32(0x12345678), ARDEC(0)],
extra: null,
},
],
[
" eori.b #17,ccr",
[0x0a, 0x3c, 0x00, 0x11],
{
size: 1,
operation: "EORITOCCR",
operands: [IMM8(17), Implied()],
extra: null,
},
],
[
" eori.w #$1234,sr",
[0x0a, 0x7c, 0x12, 0x34],
{
size: 2,
operation: "EORITOSR",
operands: [IMM16(0x1234), Implied()],
extra: null,
},
],
[
" eori.w #$1234,d0",
[0x0a, 0x40, 0x12, 0x34],
{
size: 2,
operation: "EORI",
operands: [IMM16(0x1234), DR(0)],
extra: null,
},
],
[
" eori.b #$12,d2",
[0x0a, 0x02, 0x00, 0x12],
{
size: 1,
operation: "EORI",
operands: [IMM8(0x12), DR(2)],
extra: null,
},
],
[
" eori.w #$1234,123(a0,d0)",
[0x0a, 0x70, 0x12, 0x34, 0x00, 0x7b],
{
size: 2,
operation: "EORI",
operands: [IMM16(0x1234), ARDISP(0, drDisp(0, 123))],
extra: null,
},
],
[
" eori.l #$12345678,-(a0)",
[0x0a, 0xa0, 0x12, 0x34, 0x56, 0x78],
{
size: 4,
operation: "EORI",
operands: [IMM32(0x12345678), ARDEC(0)],
extra: null,
},
],
[
" addi.l #$12345678,-(a0)",
[0x06, 0xa0, 0x12, 0x34, 0x56, 0x78],
{
size: 4,
operation: "ADDI",
operands: [IMM32(0x12345678), ARDEC(0)],
extra: null,
},
],
[
" subi.l #$12345678,-(a0)",
[0x04, 0xa0, 0x12, 0x34, 0x56, 0x78],
{
size: 4,
operation: "SUBI",
operands: [IMM32(0x12345678), ARDEC(0)],
extra: null,
},
],
[
" rtm d3",
[0x06, 0xc3],
{
size: 0,
operation: "RTM",
operands: [DR(3), null],
extra: null,
},
],
[
" rtm a1",
[0x06, 0xc9],
{
size: 0,
operation: "RTM",
operands: [AR(1), null],
extra: null,
},
],
[
" callm #3,(a1)",
[0x06, 0xd1, 0x00, 0x03],
{
size: 0,
operation: "CALLM",
operands: [IMM8(3), ARIND(1)],
extra: null,
},
],
[
" callm #99,$12345678",
[0x06, 0xf9, 0x00, 0x63, 0x12, 0x34, 0x56, 0x78],
{
size: 0,
operation: "CALLM",
operands: [IMM8(99), ABS32(0x12345678)],
extra: null,
},
],
[
" cmp2.l (a0),d3",
[0x04, 0xd0, 0x30, 0x00],
{
size: 4,
operation: "CMP2",
operands: [ARIND(0), DR(3)],
extra: null,
},
],
[
" cmp2.b 90(a0,d2),a6",
[0x00, 0xf0, 0xe0, 0x00, 0x20, 0x5a],
{
size: 1,
operation: "CMP2",
operands: [ARDISP(0, drDisp(2, 90)), AR(6)],
extra: null,
},
],
[
" chk2.w 90(a0,d2),a6",
[0x02, 0xf0, 0xe8, 0x00, 0x20, 0x5a],
{
size: 2,
operation: "CHK2",
operands: [ARDISP(0, drDisp(2, 90)), AR(6)],
extra: null,
},
],
[
" cmpi.b #$a5,90(a0,d2*4)",
[0x0c, 0x30, 0x00, 0xa5, 0x24, 0x5a],
{
size: 1,
operation: "CMPI",
operands: [IMM8(0xa5), ARDISP(0, drDispScale(2, 90, 2))],
extra: null,
},
],
[
" cmpi.w #$a512,90(a0,d2*4)",
[0x0c, 0x70, 0xa5, 0x12, 0x24, 0x5a],
{
size: 2,
operation: "CMPI",
operands: [IMM16(0xa512), ARDISP(0, drDispScale(2, 90, 2))],
extra: null,
},
],
[
" cmpi.l #$12345678,90(a0,d2*4)",
[0x0c, 0xb0, 0x12, 0x34, 0x56, 0x78, 0x24, 0x5a],
{
size: 4,
operation: "CMPI",
operands: [IMM32(0x12345678), ARDISP(0, drDispScale(2, 90, 2))],
extra: null,
},
],
[
" btst #18,d0",
[0x08, 0x00, 0x00, 0x12],
{
size: 4,
operation: "BTST",
operands: [IMM16(18), DR(0)],
extra: null,
},
],
[
" btst d0,#18",
[0x01, 0x3c, 0x00, 0x12],
{
size: 1,
operation: "BTST",
operands: [DR(0), IMM16(18)],
extra: null,
},
],
[
" btst #18,(a0)+",
[0x08, 0x18, 0x00, 0x12],
{
size: 1,
operation: "BTST",
operands: [IMM16(18), ARINC(0)],
extra: null,
},
],
[
" bclr #18,(a0)+",
[0x08, 0x98, 0x00, 0x12],
{
size: 1,
operation: "BCLR",
operands: [IMM16(18), ARINC(0)],
extra: null,
},
],
[
" bchg #18,(a0)+",
[0x08, 0x58, 0x00, 0x12],
{
size: 1,
operation: "BCHG",
operands: [IMM16(18), ARINC(0)],
extra: null,
},
],
[
" bset #18,(a0)+",
[0x08, 0xd8, 0x00, 0x12],
{
size: 1,
operation: "BSET",
operands: [IMM16(18), ARINC(0)],
extra: null,
},
],
[
" moves.l a0,(a1)",
[0x0e, 0x91, 0x88, 0x00],
{
size: 4,
operation: "MOVES",
operands: [AR(0), ARIND(1)],
extra: null,
},
],
[
" moves.b d0,(a1)",
[0x0e, 0x11, 0x08, 0x00],
{
size: 1,
operation: "MOVES",
operands: [DR(0), ARIND(1)],
extra: null,
},
],
[" cas d0,d1,(a0)", [0x0c, 0xd0, 0x00, 0x40], "NotImplemented"],
[
" cas2 d0:d1,d2:d3,(a0):(a1)",
[0x0c, 0xfc, 0x80, 0x80, 0x90, 0xc1],
"NotImplemented",
],
[
" illegal",
[0x4a, 0xfc],
{
size: 0,
operation: "ILLEGAL",
operands: [null, null],
extra: null,
},
],
[
" nop",
[0x4e, 0x71],
{
size: 0,
operation: "NOP",
operands: [null, null],
extra: null,
},
],
[
" reset",
[0x4e, 0x70],
{
size: 0,
operation: "RESET",
operands: [null, null],
extra: null,
},
],
[
" rtd #578",
[0x4e, 0x74, 0x02, 0x42],
{
size: 0,
operation: "RTD",
operands: [IMM16(578), null],
extra: null,
},
],
[
" rte",
[0x4e, 0x73],
{
size: 0,
operation: "RTE",
operands: [null, null],
extra: null,
},
],
[
" rtr",
[0x4e, 0x77],
{
size: 0,
operation: "RTR",
operands: [null, null],
extra: null,
},
],
[
" rts",
[0x4e, 0x75],
{
size: 0,
operation: "RTS",
operands: [null, null],
extra: null,
},
],
[
" stop #123",
[0x4e, 0x72, 0x00, 0x7b],
{
size: 0,
operation: "STOP",
operands: [IMM16(123), null],
extra: null,
},
],
[
" trapv",
[0x4e, 0x76],
{
size: 0,
operation: "TRAPV",
operands: [null, null],
extra: null,
},
],
[
" swap d7",
[0x48, 0x47],
{
size: 0,
operation: "SWAP",
operands: [DR(7), null],
extra: null,
},
],
[
" bkpt #3",
[0x48, 0x4b],
{
size: 0,
operation: "BKPT",
operands: [IMM8(3), null],
extra: null,
},
],
[
" ext.w d6",
[0x48, 0x86],
{
size: 2,
operation: "EXTW",
operands: [DR(6), null],
extra: null,
},
],
[
" ext.l d6",
[0x48, 0xc6],
{
size: 4,
operation: "EXTL",
operands: [DR(6), null],
extra: null,
},
],
[
" extb.l d6",
[0x49, 0xc6],
{
size: 4,
operation: "EXTBL",
operands: [DR(6), null],
extra: null,
},
],
[
" link.w a0,#1234",
[0x4e, 0x50, 0x04, 0xd2],
{
size: 2,
operation: "LINK",
operands: [AR(0), IMM16(1234)],
extra: null,
},
],
[
" link.l a5,#$12345678",
[0x48, 0x0d, 0x12, 0x34, 0x56, 0x78],
{
size: 4,
operation: "LINK",
operands: [AR(5), IMM32(0x12345678)],
extra: null,
},
],
[
" unlk a2",
[0x4e, 0x5a],
{
size: 0,
operation: "UNLK",
operands: [AR(2), null],
extra: null,
},
],
[
" trap #15",
[0x4e, 0x4f],
{
size: 0,
operation: "TRAP",
operands: [IMM8(15), null],
extra: null,
},
],
[
" divs.w (a1)+,d2",
[0x85, 0xd9],
{
size: 2,
operation: "DIVS",
operands: [ARINC(1), DR(2)],
extra: null,
},
],
[
" divs.l d0,d2",
[0x4c, 0x40, 0x28, 0x02],
{
size: 4,
operation: "DIVSL",
operands: [DR(0), DR(2)],
extra: null,
},
],
[
" divs.l d0,d3:d2",
[0x4c, 0x40, 0x2c, 0x03],
{
size: 4,
operation: "DIVSL",
operands: [DR(0), DPAIR(2, 3)],
extra: null,
},
],
[
" divsl.l d0,d3:d2",
[0x4c, 0x40, 0x28, 0x03],
{
size: 4,
operation: "DIVSLL",
operands: [DR(0), DPAIR(2, 3)],
extra: null,
},
],
[
" divu.w (a1)+,d2",
[0x84, 0xd9],
{
size: 2,
operation: "DIVU",
operands: [ARINC(1), DR(2)],
extra: null,
},
],
[
" divu.l d0,d2",
[0x4c, 0x40, 0x20, 0x02],
{
size: 4,
operation: "DIVUL",
operands: [DR(0), DR(2)],
extra: null,
},
],
[
" divu.l d0,d3:d2",
[0x4c, 0x40, 0x24, 0x03],
{
size: 4,
operation: "DIVUL",
operands: [DR(0), DPAIR(2, 3)],
extra: null,
},
],
[
" divul.l d0,d3:d2",
[0x4c, 0x40, 0x20, 0x03],
{
size: 4,
operation: "DIVULL",
operands: [DR(0), DPAIR(2, 3)],
extra: null,
},
],
[
" jmp (a0)",
[0x4e, 0xd0],
{
size: 0,
operation: "JMP",
operands: [ARIND(0), null],
extra: null,
},
],
[
" jmp $12345678",
[0x4e, 0xf9, 0x12, 0x34, 0x56, 0x78],
{
size: 0,
operation: "JMP",
operands: [ABS32(0x12345678), null],
extra: null,
},
],
[
" jmp 123(pc)",
[0x4e, 0xfa, 0x00, 0x7b],
{
size: 0,
operation: "JMP",
operands: [
PCDISP(2, {
baseDisplacement: 123,
outerDisplacement: 0,
indexer: null,
indirection: null,
}),
null,
],
extra: null,
},
],
[
" jsr (a0)",
[0x4e, 0x90],
{
size: 0,
operation: "JSR",
operands: [ARIND(0), null],
extra: null,
},
],
[
" jsr $12345678",
[0x4e, 0xb9, 0x12, 0x34, 0x56, 0x78],
{
size: 0,
operation: "JSR",
operands: [ABS32(0x12345678), null],
extra: null,
},
],
[
" jsr 123(pc)",
[0x4e, 0xba, 0x00, 0x7b],
{
size: 0,
operation: "JSR",
operands: [
PCDISP(2, {
baseDisplacement: 123,
outerDisplacement: 0,
indexer: null,
indirection: null,
}),
null,
],
extra: null,
},
],
[
" muls.w d0,d1",
[0xc3, 0xc0],
{
size: 2,
operation: "MULS",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" muls.l d0,d1",
[0x4c, 0x00, 0x18, 0x01],
{
size: 4,
operation: "MULS",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" muls.l d0,d2:d1",
[0x4c, 0x00, 0x1c, 0x02],
{
size: 4,
operation: "MULS",
operands: [DR(0), DPAIR(1, 2)],
extra: null,
},
],
[
" mulu.w d0,d1",
[0xc2, 0xc0],
{
size: 2,
operation: "MULU",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" mulu.l d0,d1",
[0x4c, 0x00, 0x10, 0x01],
{
size: 4,
operation: "MULU",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" mulu.l d0,d2:d1",
[0x4c, 0x00, 0x14, 0x02],
{
size: 4,
operation: "MULU",
operands: [DR(0), DPAIR(1, 2)],
extra: null,
},
],
[
" nbcd (a0)+",
[0x48, 0x18],
{
size: 1,
operation: "NBCD",
operands: [ARINC(0), null],
extra: null,
},
],
[
" move sr,d0",
[0x40, 0xc0],
{
size: 2,
operation: "MOVEFROMSR",
operands: [Implied(), DR(0)],
extra: null,
},
],
[
" move d0,sr",
[0x46, 0xc0],
{
size: 2,
operation: "MOVETOSR",
operands: [DR(0), Implied()],
extra: null,
},
],
[
" move a0,usp",
[0x4e, 0x60],
{
size: 4,
operation: "MOVETOUSP",
operands: [AR(0), Implied()],
extra: null,
},
],
[
" move usp,a3",
[0x4e, 0x6b],
{
size: 4,
operation: "MOVEFROMUSP",
operands: [Implied(), AR(3)],
extra: null,
},
],
[
" move d0,ccr",
[0x44, 0xc0],
{
size: 2,
operation: "MOVETOCCR",
operands: [DR(0), Implied()],
extra: null,
},
],
[
" move ccr,d0",
[0x42, 0xc0],
{
size: 2,
operation: "MOVEFROMCCR",
operands: [Implied(), DR(0)],
extra: null,
},
],
[
" pea (a0)",
[0x48, 0x50],
{
size: 4,
operation: "PEA",
operands: [ARIND(0), Implied()],
extra: null,
},
],
[
" movem.w d0-d4/a0-a2,-(a4)",
[0x48, 0xa4, 0xf8, 0xe0],
{
size: 2,
operation: "MOVEM",
operands: [REGLIST(0b1111100011100000), ARDEC(4)],
extra: null,
},
],
[
" movem.l (a4)+,d0-d4/a0-a2",
[0x4c, 0xdc, 0x07, 0x1f],
{
size: 4,
operation: "MOVEM",
operands: [ARINC(4), REGLIST(0b0000011100011111)],
extra: null,
},
],
[
" clr.b d0",
[0x42, 0x00],
{
size: 1,
operation: "CLR",
operands: [Implied(), DR(0)],
extra: null,
},
],
[
" clr.w (a0)+",
[0x42, 0x58],
{
size: 2,
operation: "CLR",
operands: [Implied(), ARINC(0)],
extra: null,
},
],
[
" clr.l (a4)",
[0x42, 0x94],
{
size: 4,
operation: "CLR",
operands: [Implied(), ARIND(4)],
extra: null,
},
],
[
" neg.b d0",
[0x44, 0x00],
{
size: 1,
operation: "NEG",
operands: [Implied(), DR(0)],
extra: null,
},
],
[
" neg.w (a0)+",
[0x44, 0x58],
{
size: 2,
operation: "NEG",
operands: [Implied(), ARINC(0)],
extra: null,
},
],
[
" neg.l (a4)",
[0x44, 0x94],
{
size: 4,
operation: "NEG",
operands: [Implied(), ARIND(4)],
extra: null,
},
],
[
" negx.b d0",
[0x40, 0x00],
{
size: 1,
operation: "NEGX",
operands: [Implied(), DR(0)],
extra: null,
},
],
[
" negx.w (a0)+",
[0x40, 0x58],
{
size: 2,
operation: "NEGX",
operands: [Implied(), ARINC(0)],
extra: null,
},
],
[
" negx.l (a4)",
[0x40, 0x94],
{
size: 4,
operation: "NEGX",
operands: [Implied(), ARIND(4)],
extra: null,
},
],
[
" not.b d0",
[0x46, 0x00],
{
size: 1,
operation: "NOT",
operands: [Implied(), DR(0)],
extra: null,
},
],
[
" not.w (a0)+",
[0x46, 0x58],
{
size: 2,
operation: "NOT",
operands: [Implied(), ARINC(0)],
extra: null,
},
],
[
" not.l (a4)",
[0x46, 0x94],
{
size: 4,
operation: "NOT",
operands: [Implied(), ARIND(4)],
extra: null,
},
],
[
" tst.b d0",
[0x4a, 0x00],
{
size: 1,
operation: "TST",
operands: [Implied(), DR(0)],
extra: null,
},
],
[
" tst.w (a0)+",
[0x4a, 0x58],
{
size: 2,
operation: "TST",
operands: [Implied(), ARINC(0)],
extra: null,
},
],
[
" tst.l (a4)",
[0x4a, 0x94],
{
size: 4,
operation: "TST",
operands: [Implied(), ARIND(4)],
extra: null,
},
],
[
" chk.w (a4),d2",
[0x45, 0x94],
{
size: 2,
operation: "CHK",
operands: [ARIND(4), DR(2)],
extra: null,
},
],
[
" chk.l (a4),d2",
[0x45, 0x14],
{
size: 4,
operation: "CHK",
operands: [ARIND(4), DR(2)],
extra: null,
},
],
[
" bfchg (a4){12:7}",
[0xea, 0xd4, 0x03, 0x07],
{
size: 0,
operation: "BFCHG",
operands: [null, ARIND(4)],
extra: Bitfield(STATIC(12), STATIC(7)),
},
],
[
" bfchg (a4){d2:7}",
[0xea, 0xd4, 0x08, 0x87],
{
size: 0,
operation: "BFCHG",
operands: [null, ARIND(4)],
extra: Bitfield(DYNAMIC(2), STATIC(7)),
},
],
[
" bfchg (a4){d2:d3}",
[0xea, 0xd4, 0x08, 0xa3],
{
size: 0,
operation: "BFCHG",
operands: [null, ARIND(4)],
extra: Bitfield(DYNAMIC(2), DYNAMIC(3)),
},
],
[
" bfclr (a4){12:7}",
[0xec, 0xd4, 0x03, 0x07],
{
size: 0,
operation: "BFCLR",
operands: [null, ARIND(4)],
extra: Bitfield(STATIC(12), STATIC(7)),
},
],
[
" bfexts (a4){12:7},d1",
[0xeb, 0xd4, 0x13, 0x07],
{
size: 0,
operation: "BFEXTS",
operands: [ARIND(4), DR(1)],
extra: Bitfield(STATIC(12), STATIC(7)),
},
],
[
" bfextu (a4){12:7},d1",
[0xe9, 0xd4, 0x13, 0x07],
{
size: 0,
operation: "BFEXTU",
operands: [ARIND(4), DR(1)],
extra: Bitfield(STATIC(12), STATIC(7)),
},
],
[
" bfffo (a4){12:7},d1",
[0xed, 0xd4, 0x13, 0x07],
{
size: 0,
operation: "BFFFO",
operands: [ARIND(4), DR(1)],
extra: Bitfield(STATIC(12), STATIC(7)),
},
],
[
" bfins d1,(a4){12:7}",
[0xef, 0xd4, 0x13, 0x07],
{
size: 0,
operation: "BFINS",
operands: [DR(1), ARIND(4)],
extra: Bitfield(STATIC(12), STATIC(7)),
},
],
[
" bfset (a4){12:7}",
[0xee, 0xd4, 0x03, 0x07],
{
size: 0,
operation: "BFSET",
operands: [null, ARIND(4)],
extra: Bitfield(STATIC(12), STATIC(7)),
},
],
[
" bftst (a4){12:7}",
[0xe8, 0xd4, 0x03, 0x07],
{
size: 0,
operation: "BFTST",
operands: [null, ARIND(4)],
extra: Bitfield(STATIC(12), STATIC(7)),
},
],
[
" .self: dbf d3,.self",
[0x51, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_F),
},
],
[
" .self: dbhi d3,.self",
[0x52, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_HI),
},
],
[
" .self: dbls d3,.self",
[0x53, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_LS),
},
],
[
" .self: dbcc d3,.self",
[0x54, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_CC),
},
],
[
" .self: dbhs d3,.self",
[0x54, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_CC),
},
],
[
" .self: dbcs d3,.self",
[0x55, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_CS),
},
],
[
" .self: dblo d3,.self",
[0x55, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_CS),
},
],
[
" .self: dbne d3,.self",
[0x56, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_NE),
},
],
[
" .self: dbeq d3,.self",
[0x57, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_EQ),
},
],
[
" .self: dbvc d3,.self",
[0x58, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_VC),
},
],
[
" .self: dbvs d3,.self",
[0x59, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_VS),
},
],
[
" .self: dbpl d3,.self",
[0x5a, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_PL),
},
],
[
" .self: dbmi d3,.self",
[0x5b, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_MI),
},
],
[
" .self: dbge d3,.self",
[0x5c, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_GE),
},
],
[
" .self: dblt d3,.self",
[0x5d, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_LT),
},
],
[
" .self: dbgt d3,.self",
[0x5e, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_GT),
},
],
[
" .self: dble d3,.self",
[0x5f, 0xcb, 0xff, 0xfe],
{
size: 2,
operation: "DBCC",
operands: [DR(3), PCDISP(2, simpleDisp(-2))],
extra: Condition(ConditionCode.CC_LE),
},
],
[
" addq.b #1,d0",
[0x52, 0x00],
{
size: 1,
operation: "ADDQ",
operands: [IMM8(1), DR(0)],
extra: null,
},
],
[
" addq.w #7,a0",
[0x5e, 0x48],
{
size: 2,
operation: "ADDQ",
operands: [IMM8(7), AR(0)],
extra: null,
},
],
[
" addq.l #8,d0",
[0x50, 0x80],
{
size: 4,
operation: "ADDQ",
operands: [IMM8(8), DR(0)],
extra: null,
},
],
[
" subq.b #1,d0",
[0x53, 0x00],
{
size: 1,
operation: "SUBQ",
operands: [IMM8(1), DR(0)],
extra: null,
},
],
[
" subq.w #7,a0",
[0x5f, 0x48],
{
size: 2,
operation: "SUBQ",
operands: [IMM8(7), AR(0)],
extra: null,
},
],
[
" subq.l #8,d0",
[0x51, 0x80],
{
size: 4,
operation: "SUBQ",
operands: [IMM8(8), DR(0)],
extra: null,
},
],
[
" trapne",
[0x56, 0xfc],
{
size: 0,
operation: "TRAPCC",
operands: [null, null],
extra: Condition(ConditionCode.CC_NE),
},
],
[
" trapne.w #1234",
[0x56, 0xfa, 0x04, 0xd2],
{
size: 2,
operation: "TRAPCC",
operands: [IMM16(1234), null],
extra: Condition(ConditionCode.CC_NE),
},
],
[
" trapne.l #$12345678",
[0x56, 0xfb, 0x12, 0x34, 0x56, 0x78],
{
size: 4,
operation: "TRAPCC",
operands: [IMM32(0x12345678), null],
extra: Condition(ConditionCode.CC_NE),
},
],
[
" sne (a0)",
[0x56, 0xd0],
{
size: 1,
operation: "SCC",
operands: [Implied(), ARIND(0)],
extra: Condition(ConditionCode.CC_NE),
},
],
[
" addx.b d0,d1",
[0xd3, 0x00],
{
size: 1,
operation: "ADDX",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" addx.w d0,d1",
[0xd3, 0x40],
{
size: 2,
operation: "ADDX",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" addx.l d0,d1",
[0xd3, 0x80],
{
size: 4,
operation: "ADDX",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" addx.b -(a2),-(a3)",
[0xd7, 0x0a],
{
size: 1,
operation: "ADDX",
operands: [ARDEC(2), ARDEC(3)],
extra: null,
},
],
[
" addx.w -(a2),-(a3)",
[0xd7, 0x4a],
{
size: 2,
operation: "ADDX",
operands: [ARDEC(2), ARDEC(3)],
extra: null,
},
],
[
" addx.l -(a2),-(a3)",
[0xd7, 0x8a],
{
size: 4,
operation: "ADDX",
operands: [ARDEC(2), ARDEC(3)],
extra: null,
},
],
[
" add.b (a2),d0",
[0xd0, 0x12],
{
size: 1,
operation: "ADD",
operands: [ARIND(2), DR(0)],
extra: null,
},
],
[
" add.w (a2),d0",
[0xd0, 0x52],
{
size: 2,
operation: "ADD",
operands: [ARIND(2), DR(0)],
extra: null,
},
],
[
" add.l (a2),d0",
[0xd0, 0x92],
{
size: 4,
operation: "ADD",
operands: [ARIND(2), DR(0)],
extra: null,
},
],
[
" add.b d3,(a2)",
[0xd7, 0x12],
{
size: 1,
operation: "ADD",
operands: [DR(3), ARIND(2)],
extra: null,
},
],
[
" add.w d3,(a2)",
[0xd7, 0x52],
{
size: 2,
operation: "ADD",
operands: [DR(3), ARIND(2)],
extra: null,
},
],
[
" add.l d3,(a2)",
[0xd7, 0x92],
{
size: 4,
operation: "ADD",
operands: [DR(3), ARIND(2)],
extra: null,
},
],
[
" subx.b d0,d1",
[0x93, 0x00],
{
size: 1,
operation: "SUBX",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" subx.w d0,d1",
[0x93, 0x40],
{
size: 2,
operation: "SUBX",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" subx.l d0,d1",
[0x93, 0x80],
{
size: 4,
operation: "SUBX",
operands: [DR(0), DR(1)],
extra: null,
},
],
[
" subx.b -(a2),-(a3)",
[0x97, 0x0a],
{
size: 1,
operation: "SUBX",
operands: [ARDEC(2), ARDEC(3)],
extra: null,
},
],
[
" subx.w -(a2),-(a3)",
[0x97, 0x4a],
{
size: 2,
operation: "SUBX",
operands: [ARDEC(2), ARDEC(3)],
extra: null,
},
],
[
" subx.l -(a2),-(a3)",
[0x97, 0x8a],
{
size: 4,
operation: "SUBX",
operands: [ARDEC(2), ARDEC(3)],
extra: null,
},
],
[
" sub.b (a2),d0",
[0x90, 0x12],
{
size: 1,
operation: "SUB",
operands: [ARIND(2), DR(0)],
extra: null,
},
],
[
" sub.w (a2),d0",
[0x90, 0x52],
{
size: 2,
operation: "SUB",
operands: [ARIND(2), DR(0)],
extra: null,
},
],
[
" sub.l (a2),d0",
[0x90, 0x92],
{
size: 4,
operation: "SUB",
operands: [ARIND(2), DR(0)],
extra: null,
},
],
[
" sub.b d3,(a2)",
[0x97, 0x12],
{
size: 1,
operation: "SUB",
operands: [DR(3), ARIND(2)],
extra: null,
},
],
[
" sub.w d3,(a2)",
[0x97, 0x52],
{
size: 2,
operation: "SUB",
operands: [DR(3), ARIND(2)],
extra: null,
},
],
[
" sub.l d3,(a2)",
[0x97, 0x92],
{
size: 4,
operation: "SUB",
operands: [DR(3), ARIND(2)],
extra: null,
},
],
[
" suba.w d3,a2",
[0x94, 0xc3],
{
size: 2,
operation: "SUBA",
operands: [DR(3), AR(2)],
extra: null,
},
],
[
" suba.l d3,a2",
[0x95, 0xc3],
{
size: 4,
operation: "SUBA",
operands: [DR(3), AR(2)],
extra: null,
},
],
[
" cmpa.w (a1),a2",
[0xb4, 0xd1],
{
size: 2,
operation: "CMPA",
operands: [ARIND(1), AR(2)],
extra: null,
},
],
[
" cmpa.l (a1),a2",
[0xb5, 0xd1],
{
size: 4,
operation: "CMPA",
operands: [ARIND(1), AR(2)],
extra: null,
},
],
[
" cmpm.b (a0)+,(a2)+",
[0xb5, 0x08],
{
size: 1,
operation: "CMPM",
operands: [ARINC(0), ARINC(2)],
extra: null,
},
],
[
" cmpm.w (a0)+,(a2)+",
[0xb5, 0x48],
{
size: 2,
operation: "CMPM",
operands: [ARINC(0), ARINC(2)],
extra: null,
},
],
[
" cmpm.l (a0)+,(a2)+",
[0xb5, 0x88],
{
size: 4,
operation: "CMPM",
operands: [ARINC(0), ARINC(2)],
extra: null,
},
],
[
" cmp.b (a0)+,d7",
[0xbe, 0x18],
{
size: 1,
operation: "CMP",
operands: [ARINC(0), DR(7)],
extra: null,
},
],
[
" cmp.w (a0)+,d7",
[0xbe, 0x58],
{
size: 2,
operation: "CMP",
operands: [ARINC(0), DR(7)],
extra: null,
},
],
[
" cmp.l (a0)+,d7",
[0xbe, 0x98],
{
size: 4,
operation: "CMP",
operands: [ARINC(0), DR(7)],
extra: null,
},
],
[
" eor.b d7,(a0)+",
[0xbf, 0x18],
{
size: 1,
operation: "EOR",
operands: [DR(7), ARINC(0)],
extra: null,
},
],
[
" eor.w d7,(a0)+",
[0xbf, 0x58],
{
size: 2,
operation: "EOR",
operands: [DR(7), ARINC(0)],
extra: null,
},
],
[
" eor.l d7,-(a0)",
[0xbf, 0xa0],
{
size: 4,
operation: "EOR",
operands: [DR(7), ARDEC(0)],
extra: null,
},
],
[
"lab:\n bra.s lab",
[0x60, 0xfe],
{
size: 1,
operation: "BRA",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: null,
},
],
[
"lab:\n bra.w lab",
[0x60, 0x00, 0xff, 0xfe],
{
size: 2,
operation: "BRA",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: null,
},
],
[
"lab:\n bra.l lab",
[0x60, 0xff, 0xff, 0xff, 0xff, 0xfe],
{
size: 4,
operation: "BRA",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: null,
},
],
[
"lab:\n bsr.s lab",
[0x61, 0xfe],
{
size: 1,
operation: "BSR",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: null,
},
],
[
"lab:\n bsr.w lab",
[0x61, 0x00, 0xff, 0xfe],
{
size: 2,
operation: "BSR",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: null,
},
],
[
"lab:\n bsr.l lab",
[0x61, 0xff, 0xff, 0xff, 0xff, 0xfe],
{
size: 4,
operation: "BSR",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: null,
},
],
[
"lab:\n bne.s lab",
[0x66, 0xfe],
{
size: 1,
operation: "BCC",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: Condition(ConditionCode.CC_NE),
},
],
[
"lab:\n beq.w lab",
[0x67, 0x00, 0xff, 0xfe],
{
size: 2,
operation: "BCC",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: Condition(ConditionCode.CC_EQ),
},
],
[
"lab:\n bcs.l lab",
[0x65, 0xff, 0xff, 0xff, 0xff, 0xfe],
{
size: 4,
operation: "BCC",
operands: [PCDISP(2, simpleDisp(-2)), null],
extra: Condition(ConditionCode.CC_CS),
},
],
[
" pack d0,d1,#12",
[0x83, 0x40, 0x00, 0x0c],
{
size: 0,
operation: "PACK",
operands: [DR(0), DR(1)],
extra: PackAdjustment(12),
},
],
[
" unpk d0,d1,#12",
[0x83, 0x80, 0x00, 0x0c],
{
size: 0,
operation: "UNPK",
operands: [DR(0), DR(1)],
extra: PackAdjustment(12),
},
],
[
" pack -(a0),-(a1),#37",
[0x83, 0x48, 0x00, 0x25],
{
size: 0,
operation: "PACK",
operands: [ARDEC(0), ARDEC(1)],
extra: PackAdjustment(37),
},
],
[
" unpk -(a0),-(a1),#37",
[0x83, 0x88, 0x00, 0x25],
{
size: 0,
operation: "UNPK",
operands: [ARDEC(0), ARDEC(1)],
extra: PackAdjustment(37),
},
],
[
" sbcd -(a0),-(a1)",
[0x83, 0x08],
{
size: 1,
operation: "SBCD",
operands: [ARDEC(0), ARDEC(1)],
extra: null,
},
],
[
" sbcd d3,d4",
[0x89, 0x03],
{
size: 1,
operation: "SBCD",
operands: [DR(3), DR(4)],
extra: null,
},
],
[
" or.b (a0)+,d0",
[0x80, 0x18],
{
size: 1,
operation: "OR",
operands: [ARINC(0), DR(0)],
extra: null,
},
],
[
" or.w (a0)+,d0",
[0x80, 0x58],
{
size: 2,
operation: "OR",
operands: [ARINC(0), DR(0)],
extra: null,
},
],
[
" or.l (a0)+,d0",
[0x80, 0x98],
{
size: 4,
operation: "OR",
operands: [ARINC(0), DR(0)],
extra: null,
},
],
[
" or.b d0,(a0)+",
[0x81, 0x18],
{
size: 1,
operation: "OR",
operands: [DR(0), ARINC(0)],
extra: null,
},
],
[
" or.w d0,(a0)+",
[0x81, 0x58],
{
size: 2,
operation: "OR",
operands: [DR(0), ARINC(0)],
extra: null,
},
],
[
" or.l d0,(a0)+",
[0x81, 0x98],
{
size: 4,
operation: "OR",
operands: [DR(0), ARINC(0)],
extra: null,
},
],
[
" exg d0,d5",
[0xc1, 0x45],
{
size: 4,
operation: "EXG",
operands: [DR(0), DR(5)],
extra: null,
},
],
[
" exg a0,a5",
[0xc1, 0x4d],
{
size: 4,
operation: "EXG",
operands: [AR(0), AR(5)],
extra: null,
},
],
[
" exg d3,a5",
[0xc7, 0x8d],
{
size: 4,
operation: "EXG",
operands: [DR(3), AR(5)],
extra: null,
},
],
[
" and.b (a0)+,d0",
[0xc0, 0x18],
{
size: 1,
operation: "AND",
operands: [ARINC(0), DR(0)],
extra: null,
},
],
[
" and.w (a0)+,d0",
[0xc0, 0x58],
{
size: 2,
operation: "AND",
operands: [ARINC(0), DR(0)],
extra: null,
},
],
[
" and.l (a0)+,d0",
[0xc0, 0x98],
{
size: 4,
operation: "AND",
operands: [ARINC(0), DR(0)],
extra: null,
},
],
[
" and.b d0,(a0)+",
[0xc1, 0x18],
{
size: 1,
operation: "AND",
operands: [DR(0), ARINC(0)],
extra: null,
},
],
[
" and.w d0,(a0)+",
[0xc1, 0x58],
{
size: 2,
operation: "AND",
operands: [DR(0), ARINC(0)],
extra: null,
},
],
[
" and.l d0,(a0)+",
[0xc1, 0x98],
{
size: 4,
operation: "AND",
operands: [DR(0), ARINC(0)],
extra: null,
},
],
[
" asl.b #3,d7",
[0xe7, 0x07],
{
size: 1,
operation: "ASL",
operands: [IMM8(3), DR(7)],
extra: null,
},
],
[
" asl.w #3,d7",
[0xe7, 0x47],
{
size: 2,
operation: "ASL",
operands: [IMM8(3), DR(7)],
extra: null,
},
],
[
" asl.l #3,d7",
[0xe7, 0x87],
{
size: 4,
operation: "ASL",
operands: [IMM8(3), DR(7)],
extra: null,
},
],
[
" asr.b #3,d7",
[0xe6, 0x07],
{
size: 1,
operation: "ASR",
operands: [IMM8(3), DR(7)],
extra: null,
},
],
[
" asr.w #3,d7",
[0xe6, 0x47],
{
size: 2,
operation: "ASR",
operands: [IMM8(3), DR(7)],
extra: null,
},
],
[
" asr.l #3,d7",
[0xe6, 0x87],
{
size: 4,
operation: "ASR",
operands: [IMM8(3), DR(7)],
extra: null,
},
],
[
" asl.b d1,d7",
[0xe3, 0x27],
{
size: 1,
operation: "ASL",
operands: [DR(1), DR(7)],
extra: null,
},
],
[
" asl.w d1,d7",
[0xe3, 0x67],
{
size: 2,
operation: "ASL",
operands: [DR(1), DR(7)],
extra: null,
},
],
[
" asl.l d1,d7",
[0xe3, 0xa7],
{
size: 4,
operation: "ASL",
operands: [DR(1), DR(7)],
extra: null,
},
],
[
" asr.b d1,d7",
[0xe2, 0x27],
{
size: 1,
operation: "ASR",
operands: [DR(1), DR(7)],
extra: null,
},
],
[
" asr.w d1,d7",
[0xe2, 0x67],
{
size: 2,
operation: "ASR",
operands: [DR(1), DR(7)],
extra: null,
},
],
[
" asr.l d1,d7",
[0xe2, 0xa7],
{
size: 4,
operation: "ASR",
operands: [DR(1), DR(7)],
extra: null,
},
],
[
" asl.w (a0)",
[0xe1, 0xd0],
{
size: 2,
operation: "ASL",
operands: [Implied(), ARIND(0)],
extra: null,
},
],
[
" asr.w (a0)",
[0xe0, 0xd0],
{
size: 2,
operation: "ASR",
operands: [Implied(), ARIND(0)],
extra: null,
},
],
[
" lsl.b #3,d7",
[0xe7, 0x0f],
{
size: 1,
operation: "LSL",
operands: [IMM8(3), DR(7)],
extra: null,
}