9 {
"mov",
SH_OP_MOV,
OPCODE(
e,
N,
I,
I), 0x0fff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_IMM_U),
ADDR(
NIB2,
SH_REG_DIRECT) } },
10 {
"mov.w",
SH_OP_MOV,
OPCODE(9,
N,
D,
D), 0x0fff,
SH_SCALING_W, {
ADDR(
NIB0,
SH_PC_RELATIVE_DISP),
ADDR(
NIB2,
SH_REG_DIRECT) } },
11 {
"mov.l",
SH_OP_MOV,
OPCODE(
d,
N,
D,
D), 0x0fff,
SH_SCALING_L, {
ADDR(
NIB0,
SH_PC_RELATIVE_DISP),
ADDR(
NIB2,
SH_REG_DIRECT) } },
12 {
"mov",
SH_OP_MOV,
OPCODE(6,
N,
M, 3), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
13 {
"mov.b",
SH_OP_MOV,
OPCODE(2,
N,
M, 0), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT) } },
14 {
"mov.w",
SH_OP_MOV,
OPCODE(2,
N,
M, 1), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT) } },
15 {
"mov.l",
SH_OP_MOV,
OPCODE(2,
N,
M, 2), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT) } },
16 {
"mov.b",
SH_OP_MOV,
OPCODE(6,
N,
M, 0), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_INDIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
17 {
"mov.w",
SH_OP_MOV,
OPCODE(6,
N,
M, 1), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_INDIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
18 {
"mov.l",
SH_OP_MOV,
OPCODE(6,
N,
M, 2), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_INDIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
19 {
"mov.b",
SH_OP_MOV,
OPCODE(2,
N,
M, 4), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
20 {
"mov.w",
SH_OP_MOV,
OPCODE(2,
N,
M, 5), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
21 {
"mov.l",
SH_OP_MOV,
OPCODE(2,
N,
M, 6), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
22 {
"mov.b",
SH_OP_MOV,
OPCODE(6,
N,
M, 4), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_INDIRECT_I),
ADDR(
NIB2,
SH_REG_DIRECT) } },
23 {
"mov.w",
SH_OP_MOV,
OPCODE(6,
N,
M, 5), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_INDIRECT_I),
ADDR(
NIB2,
SH_REG_DIRECT) } },
24 {
"mov.l",
SH_OP_MOV,
OPCODE(6,
N,
M, 6), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_INDIRECT_I),
ADDR(
NIB2,
SH_REG_DIRECT) } },
25 {
"mov.b",
SH_OP_MOV,
OPCODE(8, 0,
N,
D), 0x00ff,
SH_SCALING_B, {
PARAM(
R0,
SH_REG_DIRECT),
ADDR(
NIB0,
SH_REG_INDIRECT_DISP) } },
26 {
"mov.w",
SH_OP_MOV,
OPCODE(8, 1,
N,
D), 0x00ff,
SH_SCALING_W, {
PARAM(
R0,
SH_REG_DIRECT),
ADDR(
NIB0,
SH_REG_INDIRECT_DISP) } },
27 {
"mov.l",
SH_OP_MOV,
OPCODE(1,
N,
M,
D), 0x0fff,
SH_SCALING_L, {
ADDR(
NIB0,
SH_REG_DIRECT),
ADDR(
NIB0,
SH_REG_INDIRECT_DISP) } },
29 {
"mov.b",
SH_OP_MOV,
OPCODE(8, 4,
M,
D), 0x00ff,
SH_SCALING_B, {
ADDR(
NIB0,
SH_REG_INDIRECT_DISP),
PARAM(
R0,
SH_REG_DIRECT) } },
30 {
"mov.w",
SH_OP_MOV,
OPCODE(8, 5,
M,
D), 0x00ff,
SH_SCALING_W, {
ADDR(
NIB0,
SH_REG_INDIRECT_DISP),
PARAM(
R0,
SH_REG_DIRECT) } },
31 {
"mov.l",
SH_OP_MOV,
OPCODE(5,
N,
M,
D), 0x0fff,
SH_SCALING_L, {
ADDR(
NIB0,
SH_REG_INDIRECT_DISP),
ADDR(
NIB2,
SH_REG_DIRECT) } },
32 {
"mov.b",
SH_OP_MOV,
OPCODE(0,
N,
M, 4), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_INDEXED) } },
33 {
"mov.w",
SH_OP_MOV,
OPCODE(0,
N,
M, 5), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_INDEXED) } },
34 {
"mov.l",
SH_OP_MOV,
OPCODE(0,
N,
M, 6), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_INDEXED) } },
35 {
"mov.b",
SH_OP_MOV,
OPCODE(0,
N,
M,
c), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_INDIRECT_INDEXED),
ADDR(
NIB2,
SH_REG_DIRECT) } },
36 {
"mov.w",
SH_OP_MOV,
OPCODE(0,
N,
M,
d), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_INDIRECT_INDEXED),
ADDR(
NIB2,
SH_REG_DIRECT) } },
37 {
"mov.l",
SH_OP_MOV,
OPCODE(0,
N,
M,
e), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_INDIRECT_INDEXED),
ADDR(
NIB2,
SH_REG_DIRECT) } },
38 {
"mov.b",
SH_OP_MOV,
OPCODE(
c, 0,
D,
D), 0x00ff,
SH_SCALING_B, {
PARAM(
R0,
SH_REG_DIRECT),
ADDR(
NIB0,
SH_GBR_INDIRECT_DISP) } },
39 {
"mov.w",
SH_OP_MOV,
OPCODE(
c, 1,
D,
D), 0x00ff,
SH_SCALING_W, {
PARAM(
R0,
SH_REG_DIRECT),
ADDR(
NIB0,
SH_GBR_INDIRECT_DISP) } },
40 {
"mov.l",
SH_OP_MOV,
OPCODE(
c, 2,
D,
D), 0x00ff,
SH_SCALING_L, {
PARAM(
R0,
SH_REG_DIRECT),
ADDR(
NIB0,
SH_GBR_INDIRECT_DISP) } },
41 {
"mov.b",
SH_OP_MOV,
OPCODE(
c, 4,
D,
D), 0x00ff,
SH_SCALING_B, {
ADDR(
NIB0,
SH_GBR_INDIRECT_DISP),
PARAM(
R0,
SH_REG_DIRECT) } },
42 {
"mov.w",
SH_OP_MOV,
OPCODE(
c, 5,
D,
D), 0x00ff,
SH_SCALING_W, {
ADDR(
NIB0,
SH_GBR_INDIRECT_DISP),
PARAM(
R0,
SH_REG_DIRECT) } },
43 {
"mov.l",
SH_OP_MOV,
OPCODE(
c, 6,
D,
D), 0x00ff,
SH_SCALING_L, {
ADDR(
NIB0,
SH_GBR_INDIRECT_DISP),
PARAM(
R0,
SH_REG_DIRECT) } },
44 {
"mova",
SH_OP_MOV,
OPCODE(
c, 7,
D,
D), 0x00ff,
SH_SCALING_L, {
ADDR(
NIB0,
SH_PC_RELATIVE_DISP),
PARAM(
R0,
SH_REG_DIRECT) } },
45 {
"movt",
SH_OP_MOVT,
OPCODE(0,
N, 2, 9), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
46 {
"swap.b",
SH_OP_SWAP,
OPCODE(6,
N,
M, 8), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
47 {
"swap.w",
SH_OP_SWAP,
OPCODE(6,
N,
M, 9), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
48 {
"xtrct",
SH_OP_XTRCT,
OPCODE(2,
N,
M,
d), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
51 {
"add",
SH_OP_ADD,
OPCODE(3,
N,
M,
c), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
52 {
"add",
SH_OP_ADD,
OPCODE(7,
N,
I,
I), 0x0fff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_IMM_S),
ADDR(
NIB2,
SH_REG_DIRECT) } },
53 {
"addc",
SH_OP_ADDC,
OPCODE(3,
N,
M,
e), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
54 {
"addv",
SH_OP_ADDV,
OPCODE(3,
N,
M,
f), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
55 {
"cmp/eq",
SH_OP_CMP_EQ,
OPCODE(8, 8,
I,
I), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_IMM_S),
PARAM(
R0,
SH_REG_DIRECT) } },
56 {
"cmp/eq",
SH_OP_CMP_EQ,
OPCODE(3,
N,
M, 0), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
57 {
"cmp/hs",
SH_OP_CMP_HS,
OPCODE(3,
N,
M, 2), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
58 {
"cmp/ge",
SH_OP_CMP_GE,
OPCODE(3,
N,
M, 3), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
59 {
"cmp/hi",
SH_OP_CMP_HI,
OPCODE(3,
N,
M, 6), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
60 {
"cmp/gt",
SH_OP_CMP_GT,
OPCODE(3,
N,
M, 7), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
61 {
"cmp/pz",
SH_OP_CMP_PZ,
OPCODE(4,
N, 1, 1), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
62 {
"cmp/pl",
SH_OP_CMP_PL,
OPCODE(4,
N, 1, 5), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
63 {
"cmp/str",
SH_OP_CMP_STR,
OPCODE(2,
N,
M,
c), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
64 {
"div1",
SH_OP_DIV1,
OPCODE(3,
N,
M, 4), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
65 {
"div0s",
SH_OP_DIV0S,
OPCODE(2,
N,
M, 7), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
66 {
"div0u",
SH_OP_DIV0U,
OPCODE(0, 0, 1, 9), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
67 {
"dmuls.l",
SH_OP_DMULS,
OPCODE(3,
N,
M,
d), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
68 {
"dmulu.l",
SH_OP_DMULU,
OPCODE(3,
N,
M, 5), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
69 {
"dt",
SH_OP_DT,
OPCODE(4,
N, 1, 0), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
70 {
"exts.b",
SH_OP_EXTS,
OPCODE(6,
N,
M,
e), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
71 {
"exts.w",
SH_OP_EXTS,
OPCODE(6,
N,
M,
f), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
72 {
"extu.b",
SH_OP_EXTU,
OPCODE(6,
N,
M,
c), 0x0ff0,
SH_SCALING_B, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
73 {
"extu.w",
SH_OP_EXTU,
OPCODE(6,
N,
M,
d), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
74 {
"mac.l",
SH_OP_MAC,
OPCODE(0,
N,
M,
f), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_INDIRECT_I),
ADDR(
NIB2,
SH_REG_INDIRECT_I) } },
75 {
"mac.w",
SH_OP_MAC,
OPCODE(4,
N,
M,
f), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_INDIRECT_I),
ADDR(
NIB2,
SH_REG_INDIRECT_I) } },
76 {
"mul.l",
SH_OP_MUL,
OPCODE(0,
N,
M, 7), 0x0ff0,
SH_SCALING_L, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
77 {
"muls.w",
SH_OP_MULS,
OPCODE(2,
N,
M,
f), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
78 {
"mulu.w",
SH_OP_MULU,
OPCODE(2,
N,
M,
e), 0x0ff0,
SH_SCALING_W, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
79 {
"neg",
SH_OP_NEG,
OPCODE(6,
N,
M,
b), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
80 {
"negc",
SH_OP_NEGC,
OPCODE(6,
N,
M,
a), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
81 {
"sub",
SH_OP_SUB,
OPCODE(3,
N,
M, 8), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
82 {
"subc",
SH_OP_SUBC,
OPCODE(3,
N,
M,
a), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
83 {
"subv",
SH_OP_SUBV,
OPCODE(3,
N,
M,
b), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
86 {
"and",
SH_OP_AND,
OPCODE(2,
N,
M, 9), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
87 {
"and",
SH_OP_AND,
OPCODE(
c, 9,
I,
I), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_IMM_U),
PARAM(
R0,
SH_REG_DIRECT) } },
88 {
"and.b",
SH_OP_AND,
OPCODE(
c,
d,
I,
I), 0x00ff,
SH_SCALING_B, {
ADDR(
NIB0,
SH_IMM_U),
PARAM(
R0,
SH_GBR_INDIRECT_INDEXED) } },
89 {
"not",
SH_OP_NOT,
OPCODE(6,
N,
M, 7), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
90 {
"or",
SH_OP_OR,
OPCODE(2,
N,
M,
b), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
91 {
"or",
SH_OP_OR,
OPCODE(
c,
b,
I,
I), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_IMM_U),
PARAM(
R0,
SH_REG_DIRECT) } },
92 {
"or.b",
SH_OP_OR,
OPCODE(
c,
f,
I,
I), 0x00ff,
SH_SCALING_B, {
ADDR(
NIB0,
SH_IMM_U),
PARAM(
R0,
SH_GBR_INDIRECT_INDEXED) } },
93 {
"tas.b",
SH_OP_TAS,
OPCODE(4,
N, 1,
b), 0x0f00,
SH_SCALING_B, {
ADDR(
NIB2,
SH_REG_INDIRECT),
NOPARAM } },
94 {
"tst",
SH_OP_TST,
OPCODE(2,
N,
M, 8), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
95 {
"tst",
SH_OP_TST,
OPCODE(
c, 8,
I,
I), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_IMM_U),
PARAM(
R0,
SH_REG_DIRECT) } },
96 {
"tst.b",
SH_OP_TST,
OPCODE(
c,
c,
I,
I), 0x00ff,
SH_SCALING_B, {
ADDR(
NIB0,
SH_IMM_U),
PARAM(
R0,
SH_GBR_INDIRECT_INDEXED) } },
97 {
"xor",
SH_OP_XOR,
OPCODE(2,
N,
M,
a), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
98 {
"xor",
SH_OP_XOR,
OPCODE(
c,
a,
I,
I), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_IMM_U),
PARAM(
R0,
SH_REG_DIRECT) } },
99 {
"xor.b",
SH_OP_XOR,
OPCODE(
c,
e,
I,
I), 0x00ff,
SH_SCALING_B, {
ADDR(
NIB0,
SH_IMM_U),
PARAM(
R0,
SH_GBR_INDIRECT_INDEXED) } },
102 {
"rotl",
SH_OP_ROTL,
OPCODE(4,
N, 0, 4), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
103 {
"rotr",
SH_OP_ROTR,
OPCODE(4,
N, 0, 5), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
104 {
"rotcl",
SH_OP_ROTCL,
OPCODE(4,
N, 2, 4), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
105 {
"rotcr",
SH_OP_ROTCR,
OPCODE(4,
N, 2, 5), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
106 {
"shad",
SH_OP_SHAD,
OPCODE(4,
N,
M,
c), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
107 {
"shal",
SH_OP_SHAL,
OPCODE(4,
N, 2, 0), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
108 {
"shar",
SH_OP_SHAR,
OPCODE(4,
N, 2, 1), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
109 {
"shld",
SH_OP_SHLD,
OPCODE(4,
N,
M,
d), 0x0ff0,
SH_SCALING_INVALID, {
ADDR(
NIB1,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
110 {
"shll",
SH_OP_SHLL,
OPCODE(4,
N, 0, 0), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
111 {
"shlr",
SH_OP_SHLR,
OPCODE(4,
N, 0, 1), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
112 {
"shll2",
SH_OP_SHLL2,
OPCODE(4,
N, 0, 8), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
113 {
"shlr2",
SH_OP_SHLR2,
OPCODE(4,
N, 0, 9), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
114 {
"shll8",
SH_OP_SHLL8,
OPCODE(4,
N, 1, 8), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
115 {
"shlr8",
SH_OP_SHLR8,
OPCODE(4,
N, 1, 9), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
116 {
"shll16",
SH_OP_SHLL16,
OPCODE(4,
N, 2, 8), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
117 {
"shlr16",
SH_OP_SHLR16,
OPCODE(4,
N, 2, 9), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
NOPARAM } },
120 {
"bf",
SH_OP_BF,
OPCODE(8,
b,
D,
D), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_PC_RELATIVE8),
NOPARAM } },
121 {
"bf/s",
SH_OP_BFS,
OPCODE(8,
f,
D,
D), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_PC_RELATIVE8),
NOPARAM } },
122 {
"bt",
SH_OP_BT,
OPCODE(8, 9,
D,
D), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_PC_RELATIVE8),
NOPARAM } },
123 {
"bt/s",
SH_OP_BTS,
OPCODE(8,
d,
D,
D), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_PC_RELATIVE8),
NOPARAM } },
124 {
"bra",
SH_OP_BRA,
OPCODE(
a,
D,
D,
D), 0x0fff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_PC_RELATIVE12),
NOPARAM } },
125 {
"braf",
SH_OP_BRAF,
OPCODE(0,
N, 2, 3), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_PC_RELATIVE_REG),
NOPARAM } },
126 {
"bsr",
SH_OP_BSR,
OPCODE(
b,
D,
D,
D), 0x0fff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_PC_RELATIVE12),
NOPARAM } },
127 {
"bsrf",
SH_OP_BSRF,
OPCODE(0,
N, 0, 3), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_PC_RELATIVE_REG),
NOPARAM } },
128 {
"jmp",
SH_OP_JMP,
OPCODE(4,
N, 2,
b), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_INDIRECT),
NOPARAM } },
129 {
"jsr",
SH_OP_JSR,
OPCODE(4,
N, 0,
b), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_INDIRECT),
NOPARAM } },
130 {
"rts",
SH_OP_RTS,
OPCODE(0, 0, 0,
b), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
133 {
"clrmac",
SH_OP_CLRMAC,
OPCODE(0, 0, 2, 8), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
134 {
"clrs",
SH_OP_CLRS,
OPCODE(0, 0, 4, 8), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
135 {
"clrt",
SH_OP_CLRT,
OPCODE(0, 0, 0, 8), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
136 {
"ldc",
SH_OP_LDC,
OPCODE(4,
M, 0,
e), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(SR,
SH_REG_DIRECT) } },
137 {
"ldc",
SH_OP_LDC,
OPCODE(4,
M, 1,
e), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(GBR,
SH_REG_DIRECT) } },
138 {
"ldc",
SH_OP_LDC,
OPCODE(4,
M, 2,
e), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(VBR,
SH_REG_DIRECT) } },
139 {
"ldc",
SH_OP_LDC,
OPCODE(4,
M, 3,
e), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(SSR,
SH_REG_DIRECT) } },
140 {
"ldc",
SH_OP_LDC,
OPCODE(4,
M, 4,
e), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(SPC,
SH_REG_DIRECT) } },
141 {
"ldc",
SH_OP_LDC,
OPCODE(4,
M,
f,
a), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(DBR,
SH_REG_DIRECT) } },
142 {
"ldc",
SH_OP_LDC,
OPCODE(4,
M,
N,
e), 0x0f70,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
ADDRBITS(
NIB1,
SH_REG_DIRECT, 3) } },
143 {
"ldc.l",
SH_OP_LDC,
OPCODE(4,
M, 0, 7), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(SR,
SH_REG_DIRECT) } },
144 {
"ldc.l",
SH_OP_LDC,
OPCODE(4,
M, 1, 7), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(GBR,
SH_REG_DIRECT) } },
145 {
"ldc.l",
SH_OP_LDC,
OPCODE(4,
M, 2, 7), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(VBR,
SH_REG_DIRECT) } },
146 {
"ldc.l",
SH_OP_LDC,
OPCODE(4,
M, 3, 7), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(SSR,
SH_REG_DIRECT) } },
147 {
"ldc.l",
SH_OP_LDC,
OPCODE(4,
M, 4, 7), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(SPC,
SH_REG_DIRECT) } },
148 {
"ldc.l",
SH_OP_LDC,
OPCODE(4,
M,
f, 6), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(DBR,
SH_REG_DIRECT) } },
149 {
"ldc.l",
SH_OP_LDC,
OPCODE(4,
M,
N, 7), 0x0f70,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
ADDRBITS(
NIB1,
SH_REG_DIRECT, 3) } },
150 {
"lds",
SH_OP_LDS,
OPCODE(4,
M, 0,
a), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(MACH,
SH_REG_DIRECT) } },
151 {
"lds",
SH_OP_LDS,
OPCODE(4,
M, 1,
a), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(MACL,
SH_REG_DIRECT) } },
152 {
"lds",
SH_OP_LDS,
OPCODE(4,
M, 2,
a), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_DIRECT),
PARAM(PR,
SH_REG_DIRECT) } },
153 {
"lds.l",
SH_OP_LDS,
OPCODE(4,
M, 0, 6), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(MACH,
SH_REG_DIRECT) } },
154 {
"lds.l",
SH_OP_LDS,
OPCODE(4,
M, 1, 6), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(MACL,
SH_REG_DIRECT) } },
155 {
"lds.l",
SH_OP_LDS,
OPCODE(4,
M, 2, 6), 0x0f00,
SH_SCALING_L, {
ADDR(
NIB2,
SH_REG_INDIRECT_I),
PARAM(PR,
SH_REG_DIRECT) } },
156 {
"ldtlb",
SH_OP_UNIMPL,
OPCODE(0, 0, 3, 8), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
157 {
"movca.l",
SH_OP_MOVCA,
OPCODE(0,
N,
c, 3), 0x0f00,
SH_SCALING_L, {
PARAM(
R0,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT) } },
158 {
"nop",
SH_OP_NOP,
OPCODE(0, 0, 0, 9), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
159 {
"ocbi",
SH_OP_UNIMPL,
OPCODE(0,
N, 9, 3), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_INDIRECT),
NOPARAM } },
160 {
"ocbp",
SH_OP_UNIMPL,
OPCODE(0,
N,
a, 3), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_INDIRECT),
NOPARAM } },
161 {
"ocbwb",
SH_OP_UNIMPL,
OPCODE(0,
N,
b, 3), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_INDIRECT),
NOPARAM } },
162 {
"pref",
SH_OP_UNIMPL,
OPCODE(0,
N, 8, 3), 0x0f00,
SH_SCALING_INVALID, {
ADDR(
NIB2,
SH_REG_INDIRECT),
NOPARAM } },
163 {
"rte",
SH_OP_RTE,
OPCODE(0, 0, 2,
b), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
164 {
"sets",
SH_OP_SETS,
OPCODE(0, 0, 5, 8), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
165 {
"sett",
SH_OP_SETT,
OPCODE(0, 0, 1, 8), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
166 {
"sleep",
SH_OP_SLEEP,
OPCODE(0, 0, 1,
b), 0x0000,
SH_SCALING_INVALID, {
NOPARAM,
NOPARAM } },
167 {
"stc",
SH_OP_STC,
OPCODE(0,
M, 0, 2), 0x0f00,
SH_SCALING_INVALID, {
PARAM(SR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
168 {
"stc",
SH_OP_STC,
OPCODE(0,
M, 1, 2), 0x0f00,
SH_SCALING_INVALID, {
PARAM(GBR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
169 {
"stc",
SH_OP_STC,
OPCODE(0,
M, 2, 2), 0x0f00,
SH_SCALING_INVALID, {
PARAM(VBR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
170 {
"stc",
SH_OP_STC,
OPCODE(0,
M, 3, 2), 0x0f00,
SH_SCALING_INVALID, {
PARAM(SSR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
171 {
"stc",
SH_OP_STC,
OPCODE(0,
M, 4, 2), 0x0f00,
SH_SCALING_INVALID, {
PARAM(SPC,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
172 {
"stc",
SH_OP_STC,
OPCODE(0,
M, 3,
a), 0x0f00,
SH_SCALING_INVALID, {
PARAM(SGR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
173 {
"stc",
SH_OP_STC,
OPCODE(0,
M,
f,
a), 0x0f00,
SH_SCALING_INVALID, {
PARAM(DBR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
174 {
"stc",
SH_OP_STC,
OPCODE(0,
N,
M, 2), 0x0f70,
SH_SCALING_INVALID, {
ADDRBITS(
NIB1,
SH_REG_DIRECT, 3),
ADDR(
NIB2,
SH_REG_DIRECT) } },
175 {
"stc.l",
SH_OP_STC,
OPCODE(4,
M, 0, 3), 0x0f00,
SH_SCALING_L, {
PARAM(SR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
176 {
"stc.l",
SH_OP_STC,
OPCODE(4,
M, 1, 3), 0x0f00,
SH_SCALING_L, {
PARAM(GBR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
177 {
"stc.l",
SH_OP_STC,
OPCODE(4,
M, 2, 3), 0x0f00,
SH_SCALING_L, {
PARAM(VBR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
178 {
"stc.l",
SH_OP_STC,
OPCODE(4,
M, 3, 3), 0x0f00,
SH_SCALING_L, {
PARAM(SSR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
179 {
"stc.l",
SH_OP_STC,
OPCODE(4,
M, 4, 3), 0x0f00,
SH_SCALING_L, {
PARAM(SPC,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
180 {
"stc.l",
SH_OP_STC,
OPCODE(4,
M, 3, 2), 0x0f00,
SH_SCALING_L, {
PARAM(SGR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
181 {
"stc.l",
SH_OP_STC,
OPCODE(4,
M,
f, 2), 0x0f00,
SH_SCALING_L, {
PARAM(DBR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
182 {
"stc.l",
SH_OP_STC,
OPCODE(4,
N,
M, 3), 0x0f70,
SH_SCALING_L, {
ADDRBITS(
NIB1,
SH_REG_DIRECT, 3),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
183 {
"sts",
SH_OP_STS,
OPCODE(0,
N, 0,
a), 0x0f00,
SH_SCALING_INVALID, {
PARAM(MACH,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
184 {
"sts",
SH_OP_STS,
OPCODE(0,
N, 1,
a), 0x0f00,
SH_SCALING_INVALID, {
PARAM(MACL,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
185 {
"sts",
SH_OP_STS,
OPCODE(0,
N, 2,
a), 0x0f00,
SH_SCALING_INVALID, {
PARAM(PR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_DIRECT) } },
186 {
"sts.l",
SH_OP_STS,
OPCODE(4,
N, 0, 2), 0x0f00,
SH_SCALING_L, {
PARAM(MACH,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
187 {
"sts.l",
SH_OP_STS,
OPCODE(4,
N, 1, 2), 0x0f00,
SH_SCALING_L, {
PARAM(MACL,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
188 {
"sts.l",
SH_OP_STS,
OPCODE(4,
N, 2, 2), 0x0f00,
SH_SCALING_L, {
PARAM(PR,
SH_REG_DIRECT),
ADDR(
NIB2,
SH_REG_INDIRECT_D) } },
189 {
"trapa",
SH_OP_UNIMPL,
OPCODE(
c, 3,
I,
I), 0x00ff,
SH_SCALING_INVALID, {
ADDR(
NIB0,
SH_IMM_U),
NOPARAM } }
#define ADDRBITS(nib, addrmode, b)
#define PARAM(reg, addrmode)
const SHOpRaw sh_op_lookup[]
@ SH_IMM_S
8-bit immediate value (sign-extended)
@ SH_REG_INDIRECT_DISP
register indirect with displacement
@ SH_REG_INDIRECT_INDEXED
indexed register indirect
@ SH_REG_INDIRECT_I
register indirect with post-increment
@ SH_IMM_U
8-bit immediate value (zero-extended)
@ SH_REG_INDIRECT_D
register indirect with pre-decrement
@ SH_GBR_INDIRECT_INDEXED
Definitions common to the whole liblzma library.