Fixup gdb.python/py-value.exp for bare-metal aarch64-elf
[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
6f2750fe 5Copyright (C) 1996-2016 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 */
43e65147 34
d70c5fc7
NC
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
e6c7cdec 2942asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
d70c5fc7
NC
2943{
2944 return CGEN_ASM_HASH_P (insn);
2945}
2946
2947static int
e6c7cdec 2948dis_hash_insn_p (const CGEN_INSN *insn)
d70c5fc7
NC
2949{
2950 /* If building the hash table and the NO-DIS attribute is present,
2951 ignore. */
2952 if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
2953 return 0;
2954 return CGEN_DIS_HASH_P (insn);
2955}
2956
2957#ifndef CGEN_ASM_HASH
2958#define CGEN_ASM_HASH_SIZE 127
2959#ifdef CGEN_MNEMONIC_OPERANDS
2960#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
2961#else
2962#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
2963#endif
2964#endif
2965
2966/* It doesn't make much sense to provide a default here,
2967 but while this is under development we do.
2968 BUFFER is a pointer to the bytes of the insn, target order.
2969 VALUE is the first base_insn_bitsize bits as an int in host order. */
2970
2971#ifndef CGEN_DIS_HASH
2972#define CGEN_DIS_HASH_SIZE 256
2973#define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
2974#endif
2975
2976/* The result is the hash value of the insn.
2977 Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file. */
2978
2979static unsigned int
e6c7cdec 2980asm_hash_insn (const char *mnem)
d70c5fc7
NC
2981{
2982 return CGEN_ASM_HASH (mnem);
2983}
2984
2985/* BUF is a pointer to the bytes of the insn, target order.
2986 VALUE is the first base_insn_bitsize bits as an int in host order. */
2987
2988static unsigned int
e6c7cdec
TS
2989dis_hash_insn (const char *buf ATTRIBUTE_UNUSED,
2990 CGEN_INSN_INT value ATTRIBUTE_UNUSED)
d70c5fc7
NC
2991{
2992 return CGEN_DIS_HASH (buf, value);
2993}
2994
2995/* Set the recorded length of the insn in the CGEN_FIELDS struct. */
2996
2997static void
2998set_fields_bitsize (CGEN_FIELDS *fields, int size)
2999{
3000 CGEN_FIELDS_BITSIZE (fields) = size;
3001}
3002
3003/* Function to call before using the operand instance table.
3004 This plugs the opcode entries and macro instructions into the cpu table. */
3005
3006void
3007xc16x_cgen_init_opcode_table (CGEN_CPU_DESC cd)
3008{
3009 int i;
3010 int num_macros = (sizeof (xc16x_cgen_macro_insn_table) /
3011 sizeof (xc16x_cgen_macro_insn_table[0]));
3012 const CGEN_IBASE *ib = & xc16x_cgen_macro_insn_table[0];
3013 const CGEN_OPCODE *oc = & xc16x_cgen_macro_insn_opcode_table[0];
3014 CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
3015
137f2437
NC
3016 /* This test has been added to avoid a warning generated
3017 if memset is called with a third argument of value zero. */
3018 if (num_macros >= 1)
3019 memset (insns, 0, num_macros * sizeof (CGEN_INSN));
d70c5fc7
NC
3020 for (i = 0; i < num_macros; ++i)
3021 {
3022 insns[i].base = &ib[i];
3023 insns[i].opcode = &oc[i];
3024 xc16x_cgen_build_insn_regex (& insns[i]);
3025 }
3026 cd->macro_insn_table.init_entries = insns;
3027 cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
3028 cd->macro_insn_table.num_init_entries = num_macros;
3029
3030 oc = & xc16x_cgen_insn_opcode_table[0];
3031 insns = (CGEN_INSN *) cd->insn_table.init_entries;
3032 for (i = 0; i < MAX_INSNS; ++i)
3033 {
3034 insns[i].opcode = &oc[i];
3035 xc16x_cgen_build_insn_regex (& insns[i]);
3036 }
3037
3038 cd->sizeof_fields = sizeof (CGEN_FIELDS);
3039 cd->set_fields_bitsize = set_fields_bitsize;
3040
3041 cd->asm_hash_p = asm_hash_insn_p;
3042 cd->asm_hash = asm_hash_insn;
3043 cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
3044
3045 cd->dis_hash_p = dis_hash_insn_p;
3046 cd->dis_hash = dis_hash_insn;
3047 cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
3048}
This page took 0.656941 seconds and 4 git commands to generate.