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