1*3d8817e4Smiod /* Instruction opcode table for xc16x.
2*3d8817e4Smiod
3*3d8817e4Smiod THIS FILE IS MACHINE GENERATED WITH CGEN.
4*3d8817e4Smiod
5*3d8817e4Smiod Copyright 1996-2005 Free Software Foundation, Inc.
6*3d8817e4Smiod
7*3d8817e4Smiod This file is part of the GNU Binutils and/or GDB, the GNU debugger.
8*3d8817e4Smiod
9*3d8817e4Smiod This program is free software; you can redistribute it and/or modify
10*3d8817e4Smiod it under the terms of the GNU General Public License as published by
11*3d8817e4Smiod the Free Software Foundation; either version 2, or (at your option)
12*3d8817e4Smiod any later version.
13*3d8817e4Smiod
14*3d8817e4Smiod This program is distributed in the hope that it will be useful,
15*3d8817e4Smiod but WITHOUT ANY WARRANTY; without even the implied warranty of
16*3d8817e4Smiod MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17*3d8817e4Smiod GNU General Public License for more details.
18*3d8817e4Smiod
19*3d8817e4Smiod You should have received a copy of the GNU General Public License along
20*3d8817e4Smiod with this program; if not, write to the Free Software Foundation, Inc.,
21*3d8817e4Smiod 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22*3d8817e4Smiod
23*3d8817e4Smiod */
24*3d8817e4Smiod
25*3d8817e4Smiod #include "sysdep.h"
26*3d8817e4Smiod #include "ansidecl.h"
27*3d8817e4Smiod #include "bfd.h"
28*3d8817e4Smiod #include "symcat.h"
29*3d8817e4Smiod #include "xc16x-desc.h"
30*3d8817e4Smiod #include "xc16x-opc.h"
31*3d8817e4Smiod #include "libiberty.h"
32*3d8817e4Smiod
33*3d8817e4Smiod /* -- opc.c */
34*3d8817e4Smiod
35*3d8817e4Smiod /* -- */
36*3d8817e4Smiod /* The hash functions are recorded here to help keep assembler code out of
37*3d8817e4Smiod the disassembler and vice versa. */
38*3d8817e4Smiod
39*3d8817e4Smiod static int asm_hash_insn_p (const CGEN_INSN *);
40*3d8817e4Smiod static unsigned int asm_hash_insn (const char *);
41*3d8817e4Smiod static int dis_hash_insn_p (const CGEN_INSN *);
42*3d8817e4Smiod static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT);
43*3d8817e4Smiod
44*3d8817e4Smiod /* Instruction formats. */
45*3d8817e4Smiod
46*3d8817e4Smiod #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
47*3d8817e4Smiod #define F(f) & xc16x_cgen_ifld_table[XC16X_##f]
48*3d8817e4Smiod #else
49*3d8817e4Smiod #define F(f) & xc16x_cgen_ifld_table[XC16X_/**/f]
50*3d8817e4Smiod #endif
51*3d8817e4Smiod static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
52*3d8817e4Smiod 0, 0, 0x0, { { 0 } }
53*3d8817e4Smiod };
54*3d8817e4Smiod
55*3d8817e4Smiod static const CGEN_IFMT ifmt_addrpof ATTRIBUTE_UNUSED = {
56*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
57*3d8817e4Smiod };
58*3d8817e4Smiod
59*3d8817e4Smiod static const CGEN_IFMT ifmt_addbrpof ATTRIBUTE_UNUSED = {
60*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
61*3d8817e4Smiod };
62*3d8817e4Smiod
63*3d8817e4Smiod static const CGEN_IFMT ifmt_addrpag ATTRIBUTE_UNUSED = {
64*3d8817e4Smiod 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
65*3d8817e4Smiod };
66*3d8817e4Smiod
67*3d8817e4Smiod static const CGEN_IFMT ifmt_addbrpag ATTRIBUTE_UNUSED = {
68*3d8817e4Smiod 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
69*3d8817e4Smiod };
70*3d8817e4Smiod
71*3d8817e4Smiod static const CGEN_IFMT ifmt_addrhpof ATTRIBUTE_UNUSED = {
72*3d8817e4Smiod 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
73*3d8817e4Smiod };
74*3d8817e4Smiod
75*3d8817e4Smiod static const CGEN_IFMT ifmt_addrhpof3 ATTRIBUTE_UNUSED = {
76*3d8817e4Smiod 16, 16, 0x8ff, { { F (F_R1) }, { F (F_OP_BIT1) }, { F (F_UIMM3) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
77*3d8817e4Smiod };
78*3d8817e4Smiod
79*3d8817e4Smiod static const CGEN_IFMT ifmt_addbrhpag3 ATTRIBUTE_UNUSED = {
80*3d8817e4Smiod 16, 16, 0x8ff, { { F (F_R1) }, { F (F_OP_BIT1) }, { F (F_UIMM3) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
81*3d8817e4Smiod };
82*3d8817e4Smiod
83*3d8817e4Smiod static const CGEN_IFMT ifmt_addrbhpof ATTRIBUTE_UNUSED = {
84*3d8817e4Smiod 32, 32, 0xff0000ff, { { F (F_OP_BIT8) }, { F (F_UIMM8) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
85*3d8817e4Smiod };
86*3d8817e4Smiod
87*3d8817e4Smiod static const CGEN_IFMT ifmt_addr ATTRIBUTE_UNUSED = {
88*3d8817e4Smiod 16, 16, 0xff, { { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
89*3d8817e4Smiod };
90*3d8817e4Smiod
91*3d8817e4Smiod static const CGEN_IFMT ifmt_addbr ATTRIBUTE_UNUSED = {
92*3d8817e4Smiod 16, 16, 0xff, { { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
93*3d8817e4Smiod };
94*3d8817e4Smiod
95*3d8817e4Smiod static const CGEN_IFMT ifmt_add2 ATTRIBUTE_UNUSED = {
96*3d8817e4Smiod 16, 16, 0xcff, { { F (F_R1) }, { F (F_OP_BIT2) }, { F (F_R0) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
97*3d8817e4Smiod };
98*3d8817e4Smiod
99*3d8817e4Smiod static const CGEN_IFMT ifmt_addb2 ATTRIBUTE_UNUSED = {
100*3d8817e4Smiod 16, 16, 0xcff, { { F (F_R1) }, { F (F_OP_BIT2) }, { F (F_R0) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
101*3d8817e4Smiod };
102*3d8817e4Smiod
103*3d8817e4Smiod static const CGEN_IFMT ifmt_addrm2 ATTRIBUTE_UNUSED = {
104*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMGR8) }, { F (F_REGMEM8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
105*3d8817e4Smiod };
106*3d8817e4Smiod
107*3d8817e4Smiod static const CGEN_IFMT ifmt_addrm ATTRIBUTE_UNUSED = {
108*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
109*3d8817e4Smiod };
110*3d8817e4Smiod
111*3d8817e4Smiod static const CGEN_IFMT ifmt_addbrm2 ATTRIBUTE_UNUSED = {
112*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMGR8) }, { F (F_REGMEM8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
113*3d8817e4Smiod };
114*3d8817e4Smiod
115*3d8817e4Smiod static const CGEN_IFMT ifmt_addbrm ATTRIBUTE_UNUSED = {
116*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
117*3d8817e4Smiod };
118*3d8817e4Smiod
119*3d8817e4Smiod static const CGEN_IFMT ifmt_muls ATTRIBUTE_UNUSED = {
120*3d8817e4Smiod 16, 16, 0xff, { { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
121*3d8817e4Smiod };
122*3d8817e4Smiod
123*3d8817e4Smiod static const CGEN_IFMT ifmt_div ATTRIBUTE_UNUSED = {
124*3d8817e4Smiod 16, 16, 0xff, { { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
125*3d8817e4Smiod };
126*3d8817e4Smiod
127*3d8817e4Smiod static const CGEN_IFMT ifmt_cpl ATTRIBUTE_UNUSED = {
128*3d8817e4Smiod 16, 16, 0xfff, { { F (F_R1) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
129*3d8817e4Smiod };
130*3d8817e4Smiod
131*3d8817e4Smiod static const CGEN_IFMT ifmt_cplb ATTRIBUTE_UNUSED = {
132*3d8817e4Smiod 16, 16, 0xfff, { { F (F_R1) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
133*3d8817e4Smiod };
134*3d8817e4Smiod
135*3d8817e4Smiod static const CGEN_IFMT ifmt_movri ATTRIBUTE_UNUSED = {
136*3d8817e4Smiod 16, 16, 0xff, { { F (F_UIMM4) }, { F (F_R4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
137*3d8817e4Smiod };
138*3d8817e4Smiod
139*3d8817e4Smiod static const CGEN_IFMT ifmt_movbri ATTRIBUTE_UNUSED = {
140*3d8817e4Smiod 16, 16, 0xff, { { F (F_UIMM4) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
141*3d8817e4Smiod };
142*3d8817e4Smiod
143*3d8817e4Smiod static const CGEN_IFMT ifmt_movbr2 ATTRIBUTE_UNUSED = {
144*3d8817e4Smiod 16, 16, 0xff, { { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
145*3d8817e4Smiod };
146*3d8817e4Smiod
147*3d8817e4Smiod static const CGEN_IFMT ifmt_mov9i ATTRIBUTE_UNUSED = {
148*3d8817e4Smiod 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
149*3d8817e4Smiod };
150*3d8817e4Smiod
151*3d8817e4Smiod static const CGEN_IFMT ifmt_movb9i ATTRIBUTE_UNUSED = {
152*3d8817e4Smiod 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
153*3d8817e4Smiod };
154*3d8817e4Smiod
155*3d8817e4Smiod static const CGEN_IFMT ifmt_movri11 ATTRIBUTE_UNUSED = {
156*3d8817e4Smiod 32, 32, 0xf0ff, { { F (F_MEMORY) }, { F (F_OP_LBIT4) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
157*3d8817e4Smiod };
158*3d8817e4Smiod
159*3d8817e4Smiod static const CGEN_IFMT ifmt_movehm5 ATTRIBUTE_UNUSED = {
160*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
161*3d8817e4Smiod };
162*3d8817e4Smiod
163*3d8817e4Smiod static const CGEN_IFMT ifmt_movehm6 ATTRIBUTE_UNUSED = {
164*3d8817e4Smiod 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
165*3d8817e4Smiod };
166*3d8817e4Smiod
167*3d8817e4Smiod static const CGEN_IFMT ifmt_movehm7 ATTRIBUTE_UNUSED = {
168*3d8817e4Smiod 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
169*3d8817e4Smiod };
170*3d8817e4Smiod
171*3d8817e4Smiod static const CGEN_IFMT ifmt_movehm8 ATTRIBUTE_UNUSED = {
172*3d8817e4Smiod 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
173*3d8817e4Smiod };
174*3d8817e4Smiod
175*3d8817e4Smiod static const CGEN_IFMT ifmt_movehm10 ATTRIBUTE_UNUSED = {
176*3d8817e4Smiod 32, 32, 0xff0000ff, { { F (F_OP_BIT8) }, { F (F_UIMM8) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
177*3d8817e4Smiod };
178*3d8817e4Smiod
179*3d8817e4Smiod static const CGEN_IFMT ifmt_movbsrpofm ATTRIBUTE_UNUSED = {
180*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGMEM8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
181*3d8817e4Smiod };
182*3d8817e4Smiod
183*3d8817e4Smiod static const CGEN_IFMT ifmt_movbspofmr ATTRIBUTE_UNUSED = {
184*3d8817e4Smiod 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGMEM8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
185*3d8817e4Smiod };
186*3d8817e4Smiod
187*3d8817e4Smiod static const CGEN_IFMT ifmt_jmpa0 ATTRIBUTE_UNUSED = {
188*3d8817e4Smiod 32, 32, 0x4ff, { { F (F_OFFSET16) }, { F (F_EXTCCODE) }, { F (F_OP_BITONE) }, { F (F_OP_ONEBIT) }, { F (F_OP_1BIT) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
189*3d8817e4Smiod };
190*3d8817e4Smiod
191*3d8817e4Smiod static const CGEN_IFMT ifmt_jmpa_ ATTRIBUTE_UNUSED = {
192*3d8817e4Smiod 32, 32, 0x5ff, { { F (F_OFFSET16) }, { F (F_EXTCCODE) }, { F (F_OP_BITONE) }, { F (F_OP_ONEBIT) }, { F (F_OP_1BIT) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
193*3d8817e4Smiod };
194*3d8817e4Smiod
195*3d8817e4Smiod static const CGEN_IFMT ifmt_jmpi ATTRIBUTE_UNUSED = {
196*3d8817e4Smiod 16, 16, 0xff, { { F (F_ICONDCODE) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
197*3d8817e4Smiod };
198*3d8817e4Smiod
199*3d8817e4Smiod static const CGEN_IFMT ifmt_jmpr_nenz ATTRIBUTE_UNUSED = {
200*3d8817e4Smiod 16, 16, 0xff, { { F (F_REL8) }, { F (F_RCOND) }, { F (F_OP2) }, { 0 } }
201*3d8817e4Smiod };
202*3d8817e4Smiod
203*3d8817e4Smiod static const CGEN_IFMT ifmt_jmpseg ATTRIBUTE_UNUSED = {
204*3d8817e4Smiod 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_SEG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
205*3d8817e4Smiod };
206*3d8817e4Smiod
207*3d8817e4Smiod static const CGEN_IFMT ifmt_jmps ATTRIBUTE_UNUSED = {
208*3d8817e4Smiod 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_SEG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
209*3d8817e4Smiod };
210*3d8817e4Smiod
211*3d8817e4Smiod static const CGEN_IFMT ifmt_jb ATTRIBUTE_UNUSED = {
212*3d8817e4Smiod 32, 32, 0xf0000ff, { { F (F_QLOBIT) }, { F (F_QHIBIT) }, { F (F_RELHI8) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
213*3d8817e4Smiod };
214*3d8817e4Smiod
215*3d8817e4Smiod static const CGEN_IFMT ifmt_calla0 ATTRIBUTE_UNUSED = {
216*3d8817e4Smiod 32, 32, 0x6ff, { { F (F_OFFSET16) }, { F (F_EXTCCODE) }, { F (F_OP_2BIT) }, { F (F_OP_1BIT) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
217*3d8817e4Smiod };
218*3d8817e4Smiod
219*3d8817e4Smiod static const CGEN_IFMT ifmt_calla_ ATTRIBUTE_UNUSED = {
220*3d8817e4Smiod 32, 32, 0x7ff, { { F (F_OFFSET16) }, { F (F_EXTCCODE) }, { F (F_OP_BIT3) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
221*3d8817e4Smiod };
222*3d8817e4Smiod
223*3d8817e4Smiod static const CGEN_IFMT ifmt_callr ATTRIBUTE_UNUSED = {
224*3d8817e4Smiod 16, 16, 0xff, { { F (F_REL8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
225*3d8817e4Smiod };
226*3d8817e4Smiod
227*3d8817e4Smiod static const CGEN_IFMT ifmt_callseg ATTRIBUTE_UNUSED = {
228*3d8817e4Smiod 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_SEG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
229*3d8817e4Smiod };
230*3d8817e4Smiod
231*3d8817e4Smiod static const CGEN_IFMT ifmt_pcall ATTRIBUTE_UNUSED = {
232*3d8817e4Smiod 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
233*3d8817e4Smiod };
234*3d8817e4Smiod
235*3d8817e4Smiod static const CGEN_IFMT ifmt_trap ATTRIBUTE_UNUSED = {
236*3d8817e4Smiod 16, 16, 0x1ff, { { F (F_UIMM7) }, { F (F_OP_1BIT) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
237*3d8817e4Smiod };
238*3d8817e4Smiod
239*3d8817e4Smiod static const CGEN_IFMT ifmt_ret ATTRIBUTE_UNUSED = {
240*3d8817e4Smiod 16, 16, 0xff0000ff, { { F (F_OP_BIT8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
241*3d8817e4Smiod };
242*3d8817e4Smiod
243*3d8817e4Smiod static const CGEN_IFMT ifmt_retp ATTRIBUTE_UNUSED = {
244*3d8817e4Smiod 16, 16, 0xff, { { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
245*3d8817e4Smiod };
246*3d8817e4Smiod
247*3d8817e4Smiod static const CGEN_IFMT ifmt_reti ATTRIBUTE_UNUSED = {
248*3d8817e4Smiod 16, 16, 0xffff, { { F (F_OP_LBIT4) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
249*3d8817e4Smiod };
250*3d8817e4Smiod
251*3d8817e4Smiod static const CGEN_IFMT ifmt_srstm ATTRIBUTE_UNUSED = {
252*3d8817e4Smiod 32, 32, 0xffffffff, { { F (F_OP_BIT8) }, { F (F_DATA8) }, { F (F_OP_LBIT4) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
253*3d8817e4Smiod };
254*3d8817e4Smiod
255*3d8817e4Smiod static const CGEN_IFMT ifmt_atomic ATTRIBUTE_UNUSED = {
256*3d8817e4Smiod 16, 16, 0xcfff, { { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
257*3d8817e4Smiod };
258*3d8817e4Smiod
259*3d8817e4Smiod static const CGEN_IFMT ifmt_extp ATTRIBUTE_UNUSED = {
260*3d8817e4Smiod 16, 16, 0xc0ff, { { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
261*3d8817e4Smiod };
262*3d8817e4Smiod
263*3d8817e4Smiod static const CGEN_IFMT ifmt_extp1 ATTRIBUTE_UNUSED = {
264*3d8817e4Smiod 32, 32, 0xfc00cfff, { { F (F_QLOBIT) }, { F (F_QLOBIT2) }, { F (F_PAGENUM) }, { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
265*3d8817e4Smiod };
266*3d8817e4Smiod
267*3d8817e4Smiod static const CGEN_IFMT ifmt_extpg1 ATTRIBUTE_UNUSED = {
268*3d8817e4Smiod 32, 32, 0xcfff, { { F (F_UIMM16) }, { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
269*3d8817e4Smiod };
270*3d8817e4Smiod
271*3d8817e4Smiod static const CGEN_IFMT ifmt_exts1 ATTRIBUTE_UNUSED = {
272*3d8817e4Smiod 32, 32, 0xff00cfff, { { F (F_OP_BIT8) }, { F (F_SEGNUM8) }, { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
273*3d8817e4Smiod };
274*3d8817e4Smiod
275*3d8817e4Smiod static const CGEN_IFMT ifmt_bclr18 ATTRIBUTE_UNUSED = {
276*3d8817e4Smiod 16, 16, 0xff, { { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
277*3d8817e4Smiod };
278*3d8817e4Smiod
279*3d8817e4Smiod static const CGEN_IFMT ifmt_bclr0 ATTRIBUTE_UNUSED = {
280*3d8817e4Smiod 16, 16, 0xff, { { F (F_REG8) }, { F (F_QCOND) }, { F (F_OP2) }, { 0 } }
281*3d8817e4Smiod };
282*3d8817e4Smiod
283*3d8817e4Smiod static const CGEN_IFMT ifmt_bmov ATTRIBUTE_UNUSED = {
284*3d8817e4Smiod 32, 32, 0xff, { { F (F_QLOBIT) }, { F (F_QHIBIT) }, { F (F_REGHI8) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
285*3d8817e4Smiod };
286*3d8817e4Smiod
287*3d8817e4Smiod static const CGEN_IFMT ifmt_bfldl ATTRIBUTE_UNUSED = {
288*3d8817e4Smiod 32, 32, 0xff, { { F (F_DATAHI8) }, { F (F_MASK8) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
289*3d8817e4Smiod };
290*3d8817e4Smiod
291*3d8817e4Smiod static const CGEN_IFMT ifmt_bfldh ATTRIBUTE_UNUSED = {
292*3d8817e4Smiod 32, 32, 0xff, { { F (F_DATAHI8) }, { F (F_DATA8) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
293*3d8817e4Smiod };
294*3d8817e4Smiod
295*3d8817e4Smiod static const CGEN_IFMT ifmt_cmpri ATTRIBUTE_UNUSED = {
296*3d8817e4Smiod 16, 16, 0x8ff, { { F (F_R1) }, { F (F_OP_BIT1) }, { F (F_UIMM3) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
297*3d8817e4Smiod };
298*3d8817e4Smiod
299*3d8817e4Smiod static const CGEN_IFMT ifmt_cmpd1ri ATTRIBUTE_UNUSED = {
300*3d8817e4Smiod 16, 16, 0xff, { { F (F_UIMM4) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } }
301*3d8817e4Smiod };
302*3d8817e4Smiod
303*3d8817e4Smiod #undef F
304*3d8817e4Smiod
305*3d8817e4Smiod #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
306*3d8817e4Smiod #define A(a) (1 << CGEN_INSN_##a)
307*3d8817e4Smiod #else
308*3d8817e4Smiod #define A(a) (1 << CGEN_INSN_/**/a)
309*3d8817e4Smiod #endif
310*3d8817e4Smiod #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
311*3d8817e4Smiod #define OPERAND(op) XC16X_OPERAND_##op
312*3d8817e4Smiod #else
313*3d8817e4Smiod #define OPERAND(op) XC16X_OPERAND_/**/op
314*3d8817e4Smiod #endif
315*3d8817e4Smiod #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
316*3d8817e4Smiod #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
317*3d8817e4Smiod
318*3d8817e4Smiod /* The instruction table. */
319*3d8817e4Smiod
320*3d8817e4Smiod static const CGEN_OPCODE xc16x_cgen_insn_opcode_table[MAX_INSNS] =
321*3d8817e4Smiod {
322*3d8817e4Smiod /* Special null first entry.
323*3d8817e4Smiod A `num' value of zero is thus invalid.
324*3d8817e4Smiod Also, the special `invalid' insn resides here. */
325*3d8817e4Smiod { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
326*3d8817e4Smiod /* add $reg8,$pof$upof16 */
327*3d8817e4Smiod {
328*3d8817e4Smiod { 0, 0, 0, 0 },
329*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
330*3d8817e4Smiod & ifmt_addrpof, { 0x2 }
331*3d8817e4Smiod },
332*3d8817e4Smiod /* sub $reg8,$pof$upof16 */
333*3d8817e4Smiod {
334*3d8817e4Smiod { 0, 0, 0, 0 },
335*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
336*3d8817e4Smiod & ifmt_addrpof, { 0x22 }
337*3d8817e4Smiod },
338*3d8817e4Smiod /* addb $regb8,$pof$upof16 */
339*3d8817e4Smiod {
340*3d8817e4Smiod { 0, 0, 0, 0 },
341*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } },
342*3d8817e4Smiod & ifmt_addbrpof, { 0x3 }
343*3d8817e4Smiod },
344*3d8817e4Smiod /* subb $regb8,$pof$upof16 */
345*3d8817e4Smiod {
346*3d8817e4Smiod { 0, 0, 0, 0 },
347*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } },
348*3d8817e4Smiod & ifmt_addbrpof, { 0x23 }
349*3d8817e4Smiod },
350*3d8817e4Smiod /* add $reg8,$pag$upag16 */
351*3d8817e4Smiod {
352*3d8817e4Smiod { 0, 0, 0, 0 },
353*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (PAG), OP (UPAG16), 0 } },
354*3d8817e4Smiod & ifmt_addrpag, { 0x2 }
355*3d8817e4Smiod },
356*3d8817e4Smiod /* sub $reg8,$pag$upag16 */
357*3d8817e4Smiod {
358*3d8817e4Smiod { 0, 0, 0, 0 },
359*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (PAG), OP (UPAG16), 0 } },
360*3d8817e4Smiod & ifmt_addrpag, { 0x22 }
361*3d8817e4Smiod },
362*3d8817e4Smiod /* addb $regb8,$pag$upag16 */
363*3d8817e4Smiod {
364*3d8817e4Smiod { 0, 0, 0, 0 },
365*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } },
366*3d8817e4Smiod & ifmt_addbrpag, { 0x3 }
367*3d8817e4Smiod },
368*3d8817e4Smiod /* subb $regb8,$pag$upag16 */
369*3d8817e4Smiod {
370*3d8817e4Smiod { 0, 0, 0, 0 },
371*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } },
372*3d8817e4Smiod & ifmt_addbrpag, { 0x23 }
373*3d8817e4Smiod },
374*3d8817e4Smiod /* addc $reg8,$pof$upof16 */
375*3d8817e4Smiod {
376*3d8817e4Smiod { 0, 0, 0, 0 },
377*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
378*3d8817e4Smiod & ifmt_addrpof, { 0x12 }
379*3d8817e4Smiod },
380*3d8817e4Smiod /* subc $reg8,$pof$upof16 */
381*3d8817e4Smiod {
382*3d8817e4Smiod { 0, 0, 0, 0 },
383*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
384*3d8817e4Smiod & ifmt_addrpof, { 0x32 }
385*3d8817e4Smiod },
386*3d8817e4Smiod /* addcb $regb8,$pof$upof16 */
387*3d8817e4Smiod {
388*3d8817e4Smiod { 0, 0, 0, 0 },
389*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } },
390*3d8817e4Smiod & ifmt_addbrpof, { 0x13 }
391*3d8817e4Smiod },
392*3d8817e4Smiod /* subcb $regb8,$pof$upof16 */
393*3d8817e4Smiod {
394*3d8817e4Smiod { 0, 0, 0, 0 },
395*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } },
396*3d8817e4Smiod & ifmt_addbrpof, { 0x33 }
397*3d8817e4Smiod },
398*3d8817e4Smiod /* addc $reg8,$pag$upag16 */
399*3d8817e4Smiod {
400*3d8817e4Smiod { 0, 0, 0, 0 },
401*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (PAG), OP (UPAG16), 0 } },
402*3d8817e4Smiod & ifmt_addrpag, { 0x12 }
403*3d8817e4Smiod },
404*3d8817e4Smiod /* subc $reg8,$pag$upag16 */
405*3d8817e4Smiod {
406*3d8817e4Smiod { 0, 0, 0, 0 },
407*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (PAG), OP (UPAG16), 0 } },
408*3d8817e4Smiod & ifmt_addrpag, { 0x32 }
409*3d8817e4Smiod },
410*3d8817e4Smiod /* addcb $regb8,$pag$upag16 */
411*3d8817e4Smiod {
412*3d8817e4Smiod { 0, 0, 0, 0 },
413*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } },
414*3d8817e4Smiod & ifmt_addbrpag, { 0x13 }
415*3d8817e4Smiod },
416*3d8817e4Smiod /* subcb $regb8,$pag$upag16 */
417*3d8817e4Smiod {
418*3d8817e4Smiod { 0, 0, 0, 0 },
419*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } },
420*3d8817e4Smiod & ifmt_addbrpag, { 0x33 }
421*3d8817e4Smiod },
422*3d8817e4Smiod /* add $pof$upof16,$reg8 */
423*3d8817e4Smiod {
424*3d8817e4Smiod { 0, 0, 0, 0 },
425*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } },
426*3d8817e4Smiod & ifmt_addrpof, { 0x4 }
427*3d8817e4Smiod },
428*3d8817e4Smiod /* sub $pof$upof16,$reg8 */
429*3d8817e4Smiod {
430*3d8817e4Smiod { 0, 0, 0, 0 },
431*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } },
432*3d8817e4Smiod & ifmt_addrpof, { 0x24 }
433*3d8817e4Smiod },
434*3d8817e4Smiod /* addb $pof$upof16,$regb8 */
435*3d8817e4Smiod {
436*3d8817e4Smiod { 0, 0, 0, 0 },
437*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
438*3d8817e4Smiod & ifmt_addbrpof, { 0x5 }
439*3d8817e4Smiod },
440*3d8817e4Smiod /* subb $pof$upof16,$regb8 */
441*3d8817e4Smiod {
442*3d8817e4Smiod { 0, 0, 0, 0 },
443*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
444*3d8817e4Smiod & ifmt_addbrpof, { 0x25 }
445*3d8817e4Smiod },
446*3d8817e4Smiod /* addc $pof$upof16,$reg8 */
447*3d8817e4Smiod {
448*3d8817e4Smiod { 0, 0, 0, 0 },
449*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } },
450*3d8817e4Smiod & ifmt_addrpof, { 0x14 }
451*3d8817e4Smiod },
452*3d8817e4Smiod /* subc $pof$upof16,$reg8 */
453*3d8817e4Smiod {
454*3d8817e4Smiod { 0, 0, 0, 0 },
455*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } },
456*3d8817e4Smiod & ifmt_addrpof, { 0x34 }
457*3d8817e4Smiod },
458*3d8817e4Smiod /* addcb $pof$upof16,$regb8 */
459*3d8817e4Smiod {
460*3d8817e4Smiod { 0, 0, 0, 0 },
461*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
462*3d8817e4Smiod & ifmt_addbrpof, { 0x15 }
463*3d8817e4Smiod },
464*3d8817e4Smiod /* subcb $pof$upof16,$regb8 */
465*3d8817e4Smiod {
466*3d8817e4Smiod { 0, 0, 0, 0 },
467*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
468*3d8817e4Smiod & ifmt_addbrpof, { 0x35 }
469*3d8817e4Smiod },
470*3d8817e4Smiod /* add $reg8,$hash$pof$uimm16 */
471*3d8817e4Smiod {
472*3d8817e4Smiod { 0, 0, 0, 0 },
473*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (POF), OP (UIMM16), 0 } },
474*3d8817e4Smiod & ifmt_addrhpof, { 0x6 }
475*3d8817e4Smiod },
476*3d8817e4Smiod /* sub $reg8,$hash$pof$uimm16 */
477*3d8817e4Smiod {
478*3d8817e4Smiod { 0, 0, 0, 0 },
479*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (POF), OP (UIMM16), 0 } },
480*3d8817e4Smiod & ifmt_addrhpof, { 0x26 }
481*3d8817e4Smiod },
482*3d8817e4Smiod /* add $reg8,$hash$pag$uimm16 */
483*3d8817e4Smiod {
484*3d8817e4Smiod { 0, 0, 0, 0 },
485*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (PAG), OP (UIMM16), 0 } },
486*3d8817e4Smiod & ifmt_addrhpof, { 0x6 }
487*3d8817e4Smiod },
488*3d8817e4Smiod /* sub $reg8,$hash$pag$uimm16 */
489*3d8817e4Smiod {
490*3d8817e4Smiod { 0, 0, 0, 0 },
491*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (PAG), OP (UIMM16), 0 } },
492*3d8817e4Smiod & ifmt_addrhpof, { 0x26 }
493*3d8817e4Smiod },
494*3d8817e4Smiod /* add $dr,$hash$pof$uimm3 */
495*3d8817e4Smiod {
496*3d8817e4Smiod { 0, 0, 0, 0 },
497*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } },
498*3d8817e4Smiod & ifmt_addrhpof3, { 0x8 }
499*3d8817e4Smiod },
500*3d8817e4Smiod /* sub $dr,$hash$pof$uimm3 */
501*3d8817e4Smiod {
502*3d8817e4Smiod { 0, 0, 0, 0 },
503*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } },
504*3d8817e4Smiod & ifmt_addrhpof3, { 0x28 }
505*3d8817e4Smiod },
506*3d8817e4Smiod /* addb $drb,$hash$pag$uimm3 */
507*3d8817e4Smiod {
508*3d8817e4Smiod { 0, 0, 0, 0 },
509*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } },
510*3d8817e4Smiod & ifmt_addbrhpag3, { 0x9 }
511*3d8817e4Smiod },
512*3d8817e4Smiod /* subb $drb,$hash$pag$uimm3 */
513*3d8817e4Smiod {
514*3d8817e4Smiod { 0, 0, 0, 0 },
515*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } },
516*3d8817e4Smiod & ifmt_addbrhpag3, { 0x29 }
517*3d8817e4Smiod },
518*3d8817e4Smiod /* add $dr,$hash$pag$uimm3 */
519*3d8817e4Smiod {
520*3d8817e4Smiod { 0, 0, 0, 0 },
521*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } },
522*3d8817e4Smiod & ifmt_addrhpof3, { 0x8 }
523*3d8817e4Smiod },
524*3d8817e4Smiod /* sub $dr,$hash$pag$uimm3 */
525*3d8817e4Smiod {
526*3d8817e4Smiod { 0, 0, 0, 0 },
527*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } },
528*3d8817e4Smiod & ifmt_addrhpof3, { 0x28 }
529*3d8817e4Smiod },
530*3d8817e4Smiod /* addb $drb,$hash$pof$uimm3 */
531*3d8817e4Smiod {
532*3d8817e4Smiod { 0, 0, 0, 0 },
533*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } },
534*3d8817e4Smiod & ifmt_addbrhpag3, { 0x9 }
535*3d8817e4Smiod },
536*3d8817e4Smiod /* subb $drb,$hash$pof$uimm3 */
537*3d8817e4Smiod {
538*3d8817e4Smiod { 0, 0, 0, 0 },
539*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } },
540*3d8817e4Smiod & ifmt_addbrhpag3, { 0x29 }
541*3d8817e4Smiod },
542*3d8817e4Smiod /* addb $regb8,$hash$pof$uimm8 */
543*3d8817e4Smiod {
544*3d8817e4Smiod { 0, 0, 0, 0 },
545*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } },
546*3d8817e4Smiod & ifmt_addrbhpof, { 0x7 }
547*3d8817e4Smiod },
548*3d8817e4Smiod /* subb $regb8,$hash$pof$uimm8 */
549*3d8817e4Smiod {
550*3d8817e4Smiod { 0, 0, 0, 0 },
551*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } },
552*3d8817e4Smiod & ifmt_addrbhpof, { 0x27 }
553*3d8817e4Smiod },
554*3d8817e4Smiod /* addb $regb8,$hash$pag$uimm8 */
555*3d8817e4Smiod {
556*3d8817e4Smiod { 0, 0, 0, 0 },
557*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } },
558*3d8817e4Smiod & ifmt_addrbhpof, { 0x7 }
559*3d8817e4Smiod },
560*3d8817e4Smiod /* subb $regb8,$hash$pag$uimm8 */
561*3d8817e4Smiod {
562*3d8817e4Smiod { 0, 0, 0, 0 },
563*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } },
564*3d8817e4Smiod & ifmt_addrbhpof, { 0x27 }
565*3d8817e4Smiod },
566*3d8817e4Smiod /* addc $reg8,$hash$pof$uimm16 */
567*3d8817e4Smiod {
568*3d8817e4Smiod { 0, 0, 0, 0 },
569*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (POF), OP (UIMM16), 0 } },
570*3d8817e4Smiod & ifmt_addrhpof, { 0x16 }
571*3d8817e4Smiod },
572*3d8817e4Smiod /* subc $reg8,$hash$pof$uimm16 */
573*3d8817e4Smiod {
574*3d8817e4Smiod { 0, 0, 0, 0 },
575*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (POF), OP (UIMM16), 0 } },
576*3d8817e4Smiod & ifmt_addrhpof, { 0x36 }
577*3d8817e4Smiod },
578*3d8817e4Smiod /* addc $reg8,$hash$pag$uimm16 */
579*3d8817e4Smiod {
580*3d8817e4Smiod { 0, 0, 0, 0 },
581*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (PAG), OP (UIMM16), 0 } },
582*3d8817e4Smiod & ifmt_addrhpof, { 0x16 }
583*3d8817e4Smiod },
584*3d8817e4Smiod /* subc $reg8,$hash$pag$uimm16 */
585*3d8817e4Smiod {
586*3d8817e4Smiod { 0, 0, 0, 0 },
587*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (PAG), OP (UIMM16), 0 } },
588*3d8817e4Smiod & ifmt_addrhpof, { 0x36 }
589*3d8817e4Smiod },
590*3d8817e4Smiod /* addc $dr,$hash$pof$uimm3 */
591*3d8817e4Smiod {
592*3d8817e4Smiod { 0, 0, 0, 0 },
593*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } },
594*3d8817e4Smiod & ifmt_addrhpof3, { 0x18 }
595*3d8817e4Smiod },
596*3d8817e4Smiod /* subc $dr,$hash$pof$uimm3 */
597*3d8817e4Smiod {
598*3d8817e4Smiod { 0, 0, 0, 0 },
599*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } },
600*3d8817e4Smiod & ifmt_addrhpof3, { 0x38 }
601*3d8817e4Smiod },
602*3d8817e4Smiod /* addcb $drb,$hash$pag$uimm3 */
603*3d8817e4Smiod {
604*3d8817e4Smiod { 0, 0, 0, 0 },
605*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } },
606*3d8817e4Smiod & ifmt_addbrhpag3, { 0x19 }
607*3d8817e4Smiod },
608*3d8817e4Smiod /* subcb $drb,$hash$pag$uimm3 */
609*3d8817e4Smiod {
610*3d8817e4Smiod { 0, 0, 0, 0 },
611*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } },
612*3d8817e4Smiod & ifmt_addbrhpag3, { 0x39 }
613*3d8817e4Smiod },
614*3d8817e4Smiod /* addc $dr,$hash$pag$uimm3 */
615*3d8817e4Smiod {
616*3d8817e4Smiod { 0, 0, 0, 0 },
617*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } },
618*3d8817e4Smiod & ifmt_addrhpof3, { 0x18 }
619*3d8817e4Smiod },
620*3d8817e4Smiod /* subc $dr,$hash$pag$uimm3 */
621*3d8817e4Smiod {
622*3d8817e4Smiod { 0, 0, 0, 0 },
623*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } },
624*3d8817e4Smiod & ifmt_addrhpof3, { 0x38 }
625*3d8817e4Smiod },
626*3d8817e4Smiod /* addcb $drb,$hash$pof$uimm3 */
627*3d8817e4Smiod {
628*3d8817e4Smiod { 0, 0, 0, 0 },
629*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } },
630*3d8817e4Smiod & ifmt_addbrhpag3, { 0x19 }
631*3d8817e4Smiod },
632*3d8817e4Smiod /* subcb $drb,$hash$pof$uimm3 */
633*3d8817e4Smiod {
634*3d8817e4Smiod { 0, 0, 0, 0 },
635*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } },
636*3d8817e4Smiod & ifmt_addbrhpag3, { 0x39 }
637*3d8817e4Smiod },
638*3d8817e4Smiod /* addcb $regb8,$hash$pof$uimm8 */
639*3d8817e4Smiod {
640*3d8817e4Smiod { 0, 0, 0, 0 },
641*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } },
642*3d8817e4Smiod & ifmt_addrbhpof, { 0x17 }
643*3d8817e4Smiod },
644*3d8817e4Smiod /* subcb $regb8,$hash$pof$uimm8 */
645*3d8817e4Smiod {
646*3d8817e4Smiod { 0, 0, 0, 0 },
647*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } },
648*3d8817e4Smiod & ifmt_addrbhpof, { 0x37 }
649*3d8817e4Smiod },
650*3d8817e4Smiod /* addcb $regb8,$hash$pag$uimm8 */
651*3d8817e4Smiod {
652*3d8817e4Smiod { 0, 0, 0, 0 },
653*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } },
654*3d8817e4Smiod & ifmt_addrbhpof, { 0x17 }
655*3d8817e4Smiod },
656*3d8817e4Smiod /* subcb $regb8,$hash$pag$uimm8 */
657*3d8817e4Smiod {
658*3d8817e4Smiod { 0, 0, 0, 0 },
659*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } },
660*3d8817e4Smiod & ifmt_addrbhpof, { 0x37 }
661*3d8817e4Smiod },
662*3d8817e4Smiod /* add $dr,$hash$uimm3 */
663*3d8817e4Smiod {
664*3d8817e4Smiod { 0, 0, 0, 0 },
665*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } },
666*3d8817e4Smiod & ifmt_addrhpof3, { 0x8 }
667*3d8817e4Smiod },
668*3d8817e4Smiod /* sub $dr,$hash$uimm3 */
669*3d8817e4Smiod {
670*3d8817e4Smiod { 0, 0, 0, 0 },
671*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } },
672*3d8817e4Smiod & ifmt_addrhpof3, { 0x28 }
673*3d8817e4Smiod },
674*3d8817e4Smiod /* addb $drb,$hash$uimm3 */
675*3d8817e4Smiod {
676*3d8817e4Smiod { 0, 0, 0, 0 },
677*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } },
678*3d8817e4Smiod & ifmt_addbrhpag3, { 0x9 }
679*3d8817e4Smiod },
680*3d8817e4Smiod /* subb $drb,$hash$uimm3 */
681*3d8817e4Smiod {
682*3d8817e4Smiod { 0, 0, 0, 0 },
683*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } },
684*3d8817e4Smiod & ifmt_addbrhpag3, { 0x29 }
685*3d8817e4Smiod },
686*3d8817e4Smiod /* add $reg8,$hash$uimm16 */
687*3d8817e4Smiod {
688*3d8817e4Smiod { 0, 0, 0, 0 },
689*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
690*3d8817e4Smiod & ifmt_addrhpof, { 0x6 }
691*3d8817e4Smiod },
692*3d8817e4Smiod /* sub $reg8,$hash$uimm16 */
693*3d8817e4Smiod {
694*3d8817e4Smiod { 0, 0, 0, 0 },
695*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
696*3d8817e4Smiod & ifmt_addrhpof, { 0x26 }
697*3d8817e4Smiod },
698*3d8817e4Smiod /* addb $regb8,$hash$uimm8 */
699*3d8817e4Smiod {
700*3d8817e4Smiod { 0, 0, 0, 0 },
701*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
702*3d8817e4Smiod & ifmt_addrbhpof, { 0x7 }
703*3d8817e4Smiod },
704*3d8817e4Smiod /* subb $regb8,$hash$uimm8 */
705*3d8817e4Smiod {
706*3d8817e4Smiod { 0, 0, 0, 0 },
707*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
708*3d8817e4Smiod & ifmt_addrbhpof, { 0x27 }
709*3d8817e4Smiod },
710*3d8817e4Smiod /* addc $dr,$hash$uimm3 */
711*3d8817e4Smiod {
712*3d8817e4Smiod { 0, 0, 0, 0 },
713*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } },
714*3d8817e4Smiod & ifmt_addrhpof3, { 0x18 }
715*3d8817e4Smiod },
716*3d8817e4Smiod /* subc $dr,$hash$uimm3 */
717*3d8817e4Smiod {
718*3d8817e4Smiod { 0, 0, 0, 0 },
719*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } },
720*3d8817e4Smiod & ifmt_addrhpof3, { 0x38 }
721*3d8817e4Smiod },
722*3d8817e4Smiod /* addcb $drb,$hash$uimm3 */
723*3d8817e4Smiod {
724*3d8817e4Smiod { 0, 0, 0, 0 },
725*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } },
726*3d8817e4Smiod & ifmt_addbrhpag3, { 0x19 }
727*3d8817e4Smiod },
728*3d8817e4Smiod /* subcb $drb,$hash$uimm3 */
729*3d8817e4Smiod {
730*3d8817e4Smiod { 0, 0, 0, 0 },
731*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } },
732*3d8817e4Smiod & ifmt_addbrhpag3, { 0x39 }
733*3d8817e4Smiod },
734*3d8817e4Smiod /* addc $reg8,$hash$uimm16 */
735*3d8817e4Smiod {
736*3d8817e4Smiod { 0, 0, 0, 0 },
737*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
738*3d8817e4Smiod & ifmt_addrhpof, { 0x16 }
739*3d8817e4Smiod },
740*3d8817e4Smiod /* subc $reg8,$hash$uimm16 */
741*3d8817e4Smiod {
742*3d8817e4Smiod { 0, 0, 0, 0 },
743*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
744*3d8817e4Smiod & ifmt_addrhpof, { 0x36 }
745*3d8817e4Smiod },
746*3d8817e4Smiod /* addcb $regb8,$hash$uimm8 */
747*3d8817e4Smiod {
748*3d8817e4Smiod { 0, 0, 0, 0 },
749*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
750*3d8817e4Smiod & ifmt_addrbhpof, { 0x17 }
751*3d8817e4Smiod },
752*3d8817e4Smiod /* subcb $regb8,$hash$uimm8 */
753*3d8817e4Smiod {
754*3d8817e4Smiod { 0, 0, 0, 0 },
755*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
756*3d8817e4Smiod & ifmt_addrbhpof, { 0x37 }
757*3d8817e4Smiod },
758*3d8817e4Smiod /* add $dr,$sr */
759*3d8817e4Smiod {
760*3d8817e4Smiod { 0, 0, 0, 0 },
761*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
762*3d8817e4Smiod & ifmt_addr, { 0x0 }
763*3d8817e4Smiod },
764*3d8817e4Smiod /* sub $dr,$sr */
765*3d8817e4Smiod {
766*3d8817e4Smiod { 0, 0, 0, 0 },
767*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
768*3d8817e4Smiod & ifmt_addr, { 0x20 }
769*3d8817e4Smiod },
770*3d8817e4Smiod /* addb $drb,$srb */
771*3d8817e4Smiod {
772*3d8817e4Smiod { 0, 0, 0, 0 },
773*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
774*3d8817e4Smiod & ifmt_addbr, { 0x1 }
775*3d8817e4Smiod },
776*3d8817e4Smiod /* subb $drb,$srb */
777*3d8817e4Smiod {
778*3d8817e4Smiod { 0, 0, 0, 0 },
779*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
780*3d8817e4Smiod & ifmt_addbr, { 0x21 }
781*3d8817e4Smiod },
782*3d8817e4Smiod /* add $dr,[$sr2] */
783*3d8817e4Smiod {
784*3d8817e4Smiod { 0, 0, 0, 0 },
785*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } },
786*3d8817e4Smiod & ifmt_add2, { 0x808 }
787*3d8817e4Smiod },
788*3d8817e4Smiod /* sub $dr,[$sr2] */
789*3d8817e4Smiod {
790*3d8817e4Smiod { 0, 0, 0, 0 },
791*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } },
792*3d8817e4Smiod & ifmt_add2, { 0x828 }
793*3d8817e4Smiod },
794*3d8817e4Smiod /* addb $drb,[$sr2] */
795*3d8817e4Smiod {
796*3d8817e4Smiod { 0, 0, 0, 0 },
797*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } },
798*3d8817e4Smiod & ifmt_addb2, { 0x809 }
799*3d8817e4Smiod },
800*3d8817e4Smiod /* subb $drb,[$sr2] */
801*3d8817e4Smiod {
802*3d8817e4Smiod { 0, 0, 0, 0 },
803*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } },
804*3d8817e4Smiod & ifmt_addb2, { 0x829 }
805*3d8817e4Smiod },
806*3d8817e4Smiod /* add $dr,[$sr2+] */
807*3d8817e4Smiod {
808*3d8817e4Smiod { 0, 0, 0, 0 },
809*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } },
810*3d8817e4Smiod & ifmt_add2, { 0xc08 }
811*3d8817e4Smiod },
812*3d8817e4Smiod /* sub $dr,[$sr2+] */
813*3d8817e4Smiod {
814*3d8817e4Smiod { 0, 0, 0, 0 },
815*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } },
816*3d8817e4Smiod & ifmt_add2, { 0xc28 }
817*3d8817e4Smiod },
818*3d8817e4Smiod /* addb $drb,[$sr2+] */
819*3d8817e4Smiod {
820*3d8817e4Smiod { 0, 0, 0, 0 },
821*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } },
822*3d8817e4Smiod & ifmt_addb2, { 0xc09 }
823*3d8817e4Smiod },
824*3d8817e4Smiod /* subb $drb,[$sr2+] */
825*3d8817e4Smiod {
826*3d8817e4Smiod { 0, 0, 0, 0 },
827*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } },
828*3d8817e4Smiod & ifmt_addb2, { 0xc29 }
829*3d8817e4Smiod },
830*3d8817e4Smiod /* addc $dr,$sr */
831*3d8817e4Smiod {
832*3d8817e4Smiod { 0, 0, 0, 0 },
833*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
834*3d8817e4Smiod & ifmt_addr, { 0x10 }
835*3d8817e4Smiod },
836*3d8817e4Smiod /* subc $dr,$sr */
837*3d8817e4Smiod {
838*3d8817e4Smiod { 0, 0, 0, 0 },
839*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
840*3d8817e4Smiod & ifmt_addr, { 0x30 }
841*3d8817e4Smiod },
842*3d8817e4Smiod /* addcb $drb,$srb */
843*3d8817e4Smiod {
844*3d8817e4Smiod { 0, 0, 0, 0 },
845*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
846*3d8817e4Smiod & ifmt_addbr, { 0x11 }
847*3d8817e4Smiod },
848*3d8817e4Smiod /* subcb $drb,$srb */
849*3d8817e4Smiod {
850*3d8817e4Smiod { 0, 0, 0, 0 },
851*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
852*3d8817e4Smiod & ifmt_addbr, { 0x31 }
853*3d8817e4Smiod },
854*3d8817e4Smiod /* addc $dr,[$sr2] */
855*3d8817e4Smiod {
856*3d8817e4Smiod { 0, 0, 0, 0 },
857*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } },
858*3d8817e4Smiod & ifmt_add2, { 0x818 }
859*3d8817e4Smiod },
860*3d8817e4Smiod /* subc $dr,[$sr2] */
861*3d8817e4Smiod {
862*3d8817e4Smiod { 0, 0, 0, 0 },
863*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } },
864*3d8817e4Smiod & ifmt_add2, { 0x838 }
865*3d8817e4Smiod },
866*3d8817e4Smiod /* addcb $drb,[$sr2] */
867*3d8817e4Smiod {
868*3d8817e4Smiod { 0, 0, 0, 0 },
869*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } },
870*3d8817e4Smiod & ifmt_addb2, { 0x819 }
871*3d8817e4Smiod },
872*3d8817e4Smiod /* subcb $drb,[$sr2] */
873*3d8817e4Smiod {
874*3d8817e4Smiod { 0, 0, 0, 0 },
875*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } },
876*3d8817e4Smiod & ifmt_addb2, { 0x839 }
877*3d8817e4Smiod },
878*3d8817e4Smiod /* addc $dr,[$sr2+] */
879*3d8817e4Smiod {
880*3d8817e4Smiod { 0, 0, 0, 0 },
881*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } },
882*3d8817e4Smiod & ifmt_add2, { 0xc18 }
883*3d8817e4Smiod },
884*3d8817e4Smiod /* subc $dr,[$sr2+] */
885*3d8817e4Smiod {
886*3d8817e4Smiod { 0, 0, 0, 0 },
887*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } },
888*3d8817e4Smiod & ifmt_add2, { 0xc38 }
889*3d8817e4Smiod },
890*3d8817e4Smiod /* addcb $drb,[$sr2+] */
891*3d8817e4Smiod {
892*3d8817e4Smiod { 0, 0, 0, 0 },
893*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } },
894*3d8817e4Smiod & ifmt_addb2, { 0xc19 }
895*3d8817e4Smiod },
896*3d8817e4Smiod /* subcb $drb,[$sr2+] */
897*3d8817e4Smiod {
898*3d8817e4Smiod { 0, 0, 0, 0 },
899*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } },
900*3d8817e4Smiod & ifmt_addb2, { 0xc39 }
901*3d8817e4Smiod },
902*3d8817e4Smiod /* add $regmem8,$memgr8 */
903*3d8817e4Smiod {
904*3d8817e4Smiod { 0, 0, 0, 0 },
905*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
906*3d8817e4Smiod & ifmt_addrm2, { 0x2 }
907*3d8817e4Smiod },
908*3d8817e4Smiod /* add $memgr8,$regmem8 */
909*3d8817e4Smiod {
910*3d8817e4Smiod { 0, 0, 0, 0 },
911*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } },
912*3d8817e4Smiod & ifmt_addrm2, { 0x4 }
913*3d8817e4Smiod },
914*3d8817e4Smiod /* add $reg8,$memory */
915*3d8817e4Smiod {
916*3d8817e4Smiod { 0, 0, 0, 0 },
917*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
918*3d8817e4Smiod & ifmt_addrm, { 0x2 }
919*3d8817e4Smiod },
920*3d8817e4Smiod /* add $memory,$reg8 */
921*3d8817e4Smiod {
922*3d8817e4Smiod { 0, 0, 0, 0 },
923*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } },
924*3d8817e4Smiod & ifmt_addrm, { 0x4 }
925*3d8817e4Smiod },
926*3d8817e4Smiod /* sub $regmem8,$memgr8 */
927*3d8817e4Smiod {
928*3d8817e4Smiod { 0, 0, 0, 0 },
929*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
930*3d8817e4Smiod & ifmt_addrm2, { 0x22 }
931*3d8817e4Smiod },
932*3d8817e4Smiod /* sub $memgr8,$regmem8 */
933*3d8817e4Smiod {
934*3d8817e4Smiod { 0, 0, 0, 0 },
935*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } },
936*3d8817e4Smiod & ifmt_addrm2, { 0x24 }
937*3d8817e4Smiod },
938*3d8817e4Smiod /* sub $reg8,$memory */
939*3d8817e4Smiod {
940*3d8817e4Smiod { 0, 0, 0, 0 },
941*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
942*3d8817e4Smiod & ifmt_addrm, { 0x22 }
943*3d8817e4Smiod },
944*3d8817e4Smiod /* sub $memory,$reg8 */
945*3d8817e4Smiod {
946*3d8817e4Smiod { 0, 0, 0, 0 },
947*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } },
948*3d8817e4Smiod & ifmt_addrm, { 0x24 }
949*3d8817e4Smiod },
950*3d8817e4Smiod /* addb $regbmem8,$memgr8 */
951*3d8817e4Smiod {
952*3d8817e4Smiod { 0, 0, 0, 0 },
953*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
954*3d8817e4Smiod & ifmt_addbrm2, { 0x3 }
955*3d8817e4Smiod },
956*3d8817e4Smiod /* addb $memgr8,$regbmem8 */
957*3d8817e4Smiod {
958*3d8817e4Smiod { 0, 0, 0, 0 },
959*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
960*3d8817e4Smiod & ifmt_addbrm2, { 0x5 }
961*3d8817e4Smiod },
962*3d8817e4Smiod /* addb $regb8,$memory */
963*3d8817e4Smiod {
964*3d8817e4Smiod { 0, 0, 0, 0 },
965*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
966*3d8817e4Smiod & ifmt_addbrm, { 0x3 }
967*3d8817e4Smiod },
968*3d8817e4Smiod /* addb $memory,$regb8 */
969*3d8817e4Smiod {
970*3d8817e4Smiod { 0, 0, 0, 0 },
971*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
972*3d8817e4Smiod & ifmt_addbrm, { 0x5 }
973*3d8817e4Smiod },
974*3d8817e4Smiod /* subb $regbmem8,$memgr8 */
975*3d8817e4Smiod {
976*3d8817e4Smiod { 0, 0, 0, 0 },
977*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
978*3d8817e4Smiod & ifmt_addbrm2, { 0x23 }
979*3d8817e4Smiod },
980*3d8817e4Smiod /* subb $memgr8,$regbmem8 */
981*3d8817e4Smiod {
982*3d8817e4Smiod { 0, 0, 0, 0 },
983*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
984*3d8817e4Smiod & ifmt_addbrm2, { 0x25 }
985*3d8817e4Smiod },
986*3d8817e4Smiod /* subb $regb8,$memory */
987*3d8817e4Smiod {
988*3d8817e4Smiod { 0, 0, 0, 0 },
989*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
990*3d8817e4Smiod & ifmt_addbrm, { 0x23 }
991*3d8817e4Smiod },
992*3d8817e4Smiod /* subb $memory,$regb8 */
993*3d8817e4Smiod {
994*3d8817e4Smiod { 0, 0, 0, 0 },
995*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
996*3d8817e4Smiod & ifmt_addbrm, { 0x25 }
997*3d8817e4Smiod },
998*3d8817e4Smiod /* addc $regmem8,$memgr8 */
999*3d8817e4Smiod {
1000*3d8817e4Smiod { 0, 0, 0, 0 },
1001*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
1002*3d8817e4Smiod & ifmt_addrm2, { 0x12 }
1003*3d8817e4Smiod },
1004*3d8817e4Smiod /* addc $memgr8,$regmem8 */
1005*3d8817e4Smiod {
1006*3d8817e4Smiod { 0, 0, 0, 0 },
1007*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } },
1008*3d8817e4Smiod & ifmt_addrm2, { 0x14 }
1009*3d8817e4Smiod },
1010*3d8817e4Smiod /* addc $reg8,$memory */
1011*3d8817e4Smiod {
1012*3d8817e4Smiod { 0, 0, 0, 0 },
1013*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
1014*3d8817e4Smiod & ifmt_addrm, { 0x12 }
1015*3d8817e4Smiod },
1016*3d8817e4Smiod /* addc $memory,$reg8 */
1017*3d8817e4Smiod {
1018*3d8817e4Smiod { 0, 0, 0, 0 },
1019*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } },
1020*3d8817e4Smiod & ifmt_addrm, { 0x14 }
1021*3d8817e4Smiod },
1022*3d8817e4Smiod /* subc $regmem8,$memgr8 */
1023*3d8817e4Smiod {
1024*3d8817e4Smiod { 0, 0, 0, 0 },
1025*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
1026*3d8817e4Smiod & ifmt_addrm2, { 0x32 }
1027*3d8817e4Smiod },
1028*3d8817e4Smiod /* subc $memgr8,$regmem8 */
1029*3d8817e4Smiod {
1030*3d8817e4Smiod { 0, 0, 0, 0 },
1031*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } },
1032*3d8817e4Smiod & ifmt_addrm2, { 0x34 }
1033*3d8817e4Smiod },
1034*3d8817e4Smiod /* subc $reg8,$memory */
1035*3d8817e4Smiod {
1036*3d8817e4Smiod { 0, 0, 0, 0 },
1037*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
1038*3d8817e4Smiod & ifmt_addrm, { 0x32 }
1039*3d8817e4Smiod },
1040*3d8817e4Smiod /* subc $memory,$reg8 */
1041*3d8817e4Smiod {
1042*3d8817e4Smiod { 0, 0, 0, 0 },
1043*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } },
1044*3d8817e4Smiod & ifmt_addrm, { 0x34 }
1045*3d8817e4Smiod },
1046*3d8817e4Smiod /* addcb $regbmem8,$memgr8 */
1047*3d8817e4Smiod {
1048*3d8817e4Smiod { 0, 0, 0, 0 },
1049*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
1050*3d8817e4Smiod & ifmt_addbrm2, { 0x13 }
1051*3d8817e4Smiod },
1052*3d8817e4Smiod /* addcb $memgr8,$regbmem8 */
1053*3d8817e4Smiod {
1054*3d8817e4Smiod { 0, 0, 0, 0 },
1055*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
1056*3d8817e4Smiod & ifmt_addbrm2, { 0x15 }
1057*3d8817e4Smiod },
1058*3d8817e4Smiod /* addcb $regb8,$memory */
1059*3d8817e4Smiod {
1060*3d8817e4Smiod { 0, 0, 0, 0 },
1061*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
1062*3d8817e4Smiod & ifmt_addbrm, { 0x13 }
1063*3d8817e4Smiod },
1064*3d8817e4Smiod /* addcb $memory,$regb8 */
1065*3d8817e4Smiod {
1066*3d8817e4Smiod { 0, 0, 0, 0 },
1067*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
1068*3d8817e4Smiod & ifmt_addbrm, { 0x15 }
1069*3d8817e4Smiod },
1070*3d8817e4Smiod /* subcb $regbmem8,$memgr8 */
1071*3d8817e4Smiod {
1072*3d8817e4Smiod { 0, 0, 0, 0 },
1073*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
1074*3d8817e4Smiod & ifmt_addbrm2, { 0x33 }
1075*3d8817e4Smiod },
1076*3d8817e4Smiod /* subcb $memgr8,$regbmem8 */
1077*3d8817e4Smiod {
1078*3d8817e4Smiod { 0, 0, 0, 0 },
1079*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
1080*3d8817e4Smiod & ifmt_addbrm2, { 0x35 }
1081*3d8817e4Smiod },
1082*3d8817e4Smiod /* subcb $regb8,$memory */
1083*3d8817e4Smiod {
1084*3d8817e4Smiod { 0, 0, 0, 0 },
1085*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
1086*3d8817e4Smiod & ifmt_addbrm, { 0x33 }
1087*3d8817e4Smiod },
1088*3d8817e4Smiod /* subcb $memory,$regb8 */
1089*3d8817e4Smiod {
1090*3d8817e4Smiod { 0, 0, 0, 0 },
1091*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
1092*3d8817e4Smiod & ifmt_addbrm, { 0x35 }
1093*3d8817e4Smiod },
1094*3d8817e4Smiod /* mul $src1,$src2 */
1095*3d8817e4Smiod {
1096*3d8817e4Smiod { 0, 0, 0, 0 },
1097*3d8817e4Smiod { { MNEM, ' ', OP (SRC1), ',', OP (SRC2), 0 } },
1098*3d8817e4Smiod & ifmt_muls, { 0xb }
1099*3d8817e4Smiod },
1100*3d8817e4Smiod /* mulu $src1,$src2 */
1101*3d8817e4Smiod {
1102*3d8817e4Smiod { 0, 0, 0, 0 },
1103*3d8817e4Smiod { { MNEM, ' ', OP (SRC1), ',', OP (SRC2), 0 } },
1104*3d8817e4Smiod & ifmt_muls, { 0x1b }
1105*3d8817e4Smiod },
1106*3d8817e4Smiod /* div $srdiv */
1107*3d8817e4Smiod {
1108*3d8817e4Smiod { 0, 0, 0, 0 },
1109*3d8817e4Smiod { { MNEM, ' ', OP (SRDIV), 0 } },
1110*3d8817e4Smiod & ifmt_div, { 0x4b }
1111*3d8817e4Smiod },
1112*3d8817e4Smiod /* divl $srdiv */
1113*3d8817e4Smiod {
1114*3d8817e4Smiod { 0, 0, 0, 0 },
1115*3d8817e4Smiod { { MNEM, ' ', OP (SRDIV), 0 } },
1116*3d8817e4Smiod & ifmt_div, { 0x6b }
1117*3d8817e4Smiod },
1118*3d8817e4Smiod /* divlu $srdiv */
1119*3d8817e4Smiod {
1120*3d8817e4Smiod { 0, 0, 0, 0 },
1121*3d8817e4Smiod { { MNEM, ' ', OP (SRDIV), 0 } },
1122*3d8817e4Smiod & ifmt_div, { 0x7b }
1123*3d8817e4Smiod },
1124*3d8817e4Smiod /* divu $srdiv */
1125*3d8817e4Smiod {
1126*3d8817e4Smiod { 0, 0, 0, 0 },
1127*3d8817e4Smiod { { MNEM, ' ', OP (SRDIV), 0 } },
1128*3d8817e4Smiod & ifmt_div, { 0x5b }
1129*3d8817e4Smiod },
1130*3d8817e4Smiod /* cpl $dr */
1131*3d8817e4Smiod {
1132*3d8817e4Smiod { 0, 0, 0, 0 },
1133*3d8817e4Smiod { { MNEM, ' ', OP (DR), 0 } },
1134*3d8817e4Smiod & ifmt_cpl, { 0x91 }
1135*3d8817e4Smiod },
1136*3d8817e4Smiod /* cplb $drb */
1137*3d8817e4Smiod {
1138*3d8817e4Smiod { 0, 0, 0, 0 },
1139*3d8817e4Smiod { { MNEM, ' ', OP (DRB), 0 } },
1140*3d8817e4Smiod & ifmt_cplb, { 0xb1 }
1141*3d8817e4Smiod },
1142*3d8817e4Smiod /* neg $dr */
1143*3d8817e4Smiod {
1144*3d8817e4Smiod { 0, 0, 0, 0 },
1145*3d8817e4Smiod { { MNEM, ' ', OP (DR), 0 } },
1146*3d8817e4Smiod & ifmt_cpl, { 0x81 }
1147*3d8817e4Smiod },
1148*3d8817e4Smiod /* negb $drb */
1149*3d8817e4Smiod {
1150*3d8817e4Smiod { 0, 0, 0, 0 },
1151*3d8817e4Smiod { { MNEM, ' ', OP (DRB), 0 } },
1152*3d8817e4Smiod & ifmt_cplb, { 0xa1 }
1153*3d8817e4Smiod },
1154*3d8817e4Smiod /* and $dr,$sr */
1155*3d8817e4Smiod {
1156*3d8817e4Smiod { 0, 0, 0, 0 },
1157*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
1158*3d8817e4Smiod & ifmt_addr, { 0x60 }
1159*3d8817e4Smiod },
1160*3d8817e4Smiod /* or $dr,$sr */
1161*3d8817e4Smiod {
1162*3d8817e4Smiod { 0, 0, 0, 0 },
1163*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
1164*3d8817e4Smiod & ifmt_addr, { 0x70 }
1165*3d8817e4Smiod },
1166*3d8817e4Smiod /* xor $dr,$sr */
1167*3d8817e4Smiod {
1168*3d8817e4Smiod { 0, 0, 0, 0 },
1169*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
1170*3d8817e4Smiod & ifmt_addr, { 0x50 }
1171*3d8817e4Smiod },
1172*3d8817e4Smiod /* andb $drb,$srb */
1173*3d8817e4Smiod {
1174*3d8817e4Smiod { 0, 0, 0, 0 },
1175*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
1176*3d8817e4Smiod & ifmt_addbr, { 0x61 }
1177*3d8817e4Smiod },
1178*3d8817e4Smiod /* orb $drb,$srb */
1179*3d8817e4Smiod {
1180*3d8817e4Smiod { 0, 0, 0, 0 },
1181*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
1182*3d8817e4Smiod & ifmt_addbr, { 0x71 }
1183*3d8817e4Smiod },
1184*3d8817e4Smiod /* xorb $drb,$srb */
1185*3d8817e4Smiod {
1186*3d8817e4Smiod { 0, 0, 0, 0 },
1187*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
1188*3d8817e4Smiod & ifmt_addbr, { 0x51 }
1189*3d8817e4Smiod },
1190*3d8817e4Smiod /* and $dr,$hash$uimm3 */
1191*3d8817e4Smiod {
1192*3d8817e4Smiod { 0, 0, 0, 0 },
1193*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } },
1194*3d8817e4Smiod & ifmt_addrhpof3, { 0x68 }
1195*3d8817e4Smiod },
1196*3d8817e4Smiod /* or $dr,$hash$uimm3 */
1197*3d8817e4Smiod {
1198*3d8817e4Smiod { 0, 0, 0, 0 },
1199*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } },
1200*3d8817e4Smiod & ifmt_addrhpof3, { 0x78 }
1201*3d8817e4Smiod },
1202*3d8817e4Smiod /* xor $dr,$hash$uimm3 */
1203*3d8817e4Smiod {
1204*3d8817e4Smiod { 0, 0, 0, 0 },
1205*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } },
1206*3d8817e4Smiod & ifmt_addrhpof3, { 0x58 }
1207*3d8817e4Smiod },
1208*3d8817e4Smiod /* andb $drb,$hash$uimm3 */
1209*3d8817e4Smiod {
1210*3d8817e4Smiod { 0, 0, 0, 0 },
1211*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } },
1212*3d8817e4Smiod & ifmt_addbrhpag3, { 0x69 }
1213*3d8817e4Smiod },
1214*3d8817e4Smiod /* orb $drb,$hash$uimm3 */
1215*3d8817e4Smiod {
1216*3d8817e4Smiod { 0, 0, 0, 0 },
1217*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } },
1218*3d8817e4Smiod & ifmt_addbrhpag3, { 0x79 }
1219*3d8817e4Smiod },
1220*3d8817e4Smiod /* xorb $drb,$hash$uimm3 */
1221*3d8817e4Smiod {
1222*3d8817e4Smiod { 0, 0, 0, 0 },
1223*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } },
1224*3d8817e4Smiod & ifmt_addbrhpag3, { 0x59 }
1225*3d8817e4Smiod },
1226*3d8817e4Smiod /* and $reg8,$hash$uimm16 */
1227*3d8817e4Smiod {
1228*3d8817e4Smiod { 0, 0, 0, 0 },
1229*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
1230*3d8817e4Smiod & ifmt_addrhpof, { 0x66 }
1231*3d8817e4Smiod },
1232*3d8817e4Smiod /* or $reg8,$hash$uimm16 */
1233*3d8817e4Smiod {
1234*3d8817e4Smiod { 0, 0, 0, 0 },
1235*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
1236*3d8817e4Smiod & ifmt_addrhpof, { 0x76 }
1237*3d8817e4Smiod },
1238*3d8817e4Smiod /* xor $reg8,$hash$uimm16 */
1239*3d8817e4Smiod {
1240*3d8817e4Smiod { 0, 0, 0, 0 },
1241*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
1242*3d8817e4Smiod & ifmt_addrhpof, { 0x56 }
1243*3d8817e4Smiod },
1244*3d8817e4Smiod /* andb $regb8,$hash$uimm8 */
1245*3d8817e4Smiod {
1246*3d8817e4Smiod { 0, 0, 0, 0 },
1247*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
1248*3d8817e4Smiod & ifmt_addrbhpof, { 0x67 }
1249*3d8817e4Smiod },
1250*3d8817e4Smiod /* orb $regb8,$hash$uimm8 */
1251*3d8817e4Smiod {
1252*3d8817e4Smiod { 0, 0, 0, 0 },
1253*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
1254*3d8817e4Smiod & ifmt_addrbhpof, { 0x77 }
1255*3d8817e4Smiod },
1256*3d8817e4Smiod /* xorb $regb8,$hash$uimm8 */
1257*3d8817e4Smiod {
1258*3d8817e4Smiod { 0, 0, 0, 0 },
1259*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
1260*3d8817e4Smiod & ifmt_addrbhpof, { 0x57 }
1261*3d8817e4Smiod },
1262*3d8817e4Smiod /* and $dr,[$sr2] */
1263*3d8817e4Smiod {
1264*3d8817e4Smiod { 0, 0, 0, 0 },
1265*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } },
1266*3d8817e4Smiod & ifmt_add2, { 0x868 }
1267*3d8817e4Smiod },
1268*3d8817e4Smiod /* or $dr,[$sr2] */
1269*3d8817e4Smiod {
1270*3d8817e4Smiod { 0, 0, 0, 0 },
1271*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } },
1272*3d8817e4Smiod & ifmt_add2, { 0x878 }
1273*3d8817e4Smiod },
1274*3d8817e4Smiod /* xor $dr,[$sr2] */
1275*3d8817e4Smiod {
1276*3d8817e4Smiod { 0, 0, 0, 0 },
1277*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } },
1278*3d8817e4Smiod & ifmt_add2, { 0x858 }
1279*3d8817e4Smiod },
1280*3d8817e4Smiod /* andb $drb,[$sr2] */
1281*3d8817e4Smiod {
1282*3d8817e4Smiod { 0, 0, 0, 0 },
1283*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } },
1284*3d8817e4Smiod & ifmt_addb2, { 0x869 }
1285*3d8817e4Smiod },
1286*3d8817e4Smiod /* orb $drb,[$sr2] */
1287*3d8817e4Smiod {
1288*3d8817e4Smiod { 0, 0, 0, 0 },
1289*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } },
1290*3d8817e4Smiod & ifmt_addb2, { 0x879 }
1291*3d8817e4Smiod },
1292*3d8817e4Smiod /* xorb $drb,[$sr2] */
1293*3d8817e4Smiod {
1294*3d8817e4Smiod { 0, 0, 0, 0 },
1295*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } },
1296*3d8817e4Smiod & ifmt_addb2, { 0x859 }
1297*3d8817e4Smiod },
1298*3d8817e4Smiod /* and $dr,[$sr2+] */
1299*3d8817e4Smiod {
1300*3d8817e4Smiod { 0, 0, 0, 0 },
1301*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } },
1302*3d8817e4Smiod & ifmt_add2, { 0xc68 }
1303*3d8817e4Smiod },
1304*3d8817e4Smiod /* or $dr,[$sr2+] */
1305*3d8817e4Smiod {
1306*3d8817e4Smiod { 0, 0, 0, 0 },
1307*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } },
1308*3d8817e4Smiod & ifmt_add2, { 0xc78 }
1309*3d8817e4Smiod },
1310*3d8817e4Smiod /* xor $dr,[$sr2+] */
1311*3d8817e4Smiod {
1312*3d8817e4Smiod { 0, 0, 0, 0 },
1313*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } },
1314*3d8817e4Smiod & ifmt_add2, { 0xc58 }
1315*3d8817e4Smiod },
1316*3d8817e4Smiod /* andb $drb,[$sr2+] */
1317*3d8817e4Smiod {
1318*3d8817e4Smiod { 0, 0, 0, 0 },
1319*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } },
1320*3d8817e4Smiod & ifmt_addb2, { 0xc69 }
1321*3d8817e4Smiod },
1322*3d8817e4Smiod /* orb $drb,[$sr2+] */
1323*3d8817e4Smiod {
1324*3d8817e4Smiod { 0, 0, 0, 0 },
1325*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } },
1326*3d8817e4Smiod & ifmt_addb2, { 0xc79 }
1327*3d8817e4Smiod },
1328*3d8817e4Smiod /* xorb $drb,[$sr2+] */
1329*3d8817e4Smiod {
1330*3d8817e4Smiod { 0, 0, 0, 0 },
1331*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } },
1332*3d8817e4Smiod & ifmt_addb2, { 0xc59 }
1333*3d8817e4Smiod },
1334*3d8817e4Smiod /* and $pof$reg8,$upof16 */
1335*3d8817e4Smiod {
1336*3d8817e4Smiod { 0, 0, 0, 0 },
1337*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (REG8), ',', OP (UPOF16), 0 } },
1338*3d8817e4Smiod & ifmt_addrpof, { 0x62 }
1339*3d8817e4Smiod },
1340*3d8817e4Smiod /* or $pof$reg8,$upof16 */
1341*3d8817e4Smiod {
1342*3d8817e4Smiod { 0, 0, 0, 0 },
1343*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (REG8), ',', OP (UPOF16), 0 } },
1344*3d8817e4Smiod & ifmt_addrpof, { 0x72 }
1345*3d8817e4Smiod },
1346*3d8817e4Smiod /* xor $pof$reg8,$upof16 */
1347*3d8817e4Smiod {
1348*3d8817e4Smiod { 0, 0, 0, 0 },
1349*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (REG8), ',', OP (UPOF16), 0 } },
1350*3d8817e4Smiod & ifmt_addrpof, { 0x52 }
1351*3d8817e4Smiod },
1352*3d8817e4Smiod /* andb $pof$regb8,$upof16 */
1353*3d8817e4Smiod {
1354*3d8817e4Smiod { 0, 0, 0, 0 },
1355*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (REGB8), ',', OP (UPOF16), 0 } },
1356*3d8817e4Smiod & ifmt_addbrpof, { 0x63 }
1357*3d8817e4Smiod },
1358*3d8817e4Smiod /* orb $pof$regb8,$upof16 */
1359*3d8817e4Smiod {
1360*3d8817e4Smiod { 0, 0, 0, 0 },
1361*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (REGB8), ',', OP (UPOF16), 0 } },
1362*3d8817e4Smiod & ifmt_addbrpof, { 0x73 }
1363*3d8817e4Smiod },
1364*3d8817e4Smiod /* xorb $pof$regb8,$upof16 */
1365*3d8817e4Smiod {
1366*3d8817e4Smiod { 0, 0, 0, 0 },
1367*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (REGB8), ',', OP (UPOF16), 0 } },
1368*3d8817e4Smiod & ifmt_addbrpof, { 0x53 }
1369*3d8817e4Smiod },
1370*3d8817e4Smiod /* and $pof$upof16,$reg8 */
1371*3d8817e4Smiod {
1372*3d8817e4Smiod { 0, 0, 0, 0 },
1373*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } },
1374*3d8817e4Smiod & ifmt_addrpof, { 0x64 }
1375*3d8817e4Smiod },
1376*3d8817e4Smiod /* or $pof$upof16,$reg8 */
1377*3d8817e4Smiod {
1378*3d8817e4Smiod { 0, 0, 0, 0 },
1379*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } },
1380*3d8817e4Smiod & ifmt_addrpof, { 0x74 }
1381*3d8817e4Smiod },
1382*3d8817e4Smiod /* xor $pof$upof16,$reg8 */
1383*3d8817e4Smiod {
1384*3d8817e4Smiod { 0, 0, 0, 0 },
1385*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } },
1386*3d8817e4Smiod & ifmt_addrpof, { 0x54 }
1387*3d8817e4Smiod },
1388*3d8817e4Smiod /* andb $pof$upof16,$regb8 */
1389*3d8817e4Smiod {
1390*3d8817e4Smiod { 0, 0, 0, 0 },
1391*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
1392*3d8817e4Smiod & ifmt_addbrpof, { 0x65 }
1393*3d8817e4Smiod },
1394*3d8817e4Smiod /* orb $pof$upof16,$regb8 */
1395*3d8817e4Smiod {
1396*3d8817e4Smiod { 0, 0, 0, 0 },
1397*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
1398*3d8817e4Smiod & ifmt_addbrpof, { 0x75 }
1399*3d8817e4Smiod },
1400*3d8817e4Smiod /* xorb $pof$upof16,$regb8 */
1401*3d8817e4Smiod {
1402*3d8817e4Smiod { 0, 0, 0, 0 },
1403*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
1404*3d8817e4Smiod & ifmt_addbrpof, { 0x55 }
1405*3d8817e4Smiod },
1406*3d8817e4Smiod /* and $regmem8,$memgr8 */
1407*3d8817e4Smiod {
1408*3d8817e4Smiod { 0, 0, 0, 0 },
1409*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
1410*3d8817e4Smiod & ifmt_addrm2, { 0x62 }
1411*3d8817e4Smiod },
1412*3d8817e4Smiod /* and $memgr8,$regmem8 */
1413*3d8817e4Smiod {
1414*3d8817e4Smiod { 0, 0, 0, 0 },
1415*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } },
1416*3d8817e4Smiod & ifmt_addrm2, { 0x64 }
1417*3d8817e4Smiod },
1418*3d8817e4Smiod /* and $reg8,$memory */
1419*3d8817e4Smiod {
1420*3d8817e4Smiod { 0, 0, 0, 0 },
1421*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
1422*3d8817e4Smiod & ifmt_addrm, { 0x62 }
1423*3d8817e4Smiod },
1424*3d8817e4Smiod /* and $memory,$reg8 */
1425*3d8817e4Smiod {
1426*3d8817e4Smiod { 0, 0, 0, 0 },
1427*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } },
1428*3d8817e4Smiod & ifmt_addrm, { 0x64 }
1429*3d8817e4Smiod },
1430*3d8817e4Smiod /* or $regmem8,$memgr8 */
1431*3d8817e4Smiod {
1432*3d8817e4Smiod { 0, 0, 0, 0 },
1433*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
1434*3d8817e4Smiod & ifmt_addrm2, { 0x72 }
1435*3d8817e4Smiod },
1436*3d8817e4Smiod /* or $memgr8,$regmem8 */
1437*3d8817e4Smiod {
1438*3d8817e4Smiod { 0, 0, 0, 0 },
1439*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } },
1440*3d8817e4Smiod & ifmt_addrm2, { 0x74 }
1441*3d8817e4Smiod },
1442*3d8817e4Smiod /* or $reg8,$memory */
1443*3d8817e4Smiod {
1444*3d8817e4Smiod { 0, 0, 0, 0 },
1445*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
1446*3d8817e4Smiod & ifmt_addrm, { 0x72 }
1447*3d8817e4Smiod },
1448*3d8817e4Smiod /* or $memory,$reg8 */
1449*3d8817e4Smiod {
1450*3d8817e4Smiod { 0, 0, 0, 0 },
1451*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } },
1452*3d8817e4Smiod & ifmt_addrm, { 0x74 }
1453*3d8817e4Smiod },
1454*3d8817e4Smiod /* xor $regmem8,$memgr8 */
1455*3d8817e4Smiod {
1456*3d8817e4Smiod { 0, 0, 0, 0 },
1457*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
1458*3d8817e4Smiod & ifmt_addrm2, { 0x52 }
1459*3d8817e4Smiod },
1460*3d8817e4Smiod /* xor $memgr8,$regmem8 */
1461*3d8817e4Smiod {
1462*3d8817e4Smiod { 0, 0, 0, 0 },
1463*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } },
1464*3d8817e4Smiod & ifmt_addrm2, { 0x54 }
1465*3d8817e4Smiod },
1466*3d8817e4Smiod /* xor $reg8,$memory */
1467*3d8817e4Smiod {
1468*3d8817e4Smiod { 0, 0, 0, 0 },
1469*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
1470*3d8817e4Smiod & ifmt_addrm, { 0x52 }
1471*3d8817e4Smiod },
1472*3d8817e4Smiod /* xor $memory,$reg8 */
1473*3d8817e4Smiod {
1474*3d8817e4Smiod { 0, 0, 0, 0 },
1475*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } },
1476*3d8817e4Smiod & ifmt_addrm, { 0x54 }
1477*3d8817e4Smiod },
1478*3d8817e4Smiod /* andb $regbmem8,$memgr8 */
1479*3d8817e4Smiod {
1480*3d8817e4Smiod { 0, 0, 0, 0 },
1481*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
1482*3d8817e4Smiod & ifmt_addbrm2, { 0x63 }
1483*3d8817e4Smiod },
1484*3d8817e4Smiod /* andb $memgr8,$regbmem8 */
1485*3d8817e4Smiod {
1486*3d8817e4Smiod { 0, 0, 0, 0 },
1487*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
1488*3d8817e4Smiod & ifmt_addbrm2, { 0x65 }
1489*3d8817e4Smiod },
1490*3d8817e4Smiod /* andb $regb8,$memory */
1491*3d8817e4Smiod {
1492*3d8817e4Smiod { 0, 0, 0, 0 },
1493*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
1494*3d8817e4Smiod & ifmt_addbrm, { 0x63 }
1495*3d8817e4Smiod },
1496*3d8817e4Smiod /* andb $memory,$regb8 */
1497*3d8817e4Smiod {
1498*3d8817e4Smiod { 0, 0, 0, 0 },
1499*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
1500*3d8817e4Smiod & ifmt_addbrm, { 0x65 }
1501*3d8817e4Smiod },
1502*3d8817e4Smiod /* orb $regbmem8,$memgr8 */
1503*3d8817e4Smiod {
1504*3d8817e4Smiod { 0, 0, 0, 0 },
1505*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
1506*3d8817e4Smiod & ifmt_addbrm2, { 0x73 }
1507*3d8817e4Smiod },
1508*3d8817e4Smiod /* orb $memgr8,$regbmem8 */
1509*3d8817e4Smiod {
1510*3d8817e4Smiod { 0, 0, 0, 0 },
1511*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
1512*3d8817e4Smiod & ifmt_addbrm2, { 0x75 }
1513*3d8817e4Smiod },
1514*3d8817e4Smiod /* orb $regb8,$memory */
1515*3d8817e4Smiod {
1516*3d8817e4Smiod { 0, 0, 0, 0 },
1517*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
1518*3d8817e4Smiod & ifmt_addbrm, { 0x73 }
1519*3d8817e4Smiod },
1520*3d8817e4Smiod /* orb $memory,$regb8 */
1521*3d8817e4Smiod {
1522*3d8817e4Smiod { 0, 0, 0, 0 },
1523*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
1524*3d8817e4Smiod & ifmt_addbrm, { 0x75 }
1525*3d8817e4Smiod },
1526*3d8817e4Smiod /* xorb $regbmem8,$memgr8 */
1527*3d8817e4Smiod {
1528*3d8817e4Smiod { 0, 0, 0, 0 },
1529*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
1530*3d8817e4Smiod & ifmt_addbrm2, { 0x53 }
1531*3d8817e4Smiod },
1532*3d8817e4Smiod /* xorb $memgr8,$regbmem8 */
1533*3d8817e4Smiod {
1534*3d8817e4Smiod { 0, 0, 0, 0 },
1535*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
1536*3d8817e4Smiod & ifmt_addbrm2, { 0x55 }
1537*3d8817e4Smiod },
1538*3d8817e4Smiod /* xorb $regb8,$memory */
1539*3d8817e4Smiod {
1540*3d8817e4Smiod { 0, 0, 0, 0 },
1541*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
1542*3d8817e4Smiod & ifmt_addbrm, { 0x53 }
1543*3d8817e4Smiod },
1544*3d8817e4Smiod /* xorb $memory,$regb8 */
1545*3d8817e4Smiod {
1546*3d8817e4Smiod { 0, 0, 0, 0 },
1547*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
1548*3d8817e4Smiod & ifmt_addbrm, { 0x55 }
1549*3d8817e4Smiod },
1550*3d8817e4Smiod /* mov $dr,$sr */
1551*3d8817e4Smiod {
1552*3d8817e4Smiod { 0, 0, 0, 0 },
1553*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
1554*3d8817e4Smiod & ifmt_addr, { 0xf0 }
1555*3d8817e4Smiod },
1556*3d8817e4Smiod /* movb $drb,$srb */
1557*3d8817e4Smiod {
1558*3d8817e4Smiod { 0, 0, 0, 0 },
1559*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
1560*3d8817e4Smiod & ifmt_addbr, { 0xf1 }
1561*3d8817e4Smiod },
1562*3d8817e4Smiod /* mov $dri,$hash$u4 */
1563*3d8817e4Smiod {
1564*3d8817e4Smiod { 0, 0, 0, 0 },
1565*3d8817e4Smiod { { MNEM, ' ', OP (DRI), ',', OP (HASH), OP (U4), 0 } },
1566*3d8817e4Smiod & ifmt_movri, { 0xe0 }
1567*3d8817e4Smiod },
1568*3d8817e4Smiod /* movb $srb,$hash$u4 */
1569*3d8817e4Smiod {
1570*3d8817e4Smiod { 0, 0, 0, 0 },
1571*3d8817e4Smiod { { MNEM, ' ', OP (SRB), ',', OP (HASH), OP (U4), 0 } },
1572*3d8817e4Smiod & ifmt_movbri, { 0xe1 }
1573*3d8817e4Smiod },
1574*3d8817e4Smiod /* mov $reg8,$hash$uimm16 */
1575*3d8817e4Smiod {
1576*3d8817e4Smiod { 0, 0, 0, 0 },
1577*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
1578*3d8817e4Smiod & ifmt_addrhpof, { 0xe6 }
1579*3d8817e4Smiod },
1580*3d8817e4Smiod /* movb $regb8,$hash$uimm8 */
1581*3d8817e4Smiod {
1582*3d8817e4Smiod { 0, 0, 0, 0 },
1583*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
1584*3d8817e4Smiod & ifmt_addrbhpof, { 0xe7 }
1585*3d8817e4Smiod },
1586*3d8817e4Smiod /* mov $dr,[$sr] */
1587*3d8817e4Smiod {
1588*3d8817e4Smiod { 0, 0, 0, 0 },
1589*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR), ']', 0 } },
1590*3d8817e4Smiod & ifmt_addr, { 0xa8 }
1591*3d8817e4Smiod },
1592*3d8817e4Smiod /* movb $drb,[$sr] */
1593*3d8817e4Smiod {
1594*3d8817e4Smiod { 0, 0, 0, 0 },
1595*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR), ']', 0 } },
1596*3d8817e4Smiod & ifmt_movbr2, { 0xa9 }
1597*3d8817e4Smiod },
1598*3d8817e4Smiod /* mov [$sr],$dr */
1599*3d8817e4Smiod {
1600*3d8817e4Smiod { 0, 0, 0, 0 },
1601*3d8817e4Smiod { { MNEM, ' ', '[', OP (SR), ']', ',', OP (DR), 0 } },
1602*3d8817e4Smiod & ifmt_addr, { 0xb8 }
1603*3d8817e4Smiod },
1604*3d8817e4Smiod /* movb [$sr],$drb */
1605*3d8817e4Smiod {
1606*3d8817e4Smiod { 0, 0, 0, 0 },
1607*3d8817e4Smiod { { MNEM, ' ', '[', OP (SR), ']', ',', OP (DRB), 0 } },
1608*3d8817e4Smiod & ifmt_movbr2, { 0xb9 }
1609*3d8817e4Smiod },
1610*3d8817e4Smiod /* mov [-$sr],$dr */
1611*3d8817e4Smiod {
1612*3d8817e4Smiod { 0, 0, 0, 0 },
1613*3d8817e4Smiod { { MNEM, ' ', '[', '-', OP (SR), ']', ',', OP (DR), 0 } },
1614*3d8817e4Smiod & ifmt_addr, { 0x88 }
1615*3d8817e4Smiod },
1616*3d8817e4Smiod /* movb [-$sr],$drb */
1617*3d8817e4Smiod {
1618*3d8817e4Smiod { 0, 0, 0, 0 },
1619*3d8817e4Smiod { { MNEM, ' ', '[', '-', OP (SR), ']', ',', OP (DRB), 0 } },
1620*3d8817e4Smiod & ifmt_movbr2, { 0x89 }
1621*3d8817e4Smiod },
1622*3d8817e4Smiod /* mov $dr,[$sr+] */
1623*3d8817e4Smiod {
1624*3d8817e4Smiod { 0, 0, 0, 0 },
1625*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR), '+', ']', 0 } },
1626*3d8817e4Smiod & ifmt_addr, { 0x98 }
1627*3d8817e4Smiod },
1628*3d8817e4Smiod /* movb $drb,[$sr+] */
1629*3d8817e4Smiod {
1630*3d8817e4Smiod { 0, 0, 0, 0 },
1631*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR), '+', ']', 0 } },
1632*3d8817e4Smiod & ifmt_movbr2, { 0x99 }
1633*3d8817e4Smiod },
1634*3d8817e4Smiod /* mov [$dr],[$sr] */
1635*3d8817e4Smiod {
1636*3d8817e4Smiod { 0, 0, 0, 0 },
1637*3d8817e4Smiod { { MNEM, ' ', '[', OP (DR), ']', ',', '[', OP (SR), ']', 0 } },
1638*3d8817e4Smiod & ifmt_addr, { 0xc8 }
1639*3d8817e4Smiod },
1640*3d8817e4Smiod /* movb [$dr],[$sr] */
1641*3d8817e4Smiod {
1642*3d8817e4Smiod { 0, 0, 0, 0 },
1643*3d8817e4Smiod { { MNEM, ' ', '[', OP (DR), ']', ',', '[', OP (SR), ']', 0 } },
1644*3d8817e4Smiod & ifmt_addr, { 0xc9 }
1645*3d8817e4Smiod },
1646*3d8817e4Smiod /* mov [$dr+],[$sr] */
1647*3d8817e4Smiod {
1648*3d8817e4Smiod { 0, 0, 0, 0 },
1649*3d8817e4Smiod { { MNEM, ' ', '[', OP (DR), '+', ']', ',', '[', OP (SR), ']', 0 } },
1650*3d8817e4Smiod & ifmt_addr, { 0xd8 }
1651*3d8817e4Smiod },
1652*3d8817e4Smiod /* movb [$dr+],[$sr] */
1653*3d8817e4Smiod {
1654*3d8817e4Smiod { 0, 0, 0, 0 },
1655*3d8817e4Smiod { { MNEM, ' ', '[', OP (DR), '+', ']', ',', '[', OP (SR), ']', 0 } },
1656*3d8817e4Smiod & ifmt_addr, { 0xd9 }
1657*3d8817e4Smiod },
1658*3d8817e4Smiod /* mov [$dr],[$sr+] */
1659*3d8817e4Smiod {
1660*3d8817e4Smiod { 0, 0, 0, 0 },
1661*3d8817e4Smiod { { MNEM, ' ', '[', OP (DR), ']', ',', '[', OP (SR), '+', ']', 0 } },
1662*3d8817e4Smiod & ifmt_addr, { 0xe8 }
1663*3d8817e4Smiod },
1664*3d8817e4Smiod /* movb [$dr],[$sr+] */
1665*3d8817e4Smiod {
1666*3d8817e4Smiod { 0, 0, 0, 0 },
1667*3d8817e4Smiod { { MNEM, ' ', '[', OP (DR), ']', ',', '[', OP (SR), '+', ']', 0 } },
1668*3d8817e4Smiod & ifmt_addr, { 0xe9 }
1669*3d8817e4Smiod },
1670*3d8817e4Smiod /* mov $dr,[$sr+$hash$uimm16] */
1671*3d8817e4Smiod {
1672*3d8817e4Smiod { 0, 0, 0, 0 },
1673*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR), '+', OP (HASH), OP (UIMM16), ']', 0 } },
1674*3d8817e4Smiod & ifmt_mov9i, { 0xd4 }
1675*3d8817e4Smiod },
1676*3d8817e4Smiod /* movb $drb,[$sr+$hash$uimm16] */
1677*3d8817e4Smiod {
1678*3d8817e4Smiod { 0, 0, 0, 0 },
1679*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR), '+', OP (HASH), OP (UIMM16), ']', 0 } },
1680*3d8817e4Smiod & ifmt_movb9i, { 0xf4 }
1681*3d8817e4Smiod },
1682*3d8817e4Smiod /* mov [$sr+$hash$uimm16],$dr */
1683*3d8817e4Smiod {
1684*3d8817e4Smiod { 0, 0, 0, 0 },
1685*3d8817e4Smiod { { MNEM, ' ', '[', OP (SR), '+', OP (HASH), OP (UIMM16), ']', ',', OP (DR), 0 } },
1686*3d8817e4Smiod & ifmt_mov9i, { 0xc4 }
1687*3d8817e4Smiod },
1688*3d8817e4Smiod /* movb [$sr+$hash$uimm16],$drb */
1689*3d8817e4Smiod {
1690*3d8817e4Smiod { 0, 0, 0, 0 },
1691*3d8817e4Smiod { { MNEM, ' ', '[', OP (SR), '+', OP (HASH), OP (UIMM16), ']', ',', OP (DRB), 0 } },
1692*3d8817e4Smiod & ifmt_movb9i, { 0xe4 }
1693*3d8817e4Smiod },
1694*3d8817e4Smiod /* mov [$src2],$memory */
1695*3d8817e4Smiod {
1696*3d8817e4Smiod { 0, 0, 0, 0 },
1697*3d8817e4Smiod { { MNEM, ' ', '[', OP (SRC2), ']', ',', OP (MEMORY), 0 } },
1698*3d8817e4Smiod & ifmt_movri11, { 0x84 }
1699*3d8817e4Smiod },
1700*3d8817e4Smiod /* movb [$src2],$memory */
1701*3d8817e4Smiod {
1702*3d8817e4Smiod { 0, 0, 0, 0 },
1703*3d8817e4Smiod { { MNEM, ' ', '[', OP (SRC2), ']', ',', OP (MEMORY), 0 } },
1704*3d8817e4Smiod & ifmt_movri11, { 0xa4 }
1705*3d8817e4Smiod },
1706*3d8817e4Smiod /* mov $memory,[$src2] */
1707*3d8817e4Smiod {
1708*3d8817e4Smiod { 0, 0, 0, 0 },
1709*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', '[', OP (SRC2), ']', 0 } },
1710*3d8817e4Smiod & ifmt_movri11, { 0x94 }
1711*3d8817e4Smiod },
1712*3d8817e4Smiod /* movb $memory,[$src2] */
1713*3d8817e4Smiod {
1714*3d8817e4Smiod { 0, 0, 0, 0 },
1715*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', '[', OP (SRC2), ']', 0 } },
1716*3d8817e4Smiod & ifmt_movri11, { 0xb4 }
1717*3d8817e4Smiod },
1718*3d8817e4Smiod /* mov $regoff8,$hash$pof$upof16 */
1719*3d8817e4Smiod {
1720*3d8817e4Smiod { 0, 0, 0, 0 },
1721*3d8817e4Smiod { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (POF), OP (UPOF16), 0 } },
1722*3d8817e4Smiod & ifmt_movehm5, { 0xe6 }
1723*3d8817e4Smiod },
1724*3d8817e4Smiod /* mov $regoff8,$hash$pag$upag16 */
1725*3d8817e4Smiod {
1726*3d8817e4Smiod { 0, 0, 0, 0 },
1727*3d8817e4Smiod { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (PAG), OP (UPAG16), 0 } },
1728*3d8817e4Smiod & ifmt_movehm6, { 0xe6 }
1729*3d8817e4Smiod },
1730*3d8817e4Smiod /* mov $regoff8,$hash$segm$useg16 */
1731*3d8817e4Smiod {
1732*3d8817e4Smiod { 0, 0, 0, 0 },
1733*3d8817e4Smiod { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (SEGM), OP (USEG16), 0 } },
1734*3d8817e4Smiod & ifmt_movehm7, { 0xe6 }
1735*3d8817e4Smiod },
1736*3d8817e4Smiod /* mov $regoff8,$hash$sof$usof16 */
1737*3d8817e4Smiod {
1738*3d8817e4Smiod { 0, 0, 0, 0 },
1739*3d8817e4Smiod { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (SOF), OP (USOF16), 0 } },
1740*3d8817e4Smiod & ifmt_movehm8, { 0xe6 }
1741*3d8817e4Smiod },
1742*3d8817e4Smiod /* movb $regb8,$hash$pof$uimm8 */
1743*3d8817e4Smiod {
1744*3d8817e4Smiod { 0, 0, 0, 0 },
1745*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } },
1746*3d8817e4Smiod & ifmt_addrbhpof, { 0xe7 }
1747*3d8817e4Smiod },
1748*3d8817e4Smiod /* movb $regoff8,$hash$pag$uimm8 */
1749*3d8817e4Smiod {
1750*3d8817e4Smiod { 0, 0, 0, 0 },
1751*3d8817e4Smiod { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } },
1752*3d8817e4Smiod & ifmt_movehm10, { 0xe7 }
1753*3d8817e4Smiod },
1754*3d8817e4Smiod /* mov $regoff8,$pof$upof16 */
1755*3d8817e4Smiod {
1756*3d8817e4Smiod { 0, 0, 0, 0 },
1757*3d8817e4Smiod { { MNEM, ' ', OP (REGOFF8), ',', OP (POF), OP (UPOF16), 0 } },
1758*3d8817e4Smiod & ifmt_movehm5, { 0xf2 }
1759*3d8817e4Smiod },
1760*3d8817e4Smiod /* movb $regb8,$pof$upof16 */
1761*3d8817e4Smiod {
1762*3d8817e4Smiod { 0, 0, 0, 0 },
1763*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } },
1764*3d8817e4Smiod & ifmt_addbrpof, { 0xf3 }
1765*3d8817e4Smiod },
1766*3d8817e4Smiod /* mov $regoff8,$pag$upag16 */
1767*3d8817e4Smiod {
1768*3d8817e4Smiod { 0, 0, 0, 0 },
1769*3d8817e4Smiod { { MNEM, ' ', OP (REGOFF8), ',', OP (PAG), OP (UPAG16), 0 } },
1770*3d8817e4Smiod & ifmt_movehm6, { 0xf2 }
1771*3d8817e4Smiod },
1772*3d8817e4Smiod /* movb $regb8,$pag$upag16 */
1773*3d8817e4Smiod {
1774*3d8817e4Smiod { 0, 0, 0, 0 },
1775*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } },
1776*3d8817e4Smiod & ifmt_addbrpag, { 0xf3 }
1777*3d8817e4Smiod },
1778*3d8817e4Smiod /* mov $pof$upof16,$regoff8 */
1779*3d8817e4Smiod {
1780*3d8817e4Smiod { 0, 0, 0, 0 },
1781*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGOFF8), 0 } },
1782*3d8817e4Smiod & ifmt_movehm5, { 0xf6 }
1783*3d8817e4Smiod },
1784*3d8817e4Smiod /* movb $pof$upof16,$regb8 */
1785*3d8817e4Smiod {
1786*3d8817e4Smiod { 0, 0, 0, 0 },
1787*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
1788*3d8817e4Smiod & ifmt_addbrpof, { 0xf7 }
1789*3d8817e4Smiod },
1790*3d8817e4Smiod /* mov $dri,$hash$pof$u4 */
1791*3d8817e4Smiod {
1792*3d8817e4Smiod { 0, 0, 0, 0 },
1793*3d8817e4Smiod { { MNEM, ' ', OP (DRI), ',', OP (HASH), OP (POF), OP (U4), 0 } },
1794*3d8817e4Smiod & ifmt_movri, { 0xe0 }
1795*3d8817e4Smiod },
1796*3d8817e4Smiod /* movb $srb,$hash$pof$u4 */
1797*3d8817e4Smiod {
1798*3d8817e4Smiod { 0, 0, 0, 0 },
1799*3d8817e4Smiod { { MNEM, ' ', OP (SRB), ',', OP (HASH), OP (POF), OP (U4), 0 } },
1800*3d8817e4Smiod & ifmt_movbri, { 0xe1 }
1801*3d8817e4Smiod },
1802*3d8817e4Smiod /* mov $dri,$hash$pag$u4 */
1803*3d8817e4Smiod {
1804*3d8817e4Smiod { 0, 0, 0, 0 },
1805*3d8817e4Smiod { { MNEM, ' ', OP (DRI), ',', OP (HASH), OP (PAG), OP (U4), 0 } },
1806*3d8817e4Smiod & ifmt_movri, { 0xe0 }
1807*3d8817e4Smiod },
1808*3d8817e4Smiod /* movb $srb,$hash$pag$u4 */
1809*3d8817e4Smiod {
1810*3d8817e4Smiod { 0, 0, 0, 0 },
1811*3d8817e4Smiod { { MNEM, ' ', OP (SRB), ',', OP (HASH), OP (PAG), OP (U4), 0 } },
1812*3d8817e4Smiod & ifmt_movbri, { 0xe1 }
1813*3d8817e4Smiod },
1814*3d8817e4Smiod /* mov $regmem8,$memgr8 */
1815*3d8817e4Smiod {
1816*3d8817e4Smiod { 0, 0, 0, 0 },
1817*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
1818*3d8817e4Smiod & ifmt_addrm2, { 0xf2 }
1819*3d8817e4Smiod },
1820*3d8817e4Smiod /* mov $memgr8,$regmem8 */
1821*3d8817e4Smiod {
1822*3d8817e4Smiod { 0, 0, 0, 0 },
1823*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } },
1824*3d8817e4Smiod & ifmt_addrm2, { 0xf6 }
1825*3d8817e4Smiod },
1826*3d8817e4Smiod /* mov $reg8,$memory */
1827*3d8817e4Smiod {
1828*3d8817e4Smiod { 0, 0, 0, 0 },
1829*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
1830*3d8817e4Smiod & ifmt_addrm, { 0xf2 }
1831*3d8817e4Smiod },
1832*3d8817e4Smiod /* mov $memory,$reg8 */
1833*3d8817e4Smiod {
1834*3d8817e4Smiod { 0, 0, 0, 0 },
1835*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } },
1836*3d8817e4Smiod & ifmt_addrm, { 0xf6 }
1837*3d8817e4Smiod },
1838*3d8817e4Smiod /* movb $regbmem8,$memgr8 */
1839*3d8817e4Smiod {
1840*3d8817e4Smiod { 0, 0, 0, 0 },
1841*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
1842*3d8817e4Smiod & ifmt_addbrm2, { 0xf3 }
1843*3d8817e4Smiod },
1844*3d8817e4Smiod /* movb $memgr8,$regbmem8 */
1845*3d8817e4Smiod {
1846*3d8817e4Smiod { 0, 0, 0, 0 },
1847*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
1848*3d8817e4Smiod & ifmt_addbrm2, { 0xf7 }
1849*3d8817e4Smiod },
1850*3d8817e4Smiod /* movb $regb8,$memory */
1851*3d8817e4Smiod {
1852*3d8817e4Smiod { 0, 0, 0, 0 },
1853*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
1854*3d8817e4Smiod & ifmt_addbrm, { 0xf3 }
1855*3d8817e4Smiod },
1856*3d8817e4Smiod /* movb $memory,$regb8 */
1857*3d8817e4Smiod {
1858*3d8817e4Smiod { 0, 0, 0, 0 },
1859*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
1860*3d8817e4Smiod & ifmt_addbrm, { 0xf7 }
1861*3d8817e4Smiod },
1862*3d8817e4Smiod /* movbs $sr,$drb */
1863*3d8817e4Smiod {
1864*3d8817e4Smiod { 0, 0, 0, 0 },
1865*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (DRB), 0 } },
1866*3d8817e4Smiod & ifmt_movbr2, { 0xd0 }
1867*3d8817e4Smiod },
1868*3d8817e4Smiod /* movbz $sr,$drb */
1869*3d8817e4Smiod {
1870*3d8817e4Smiod { 0, 0, 0, 0 },
1871*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (DRB), 0 } },
1872*3d8817e4Smiod & ifmt_movbr2, { 0xc0 }
1873*3d8817e4Smiod },
1874*3d8817e4Smiod /* movbs $regmem8,$pof$upof16 */
1875*3d8817e4Smiod {
1876*3d8817e4Smiod { 0, 0, 0, 0 },
1877*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (POF), OP (UPOF16), 0 } },
1878*3d8817e4Smiod & ifmt_movbsrpofm, { 0xd2 }
1879*3d8817e4Smiod },
1880*3d8817e4Smiod /* movbs $pof$upof16,$regbmem8 */
1881*3d8817e4Smiod {
1882*3d8817e4Smiod { 0, 0, 0, 0 },
1883*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGBMEM8), 0 } },
1884*3d8817e4Smiod & ifmt_movbspofmr, { 0xd5 }
1885*3d8817e4Smiod },
1886*3d8817e4Smiod /* movbz $reg8,$pof$upof16 */
1887*3d8817e4Smiod {
1888*3d8817e4Smiod { 0, 0, 0, 0 },
1889*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
1890*3d8817e4Smiod & ifmt_addrpof, { 0xc2 }
1891*3d8817e4Smiod },
1892*3d8817e4Smiod /* movbz $pof$upof16,$regb8 */
1893*3d8817e4Smiod {
1894*3d8817e4Smiod { 0, 0, 0, 0 },
1895*3d8817e4Smiod { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } },
1896*3d8817e4Smiod & ifmt_addbrpof, { 0xc5 }
1897*3d8817e4Smiod },
1898*3d8817e4Smiod /* movbs $regmem8,$memgr8 */
1899*3d8817e4Smiod {
1900*3d8817e4Smiod { 0, 0, 0, 0 },
1901*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
1902*3d8817e4Smiod & ifmt_addrm2, { 0xd2 }
1903*3d8817e4Smiod },
1904*3d8817e4Smiod /* movbs $memgr8,$regbmem8 */
1905*3d8817e4Smiod {
1906*3d8817e4Smiod { 0, 0, 0, 0 },
1907*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
1908*3d8817e4Smiod & ifmt_addbrm2, { 0xd5 }
1909*3d8817e4Smiod },
1910*3d8817e4Smiod /* movbs $reg8,$memory */
1911*3d8817e4Smiod {
1912*3d8817e4Smiod { 0, 0, 0, 0 },
1913*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
1914*3d8817e4Smiod & ifmt_addrm, { 0xd2 }
1915*3d8817e4Smiod },
1916*3d8817e4Smiod /* movbs $memory,$regb8 */
1917*3d8817e4Smiod {
1918*3d8817e4Smiod { 0, 0, 0, 0 },
1919*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
1920*3d8817e4Smiod & ifmt_addbrm, { 0xd5 }
1921*3d8817e4Smiod },
1922*3d8817e4Smiod /* movbz $regmem8,$memgr8 */
1923*3d8817e4Smiod {
1924*3d8817e4Smiod { 0, 0, 0, 0 },
1925*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
1926*3d8817e4Smiod & ifmt_addrm2, { 0xc2 }
1927*3d8817e4Smiod },
1928*3d8817e4Smiod /* movbz $memgr8,$regbmem8 */
1929*3d8817e4Smiod {
1930*3d8817e4Smiod { 0, 0, 0, 0 },
1931*3d8817e4Smiod { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } },
1932*3d8817e4Smiod & ifmt_addbrm2, { 0xc5 }
1933*3d8817e4Smiod },
1934*3d8817e4Smiod /* movbz $reg8,$memory */
1935*3d8817e4Smiod {
1936*3d8817e4Smiod { 0, 0, 0, 0 },
1937*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
1938*3d8817e4Smiod & ifmt_addrm, { 0xc2 }
1939*3d8817e4Smiod },
1940*3d8817e4Smiod /* movbz $memory,$regb8 */
1941*3d8817e4Smiod {
1942*3d8817e4Smiod { 0, 0, 0, 0 },
1943*3d8817e4Smiod { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } },
1944*3d8817e4Smiod & ifmt_addbrm, { 0xc5 }
1945*3d8817e4Smiod },
1946*3d8817e4Smiod /* movbs $sr,$drb */
1947*3d8817e4Smiod {
1948*3d8817e4Smiod { 0, 0, 0, 0 },
1949*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (DRB), 0 } },
1950*3d8817e4Smiod & ifmt_movbr2, { 0xd0 }
1951*3d8817e4Smiod },
1952*3d8817e4Smiod /* movbz $sr,$drb */
1953*3d8817e4Smiod {
1954*3d8817e4Smiod { 0, 0, 0, 0 },
1955*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (DRB), 0 } },
1956*3d8817e4Smiod & ifmt_movbr2, { 0xc0 }
1957*3d8817e4Smiod },
1958*3d8817e4Smiod /* jmpa+ $extcond,$caddr */
1959*3d8817e4Smiod {
1960*3d8817e4Smiod { 0, 0, 0, 0 },
1961*3d8817e4Smiod { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } },
1962*3d8817e4Smiod & ifmt_jmpa0, { 0xea }
1963*3d8817e4Smiod },
1964*3d8817e4Smiod /* jmpa $extcond,$caddr */
1965*3d8817e4Smiod {
1966*3d8817e4Smiod { 0, 0, 0, 0 },
1967*3d8817e4Smiod { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } },
1968*3d8817e4Smiod & ifmt_jmpa0, { 0xea }
1969*3d8817e4Smiod },
1970*3d8817e4Smiod /* jmpa- $extcond,$caddr */
1971*3d8817e4Smiod {
1972*3d8817e4Smiod { 0, 0, 0, 0 },
1973*3d8817e4Smiod { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } },
1974*3d8817e4Smiod & ifmt_jmpa_, { 0x1ea }
1975*3d8817e4Smiod },
1976*3d8817e4Smiod /* jmpi $icond,[$sr] */
1977*3d8817e4Smiod {
1978*3d8817e4Smiod { 0, 0, 0, 0 },
1979*3d8817e4Smiod { { MNEM, ' ', OP (ICOND), ',', '[', OP (SR), ']', 0 } },
1980*3d8817e4Smiod & ifmt_jmpi, { 0x9c }
1981*3d8817e4Smiod },
1982*3d8817e4Smiod /* jmpr $cond,$rel */
1983*3d8817e4Smiod {
1984*3d8817e4Smiod { 0, 0, 0, 0 },
1985*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
1986*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x3d }
1987*3d8817e4Smiod },
1988*3d8817e4Smiod /* jmpr $cond,$rel */
1989*3d8817e4Smiod {
1990*3d8817e4Smiod { 0, 0, 0, 0 },
1991*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
1992*3d8817e4Smiod & ifmt_jmpr_nenz, { 0xad }
1993*3d8817e4Smiod },
1994*3d8817e4Smiod /* jmpr $cond,$rel */
1995*3d8817e4Smiod {
1996*3d8817e4Smiod { 0, 0, 0, 0 },
1997*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
1998*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x2d }
1999*3d8817e4Smiod },
2000*3d8817e4Smiod /* jmpr $cond,$rel */
2001*3d8817e4Smiod {
2002*3d8817e4Smiod { 0, 0, 0, 0 },
2003*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2004*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x4d }
2005*3d8817e4Smiod },
2006*3d8817e4Smiod /* jmpr $cond,$rel */
2007*3d8817e4Smiod {
2008*3d8817e4Smiod { 0, 0, 0, 0 },
2009*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2010*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x5d }
2011*3d8817e4Smiod },
2012*3d8817e4Smiod /* jmpr $cond,$rel */
2013*3d8817e4Smiod {
2014*3d8817e4Smiod { 0, 0, 0, 0 },
2015*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2016*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x6d }
2017*3d8817e4Smiod },
2018*3d8817e4Smiod /* jmpr $cond,$rel */
2019*3d8817e4Smiod {
2020*3d8817e4Smiod { 0, 0, 0, 0 },
2021*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2022*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x7d }
2023*3d8817e4Smiod },
2024*3d8817e4Smiod /* jmpr $cond,$rel */
2025*3d8817e4Smiod {
2026*3d8817e4Smiod { 0, 0, 0, 0 },
2027*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2028*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x8d }
2029*3d8817e4Smiod },
2030*3d8817e4Smiod /* jmpr $cond,$rel */
2031*3d8817e4Smiod {
2032*3d8817e4Smiod { 0, 0, 0, 0 },
2033*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2034*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x9d }
2035*3d8817e4Smiod },
2036*3d8817e4Smiod /* jmpr $cond,$rel */
2037*3d8817e4Smiod {
2038*3d8817e4Smiod { 0, 0, 0, 0 },
2039*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2040*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x2d }
2041*3d8817e4Smiod },
2042*3d8817e4Smiod /* jmpr $cond,$rel */
2043*3d8817e4Smiod {
2044*3d8817e4Smiod { 0, 0, 0, 0 },
2045*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2046*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x3d }
2047*3d8817e4Smiod },
2048*3d8817e4Smiod /* jmpr $cond,$rel */
2049*3d8817e4Smiod {
2050*3d8817e4Smiod { 0, 0, 0, 0 },
2051*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2052*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x8d }
2053*3d8817e4Smiod },
2054*3d8817e4Smiod /* jmpr $cond,$rel */
2055*3d8817e4Smiod {
2056*3d8817e4Smiod { 0, 0, 0, 0 },
2057*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2058*3d8817e4Smiod & ifmt_jmpr_nenz, { 0xfd }
2059*3d8817e4Smiod },
2060*3d8817e4Smiod /* jmpr $cond,$rel */
2061*3d8817e4Smiod {
2062*3d8817e4Smiod { 0, 0, 0, 0 },
2063*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2064*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x9d }
2065*3d8817e4Smiod },
2066*3d8817e4Smiod /* jmpr $cond,$rel */
2067*3d8817e4Smiod {
2068*3d8817e4Smiod { 0, 0, 0, 0 },
2069*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2070*3d8817e4Smiod & ifmt_jmpr_nenz, { 0xed }
2071*3d8817e4Smiod },
2072*3d8817e4Smiod /* jmpr $cond,$rel */
2073*3d8817e4Smiod {
2074*3d8817e4Smiod { 0, 0, 0, 0 },
2075*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2076*3d8817e4Smiod & ifmt_jmpr_nenz, { 0xbd }
2077*3d8817e4Smiod },
2078*3d8817e4Smiod /* jmpr $cond,$rel */
2079*3d8817e4Smiod {
2080*3d8817e4Smiod { 0, 0, 0, 0 },
2081*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2082*3d8817e4Smiod & ifmt_jmpr_nenz, { 0xdd }
2083*3d8817e4Smiod },
2084*3d8817e4Smiod /* jmpr $cond,$rel */
2085*3d8817e4Smiod {
2086*3d8817e4Smiod { 0, 0, 0, 0 },
2087*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2088*3d8817e4Smiod & ifmt_jmpr_nenz, { 0x1d }
2089*3d8817e4Smiod },
2090*3d8817e4Smiod /* jmpr $cond,$rel */
2091*3d8817e4Smiod {
2092*3d8817e4Smiod { 0, 0, 0, 0 },
2093*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2094*3d8817e4Smiod & ifmt_jmpr_nenz, { 0xd }
2095*3d8817e4Smiod },
2096*3d8817e4Smiod /* jmpr $cond,$rel */
2097*3d8817e4Smiod {
2098*3d8817e4Smiod { 0, 0, 0, 0 },
2099*3d8817e4Smiod { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } },
2100*3d8817e4Smiod & ifmt_jmpr_nenz, { 0xcd }
2101*3d8817e4Smiod },
2102*3d8817e4Smiod /* jmps $hash$segm$useg8,$hash$sof$usof16 */
2103*3d8817e4Smiod {
2104*3d8817e4Smiod { 0, 0, 0, 0 },
2105*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (SEGM), OP (USEG8), ',', OP (HASH), OP (SOF), OP (USOF16), 0 } },
2106*3d8817e4Smiod & ifmt_jmpseg, { 0xfa }
2107*3d8817e4Smiod },
2108*3d8817e4Smiod /* jmps $seg,$caddr */
2109*3d8817e4Smiod {
2110*3d8817e4Smiod { 0, 0, 0, 0 },
2111*3d8817e4Smiod { { MNEM, ' ', OP (SEG), ',', OP (CADDR), 0 } },
2112*3d8817e4Smiod & ifmt_jmps, { 0xfa }
2113*3d8817e4Smiod },
2114*3d8817e4Smiod /* jb $genreg$dot$qlobit,$relhi */
2115*3d8817e4Smiod {
2116*3d8817e4Smiod { 0, 0, 0, 0 },
2117*3d8817e4Smiod { { MNEM, ' ', OP (GENREG), OP (DOT), OP (QLOBIT), ',', OP (RELHI), 0 } },
2118*3d8817e4Smiod & ifmt_jb, { 0x8a }
2119*3d8817e4Smiod },
2120*3d8817e4Smiod /* jbc $genreg$dot$qlobit,$relhi */
2121*3d8817e4Smiod {
2122*3d8817e4Smiod { 0, 0, 0, 0 },
2123*3d8817e4Smiod { { MNEM, ' ', OP (GENREG), OP (DOT), OP (QLOBIT), ',', OP (RELHI), 0 } },
2124*3d8817e4Smiod & ifmt_jb, { 0xaa }
2125*3d8817e4Smiod },
2126*3d8817e4Smiod /* jnb $genreg$dot$qlobit,$relhi */
2127*3d8817e4Smiod {
2128*3d8817e4Smiod { 0, 0, 0, 0 },
2129*3d8817e4Smiod { { MNEM, ' ', OP (GENREG), OP (DOT), OP (QLOBIT), ',', OP (RELHI), 0 } },
2130*3d8817e4Smiod & ifmt_jb, { 0x9a }
2131*3d8817e4Smiod },
2132*3d8817e4Smiod /* jnbs $genreg$dot$qlobit,$relhi */
2133*3d8817e4Smiod {
2134*3d8817e4Smiod { 0, 0, 0, 0 },
2135*3d8817e4Smiod { { MNEM, ' ', OP (GENREG), OP (DOT), OP (QLOBIT), ',', OP (RELHI), 0 } },
2136*3d8817e4Smiod & ifmt_jb, { 0xba }
2137*3d8817e4Smiod },
2138*3d8817e4Smiod /* calla+ $extcond,$caddr */
2139*3d8817e4Smiod {
2140*3d8817e4Smiod { 0, 0, 0, 0 },
2141*3d8817e4Smiod { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } },
2142*3d8817e4Smiod & ifmt_calla0, { 0xca }
2143*3d8817e4Smiod },
2144*3d8817e4Smiod /* calla $extcond,$caddr */
2145*3d8817e4Smiod {
2146*3d8817e4Smiod { 0, 0, 0, 0 },
2147*3d8817e4Smiod { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } },
2148*3d8817e4Smiod & ifmt_calla0, { 0xca }
2149*3d8817e4Smiod },
2150*3d8817e4Smiod /* calla- $extcond,$caddr */
2151*3d8817e4Smiod {
2152*3d8817e4Smiod { 0, 0, 0, 0 },
2153*3d8817e4Smiod { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } },
2154*3d8817e4Smiod & ifmt_calla_, { 0x1ca }
2155*3d8817e4Smiod },
2156*3d8817e4Smiod /* calli $icond,[$sr] */
2157*3d8817e4Smiod {
2158*3d8817e4Smiod { 0, 0, 0, 0 },
2159*3d8817e4Smiod { { MNEM, ' ', OP (ICOND), ',', '[', OP (SR), ']', 0 } },
2160*3d8817e4Smiod & ifmt_jmpi, { 0xab }
2161*3d8817e4Smiod },
2162*3d8817e4Smiod /* callr $rel */
2163*3d8817e4Smiod {
2164*3d8817e4Smiod { 0, 0, 0, 0 },
2165*3d8817e4Smiod { { MNEM, ' ', OP (REL), 0 } },
2166*3d8817e4Smiod & ifmt_callr, { 0xbb }
2167*3d8817e4Smiod },
2168*3d8817e4Smiod /* calls $hash$segm$useg8,$hash$sof$usof16 */
2169*3d8817e4Smiod {
2170*3d8817e4Smiod { 0, 0, 0, 0 },
2171*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (SEGM), OP (USEG8), ',', OP (HASH), OP (SOF), OP (USOF16), 0 } },
2172*3d8817e4Smiod & ifmt_callseg, { 0xda }
2173*3d8817e4Smiod },
2174*3d8817e4Smiod /* calls $seg,$caddr */
2175*3d8817e4Smiod {
2176*3d8817e4Smiod { 0, 0, 0, 0 },
2177*3d8817e4Smiod { { MNEM, ' ', OP (SEG), ',', OP (CADDR), 0 } },
2178*3d8817e4Smiod & ifmt_jmps, { 0xda }
2179*3d8817e4Smiod },
2180*3d8817e4Smiod /* pcall $reg8,$caddr */
2181*3d8817e4Smiod {
2182*3d8817e4Smiod { 0, 0, 0, 0 },
2183*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (CADDR), 0 } },
2184*3d8817e4Smiod & ifmt_pcall, { 0xe2 }
2185*3d8817e4Smiod },
2186*3d8817e4Smiod /* trap $hash$uimm7 */
2187*3d8817e4Smiod {
2188*3d8817e4Smiod { 0, 0, 0, 0 },
2189*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (UIMM7), 0 } },
2190*3d8817e4Smiod & ifmt_trap, { 0x9b }
2191*3d8817e4Smiod },
2192*3d8817e4Smiod /* ret */
2193*3d8817e4Smiod {
2194*3d8817e4Smiod { 0, 0, 0, 0 },
2195*3d8817e4Smiod { { MNEM, 0 } },
2196*3d8817e4Smiod & ifmt_ret, { 0xcb }
2197*3d8817e4Smiod },
2198*3d8817e4Smiod /* rets */
2199*3d8817e4Smiod {
2200*3d8817e4Smiod { 0, 0, 0, 0 },
2201*3d8817e4Smiod { { MNEM, 0 } },
2202*3d8817e4Smiod & ifmt_ret, { 0xdb }
2203*3d8817e4Smiod },
2204*3d8817e4Smiod /* retp $reg8 */
2205*3d8817e4Smiod {
2206*3d8817e4Smiod { 0, 0, 0, 0 },
2207*3d8817e4Smiod { { MNEM, ' ', OP (REG8), 0 } },
2208*3d8817e4Smiod & ifmt_retp, { 0xeb }
2209*3d8817e4Smiod },
2210*3d8817e4Smiod /* reti */
2211*3d8817e4Smiod {
2212*3d8817e4Smiod { 0, 0, 0, 0 },
2213*3d8817e4Smiod { { MNEM, 0 } },
2214*3d8817e4Smiod & ifmt_reti, { 0x88fb }
2215*3d8817e4Smiod },
2216*3d8817e4Smiod /* pop $reg8 */
2217*3d8817e4Smiod {
2218*3d8817e4Smiod { 0, 0, 0, 0 },
2219*3d8817e4Smiod { { MNEM, ' ', OP (REG8), 0 } },
2220*3d8817e4Smiod & ifmt_retp, { 0xfc }
2221*3d8817e4Smiod },
2222*3d8817e4Smiod /* push $reg8 */
2223*3d8817e4Smiod {
2224*3d8817e4Smiod { 0, 0, 0, 0 },
2225*3d8817e4Smiod { { MNEM, ' ', OP (REG8), 0 } },
2226*3d8817e4Smiod & ifmt_retp, { 0xec }
2227*3d8817e4Smiod },
2228*3d8817e4Smiod /* scxt $reg8,$hash$uimm16 */
2229*3d8817e4Smiod {
2230*3d8817e4Smiod { 0, 0, 0, 0 },
2231*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
2232*3d8817e4Smiod & ifmt_addrhpof, { 0xc6 }
2233*3d8817e4Smiod },
2234*3d8817e4Smiod /* scxt $reg8,$pof$upof16 */
2235*3d8817e4Smiod {
2236*3d8817e4Smiod { 0, 0, 0, 0 },
2237*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
2238*3d8817e4Smiod & ifmt_addrpof, { 0xd6 }
2239*3d8817e4Smiod },
2240*3d8817e4Smiod /* scxt $regmem8,$memgr8 */
2241*3d8817e4Smiod {
2242*3d8817e4Smiod { 0, 0, 0, 0 },
2243*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
2244*3d8817e4Smiod & ifmt_addrm2, { 0xd6 }
2245*3d8817e4Smiod },
2246*3d8817e4Smiod /* scxt $reg8,$memory */
2247*3d8817e4Smiod {
2248*3d8817e4Smiod { 0, 0, 0, 0 },
2249*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
2250*3d8817e4Smiod & ifmt_addrm, { 0xd6 }
2251*3d8817e4Smiod },
2252*3d8817e4Smiod /* nop */
2253*3d8817e4Smiod {
2254*3d8817e4Smiod { 0, 0, 0, 0 },
2255*3d8817e4Smiod { { MNEM, 0 } },
2256*3d8817e4Smiod & ifmt_ret, { 0xcc }
2257*3d8817e4Smiod },
2258*3d8817e4Smiod /* srst */
2259*3d8817e4Smiod {
2260*3d8817e4Smiod { 0, 0, 0, 0 },
2261*3d8817e4Smiod { { MNEM, 0 } },
2262*3d8817e4Smiod & ifmt_srstm, { 0xb7b748b7 }
2263*3d8817e4Smiod },
2264*3d8817e4Smiod /* idle */
2265*3d8817e4Smiod {
2266*3d8817e4Smiod { 0, 0, 0, 0 },
2267*3d8817e4Smiod { { MNEM, 0 } },
2268*3d8817e4Smiod & ifmt_srstm, { 0x87877887 }
2269*3d8817e4Smiod },
2270*3d8817e4Smiod /* pwrdn */
2271*3d8817e4Smiod {
2272*3d8817e4Smiod { 0, 0, 0, 0 },
2273*3d8817e4Smiod { { MNEM, 0 } },
2274*3d8817e4Smiod & ifmt_srstm, { 0x97976897 }
2275*3d8817e4Smiod },
2276*3d8817e4Smiod /* diswdt */
2277*3d8817e4Smiod {
2278*3d8817e4Smiod { 0, 0, 0, 0 },
2279*3d8817e4Smiod { { MNEM, 0 } },
2280*3d8817e4Smiod & ifmt_srstm, { 0xa5a55aa5 }
2281*3d8817e4Smiod },
2282*3d8817e4Smiod /* enwdt */
2283*3d8817e4Smiod {
2284*3d8817e4Smiod { 0, 0, 0, 0 },
2285*3d8817e4Smiod { { MNEM, 0 } },
2286*3d8817e4Smiod & ifmt_srstm, { 0x85857a85 }
2287*3d8817e4Smiod },
2288*3d8817e4Smiod /* einit */
2289*3d8817e4Smiod {
2290*3d8817e4Smiod { 0, 0, 0, 0 },
2291*3d8817e4Smiod { { MNEM, 0 } },
2292*3d8817e4Smiod & ifmt_srstm, { 0xb5b54ab5 }
2293*3d8817e4Smiod },
2294*3d8817e4Smiod /* srvwdt */
2295*3d8817e4Smiod {
2296*3d8817e4Smiod { 0, 0, 0, 0 },
2297*3d8817e4Smiod { { MNEM, 0 } },
2298*3d8817e4Smiod & ifmt_srstm, { 0xa7a758a7 }
2299*3d8817e4Smiod },
2300*3d8817e4Smiod /* sbrk */
2301*3d8817e4Smiod {
2302*3d8817e4Smiod { 0, 0, 0, 0 },
2303*3d8817e4Smiod { { MNEM, 0 } },
2304*3d8817e4Smiod & ifmt_ret, { 0x8c }
2305*3d8817e4Smiod },
2306*3d8817e4Smiod /* atomic $hash$uimm2 */
2307*3d8817e4Smiod {
2308*3d8817e4Smiod { 0, 0, 0, 0 },
2309*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (UIMM2), 0 } },
2310*3d8817e4Smiod & ifmt_atomic, { 0xd1 }
2311*3d8817e4Smiod },
2312*3d8817e4Smiod /* extr $hash$uimm2 */
2313*3d8817e4Smiod {
2314*3d8817e4Smiod { 0, 0, 0, 0 },
2315*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (UIMM2), 0 } },
2316*3d8817e4Smiod & ifmt_atomic, { 0x80d1 }
2317*3d8817e4Smiod },
2318*3d8817e4Smiod /* extp $sr,$hash$uimm2 */
2319*3d8817e4Smiod {
2320*3d8817e4Smiod { 0, 0, 0, 0 },
2321*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM2), 0 } },
2322*3d8817e4Smiod & ifmt_extp, { 0x40dc }
2323*3d8817e4Smiod },
2324*3d8817e4Smiod /* extp $hash$pagenum,$hash$uimm2 */
2325*3d8817e4Smiod {
2326*3d8817e4Smiod { 0, 0, 0, 0 },
2327*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (PAGENUM), ',', OP (HASH), OP (UIMM2), 0 } },
2328*3d8817e4Smiod & ifmt_extp1, { 0x40d7 }
2329*3d8817e4Smiod },
2330*3d8817e4Smiod /* extp $hash$pag$upag16,$hash$uimm2 */
2331*3d8817e4Smiod {
2332*3d8817e4Smiod { 0, 0, 0, 0 },
2333*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (PAG), OP (UPAG16), ',', OP (HASH), OP (UIMM2), 0 } },
2334*3d8817e4Smiod & ifmt_extpg1, { 0x40d7 }
2335*3d8817e4Smiod },
2336*3d8817e4Smiod /* extpr $sr,$hash$uimm2 */
2337*3d8817e4Smiod {
2338*3d8817e4Smiod { 0, 0, 0, 0 },
2339*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM2), 0 } },
2340*3d8817e4Smiod & ifmt_extp, { 0xc0dc }
2341*3d8817e4Smiod },
2342*3d8817e4Smiod /* extpr $hash$pagenum,$hash$uimm2 */
2343*3d8817e4Smiod {
2344*3d8817e4Smiod { 0, 0, 0, 0 },
2345*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (PAGENUM), ',', OP (HASH), OP (UIMM2), 0 } },
2346*3d8817e4Smiod & ifmt_extp1, { 0xc0d7 }
2347*3d8817e4Smiod },
2348*3d8817e4Smiod /* exts $sr,$hash$uimm2 */
2349*3d8817e4Smiod {
2350*3d8817e4Smiod { 0, 0, 0, 0 },
2351*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM2), 0 } },
2352*3d8817e4Smiod & ifmt_extp, { 0xdc }
2353*3d8817e4Smiod },
2354*3d8817e4Smiod /* exts $hash$seghi8,$hash$uimm2 */
2355*3d8817e4Smiod {
2356*3d8817e4Smiod { 0, 0, 0, 0 },
2357*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (SEGHI8), ',', OP (HASH), OP (UIMM2), 0 } },
2358*3d8817e4Smiod & ifmt_exts1, { 0xd7 }
2359*3d8817e4Smiod },
2360*3d8817e4Smiod /* extsr $sr,$hash$uimm2 */
2361*3d8817e4Smiod {
2362*3d8817e4Smiod { 0, 0, 0, 0 },
2363*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM2), 0 } },
2364*3d8817e4Smiod & ifmt_extp, { 0x80dc }
2365*3d8817e4Smiod },
2366*3d8817e4Smiod /* extsr $hash$seghi8,$hash$uimm2 */
2367*3d8817e4Smiod {
2368*3d8817e4Smiod { 0, 0, 0, 0 },
2369*3d8817e4Smiod { { MNEM, ' ', OP (HASH), OP (SEGHI8), ',', OP (HASH), OP (UIMM2), 0 } },
2370*3d8817e4Smiod & ifmt_exts1, { 0x80d7 }
2371*3d8817e4Smiod },
2372*3d8817e4Smiod /* prior $dr,$sr */
2373*3d8817e4Smiod {
2374*3d8817e4Smiod { 0, 0, 0, 0 },
2375*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
2376*3d8817e4Smiod & ifmt_addr, { 0x2b }
2377*3d8817e4Smiod },
2378*3d8817e4Smiod /* bclr $RegNam */
2379*3d8817e4Smiod {
2380*3d8817e4Smiod { 0, 0, 0, 0 },
2381*3d8817e4Smiod { { MNEM, ' ', OP (REGNAM), 0 } },
2382*3d8817e4Smiod & ifmt_bclr18, { 0xbe }
2383*3d8817e4Smiod },
2384*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2385*3d8817e4Smiod {
2386*3d8817e4Smiod { 0, 0, 0, 0 },
2387*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2388*3d8817e4Smiod & ifmt_bclr0, { 0xe }
2389*3d8817e4Smiod },
2390*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2391*3d8817e4Smiod {
2392*3d8817e4Smiod { 0, 0, 0, 0 },
2393*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2394*3d8817e4Smiod & ifmt_bclr0, { 0x1e }
2395*3d8817e4Smiod },
2396*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2397*3d8817e4Smiod {
2398*3d8817e4Smiod { 0, 0, 0, 0 },
2399*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2400*3d8817e4Smiod & ifmt_bclr0, { 0x2e }
2401*3d8817e4Smiod },
2402*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2403*3d8817e4Smiod {
2404*3d8817e4Smiod { 0, 0, 0, 0 },
2405*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2406*3d8817e4Smiod & ifmt_bclr0, { 0x3e }
2407*3d8817e4Smiod },
2408*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2409*3d8817e4Smiod {
2410*3d8817e4Smiod { 0, 0, 0, 0 },
2411*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2412*3d8817e4Smiod & ifmt_bclr0, { 0x4e }
2413*3d8817e4Smiod },
2414*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2415*3d8817e4Smiod {
2416*3d8817e4Smiod { 0, 0, 0, 0 },
2417*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2418*3d8817e4Smiod & ifmt_bclr0, { 0x5e }
2419*3d8817e4Smiod },
2420*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2421*3d8817e4Smiod {
2422*3d8817e4Smiod { 0, 0, 0, 0 },
2423*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2424*3d8817e4Smiod & ifmt_bclr0, { 0x6e }
2425*3d8817e4Smiod },
2426*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2427*3d8817e4Smiod {
2428*3d8817e4Smiod { 0, 0, 0, 0 },
2429*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2430*3d8817e4Smiod & ifmt_bclr0, { 0x7e }
2431*3d8817e4Smiod },
2432*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2433*3d8817e4Smiod {
2434*3d8817e4Smiod { 0, 0, 0, 0 },
2435*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2436*3d8817e4Smiod & ifmt_bclr0, { 0x8e }
2437*3d8817e4Smiod },
2438*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2439*3d8817e4Smiod {
2440*3d8817e4Smiod { 0, 0, 0, 0 },
2441*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2442*3d8817e4Smiod & ifmt_bclr0, { 0x9e }
2443*3d8817e4Smiod },
2444*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2445*3d8817e4Smiod {
2446*3d8817e4Smiod { 0, 0, 0, 0 },
2447*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2448*3d8817e4Smiod & ifmt_bclr0, { 0xae }
2449*3d8817e4Smiod },
2450*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2451*3d8817e4Smiod {
2452*3d8817e4Smiod { 0, 0, 0, 0 },
2453*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2454*3d8817e4Smiod & ifmt_bclr0, { 0xbe }
2455*3d8817e4Smiod },
2456*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2457*3d8817e4Smiod {
2458*3d8817e4Smiod { 0, 0, 0, 0 },
2459*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2460*3d8817e4Smiod & ifmt_bclr0, { 0xce }
2461*3d8817e4Smiod },
2462*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2463*3d8817e4Smiod {
2464*3d8817e4Smiod { 0, 0, 0, 0 },
2465*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2466*3d8817e4Smiod & ifmt_bclr0, { 0xde }
2467*3d8817e4Smiod },
2468*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2469*3d8817e4Smiod {
2470*3d8817e4Smiod { 0, 0, 0, 0 },
2471*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2472*3d8817e4Smiod & ifmt_bclr0, { 0xee }
2473*3d8817e4Smiod },
2474*3d8817e4Smiod /* bclr $reg8$dot$qbit */
2475*3d8817e4Smiod {
2476*3d8817e4Smiod { 0, 0, 0, 0 },
2477*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2478*3d8817e4Smiod & ifmt_bclr0, { 0xfe }
2479*3d8817e4Smiod },
2480*3d8817e4Smiod /* bset $RegNam */
2481*3d8817e4Smiod {
2482*3d8817e4Smiod { 0, 0, 0, 0 },
2483*3d8817e4Smiod { { MNEM, ' ', OP (REGNAM), 0 } },
2484*3d8817e4Smiod & ifmt_bclr18, { 0xbf }
2485*3d8817e4Smiod },
2486*3d8817e4Smiod /* bset $reg8$dot$qbit */
2487*3d8817e4Smiod {
2488*3d8817e4Smiod { 0, 0, 0, 0 },
2489*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2490*3d8817e4Smiod & ifmt_bclr0, { 0xf }
2491*3d8817e4Smiod },
2492*3d8817e4Smiod /* bset $reg8$dot$qbit */
2493*3d8817e4Smiod {
2494*3d8817e4Smiod { 0, 0, 0, 0 },
2495*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2496*3d8817e4Smiod & ifmt_bclr0, { 0x1f }
2497*3d8817e4Smiod },
2498*3d8817e4Smiod /* bset $reg8$dot$qbit */
2499*3d8817e4Smiod {
2500*3d8817e4Smiod { 0, 0, 0, 0 },
2501*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2502*3d8817e4Smiod & ifmt_bclr0, { 0x2f }
2503*3d8817e4Smiod },
2504*3d8817e4Smiod /* bset $reg8$dot$qbit */
2505*3d8817e4Smiod {
2506*3d8817e4Smiod { 0, 0, 0, 0 },
2507*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2508*3d8817e4Smiod & ifmt_bclr0, { 0x3f }
2509*3d8817e4Smiod },
2510*3d8817e4Smiod /* bset $reg8$dot$qbit */
2511*3d8817e4Smiod {
2512*3d8817e4Smiod { 0, 0, 0, 0 },
2513*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2514*3d8817e4Smiod & ifmt_bclr0, { 0x4f }
2515*3d8817e4Smiod },
2516*3d8817e4Smiod /* bset $reg8$dot$qbit */
2517*3d8817e4Smiod {
2518*3d8817e4Smiod { 0, 0, 0, 0 },
2519*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2520*3d8817e4Smiod & ifmt_bclr0, { 0x5f }
2521*3d8817e4Smiod },
2522*3d8817e4Smiod /* bset $reg8$dot$qbit */
2523*3d8817e4Smiod {
2524*3d8817e4Smiod { 0, 0, 0, 0 },
2525*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2526*3d8817e4Smiod & ifmt_bclr0, { 0x6f }
2527*3d8817e4Smiod },
2528*3d8817e4Smiod /* bset $reg8$dot$qbit */
2529*3d8817e4Smiod {
2530*3d8817e4Smiod { 0, 0, 0, 0 },
2531*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2532*3d8817e4Smiod & ifmt_bclr0, { 0x7f }
2533*3d8817e4Smiod },
2534*3d8817e4Smiod /* bset $reg8$dot$qbit */
2535*3d8817e4Smiod {
2536*3d8817e4Smiod { 0, 0, 0, 0 },
2537*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2538*3d8817e4Smiod & ifmt_bclr0, { 0x8f }
2539*3d8817e4Smiod },
2540*3d8817e4Smiod /* bset $reg8$dot$qbit */
2541*3d8817e4Smiod {
2542*3d8817e4Smiod { 0, 0, 0, 0 },
2543*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2544*3d8817e4Smiod & ifmt_bclr0, { 0x9f }
2545*3d8817e4Smiod },
2546*3d8817e4Smiod /* bset $reg8$dot$qbit */
2547*3d8817e4Smiod {
2548*3d8817e4Smiod { 0, 0, 0, 0 },
2549*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2550*3d8817e4Smiod & ifmt_bclr0, { 0xaf }
2551*3d8817e4Smiod },
2552*3d8817e4Smiod /* bset $reg8$dot$qbit */
2553*3d8817e4Smiod {
2554*3d8817e4Smiod { 0, 0, 0, 0 },
2555*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2556*3d8817e4Smiod & ifmt_bclr0, { 0xbf }
2557*3d8817e4Smiod },
2558*3d8817e4Smiod /* bset $reg8$dot$qbit */
2559*3d8817e4Smiod {
2560*3d8817e4Smiod { 0, 0, 0, 0 },
2561*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2562*3d8817e4Smiod & ifmt_bclr0, { 0xcf }
2563*3d8817e4Smiod },
2564*3d8817e4Smiod /* bset $reg8$dot$qbit */
2565*3d8817e4Smiod {
2566*3d8817e4Smiod { 0, 0, 0, 0 },
2567*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2568*3d8817e4Smiod & ifmt_bclr0, { 0xdf }
2569*3d8817e4Smiod },
2570*3d8817e4Smiod /* bset $reg8$dot$qbit */
2571*3d8817e4Smiod {
2572*3d8817e4Smiod { 0, 0, 0, 0 },
2573*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2574*3d8817e4Smiod & ifmt_bclr0, { 0xef }
2575*3d8817e4Smiod },
2576*3d8817e4Smiod /* bset $reg8$dot$qbit */
2577*3d8817e4Smiod {
2578*3d8817e4Smiod { 0, 0, 0, 0 },
2579*3d8817e4Smiod { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } },
2580*3d8817e4Smiod & ifmt_bclr0, { 0xff }
2581*3d8817e4Smiod },
2582*3d8817e4Smiod /* bmov $reghi8$dot$qhibit,$reg8$dot$qlobit */
2583*3d8817e4Smiod {
2584*3d8817e4Smiod { 0, 0, 0, 0 },
2585*3d8817e4Smiod { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } },
2586*3d8817e4Smiod & ifmt_bmov, { 0x4a }
2587*3d8817e4Smiod },
2588*3d8817e4Smiod /* bmovn $reghi8$dot$qhibit,$reg8$dot$qlobit */
2589*3d8817e4Smiod {
2590*3d8817e4Smiod { 0, 0, 0, 0 },
2591*3d8817e4Smiod { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } },
2592*3d8817e4Smiod & ifmt_bmov, { 0x3a }
2593*3d8817e4Smiod },
2594*3d8817e4Smiod /* band $reghi8$dot$qhibit,$reg8$dot$qlobit */
2595*3d8817e4Smiod {
2596*3d8817e4Smiod { 0, 0, 0, 0 },
2597*3d8817e4Smiod { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } },
2598*3d8817e4Smiod & ifmt_bmov, { 0x6a }
2599*3d8817e4Smiod },
2600*3d8817e4Smiod /* bor $reghi8$dot$qhibit,$reg8$dot$qlobit */
2601*3d8817e4Smiod {
2602*3d8817e4Smiod { 0, 0, 0, 0 },
2603*3d8817e4Smiod { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } },
2604*3d8817e4Smiod & ifmt_bmov, { 0x5a }
2605*3d8817e4Smiod },
2606*3d8817e4Smiod /* bxor $reghi8$dot$qhibit,$reg8$dot$qlobit */
2607*3d8817e4Smiod {
2608*3d8817e4Smiod { 0, 0, 0, 0 },
2609*3d8817e4Smiod { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } },
2610*3d8817e4Smiod & ifmt_bmov, { 0x7a }
2611*3d8817e4Smiod },
2612*3d8817e4Smiod /* bcmp $reghi8$dot$qhibit,$reg8$dot$qlobit */
2613*3d8817e4Smiod {
2614*3d8817e4Smiod { 0, 0, 0, 0 },
2615*3d8817e4Smiod { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } },
2616*3d8817e4Smiod & ifmt_bmov, { 0x2a }
2617*3d8817e4Smiod },
2618*3d8817e4Smiod /* bfldl $reg8,$hash$mask8,$hash$datahi8 */
2619*3d8817e4Smiod {
2620*3d8817e4Smiod { 0, 0, 0, 0 },
2621*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (MASK8), ',', OP (HASH), OP (DATAHI8), 0 } },
2622*3d8817e4Smiod & ifmt_bfldl, { 0xa }
2623*3d8817e4Smiod },
2624*3d8817e4Smiod /* bfldh $reg8,$hash$masklo8,$hash$data8 */
2625*3d8817e4Smiod {
2626*3d8817e4Smiod { 0, 0, 0, 0 },
2627*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (MASKLO8), ',', OP (HASH), OP (DATA8), 0 } },
2628*3d8817e4Smiod & ifmt_bfldh, { 0x1a }
2629*3d8817e4Smiod },
2630*3d8817e4Smiod /* cmp $src1,$src2 */
2631*3d8817e4Smiod {
2632*3d8817e4Smiod { 0, 0, 0, 0 },
2633*3d8817e4Smiod { { MNEM, ' ', OP (SRC1), ',', OP (SRC2), 0 } },
2634*3d8817e4Smiod & ifmt_muls, { 0x40 }
2635*3d8817e4Smiod },
2636*3d8817e4Smiod /* cmpb $drb,$srb */
2637*3d8817e4Smiod {
2638*3d8817e4Smiod { 0, 0, 0, 0 },
2639*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } },
2640*3d8817e4Smiod & ifmt_addbr, { 0x41 }
2641*3d8817e4Smiod },
2642*3d8817e4Smiod /* cmp $src1,$hash$uimm3 */
2643*3d8817e4Smiod {
2644*3d8817e4Smiod { 0, 0, 0, 0 },
2645*3d8817e4Smiod { { MNEM, ' ', OP (SRC1), ',', OP (HASH), OP (UIMM3), 0 } },
2646*3d8817e4Smiod & ifmt_cmpri, { 0x48 }
2647*3d8817e4Smiod },
2648*3d8817e4Smiod /* cmpb $drb,$hash$uimm3 */
2649*3d8817e4Smiod {
2650*3d8817e4Smiod { 0, 0, 0, 0 },
2651*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } },
2652*3d8817e4Smiod & ifmt_addbrhpag3, { 0x49 }
2653*3d8817e4Smiod },
2654*3d8817e4Smiod /* cmp $reg8,$hash$uimm16 */
2655*3d8817e4Smiod {
2656*3d8817e4Smiod { 0, 0, 0, 0 },
2657*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
2658*3d8817e4Smiod & ifmt_addrhpof, { 0x46 }
2659*3d8817e4Smiod },
2660*3d8817e4Smiod /* cmpb $regb8,$hash$uimm8 */
2661*3d8817e4Smiod {
2662*3d8817e4Smiod { 0, 0, 0, 0 },
2663*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } },
2664*3d8817e4Smiod & ifmt_addrbhpof, { 0x47 }
2665*3d8817e4Smiod },
2666*3d8817e4Smiod /* cmp $dr,[$sr2] */
2667*3d8817e4Smiod {
2668*3d8817e4Smiod { 0, 0, 0, 0 },
2669*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } },
2670*3d8817e4Smiod & ifmt_add2, { 0x848 }
2671*3d8817e4Smiod },
2672*3d8817e4Smiod /* cmpb $drb,[$sr2] */
2673*3d8817e4Smiod {
2674*3d8817e4Smiod { 0, 0, 0, 0 },
2675*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } },
2676*3d8817e4Smiod & ifmt_addb2, { 0x849 }
2677*3d8817e4Smiod },
2678*3d8817e4Smiod /* cmp $dr,[$sr2+] */
2679*3d8817e4Smiod {
2680*3d8817e4Smiod { 0, 0, 0, 0 },
2681*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } },
2682*3d8817e4Smiod & ifmt_add2, { 0xc48 }
2683*3d8817e4Smiod },
2684*3d8817e4Smiod /* cmpb $drb,[$sr2+] */
2685*3d8817e4Smiod {
2686*3d8817e4Smiod { 0, 0, 0, 0 },
2687*3d8817e4Smiod { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } },
2688*3d8817e4Smiod & ifmt_addb2, { 0xc49 }
2689*3d8817e4Smiod },
2690*3d8817e4Smiod /* cmp $reg8,$pof$upof16 */
2691*3d8817e4Smiod {
2692*3d8817e4Smiod { 0, 0, 0, 0 },
2693*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
2694*3d8817e4Smiod & ifmt_addrpof, { 0x42 }
2695*3d8817e4Smiod },
2696*3d8817e4Smiod /* cmpb $regb8,$pof$upof16 */
2697*3d8817e4Smiod {
2698*3d8817e4Smiod { 0, 0, 0, 0 },
2699*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } },
2700*3d8817e4Smiod & ifmt_addbrpof, { 0x43 }
2701*3d8817e4Smiod },
2702*3d8817e4Smiod /* cmp $regmem8,$memgr8 */
2703*3d8817e4Smiod {
2704*3d8817e4Smiod { 0, 0, 0, 0 },
2705*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
2706*3d8817e4Smiod & ifmt_addrm2, { 0x42 }
2707*3d8817e4Smiod },
2708*3d8817e4Smiod /* cmp $reg8,$memory */
2709*3d8817e4Smiod {
2710*3d8817e4Smiod { 0, 0, 0, 0 },
2711*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
2712*3d8817e4Smiod & ifmt_addrm, { 0x42 }
2713*3d8817e4Smiod },
2714*3d8817e4Smiod /* cmpb $regbmem8,$memgr8 */
2715*3d8817e4Smiod {
2716*3d8817e4Smiod { 0, 0, 0, 0 },
2717*3d8817e4Smiod { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } },
2718*3d8817e4Smiod & ifmt_addbrm2, { 0x43 }
2719*3d8817e4Smiod },
2720*3d8817e4Smiod /* cmpb $regb8,$memory */
2721*3d8817e4Smiod {
2722*3d8817e4Smiod { 0, 0, 0, 0 },
2723*3d8817e4Smiod { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } },
2724*3d8817e4Smiod & ifmt_addbrm, { 0x43 }
2725*3d8817e4Smiod },
2726*3d8817e4Smiod /* cmpd1 $sr,$hash$uimm4 */
2727*3d8817e4Smiod {
2728*3d8817e4Smiod { 0, 0, 0, 0 },
2729*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2730*3d8817e4Smiod & ifmt_cmpd1ri, { 0xa0 }
2731*3d8817e4Smiod },
2732*3d8817e4Smiod /* cmpd2 $sr,$hash$uimm4 */
2733*3d8817e4Smiod {
2734*3d8817e4Smiod { 0, 0, 0, 0 },
2735*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2736*3d8817e4Smiod & ifmt_cmpd1ri, { 0xb0 }
2737*3d8817e4Smiod },
2738*3d8817e4Smiod /* cmpi1 $sr,$hash$uimm4 */
2739*3d8817e4Smiod {
2740*3d8817e4Smiod { 0, 0, 0, 0 },
2741*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2742*3d8817e4Smiod & ifmt_cmpd1ri, { 0x80 }
2743*3d8817e4Smiod },
2744*3d8817e4Smiod /* cmpi2 $sr,$hash$uimm4 */
2745*3d8817e4Smiod {
2746*3d8817e4Smiod { 0, 0, 0, 0 },
2747*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2748*3d8817e4Smiod & ifmt_cmpd1ri, { 0x90 }
2749*3d8817e4Smiod },
2750*3d8817e4Smiod /* cmpd1 $reg8,$hash$uimm16 */
2751*3d8817e4Smiod {
2752*3d8817e4Smiod { 0, 0, 0, 0 },
2753*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
2754*3d8817e4Smiod & ifmt_addrhpof, { 0xa6 }
2755*3d8817e4Smiod },
2756*3d8817e4Smiod /* cmpd2 $reg8,$hash$uimm16 */
2757*3d8817e4Smiod {
2758*3d8817e4Smiod { 0, 0, 0, 0 },
2759*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
2760*3d8817e4Smiod & ifmt_addrhpof, { 0xb6 }
2761*3d8817e4Smiod },
2762*3d8817e4Smiod /* cmpi1 $reg8,$hash$uimm16 */
2763*3d8817e4Smiod {
2764*3d8817e4Smiod { 0, 0, 0, 0 },
2765*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
2766*3d8817e4Smiod & ifmt_addrhpof, { 0x86 }
2767*3d8817e4Smiod },
2768*3d8817e4Smiod /* cmpi2 $reg8,$hash$uimm16 */
2769*3d8817e4Smiod {
2770*3d8817e4Smiod { 0, 0, 0, 0 },
2771*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } },
2772*3d8817e4Smiod & ifmt_addrhpof, { 0x96 }
2773*3d8817e4Smiod },
2774*3d8817e4Smiod /* cmpd1 $reg8,$pof$upof16 */
2775*3d8817e4Smiod {
2776*3d8817e4Smiod { 0, 0, 0, 0 },
2777*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
2778*3d8817e4Smiod & ifmt_addrpof, { 0xa2 }
2779*3d8817e4Smiod },
2780*3d8817e4Smiod /* cmpd2 $reg8,$pof$upof16 */
2781*3d8817e4Smiod {
2782*3d8817e4Smiod { 0, 0, 0, 0 },
2783*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
2784*3d8817e4Smiod & ifmt_addrpof, { 0xb2 }
2785*3d8817e4Smiod },
2786*3d8817e4Smiod /* cmpi1 $reg8,$pof$upof16 */
2787*3d8817e4Smiod {
2788*3d8817e4Smiod { 0, 0, 0, 0 },
2789*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
2790*3d8817e4Smiod & ifmt_addrpof, { 0x82 }
2791*3d8817e4Smiod },
2792*3d8817e4Smiod /* cmpi2 $reg8,$pof$upof16 */
2793*3d8817e4Smiod {
2794*3d8817e4Smiod { 0, 0, 0, 0 },
2795*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } },
2796*3d8817e4Smiod & ifmt_addrpof, { 0x92 }
2797*3d8817e4Smiod },
2798*3d8817e4Smiod /* cmpd1 $regmem8,$memgr8 */
2799*3d8817e4Smiod {
2800*3d8817e4Smiod { 0, 0, 0, 0 },
2801*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
2802*3d8817e4Smiod & ifmt_addrm2, { 0xa2 }
2803*3d8817e4Smiod },
2804*3d8817e4Smiod /* cmpd2 $regmem8,$memgr8 */
2805*3d8817e4Smiod {
2806*3d8817e4Smiod { 0, 0, 0, 0 },
2807*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
2808*3d8817e4Smiod & ifmt_addrm2, { 0xb2 }
2809*3d8817e4Smiod },
2810*3d8817e4Smiod /* cmpi1 $regmem8,$memgr8 */
2811*3d8817e4Smiod {
2812*3d8817e4Smiod { 0, 0, 0, 0 },
2813*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
2814*3d8817e4Smiod & ifmt_addrm2, { 0x82 }
2815*3d8817e4Smiod },
2816*3d8817e4Smiod /* cmpi2 $regmem8,$memgr8 */
2817*3d8817e4Smiod {
2818*3d8817e4Smiod { 0, 0, 0, 0 },
2819*3d8817e4Smiod { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } },
2820*3d8817e4Smiod & ifmt_addrm2, { 0x92 }
2821*3d8817e4Smiod },
2822*3d8817e4Smiod /* cmpd1 $reg8,$memory */
2823*3d8817e4Smiod {
2824*3d8817e4Smiod { 0, 0, 0, 0 },
2825*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
2826*3d8817e4Smiod & ifmt_addrm, { 0xa2 }
2827*3d8817e4Smiod },
2828*3d8817e4Smiod /* cmpd2 $reg8,$memory */
2829*3d8817e4Smiod {
2830*3d8817e4Smiod { 0, 0, 0, 0 },
2831*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
2832*3d8817e4Smiod & ifmt_addrm, { 0xb2 }
2833*3d8817e4Smiod },
2834*3d8817e4Smiod /* cmpi1 $reg8,$memory */
2835*3d8817e4Smiod {
2836*3d8817e4Smiod { 0, 0, 0, 0 },
2837*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
2838*3d8817e4Smiod & ifmt_addrm, { 0x82 }
2839*3d8817e4Smiod },
2840*3d8817e4Smiod /* cmpi2 $reg8,$memory */
2841*3d8817e4Smiod {
2842*3d8817e4Smiod { 0, 0, 0, 0 },
2843*3d8817e4Smiod { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } },
2844*3d8817e4Smiod & ifmt_addrm, { 0x92 }
2845*3d8817e4Smiod },
2846*3d8817e4Smiod /* shl $dr,$sr */
2847*3d8817e4Smiod {
2848*3d8817e4Smiod { 0, 0, 0, 0 },
2849*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
2850*3d8817e4Smiod & ifmt_addr, { 0x4c }
2851*3d8817e4Smiod },
2852*3d8817e4Smiod /* shr $dr,$sr */
2853*3d8817e4Smiod {
2854*3d8817e4Smiod { 0, 0, 0, 0 },
2855*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
2856*3d8817e4Smiod & ifmt_addr, { 0x6c }
2857*3d8817e4Smiod },
2858*3d8817e4Smiod /* rol $dr,$sr */
2859*3d8817e4Smiod {
2860*3d8817e4Smiod { 0, 0, 0, 0 },
2861*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
2862*3d8817e4Smiod & ifmt_addr, { 0xc }
2863*3d8817e4Smiod },
2864*3d8817e4Smiod /* ror $dr,$sr */
2865*3d8817e4Smiod {
2866*3d8817e4Smiod { 0, 0, 0, 0 },
2867*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
2868*3d8817e4Smiod & ifmt_addr, { 0x2c }
2869*3d8817e4Smiod },
2870*3d8817e4Smiod /* ashr $dr,$sr */
2871*3d8817e4Smiod {
2872*3d8817e4Smiod { 0, 0, 0, 0 },
2873*3d8817e4Smiod { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } },
2874*3d8817e4Smiod & ifmt_addr, { 0xac }
2875*3d8817e4Smiod },
2876*3d8817e4Smiod /* shl $sr,$hash$uimm4 */
2877*3d8817e4Smiod {
2878*3d8817e4Smiod { 0, 0, 0, 0 },
2879*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2880*3d8817e4Smiod & ifmt_cmpd1ri, { 0x5c }
2881*3d8817e4Smiod },
2882*3d8817e4Smiod /* shr $sr,$hash$uimm4 */
2883*3d8817e4Smiod {
2884*3d8817e4Smiod { 0, 0, 0, 0 },
2885*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2886*3d8817e4Smiod & ifmt_cmpd1ri, { 0x7c }
2887*3d8817e4Smiod },
2888*3d8817e4Smiod /* rol $sr,$hash$uimm4 */
2889*3d8817e4Smiod {
2890*3d8817e4Smiod { 0, 0, 0, 0 },
2891*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2892*3d8817e4Smiod & ifmt_cmpd1ri, { 0x1c }
2893*3d8817e4Smiod },
2894*3d8817e4Smiod /* ror $sr,$hash$uimm4 */
2895*3d8817e4Smiod {
2896*3d8817e4Smiod { 0, 0, 0, 0 },
2897*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2898*3d8817e4Smiod & ifmt_cmpd1ri, { 0x3c }
2899*3d8817e4Smiod },
2900*3d8817e4Smiod /* ashr $sr,$hash$uimm4 */
2901*3d8817e4Smiod {
2902*3d8817e4Smiod { 0, 0, 0, 0 },
2903*3d8817e4Smiod { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } },
2904*3d8817e4Smiod & ifmt_cmpd1ri, { 0xbc }
2905*3d8817e4Smiod },
2906*3d8817e4Smiod };
2907*3d8817e4Smiod
2908*3d8817e4Smiod #undef A
2909*3d8817e4Smiod #undef OPERAND
2910*3d8817e4Smiod #undef MNEM
2911*3d8817e4Smiod #undef OP
2912*3d8817e4Smiod
2913*3d8817e4Smiod /* Formats for ALIAS macro-insns. */
2914*3d8817e4Smiod
2915*3d8817e4Smiod #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
2916*3d8817e4Smiod #define F(f) & xc16x_cgen_ifld_table[XC16X_##f]
2917*3d8817e4Smiod #else
2918*3d8817e4Smiod #define F(f) & xc16x_cgen_ifld_table[XC16X_/**/f]
2919*3d8817e4Smiod #endif
2920*3d8817e4Smiod #undef F
2921*3d8817e4Smiod
2922*3d8817e4Smiod /* Each non-simple macro entry points to an array of expansion possibilities. */
2923*3d8817e4Smiod
2924*3d8817e4Smiod #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
2925*3d8817e4Smiod #define A(a) (1 << CGEN_INSN_##a)
2926*3d8817e4Smiod #else
2927*3d8817e4Smiod #define A(a) (1 << CGEN_INSN_/**/a)
2928*3d8817e4Smiod #endif
2929*3d8817e4Smiod #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
2930*3d8817e4Smiod #define OPERAND(op) XC16X_OPERAND_##op
2931*3d8817e4Smiod #else
2932*3d8817e4Smiod #define OPERAND(op) XC16X_OPERAND_/**/op
2933*3d8817e4Smiod #endif
2934*3d8817e4Smiod #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
2935*3d8817e4Smiod #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
2936*3d8817e4Smiod
2937*3d8817e4Smiod /* The macro instruction table. */
2938*3d8817e4Smiod
2939*3d8817e4Smiod static const CGEN_IBASE xc16x_cgen_macro_insn_table[] =
2940*3d8817e4Smiod {
2941*3d8817e4Smiod };
2942*3d8817e4Smiod
2943*3d8817e4Smiod /* The macro instruction opcode table. */
2944*3d8817e4Smiod
2945*3d8817e4Smiod static const CGEN_OPCODE xc16x_cgen_macro_insn_opcode_table[] =
2946*3d8817e4Smiod {
2947*3d8817e4Smiod };
2948*3d8817e4Smiod
2949*3d8817e4Smiod #undef A
2950*3d8817e4Smiod #undef OPERAND
2951*3d8817e4Smiod #undef MNEM
2952*3d8817e4Smiod #undef OP
2953*3d8817e4Smiod
2954*3d8817e4Smiod #ifndef CGEN_ASM_HASH_P
2955*3d8817e4Smiod #define CGEN_ASM_HASH_P(insn) 1
2956*3d8817e4Smiod #endif
2957*3d8817e4Smiod
2958*3d8817e4Smiod #ifndef CGEN_DIS_HASH_P
2959*3d8817e4Smiod #define CGEN_DIS_HASH_P(insn) 1
2960*3d8817e4Smiod #endif
2961*3d8817e4Smiod
2962*3d8817e4Smiod /* Return non-zero if INSN is to be added to the hash table.
2963*3d8817e4Smiod Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file. */
2964*3d8817e4Smiod
2965*3d8817e4Smiod static int
asm_hash_insn_p(insn)2966*3d8817e4Smiod asm_hash_insn_p (insn)
2967*3d8817e4Smiod const CGEN_INSN *insn ATTRIBUTE_UNUSED;
2968*3d8817e4Smiod {
2969*3d8817e4Smiod return CGEN_ASM_HASH_P (insn);
2970*3d8817e4Smiod }
2971*3d8817e4Smiod
2972*3d8817e4Smiod static int
dis_hash_insn_p(insn)2973*3d8817e4Smiod dis_hash_insn_p (insn)
2974*3d8817e4Smiod const CGEN_INSN *insn;
2975*3d8817e4Smiod {
2976*3d8817e4Smiod /* If building the hash table and the NO-DIS attribute is present,
2977*3d8817e4Smiod ignore. */
2978*3d8817e4Smiod if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
2979*3d8817e4Smiod return 0;
2980*3d8817e4Smiod return CGEN_DIS_HASH_P (insn);
2981*3d8817e4Smiod }
2982*3d8817e4Smiod
2983*3d8817e4Smiod #ifndef CGEN_ASM_HASH
2984*3d8817e4Smiod #define CGEN_ASM_HASH_SIZE 127
2985*3d8817e4Smiod #ifdef CGEN_MNEMONIC_OPERANDS
2986*3d8817e4Smiod #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
2987*3d8817e4Smiod #else
2988*3d8817e4Smiod #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
2989*3d8817e4Smiod #endif
2990*3d8817e4Smiod #endif
2991*3d8817e4Smiod
2992*3d8817e4Smiod /* It doesn't make much sense to provide a default here,
2993*3d8817e4Smiod but while this is under development we do.
2994*3d8817e4Smiod BUFFER is a pointer to the bytes of the insn, target order.
2995*3d8817e4Smiod VALUE is the first base_insn_bitsize bits as an int in host order. */
2996*3d8817e4Smiod
2997*3d8817e4Smiod #ifndef CGEN_DIS_HASH
2998*3d8817e4Smiod #define CGEN_DIS_HASH_SIZE 256
2999*3d8817e4Smiod #define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
3000*3d8817e4Smiod #endif
3001*3d8817e4Smiod
3002*3d8817e4Smiod /* The result is the hash value of the insn.
3003*3d8817e4Smiod Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file. */
3004*3d8817e4Smiod
3005*3d8817e4Smiod static unsigned int
asm_hash_insn(mnem)3006*3d8817e4Smiod asm_hash_insn (mnem)
3007*3d8817e4Smiod const char * mnem;
3008*3d8817e4Smiod {
3009*3d8817e4Smiod return CGEN_ASM_HASH (mnem);
3010*3d8817e4Smiod }
3011*3d8817e4Smiod
3012*3d8817e4Smiod /* BUF is a pointer to the bytes of the insn, target order.
3013*3d8817e4Smiod VALUE is the first base_insn_bitsize bits as an int in host order. */
3014*3d8817e4Smiod
3015*3d8817e4Smiod static unsigned int
dis_hash_insn(buf,value)3016*3d8817e4Smiod dis_hash_insn (buf, value)
3017*3d8817e4Smiod const char * buf ATTRIBUTE_UNUSED;
3018*3d8817e4Smiod CGEN_INSN_INT value ATTRIBUTE_UNUSED;
3019*3d8817e4Smiod {
3020*3d8817e4Smiod return CGEN_DIS_HASH (buf, value);
3021*3d8817e4Smiod }
3022*3d8817e4Smiod
3023*3d8817e4Smiod /* Set the recorded length of the insn in the CGEN_FIELDS struct. */
3024*3d8817e4Smiod
3025*3d8817e4Smiod static void
set_fields_bitsize(CGEN_FIELDS * fields,int size)3026*3d8817e4Smiod set_fields_bitsize (CGEN_FIELDS *fields, int size)
3027*3d8817e4Smiod {
3028*3d8817e4Smiod CGEN_FIELDS_BITSIZE (fields) = size;
3029*3d8817e4Smiod }
3030*3d8817e4Smiod
3031*3d8817e4Smiod /* Function to call before using the operand instance table.
3032*3d8817e4Smiod This plugs the opcode entries and macro instructions into the cpu table. */
3033*3d8817e4Smiod
3034*3d8817e4Smiod void
xc16x_cgen_init_opcode_table(CGEN_CPU_DESC cd)3035*3d8817e4Smiod xc16x_cgen_init_opcode_table (CGEN_CPU_DESC cd)
3036*3d8817e4Smiod {
3037*3d8817e4Smiod int i;
3038*3d8817e4Smiod int num_macros = (sizeof (xc16x_cgen_macro_insn_table) /
3039*3d8817e4Smiod sizeof (xc16x_cgen_macro_insn_table[0]));
3040*3d8817e4Smiod const CGEN_IBASE *ib = & xc16x_cgen_macro_insn_table[0];
3041*3d8817e4Smiod const CGEN_OPCODE *oc = & xc16x_cgen_macro_insn_opcode_table[0];
3042*3d8817e4Smiod CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
3043*3d8817e4Smiod
3044*3d8817e4Smiod memset (insns, 0, num_macros * sizeof (CGEN_INSN));
3045*3d8817e4Smiod for (i = 0; i < num_macros; ++i)
3046*3d8817e4Smiod {
3047*3d8817e4Smiod insns[i].base = &ib[i];
3048*3d8817e4Smiod insns[i].opcode = &oc[i];
3049*3d8817e4Smiod xc16x_cgen_build_insn_regex (& insns[i]);
3050*3d8817e4Smiod }
3051*3d8817e4Smiod cd->macro_insn_table.init_entries = insns;
3052*3d8817e4Smiod cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
3053*3d8817e4Smiod cd->macro_insn_table.num_init_entries = num_macros;
3054*3d8817e4Smiod
3055*3d8817e4Smiod oc = & xc16x_cgen_insn_opcode_table[0];
3056*3d8817e4Smiod insns = (CGEN_INSN *) cd->insn_table.init_entries;
3057*3d8817e4Smiod for (i = 0; i < MAX_INSNS; ++i)
3058*3d8817e4Smiod {
3059*3d8817e4Smiod insns[i].opcode = &oc[i];
3060*3d8817e4Smiod xc16x_cgen_build_insn_regex (& insns[i]);
3061*3d8817e4Smiod }
3062*3d8817e4Smiod
3063*3d8817e4Smiod cd->sizeof_fields = sizeof (CGEN_FIELDS);
3064*3d8817e4Smiod cd->set_fields_bitsize = set_fields_bitsize;
3065*3d8817e4Smiod
3066*3d8817e4Smiod cd->asm_hash_p = asm_hash_insn_p;
3067*3d8817e4Smiod cd->asm_hash = asm_hash_insn;
3068*3d8817e4Smiod cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
3069*3d8817e4Smiod
3070*3d8817e4Smiod cd->dis_hash_p = dis_hash_insn_p;
3071*3d8817e4Smiod cd->dis_hash = dis_hash_insn;
3072*3d8817e4Smiod cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
3073*3d8817e4Smiod }
3074