MIPS16/opcodes: Free up `M' operand code
[external/binutils.git] / opcodes / z8k-opc.h
1 /* DO NOT EDIT!  -*- buffer-read-only: t -*-
2    This file is automatically generated by z8kgen.  */
3
4 /* Copyright (C) 2007-2018 Free Software Foundation, Inc.
5
6    This file is part of the GNU opcodes library.
7
8    This library is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 3, or (at your option)
11    any later version.
12
13    It is distributed in the hope that it will be useful, but WITHOUT
14    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
16    License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with this file; see the file COPYING.  If not, write to the
20    Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
21    MA 02110-1301, USA.  */
22
23 #define ARG_MASK         0x0f
24 #define ARG_SRC          0x01
25 #define ARG_DST          0x02
26 #define ARG_RS           0x01
27 #define ARG_RD           0x02
28 #define ARG_RA           0x03
29 #define ARG_RB           0x04
30 #define ARG_RR           0x05
31 #define ARG_RX           0x06
32 #define ARG_IMM4         0x01
33 #define ARG_IMM8         0x02
34 #define ARG_IMM16        0x03
35 #define ARG_IMM32        0x04
36 #define ARG_IMMN         0x05
37 #define ARG_IMMNMINUS1   0x05
38 #define ARG_IMM_1        0x06
39 #define ARG_IMM_2        0x07
40 #define ARG_DISP16       0x08
41 #define ARG_NIM8         0x09
42 #define ARG_IMM2         0x0a
43 #define ARG_IMM1OR2      0x0b
44 #define ARG_DISP12       0x0b
45 #define ARG_NIM4         0x0c
46 #define ARG_DISP8        0x0c
47 #define ARG_IMM4M1       0x0d
48 #define CLASS_X          0x10
49 #define CLASS_BA         0x20
50 #define CLASS_DA         0x30
51 #define CLASS_BX         0x40
52 #define CLASS_DISP       0x50
53 #define CLASS_IMM        0x60
54 #define CLASS_CC         0x70
55 #define CLASS_CTRL       0x80
56 #define CLASS_IGNORE     0x90
57 #define CLASS_ADDRESS    0xd0
58 #define CLASS_0CCC       0xe0
59 #define CLASS_1CCC       0xf0
60 #define CLASS_0DISP7    0x100
61 #define CLASS_1DISP7    0x200
62 #define CLASS_01II      0x300
63 #define CLASS_00II      0x400
64 #define CLASS_BIT       0x500
65 #define CLASS_FLAGS     0x600
66 #define CLASS_IR        0x700
67 #define CLASS_IRO       0x800
68 #define CLASS_DISP8     0x900
69 #define CLASS_BIT_1OR2  0xa00
70 #define CLASS_REG       0x7000
71 #define CLASS_REG_BYTE  0x2000
72 #define CLASS_REG_WORD  0x3000
73 #define CLASS_REG_QUAD  0x4000
74 #define CLASS_REG_LONG  0x5000
75 #define CLASS_REGN0     0x8000
76 #define CLASS_PR       0x10000
77 #define CLASS_MASK     0x1fff0
78 #define OPC_adc      0
79 #define OPC_adcb     1
80 #define OPC_add      2
81 #define OPC_addb     3
82 #define OPC_addl     4
83 #define OPC_and      5
84 #define OPC_andb     6
85 #define OPC_bit      7
86 #define OPC_bitb     8
87 #define OPC_call     9
88 #define OPC_calr    10
89 #define OPC_clr     11
90 #define OPC_clrb    12
91 #define OPC_com     13
92 #define OPC_comb    14
93 #define OPC_comflg  15
94 #define OPC_cp      16
95 #define OPC_cpb     17
96 #define OPC_cpd     18
97 #define OPC_cpdb    19
98 #define OPC_cpdr    20
99 #define OPC_cpdrb   21
100 #define OPC_cpi     22
101 #define OPC_cpib    23
102 #define OPC_cpir    24
103 #define OPC_cpirb   25
104 #define OPC_cpl     26
105 #define OPC_cpsd    27
106 #define OPC_cpsdb   28
107 #define OPC_cpsdr   29
108 #define OPC_cpsdrb  30
109 #define OPC_cpsi    31
110 #define OPC_cpsib   32
111 #define OPC_cpsir   33
112 #define OPC_cpsirb  34
113 #define OPC_dab     35
114 #define OPC_dbjnz   36
115 #define OPC_dec     37
116 #define OPC_decb    38
117 #define OPC_di      39
118 #define OPC_div     40
119 #define OPC_divl    41
120 #define OPC_djnz    42
121 #define OPC_ei      43
122 #define OPC_ex      44
123 #define OPC_exb     45
124 #define OPC_exts    46
125 #define OPC_extsb   47
126 #define OPC_extsl   48
127 #define OPC_halt    49
128 #define OPC_in      50
129 #define OPC_inb     51
130 #define OPC_inc     52
131 #define OPC_incb    53
132 #define OPC_ind     54
133 #define OPC_indb    55
134 #define OPC_indr    56
135 #define OPC_indrb   57
136 #define OPC_ini     58
137 #define OPC_inib    59
138 #define OPC_inir    60
139 #define OPC_inirb   61
140 #define OPC_iret    62
141 #define OPC_jp      63
142 #define OPC_jr      64
143 #define OPC_ld      65
144 #define OPC_lda     66
145 #define OPC_ldar    67
146 #define OPC_ldb     68
147 #define OPC_ldctl   69
148 #define OPC_ldir    70
149 #define OPC_ldirb   71
150 #define OPC_ldk     72
151 #define OPC_ldl     73
152 #define OPC_ldm     74
153 #define OPC_ldps    75
154 #define OPC_ldr     76
155 #define OPC_ldrb    77
156 #define OPC_ldrl    78
157 #define OPC_mbit    79
158 #define OPC_mreq    80
159 #define OPC_mres    81
160 #define OPC_mset    82
161 #define OPC_mult    83
162 #define OPC_multl   84
163 #define OPC_neg     85
164 #define OPC_negb    86
165 #define OPC_nop     87
166 #define OPC_or      88
167 #define OPC_orb     89
168 #define OPC_otdr    90
169 #define OPC_otdrb   91
170 #define OPC_otir    92
171 #define OPC_otirb   93
172 #define OPC_out     94
173 #define OPC_outb    95
174 #define OPC_outd    96
175 #define OPC_outdb   97
176 #define OPC_outi    98
177 #define OPC_outib   99
178 #define OPC_pop    100
179 #define OPC_popl   101
180 #define OPC_push   102
181 #define OPC_pushl  103
182 #define OPC_res    104
183 #define OPC_resb   105
184 #define OPC_resflg 106
185 #define OPC_ret    107
186 #define OPC_rl     108
187 #define OPC_rlb    109
188 #define OPC_rlc    110
189 #define OPC_rlcb   111
190 #define OPC_rldb   112
191 #define OPC_rr     113
192 #define OPC_rrb    114
193 #define OPC_rrc    115
194 #define OPC_rrcb   116
195 #define OPC_rrdb   117
196 #define OPC_sbc    118
197 #define OPC_sbcb   119
198 #define OPC_sda    120
199 #define OPC_sdab   121
200 #define OPC_sdal   122
201 #define OPC_sdl    123
202 #define OPC_sdlb   124
203 #define OPC_sdll   125
204 #define OPC_set    126
205 #define OPC_setb   127
206 #define OPC_setflg 128
207 #define OPC_sin    129
208 #define OPC_sinb   130
209 #define OPC_sind   131
210 #define OPC_sindb  132
211 #define OPC_sindr  133
212 #define OPC_sindrb 134
213 #define OPC_sini   135
214 #define OPC_sinib  136
215 #define OPC_sinir  137
216 #define OPC_sinirb 138
217 #define OPC_sla    139
218 #define OPC_slab   140
219 #define OPC_slal   141
220 #define OPC_sll    142
221 #define OPC_sllb   143
222 #define OPC_slll   144
223 #define OPC_sotdr  145
224 #define OPC_sotdrb 146
225 #define OPC_sotir  147
226 #define OPC_sotirb 148
227 #define OPC_sout   149
228 #define OPC_soutb  150
229 #define OPC_soutd  151
230 #define OPC_soutdb 152
231 #define OPC_souti  153
232 #define OPC_soutib 154
233 #define OPC_sra    155
234 #define OPC_srab   156
235 #define OPC_sral   157
236 #define OPC_srl    158
237 #define OPC_srlb   159
238 #define OPC_srll   160
239 #define OPC_sub    161
240 #define OPC_subb   162
241 #define OPC_subl   163
242 #define OPC_tcc    164
243 #define OPC_tccb   165
244 #define OPC_test   166
245 #define OPC_testb  167
246 #define OPC_testl  168
247 #define OPC_trdb   169
248 #define OPC_trdrb  170
249 #define OPC_trib   171
250 #define OPC_trirb  172
251 #define OPC_trtdrb 173
252 #define OPC_trtib  174
253 #define OPC_trtirb 175
254 #define OPC_trtrb  176
255 #define OPC_tset   177
256 #define OPC_tsetb  178
257 #define OPC_xor    179
258 #define OPC_xorb   180
259 #define OPC_ldd    181
260 #define OPC_lddb   182
261 #define OPC_lddr   183
262 #define OPC_lddrb  184
263 #define OPC_ldi    185
264 #define OPC_ldib   186
265 #define OPC_sc     187
266 #define OPC_bpt    188
267 #define OPC_ext0e  188
268 #define OPC_ext0f  188
269 #define OPC_ext8e  188
270 #define OPC_ext8f  188
271 #define OPC_rsvd36 188
272 #define OPC_rsvd38 188
273 #define OPC_rsvd78 188
274 #define OPC_rsvd7e 188
275 #define OPC_rsvd9d 188
276 #define OPC_rsvd9f 188
277 #define OPC_rsvdb9 188
278 #define OPC_rsvdbf 188
279 #define OPC_ldctlb 189
280 #define OPC_trtdb  190
281 #define OPC_brk    191
282
283 typedef struct {
284 #ifdef NICENAMES
285   const char *nicename;
286   int type;
287   int cycles;
288   int flags;
289 #endif
290   const char *name;
291   unsigned char opcode;
292   void (*func) (void);
293   unsigned int arg_info[4];
294   unsigned int byte_info[10];
295   int noperands;
296   int length;
297   int idx;
298 } opcode_entry_type;
299
300 #ifdef DEFINE_TABLE
301 const opcode_entry_type z8k_table[] = {
302
303 /* 1011 0101 ssss dddd *** adc rd,rs */
304 {
305 #ifdef NICENAMES
306 "adc rd,rs",16,5,0x3c,
307 #endif
308 "adc",OPC_adc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
309         {CLASS_BIT+0xb,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,0},
310
311 /* 1011 0100 ssss dddd *** adcb rbd,rbs */
312 {
313 #ifdef NICENAMES
314 "adcb rbd,rbs",8,5,0x3f,
315 #endif
316 "adcb",OPC_adcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
317         {CLASS_BIT+0xb,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,1},
318
319 /* 0000 0001 ssN0 dddd *** add rd,@rs */
320 {
321 #ifdef NICENAMES
322 "add rd,@rs",16,7,0x3c,
323 #endif
324 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
325         {CLASS_BIT+0,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,2},
326
327 /* 0100 0001 0000 dddd address_src *** add rd,address_src */
328 {
329 #ifdef NICENAMES
330 "add rd,address_src",16,9,0x3c,
331 #endif
332 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
333         {CLASS_BIT+4,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,2},
334
335 /* 0100 0001 ssN0 dddd address_src *** add rd,address_src(rs) */
336 {
337 #ifdef NICENAMES
338 "add rd,address_src(rs)",16,10,0x3c,
339 #endif
340 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
341         {CLASS_BIT+4,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,2},
342
343 /* 0000 0001 0000 dddd imm16 *** add rd,imm16 */
344 {
345 #ifdef NICENAMES
346 "add rd,imm16",16,7,0x3c,
347 #endif
348 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
349         {CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,2},
350
351 /* 1000 0001 ssss dddd *** add rd,rs */
352 {
353 #ifdef NICENAMES
354 "add rd,rs",16,4,0x3c,
355 #endif
356 "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
357         {CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,2},
358
359 /* 0000 0000 ssN0 dddd *** addb rbd,@rs */
360 {
361 #ifdef NICENAMES
362 "addb rbd,@rs",8,7,0x3f,
363 #endif
364 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
365         {CLASS_BIT+0,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,3},
366
367 /* 0100 0000 0000 dddd address_src *** addb rbd,address_src */
368 {
369 #ifdef NICENAMES
370 "addb rbd,address_src",8,9,0x3f,
371 #endif
372 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
373         {CLASS_BIT+4,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3},
374
375 /* 0100 0000 ssN0 dddd address_src *** addb rbd,address_src(rs) */
376 {
377 #ifdef NICENAMES
378 "addb rbd,address_src(rs)",8,10,0x3f,
379 #endif
380 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
381         {CLASS_BIT+4,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3},
382
383 /* 0000 0000 0000 dddd imm8 imm8 *** addb rbd,imm8 */
384 {
385 #ifdef NICENAMES
386 "addb rbd,imm8",8,7,0x3f,
387 #endif
388 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
389         {CLASS_BIT+0,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,3},
390
391 /* 1000 0000 ssss dddd *** addb rbd,rbs */
392 {
393 #ifdef NICENAMES
394 "addb rbd,rbs",8,4,0x3f,
395 #endif
396 "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
397         {CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,3},
398
399 /* 0001 0110 ssN0 dddd *** addl rrd,@rs */
400 {
401 #ifdef NICENAMES
402 "addl rrd,@rs",32,14,0x3c,
403 #endif
404 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
405         {CLASS_BIT+1,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,4},
406
407 /* 0101 0110 0000 dddd address_src *** addl rrd,address_src */
408 {
409 #ifdef NICENAMES
410 "addl rrd,address_src",32,15,0x3c,
411 #endif
412 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
413         {CLASS_BIT+5,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4},
414
415 /* 0101 0110 ssN0 dddd address_src *** addl rrd,address_src(rs) */
416 {
417 #ifdef NICENAMES
418 "addl rrd,address_src(rs)",32,16,0x3c,
419 #endif
420 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
421         {CLASS_BIT+5,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4},
422
423 /* 0001 0110 0000 dddd imm32 *** addl rrd,imm32 */
424 {
425 #ifdef NICENAMES
426 "addl rrd,imm32",32,14,0x3c,
427 #endif
428 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
429         {CLASS_BIT+1,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,4},
430
431 /* 1001 0110 ssss dddd *** addl rrd,rrs */
432 {
433 #ifdef NICENAMES
434 "addl rrd,rrs",32,8,0x3c,
435 #endif
436 "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
437         {CLASS_BIT+9,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,4},
438
439 /* 0000 0111 ssN0 dddd *** and rd,@rs */
440 {
441 #ifdef NICENAMES
442 "and rd,@rs",16,7,0x18,
443 #endif
444 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
445         {CLASS_BIT+0,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,5},
446
447 /* 0100 0111 0000 dddd address_src *** and rd,address_src */
448 {
449 #ifdef NICENAMES
450 "and rd,address_src",16,9,0x18,
451 #endif
452 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
453         {CLASS_BIT+4,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,5},
454
455 /* 0100 0111 ssN0 dddd address_src *** and rd,address_src(rs) */
456 {
457 #ifdef NICENAMES
458 "and rd,address_src(rs)",16,10,0x18,
459 #endif
460 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
461         {CLASS_BIT+4,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,5},
462
463 /* 0000 0111 0000 dddd imm16 *** and rd,imm16 */
464 {
465 #ifdef NICENAMES
466 "and rd,imm16",16,7,0x18,
467 #endif
468 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
469         {CLASS_BIT+0,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,5},
470
471 /* 1000 0111 ssss dddd *** and rd,rs */
472 {
473 #ifdef NICENAMES
474 "and rd,rs",16,4,0x18,
475 #endif
476 "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
477         {CLASS_BIT+8,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,5},
478
479 /* 0000 0110 ssN0 dddd *** andb rbd,@rs */
480 {
481 #ifdef NICENAMES
482 "andb rbd,@rs",8,7,0x1c,
483 #endif
484 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
485         {CLASS_BIT+0,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6},
486
487 /* 0100 0110 0000 dddd address_src *** andb rbd,address_src */
488 {
489 #ifdef NICENAMES
490 "andb rbd,address_src",8,9,0x1c,
491 #endif
492 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
493         {CLASS_BIT+4,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,6},
494
495 /* 0100 0110 ssN0 dddd address_src *** andb rbd,address_src(rs) */
496 {
497 #ifdef NICENAMES
498 "andb rbd,address_src(rs)",8,10,0x1c,
499 #endif
500 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
501         {CLASS_BIT+4,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,6},
502
503 /* 0000 0110 0000 dddd imm8 imm8 *** andb rbd,imm8 */
504 {
505 #ifdef NICENAMES
506 "andb rbd,imm8",8,7,0x1c,
507 #endif
508 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
509         {CLASS_BIT+0,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,6},
510
511 /* 1000 0110 ssss dddd *** andb rbd,rbs */
512 {
513 #ifdef NICENAMES
514 "andb rbd,rbs",8,4,0x1c,
515 #endif
516 "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
517         {CLASS_BIT+8,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6},
518
519 /* 0010 0111 ddN0 imm4 *** bit @rd,imm4 */
520 {
521 #ifdef NICENAMES
522 "bit @rd,imm4",16,8,0x10,
523 #endif
524 "bit",OPC_bit,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
525         {CLASS_BIT+2,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,7},
526
527 /* 0110 0111 ddN0 imm4 address_dst *** bit address_dst(rd),imm4 */
528 {
529 #ifdef NICENAMES
530 "bit address_dst(rd),imm4",16,11,0x10,
531 #endif
532 "bit",OPC_bit,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
533         {CLASS_BIT+6,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,7},
534
535 /* 0110 0111 0000 imm4 address_dst *** bit address_dst,imm4 */
536 {
537 #ifdef NICENAMES
538 "bit address_dst,imm4",16,10,0x10,
539 #endif
540 "bit",OPC_bit,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
541         {CLASS_BIT+6,CLASS_BIT+7,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,7},
542
543 /* 1010 0111 dddd imm4 *** bit rd,imm4 */
544 {
545 #ifdef NICENAMES
546 "bit rd,imm4",16,4,0x10,
547 #endif
548 "bit",OPC_bit,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
549         {CLASS_BIT+0xa,CLASS_BIT+7,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,7},
550
551 /* 0010 0111 0000 ssss 0000 dddd 0000 0000 *** bit rd,rs */
552 {
553 #ifdef NICENAMES
554 "bit rd,rs",16,10,0x10,
555 #endif
556 "bit",OPC_bit,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
557         {CLASS_BIT+2,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,7},
558
559 /* 0010 0110 ddN0 imm4 *** bitb @rd,imm4 */
560 {
561 #ifdef NICENAMES
562 "bitb @rd,imm4",8,8,0x10,
563 #endif
564 "bitb",OPC_bitb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
565         {CLASS_BIT+2,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,8},
566
567 /* 0110 0110 ddN0 imm4 address_dst *** bitb address_dst(rd),imm4 */
568 {
569 #ifdef NICENAMES
570 "bitb address_dst(rd),imm4",8,11,0x10,
571 #endif
572 "bitb",OPC_bitb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
573         {CLASS_BIT+6,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,8},
574
575 /* 0110 0110 0000 imm4 address_dst *** bitb address_dst,imm4 */
576 {
577 #ifdef NICENAMES
578 "bitb address_dst,imm4",8,10,0x10,
579 #endif
580 "bitb",OPC_bitb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
581         {CLASS_BIT+6,CLASS_BIT+6,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,8},
582
583 /* 1010 0110 dddd imm4 *** bitb rbd,imm4 */
584 {
585 #ifdef NICENAMES
586 "bitb rbd,imm4",8,4,0x10,
587 #endif
588 "bitb",OPC_bitb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
589         {CLASS_BIT+0xa,CLASS_BIT+6,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,8},
590
591 /* 0010 0110 0000 ssss 0000 dddd 0000 0000 *** bitb rbd,rs */
592 {
593 #ifdef NICENAMES
594 "bitb rbd,rs",8,10,0x10,
595 #endif
596 "bitb",OPC_bitb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
597         {CLASS_BIT+2,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,8},
598
599 /* 0011 0110 0000 0000 *** bpt */
600 {
601 #ifdef NICENAMES
602 "bpt",8,2,0x00,
603 #endif
604 "bpt",OPC_bpt,0,{0},
605         {CLASS_BIT+3,CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,9},
606
607 /* 0000 1111 0000 1100 *** brk */
608 {
609 #ifdef NICENAMES
610 "brk",8,10,0x00,
611 #endif
612 "brk",OPC_brk,0,{0},
613         {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0xc,0,0,0,0,0,},0,2,10},
614
615 /* 0001 1111 ddN0 0000 *** call @rd */
616 {
617 #ifdef NICENAMES
618 "call @rd",32,10,0x00,
619 #endif
620 "call",OPC_call,0,{CLASS_IR+(ARG_RD),},
621         {CLASS_BIT+1,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,11},
622
623 /* 0101 1111 0000 0000 address_dst *** call address_dst */
624 {
625 #ifdef NICENAMES
626 "call address_dst",32,12,0x00,
627 #endif
628 "call",OPC_call,0,{CLASS_DA+(ARG_DST),},
629         {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,11},
630
631 /* 0101 1111 ddN0 0000 address_dst *** call address_dst(rd) */
632 {
633 #ifdef NICENAMES
634 "call address_dst(rd)",32,13,0x00,
635 #endif
636 "call",OPC_call,0,{CLASS_X+(ARG_RD),},
637         {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,11},
638
639 /* 1101 disp12 *** calr disp12 */
640 {
641 #ifdef NICENAMES
642 "calr disp12",16,10,0x00,
643 #endif
644 "calr",OPC_calr,0,{CLASS_DISP,},
645         {CLASS_BIT+0xd,CLASS_DISP+(ARG_DISP12),0,0,0,0,0,0,0,},1,2,12},
646
647 /* 0000 1101 ddN0 1000 *** clr @rd */
648 {
649 #ifdef NICENAMES
650 "clr @rd",16,8,0x00,
651 #endif
652 "clr",OPC_clr,0,{CLASS_IR+(ARG_RD),},
653         {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
654
655 /* 0100 1101 0000 1000 address_dst *** clr address_dst */
656 {
657 #ifdef NICENAMES
658 "clr address_dst",16,11,0x00,
659 #endif
660 "clr",OPC_clr,0,{CLASS_DA+(ARG_DST),},
661         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
662
663 /* 0100 1101 ddN0 1000 address_dst *** clr address_dst(rd) */
664 {
665 #ifdef NICENAMES
666 "clr address_dst(rd)",16,12,0x00,
667 #endif
668 "clr",OPC_clr,0,{CLASS_X+(ARG_RD),},
669         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
670
671 /* 1000 1101 dddd 1000 *** clr rd */
672 {
673 #ifdef NICENAMES
674 "clr rd",16,7,0x00,
675 #endif
676 "clr",OPC_clr,0,{CLASS_REG_WORD+(ARG_RD),},
677         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
678
679 /* 0000 1100 ddN0 1000 *** clrb @rd */
680 {
681 #ifdef NICENAMES
682 "clrb @rd",8,8,0x00,
683 #endif
684 "clrb",OPC_clrb,0,{CLASS_IR+(ARG_RD),},
685         {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,14},
686
687 /* 0100 1100 0000 1000 address_dst *** clrb address_dst */
688 {
689 #ifdef NICENAMES
690 "clrb address_dst",8,11,0x00,
691 #endif
692 "clrb",OPC_clrb,0,{CLASS_DA+(ARG_DST),},
693         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
694
695 /* 0100 1100 ddN0 1000 address_dst *** clrb address_dst(rd) */
696 {
697 #ifdef NICENAMES
698 "clrb address_dst(rd)",8,12,0x00,
699 #endif
700 "clrb",OPC_clrb,0,{CLASS_X+(ARG_RD),},
701         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
702
703 /* 1000 1100 dddd 1000 *** clrb rbd */
704 {
705 #ifdef NICENAMES
706 "clrb rbd",8,7,0x00,
707 #endif
708 "clrb",OPC_clrb,0,{CLASS_REG_BYTE+(ARG_RD),},
709         {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,14},
710
711 /* 0000 1101 ddN0 0000 *** com @rd */
712 {
713 #ifdef NICENAMES
714 "com @rd",16,12,0x18,
715 #endif
716 "com",OPC_com,0,{CLASS_IR+(ARG_RD),},
717         {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
718
719 /* 0100 1101 0000 0000 address_dst *** com address_dst */
720 {
721 #ifdef NICENAMES
722 "com address_dst",16,15,0x18,
723 #endif
724 "com",OPC_com,0,{CLASS_DA+(ARG_DST),},
725         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
726
727 /* 0100 1101 ddN0 0000 address_dst *** com address_dst(rd) */
728 {
729 #ifdef NICENAMES
730 "com address_dst(rd)",16,16,0x18,
731 #endif
732 "com",OPC_com,0,{CLASS_X+(ARG_RD),},
733         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
734
735 /* 1000 1101 dddd 0000 *** com rd */
736 {
737 #ifdef NICENAMES
738 "com rd",16,7,0x18,
739 #endif
740 "com",OPC_com,0,{CLASS_REG_WORD+(ARG_RD),},
741         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
742
743 /* 0000 1100 ddN0 0000 *** comb @rd */
744 {
745 #ifdef NICENAMES
746 "comb @rd",8,12,0x1c,
747 #endif
748 "comb",OPC_comb,0,{CLASS_IR+(ARG_RD),},
749         {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,16},
750
751 /* 0100 1100 0000 0000 address_dst *** comb address_dst */
752 {
753 #ifdef NICENAMES
754 "comb address_dst",8,15,0x1c,
755 #endif
756 "comb",OPC_comb,0,{CLASS_DA+(ARG_DST),},
757         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,16},
758
759 /* 0100 1100 ddN0 0000 address_dst *** comb address_dst(rd) */
760 {
761 #ifdef NICENAMES
762 "comb address_dst(rd)",8,16,0x1c,
763 #endif
764 "comb",OPC_comb,0,{CLASS_X+(ARG_RD),},
765         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,16},
766
767 /* 1000 1100 dddd 0000 *** comb rbd */
768 {
769 #ifdef NICENAMES
770 "comb rbd",8,7,0x1c,
771 #endif
772 "comb",OPC_comb,0,{CLASS_REG_BYTE+(ARG_RD),},
773         {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,16},
774
775 /* 1000 1101 flags 0101 *** comflg flags */
776 {
777 #ifdef NICENAMES
778 "comflg flags",16,7,0x3c,
779 #endif
780 "comflg",OPC_comflg,0,{CLASS_FLAGS,},
781         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+5,0,0,0,0,0,},1,2,17},
782
783 /* 0000 1101 ddN0 0001 imm16 *** cp @rd,imm16 */
784 {
785 #ifdef NICENAMES
786 "cp @rd,imm16",16,11,0x3c,
787 #endif
788 "cp",OPC_cp,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
789         {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,18},
790
791 /* 0100 1101 ddN0 0001 address_dst imm16 *** cp address_dst(rd),imm16 */
792 {
793 #ifdef NICENAMES
794 "cp address_dst(rd),imm16",16,15,0x3c,
795 #endif
796 "cp",OPC_cp,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
797         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,18},
798
799 /* 0100 1101 0000 0001 address_dst imm16 *** cp address_dst,imm16 */
800 {
801 #ifdef NICENAMES
802 "cp address_dst,imm16",16,14,0x3c,
803 #endif
804 "cp",OPC_cp,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),},
805         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,18},
806
807 /* 0000 1011 ssN0 dddd *** cp rd,@rs */
808 {
809 #ifdef NICENAMES
810 "cp rd,@rs",16,7,0x3c,
811 #endif
812 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
813         {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
814
815 /* 0100 1011 0000 dddd address_src *** cp rd,address_src */
816 {
817 #ifdef NICENAMES
818 "cp rd,address_src",16,9,0x3c,
819 #endif
820 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
821         {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
822
823 /* 0100 1011 ssN0 dddd address_src *** cp rd,address_src(rs) */
824 {
825 #ifdef NICENAMES
826 "cp rd,address_src(rs)",16,10,0x3c,
827 #endif
828 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
829         {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
830
831 /* 0000 1011 0000 dddd imm16 *** cp rd,imm16 */
832 {
833 #ifdef NICENAMES
834 "cp rd,imm16",16,7,0x3c,
835 #endif
836 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
837         {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,18},
838
839 /* 1000 1011 ssss dddd *** cp rd,rs */
840 {
841 #ifdef NICENAMES
842 "cp rd,rs",16,4,0x3c,
843 #endif
844 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
845         {CLASS_BIT+8,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
846
847 /* 0000 1100 ddN0 0001 imm8 imm8 *** cpb @rd,imm8 */
848 {
849 #ifdef NICENAMES
850 "cpb @rd,imm8",8,11,0x3c,
851 #endif
852 "cpb",OPC_cpb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
853         {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,19},
854
855 /* 0100 1100 ddN0 0001 address_dst imm8 imm8 *** cpb address_dst(rd),imm8 */
856 {
857 #ifdef NICENAMES
858 "cpb address_dst(rd),imm8",8,15,0x3c,
859 #endif
860 "cpb",OPC_cpb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
861         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,19},
862
863 /* 0100 1100 0000 0001 address_dst imm8 imm8 *** cpb address_dst,imm8 */
864 {
865 #ifdef NICENAMES
866 "cpb address_dst,imm8",8,14,0x3c,
867 #endif
868 "cpb",OPC_cpb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),},
869         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,19},
870
871 /* 0000 1010 ssN0 dddd *** cpb rbd,@rs */
872 {
873 #ifdef NICENAMES
874 "cpb rbd,@rs",8,7,0x3c,
875 #endif
876 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
877         {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,19},
878
879 /* 0100 1010 0000 dddd address_src *** cpb rbd,address_src */
880 {
881 #ifdef NICENAMES
882 "cpb rbd,address_src",8,9,0x3c,
883 #endif
884 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
885         {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,19},
886
887 /* 0100 1010 ssN0 dddd address_src *** cpb rbd,address_src(rs) */
888 {
889 #ifdef NICENAMES
890 "cpb rbd,address_src(rs)",8,10,0x3c,
891 #endif
892 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
893         {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,19},
894
895 /* 0000 1010 0000 dddd imm8 imm8 *** cpb rbd,imm8 */
896 {
897 #ifdef NICENAMES
898 "cpb rbd,imm8",8,7,0x3c,
899 #endif
900 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
901         {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,19},
902
903 /* 1000 1010 ssss dddd *** cpb rbd,rbs */
904 {
905 #ifdef NICENAMES
906 "cpb rbd,rbs",8,4,0x3c,
907 #endif
908 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
909         {CLASS_BIT+8,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,19},
910
911 /* 1011 1011 ssN0 1000 0000 rrrr dddd cccc *** cpd rd,@rs,rr,cc */
912 {
913 #ifdef NICENAMES
914 "cpd rd,@rs,rr,cc",16,11,0x3c,
915 #endif
916 "cpd",OPC_cpd,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
917         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,20},
918
919 /* 1011 1010 ssN0 1000 0000 rrrr dddd cccc *** cpdb rbd,@rs,rr,cc */
920 {
921 #ifdef NICENAMES
922 "cpdb rbd,@rs,rr,cc",8,11,0x3c,
923 #endif
924 "cpdb",OPC_cpdb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
925         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,21},
926
927 /* 1011 1011 ssN0 1100 0000 rrrr dddd cccc *** cpdr rd,@rs,rr,cc */
928 {
929 #ifdef NICENAMES
930 "cpdr rd,@rs,rr,cc",16,11,0x3c,
931 #endif
932 "cpdr",OPC_cpdr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
933         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,22},
934
935 /* 1011 1010 ssN0 1100 0000 rrrr dddd cccc *** cpdrb rbd,@rs,rr,cc */
936 {
937 #ifdef NICENAMES
938 "cpdrb rbd,@rs,rr,cc",8,11,0x3c,
939 #endif
940 "cpdrb",OPC_cpdrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
941         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,23},
942
943 /* 1011 1011 ssN0 0000 0000 rrrr dddd cccc *** cpi rd,@rs,rr,cc */
944 {
945 #ifdef NICENAMES
946 "cpi rd,@rs,rr,cc",16,11,0x3c,
947 #endif
948 "cpi",OPC_cpi,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
949         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,24},
950
951 /* 1011 1010 ssN0 0000 0000 rrrr dddd cccc *** cpib rbd,@rs,rr,cc */
952 {
953 #ifdef NICENAMES
954 "cpib rbd,@rs,rr,cc",8,11,0x3c,
955 #endif
956 "cpib",OPC_cpib,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
957         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,25},
958
959 /* 1011 1011 ssN0 0100 0000 rrrr dddd cccc *** cpir rd,@rs,rr,cc */
960 {
961 #ifdef NICENAMES
962 "cpir rd,@rs,rr,cc",16,11,0x3c,
963 #endif
964 "cpir",OPC_cpir,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
965         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,26},
966
967 /* 1011 1010 ssN0 0100 0000 rrrr dddd cccc *** cpirb rbd,@rs,rr,cc */
968 {
969 #ifdef NICENAMES
970 "cpirb rbd,@rs,rr,cc",8,11,0x3c,
971 #endif
972 "cpirb",OPC_cpirb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
973         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,27},
974
975 /* 0001 0000 ssN0 dddd *** cpl rrd,@rs */
976 {
977 #ifdef NICENAMES
978 "cpl rrd,@rs",32,14,0x3c,
979 #endif
980 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
981         {CLASS_BIT+1,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,28},
982
983 /* 0101 0000 0000 dddd address_src *** cpl rrd,address_src */
984 {
985 #ifdef NICENAMES
986 "cpl rrd,address_src",32,15,0x3c,
987 #endif
988 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
989         {CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,28},
990
991 /* 0101 0000 ssN0 dddd address_src *** cpl rrd,address_src(rs) */
992 {
993 #ifdef NICENAMES
994 "cpl rrd,address_src(rs)",32,16,0x3c,
995 #endif
996 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
997         {CLASS_BIT+5,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,28},
998
999 /* 0001 0000 0000 dddd imm32 *** cpl rrd,imm32 */
1000 {
1001 #ifdef NICENAMES
1002 "cpl rrd,imm32",32,14,0x3c,
1003 #endif
1004 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
1005         {CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,28},
1006
1007 /* 1001 0000 ssss dddd *** cpl rrd,rrs */
1008 {
1009 #ifdef NICENAMES
1010 "cpl rrd,rrs",32,8,0x3c,
1011 #endif
1012 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
1013         {CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,28},
1014
1015 /* 1011 1011 ssN0 1010 0000 rrrr ddN0 cccc *** cpsd @rd,@rs,rr,cc */
1016 {
1017 #ifdef NICENAMES
1018 "cpsd @rd,@rs,rr,cc",16,11,0x3c,
1019 #endif
1020 "cpsd",OPC_cpsd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1021         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,29},
1022
1023 /* 1011 1010 ssN0 1010 0000 rrrr ddN0 cccc *** cpsdb @rd,@rs,rr,cc */
1024 {
1025 #ifdef NICENAMES
1026 "cpsdb @rd,@rs,rr,cc",8,11,0x3c,
1027 #endif
1028 "cpsdb",OPC_cpsdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1029         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,30},
1030
1031 /* 1011 1011 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdr @rd,@rs,rr,cc */
1032 {
1033 #ifdef NICENAMES
1034 "cpsdr @rd,@rs,rr,cc",16,11,0x3c,
1035 #endif
1036 "cpsdr",OPC_cpsdr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1037         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,31},
1038
1039 /* 1011 1010 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdrb @rd,@rs,rr,cc */
1040 {
1041 #ifdef NICENAMES
1042 "cpsdrb @rd,@rs,rr,cc",8,11,0x3c,
1043 #endif
1044 "cpsdrb",OPC_cpsdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1045         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,32},
1046
1047 /* 1011 1011 ssN0 0010 0000 rrrr ddN0 cccc *** cpsi @rd,@rs,rr,cc */
1048 {
1049 #ifdef NICENAMES
1050 "cpsi @rd,@rs,rr,cc",16,11,0x3c,
1051 #endif
1052 "cpsi",OPC_cpsi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1053         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,33},
1054
1055 /* 1011 1010 ssN0 0010 0000 rrrr ddN0 cccc *** cpsib @rd,@rs,rr,cc */
1056 {
1057 #ifdef NICENAMES
1058 "cpsib @rd,@rs,rr,cc",8,11,0x3c,
1059 #endif
1060 "cpsib",OPC_cpsib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1061         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,34},
1062
1063 /* 1011 1011 ssN0 0110 0000 rrrr ddN0 cccc *** cpsir @rd,@rs,rr,cc */
1064 {
1065 #ifdef NICENAMES
1066 "cpsir @rd,@rs,rr,cc",16,11,0x3c,
1067 #endif
1068 "cpsir",OPC_cpsir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1069         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,35},
1070
1071 /* 1011 1010 ssN0 0110 0000 rrrr ddN0 cccc *** cpsirb @rd,@rs,rr,cc */
1072 {
1073 #ifdef NICENAMES
1074 "cpsirb @rd,@rs,rr,cc",8,11,0x3c,
1075 #endif
1076 "cpsirb",OPC_cpsirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1077         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,36},
1078
1079 /* 1011 0000 dddd 0000 *** dab rbd */
1080 {
1081 #ifdef NICENAMES
1082 "dab rbd",8,5,0x38,
1083 #endif
1084 "dab",OPC_dab,0,{CLASS_REG_BYTE+(ARG_RD),},
1085         {CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,37},
1086
1087 /* 1111 dddd 0disp7 *** dbjnz rbd,disp7 */
1088 {
1089 #ifdef NICENAMES
1090 "dbjnz rbd,disp7",16,11,0x00,
1091 #endif
1092 "dbjnz",OPC_dbjnz,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,},
1093         {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_0DISP7,0,0,0,0,0,0,},2,2,38},
1094
1095 /* 0010 1011 ddN0 imm4m1 *** dec @rd,imm4m1 */
1096 {
1097 #ifdef NICENAMES
1098 "dec @rd,imm4m1",16,11,0x1c,
1099 #endif
1100 "dec",OPC_dec,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1101         {CLASS_BIT+2,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
1102
1103 /* 0110 1011 ddN0 imm4m1 address_dst *** dec address_dst(rd),imm4m1 */
1104 {
1105 #ifdef NICENAMES
1106 "dec address_dst(rd),imm4m1",16,14,0x1c,
1107 #endif
1108 "dec",OPC_dec,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1109         {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
1110
1111 /* 0110 1011 0000 imm4m1 address_dst *** dec address_dst,imm4m1 */
1112 {
1113 #ifdef NICENAMES
1114 "dec address_dst,imm4m1",16,13,0x1c,
1115 #endif
1116 "dec",OPC_dec,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
1117         {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
1118
1119 /* 1010 1011 dddd imm4m1 *** dec rd,imm4m1 */
1120 {
1121 #ifdef NICENAMES
1122 "dec rd,imm4m1",16,4,0x1c,
1123 #endif
1124 "dec",OPC_dec,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1125         {CLASS_BIT+0xa,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
1126
1127 /* 0010 1010 ddN0 imm4m1 *** decb @rd,imm4m1 */
1128 {
1129 #ifdef NICENAMES
1130 "decb @rd,imm4m1",8,11,0x1c,
1131 #endif
1132 "decb",OPC_decb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1133         {CLASS_BIT+2,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,40},
1134
1135 /* 0110 1010 ddN0 imm4m1 address_dst *** decb address_dst(rd),imm4m1 */
1136 {
1137 #ifdef NICENAMES
1138 "decb address_dst(rd),imm4m1",8,14,0x1c,
1139 #endif
1140 "decb",OPC_decb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1141         {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,40},
1142
1143 /* 0110 1010 0000 imm4m1 address_dst *** decb address_dst,imm4m1 */
1144 {
1145 #ifdef NICENAMES
1146 "decb address_dst,imm4m1",8,13,0x1c,
1147 #endif
1148 "decb",OPC_decb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
1149         {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,40},
1150
1151 /* 1010 1010 dddd imm4m1 *** decb rbd,imm4m1 */
1152 {
1153 #ifdef NICENAMES
1154 "decb rbd,imm4m1",8,4,0x1c,
1155 #endif
1156 "decb",OPC_decb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1157         {CLASS_BIT+0xa,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,40},
1158
1159 /* 0111 1100 0000 00ii *** di i2 */
1160 {
1161 #ifdef NICENAMES
1162 "di i2",16,7,0x00,
1163 #endif
1164 "di",OPC_di,0,{CLASS_IMM+(ARG_IMM2),},
1165         {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_00II,0,0,0,0,0,},1,2,41},
1166
1167 /* 0001 1011 ssN0 dddd *** div rrd,@rs */
1168 {
1169 #ifdef NICENAMES
1170 "div rrd,@rs",16,107,0x3c,
1171 #endif
1172 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
1173         {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
1174
1175 /* 0101 1011 0000 dddd address_src *** div rrd,address_src */
1176 {
1177 #ifdef NICENAMES
1178 "div rrd,address_src",16,107,0x3c,
1179 #endif
1180 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
1181         {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
1182
1183 /* 0101 1011 ssN0 dddd address_src *** div rrd,address_src(rs) */
1184 {
1185 #ifdef NICENAMES
1186 "div rrd,address_src(rs)",16,107,0x3c,
1187 #endif
1188 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
1189         {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
1190
1191 /* 0001 1011 0000 dddd imm16 *** div rrd,imm16 */
1192 {
1193 #ifdef NICENAMES
1194 "div rrd,imm16",16,107,0x3c,
1195 #endif
1196 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1197         {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,42},
1198
1199 /* 1001 1011 ssss dddd *** div rrd,rs */
1200 {
1201 #ifdef NICENAMES
1202 "div rrd,rs",16,107,0x3c,
1203 #endif
1204 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1205         {CLASS_BIT+9,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
1206
1207 /* 0001 1010 ssN0 dddd *** divl rqd,@rs */
1208 {
1209 #ifdef NICENAMES
1210 "divl rqd,@rs",32,744,0x3c,
1211 #endif
1212 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),},
1213         {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,43},
1214
1215 /* 0101 1010 0000 dddd address_src *** divl rqd,address_src */
1216 {
1217 #ifdef NICENAMES
1218 "divl rqd,address_src",32,745,0x3c,
1219 #endif
1220 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),},
1221         {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,43},
1222
1223 /* 0101 1010 ssN0 dddd address_src *** divl rqd,address_src(rs) */
1224 {
1225 #ifdef NICENAMES
1226 "divl rqd,address_src(rs)",32,746,0x3c,
1227 #endif
1228 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),},
1229         {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,43},
1230
1231 /* 0001 1010 0000 dddd imm32 *** divl rqd,imm32 */
1232 {
1233 #ifdef NICENAMES
1234 "divl rqd,imm32",32,744,0x3c,
1235 #endif
1236 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
1237         {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,43},
1238
1239 /* 1001 1010 ssss dddd *** divl rqd,rrs */
1240 {
1241 #ifdef NICENAMES
1242 "divl rqd,rrs",32,744,0x3c,
1243 #endif
1244 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
1245         {CLASS_BIT+9,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,43},
1246
1247 /* 1111 dddd 1disp7 *** djnz rd,disp7 */
1248 {
1249 #ifdef NICENAMES
1250 "djnz rd,disp7",16,11,0x00,
1251 #endif
1252 "djnz",OPC_djnz,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,},
1253         {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_1DISP7,0,0,0,0,0,0,},2,2,44},
1254
1255 /* 0111 1100 0000 01ii *** ei i2 */
1256 {
1257 #ifdef NICENAMES
1258 "ei i2",16,7,0x00,
1259 #endif
1260 "ei",OPC_ei,0,{CLASS_IMM+(ARG_IMM2),},
1261         {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_01II,0,0,0,0,0,},1,2,45},
1262
1263 /* 0010 1101 ssN0 dddd *** ex rd,@rs */
1264 {
1265 #ifdef NICENAMES
1266 "ex rd,@rs",16,12,0x00,
1267 #endif
1268 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
1269         {CLASS_BIT+2,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
1270
1271 /* 0110 1101 0000 dddd address_src *** ex rd,address_src */
1272 {
1273 #ifdef NICENAMES
1274 "ex rd,address_src",16,15,0x00,
1275 #endif
1276 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
1277         {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
1278
1279 /* 0110 1101 ssN0 dddd address_src *** ex rd,address_src(rs) */
1280 {
1281 #ifdef NICENAMES
1282 "ex rd,address_src(rs)",16,16,0x00,
1283 #endif
1284 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
1285         {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
1286
1287 /* 1010 1101 ssss dddd *** ex rd,rs */
1288 {
1289 #ifdef NICENAMES
1290 "ex rd,rs",16,6,0x00,
1291 #endif
1292 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1293         {CLASS_BIT+0xa,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
1294
1295 /* 0010 1100 ssN0 dddd *** exb rbd,@rs */
1296 {
1297 #ifdef NICENAMES
1298 "exb rbd,@rs",8,12,0x00,
1299 #endif
1300 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
1301         {CLASS_BIT+2,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,47},
1302
1303 /* 0110 1100 0000 dddd address_src *** exb rbd,address_src */
1304 {
1305 #ifdef NICENAMES
1306 "exb rbd,address_src",8,15,0x00,
1307 #endif
1308 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
1309         {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,47},
1310
1311 /* 0110 1100 ssN0 dddd address_src *** exb rbd,address_src(rs) */
1312 {
1313 #ifdef NICENAMES
1314 "exb rbd,address_src(rs)",8,16,0x00,
1315 #endif
1316 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
1317         {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,47},
1318
1319 /* 1010 1100 ssss dddd *** exb rbd,rbs */
1320 {
1321 #ifdef NICENAMES
1322 "exb rbd,rbs",8,6,0x00,
1323 #endif
1324 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1325         {CLASS_BIT+0xa,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,47},
1326
1327 /* 0000 1110 imm8 *** ext0e imm8 */
1328 {
1329 #ifdef NICENAMES
1330 "ext0e imm8",8,10,0x00,
1331 #endif
1332 "ext0e",OPC_ext0e,0,{CLASS_IMM+(ARG_IMM8),},
1333         {CLASS_BIT+0,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,48},
1334
1335 /* 0000 1111 imm8 *** ext0f imm8 */
1336 {
1337 #ifdef NICENAMES
1338 "ext0f imm8",8,10,0x00,
1339 #endif
1340 "ext0f",OPC_ext0f,0,{CLASS_IMM+(ARG_IMM8),},
1341         {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,49},
1342
1343 /* 1000 1110 imm8 *** ext8e imm8 */
1344 {
1345 #ifdef NICENAMES
1346 "ext8e imm8",8,10,0x00,
1347 #endif
1348 "ext8e",OPC_ext8e,0,{CLASS_IMM+(ARG_IMM8),},
1349         {CLASS_BIT+8,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,50},
1350
1351 /* 1000 1111 imm8 *** ext8f imm8 */
1352 {
1353 #ifdef NICENAMES
1354 "ext8f imm8",8,10,0x00,
1355 #endif
1356 "ext8f",OPC_ext8f,0,{CLASS_IMM+(ARG_IMM8),},
1357         {CLASS_BIT+8,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,51},
1358
1359 /* 1011 0001 dddd 1010 *** exts rrd */
1360 {
1361 #ifdef NICENAMES
1362 "exts rrd",16,11,0x00,
1363 #endif
1364 "exts",OPC_exts,0,{CLASS_REG_LONG+(ARG_RD),},
1365         {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0xa,0,0,0,0,0,},1,2,52},
1366
1367 /* 1011 0001 dddd 0000 *** extsb rd */
1368 {
1369 #ifdef NICENAMES
1370 "extsb rd",8,11,0x00,
1371 #endif
1372 "extsb",OPC_extsb,0,{CLASS_REG_WORD+(ARG_RD),},
1373         {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,53},
1374
1375 /* 1011 0001 dddd 0111 *** extsl rqd */
1376 {
1377 #ifdef NICENAMES
1378 "extsl rqd",32,11,0x00,
1379 #endif
1380 "extsl",OPC_extsl,0,{CLASS_REG_QUAD+(ARG_RD),},
1381         {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+7,0,0,0,0,0,},1,2,54},
1382
1383 /* 0111 1010 0000 0000 *** halt */
1384 {
1385 #ifdef NICENAMES
1386 "halt",16,8,0x00,
1387 #endif
1388 "halt",OPC_halt,0,{0},
1389         {CLASS_BIT+7,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,55},
1390
1391 /* 0011 1101 ssss dddd *** in rd,@ri */
1392 {
1393 #ifdef NICENAMES
1394 "in rd,@ri",16,10,0x00,
1395 #endif
1396 "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IRO+(ARG_RS),},
1397         {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,56},
1398
1399 /* 0011 1011 dddd 0100 imm16 *** in rd,imm16 */
1400 {
1401 #ifdef NICENAMES
1402 "in rd,imm16",16,12,0x00,
1403 #endif
1404 "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1405         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,56},
1406
1407 /* 0011 1100 ssss dddd *** inb rbd,@ri */
1408 {
1409 #ifdef NICENAMES
1410 "inb rbd,@ri",8,12,0x00,
1411 #endif
1412 "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IRO+(ARG_RS),},
1413         {CLASS_BIT+3,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,57},
1414
1415 /* 0011 1010 dddd 0100 imm16 *** inb rbd,imm16 */
1416 {
1417 #ifdef NICENAMES
1418 "inb rbd,imm16",8,10,0x00,
1419 #endif
1420 "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1421         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,57},
1422
1423 /* 0010 1001 ddN0 imm4m1 *** inc @rd,imm4m1 */
1424 {
1425 #ifdef NICENAMES
1426 "inc @rd,imm4m1",16,11,0x1c,
1427 #endif
1428 "inc",OPC_inc,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1429         {CLASS_BIT+2,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
1430
1431 /* 0110 1001 ddN0 imm4m1 address_dst *** inc address_dst(rd),imm4m1 */
1432 {
1433 #ifdef NICENAMES
1434 "inc address_dst(rd),imm4m1",16,14,0x1c,
1435 #endif
1436 "inc",OPC_inc,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1437         {CLASS_BIT+6,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
1438
1439 /* 0110 1001 0000 imm4m1 address_dst *** inc address_dst,imm4m1 */
1440 {
1441 #ifdef NICENAMES
1442 "inc address_dst,imm4m1",16,13,0x1c,
1443 #endif
1444 "inc",OPC_inc,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
1445         {CLASS_BIT+6,CLASS_BIT+9,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
1446
1447 /* 1010 1001 dddd imm4m1 *** inc rd,imm4m1 */
1448 {
1449 #ifdef NICENAMES
1450 "inc rd,imm4m1",16,4,0x1c,
1451 #endif
1452 "inc",OPC_inc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1453         {CLASS_BIT+0xa,CLASS_BIT+9,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
1454
1455 /* 0010 1000 ddN0 imm4m1 *** incb @rd,imm4m1 */
1456 {
1457 #ifdef NICENAMES
1458 "incb @rd,imm4m1",8,11,0x1c,
1459 #endif
1460 "incb",OPC_incb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1461         {CLASS_BIT+2,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,59},
1462
1463 /* 0110 1000 ddN0 imm4m1 address_dst *** incb address_dst(rd),imm4m1 */
1464 {
1465 #ifdef NICENAMES
1466 "incb address_dst(rd),imm4m1",8,14,0x1c,
1467 #endif
1468 "incb",OPC_incb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1469         {CLASS_BIT+6,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,59},
1470
1471 /* 0110 1000 0000 imm4m1 address_dst *** incb address_dst,imm4m1 */
1472 {
1473 #ifdef NICENAMES
1474 "incb address_dst,imm4m1",8,13,0x1c,
1475 #endif
1476 "incb",OPC_incb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
1477         {CLASS_BIT+6,CLASS_BIT+8,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,59},
1478
1479 /* 1010 1000 dddd imm4m1 *** incb rbd,imm4m1 */
1480 {
1481 #ifdef NICENAMES
1482 "incb rbd,imm4m1",8,4,0x1c,
1483 #endif
1484 "incb",OPC_incb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1485         {CLASS_BIT+0xa,CLASS_BIT+8,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,59},
1486
1487 /* 0011 1011 ssss 1000 0000 aaaa ddN0 1000 *** ind @rd,@ri,ra */
1488 {
1489 #ifdef NICENAMES
1490 "ind @rd,@ri,ra",16,21,0x04,
1491 #endif
1492 "ind",OPC_ind,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1493         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,60},
1494
1495 /* 0011 1010 ssss 1000 0000 aaaa ddN0 1000 *** indb @rd,@ri,ra */
1496 {
1497 #ifdef NICENAMES
1498 "indb @rd,@ri,ra",8,21,0x04,
1499 #endif
1500 "indb",OPC_indb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1501         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,61},
1502
1503 /* 0011 1011 ssss 1000 0000 aaaa ddN0 0000 *** indr @rd,@ri,ra */
1504 {
1505 #ifdef NICENAMES
1506 "indr @rd,@ri,ra",16,11,0x04,
1507 #endif
1508 "indr",OPC_indr,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1509         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,62},
1510
1511 /* 0011 1010 ssss 1000 0000 aaaa ddN0 0000 *** indrb @rd,@ri,ra */
1512 {
1513 #ifdef NICENAMES
1514 "indrb @rd,@ri,ra",8,11,0x04,
1515 #endif
1516 "indrb",OPC_indrb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1517         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,63},
1518
1519 /* 0011 1011 ssss 0000 0000 aaaa ddN0 1000 *** ini @rd,@ri,ra */
1520 {
1521 #ifdef NICENAMES
1522 "ini @rd,@ri,ra",16,21,0x04,
1523 #endif
1524 "ini",OPC_ini,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1525         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,64},
1526
1527 /* 0011 1010 ssss 0000 0000 aaaa ddN0 1000 *** inib @rd,@ri,ra */
1528 {
1529 #ifdef NICENAMES
1530 "inib @rd,@ri,ra",8,21,0x04,
1531 #endif
1532 "inib",OPC_inib,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1533         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,65},
1534
1535 /* 0011 1011 ssss 0000 0000 aaaa ddN0 0000 *** inir @rd,@ri,ra */
1536 {
1537 #ifdef NICENAMES
1538 "inir @rd,@ri,ra",16,11,0x04,
1539 #endif
1540 "inir",OPC_inir,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1541         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,66},
1542
1543 /* 0011 1010 ssss 0000 0000 aaaa ddN0 0000 *** inirb @rd,@ri,ra */
1544 {
1545 #ifdef NICENAMES
1546 "inirb @rd,@ri,ra",8,11,0x04,
1547 #endif
1548 "inirb",OPC_inirb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1549         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,67},
1550
1551 /* 0111 1011 0000 0000 *** iret */
1552 {
1553 #ifdef NICENAMES
1554 "iret",16,13,0x3f,
1555 #endif
1556 "iret",OPC_iret,0,{0},
1557         {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,68},
1558
1559 /* 0001 1110 ddN0 cccc *** jp cc,@rd */
1560 {
1561 #ifdef NICENAMES
1562 "jp cc,@rd",16,10,0x00,
1563 #endif
1564 "jp",OPC_jp,0,{CLASS_CC,CLASS_IR+(ARG_RD),},
1565         {CLASS_BIT+1,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,69},
1566
1567 /* 0101 1110 0000 cccc address_dst *** jp cc,address_dst */
1568 {
1569 #ifdef NICENAMES
1570 "jp cc,address_dst",16,7,0x00,
1571 #endif
1572 "jp",OPC_jp,0,{CLASS_CC,CLASS_DA+(ARG_DST),},
1573         {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
1574
1575 /* 0101 1110 ddN0 cccc address_dst *** jp cc,address_dst(rd) */
1576 {
1577 #ifdef NICENAMES
1578 "jp cc,address_dst(rd)",16,8,0x00,
1579 #endif
1580 "jp",OPC_jp,0,{CLASS_CC,CLASS_X+(ARG_RD),},
1581         {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
1582
1583 /* 1110 cccc disp8 *** jr cc,disp8 */
1584 {
1585 #ifdef NICENAMES
1586 "jr cc,disp8",16,6,0x00,
1587 #endif
1588 "jr",OPC_jr,0,{CLASS_CC,CLASS_DISP,},
1589         {CLASS_BIT+0xe,CLASS_CC,CLASS_DISP8,0,0,0,0,0,0,},2,2,70},
1590
1591 /* 0000 1101 ddN0 0101 imm16 *** ld @rd,imm16 */
1592 {
1593 #ifdef NICENAMES
1594 "ld @rd,imm16",16,7,0x00,
1595 #endif
1596 "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1597         {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
1598
1599 /* 0010 1111 ddN0 ssss *** ld @rd,rs */
1600 {
1601 #ifdef NICENAMES
1602 "ld @rd,rs",16,8,0x00,
1603 #endif
1604 "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1605         {CLASS_BIT+2,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,71},
1606
1607 /* 0100 1101 ddN0 0101 address_dst imm16 *** ld address_dst(rd),imm16 */
1608 {
1609 #ifdef NICENAMES
1610 "ld address_dst(rd),imm16",16,15,0x00,
1611 #endif
1612 "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1613         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,71},
1614
1615 /* 0110 1111 ddN0 ssss address_dst *** ld address_dst(rd),rs */
1616 {
1617 #ifdef NICENAMES
1618 "ld address_dst(rd),rs",16,12,0x00,
1619 #endif
1620 "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1621         {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,71},
1622
1623 /* 0100 1101 0000 0101 address_dst imm16 *** ld address_dst,imm16 */
1624 {
1625 #ifdef NICENAMES
1626 "ld address_dst,imm16",16,14,0x00,
1627 #endif
1628 "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),},
1629         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,71},
1630
1631 /* 0110 1111 0000 ssss address_dst *** ld address_dst,rs */
1632 {
1633 #ifdef NICENAMES
1634 "ld address_dst,rs",16,11,0x00,
1635 #endif
1636 "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),},
1637         {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,71},
1638
1639 /* 0011 0011 ddN0 ssss imm16 *** ld rd(imm16),rs */
1640 {
1641 #ifdef NICENAMES
1642 "ld rd(imm16),rs",16,14,0x00,
1643 #endif
1644 "ld",OPC_ld,0,{CLASS_BA+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1645         {CLASS_BIT+3,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
1646
1647 /* 0111 0011 ddN0 ssss 0000 xxxx 0000 0000 *** ld rd(rx),rs */
1648 {
1649 #ifdef NICENAMES
1650 "ld rd(rx),rs",16,14,0x00,
1651 #endif
1652 "ld",OPC_ld,0,{CLASS_BX+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1653         {CLASS_BIT+7,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,71},
1654
1655 /* 0010 0001 ssN0 dddd *** ld rd,@rs */
1656 {
1657 #ifdef NICENAMES
1658 "ld rd,@rs",16,7,0x00,
1659 #endif
1660 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
1661         {CLASS_BIT+2,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,71},
1662
1663 /* 0110 0001 0000 dddd address_src *** ld rd,address_src */
1664 {
1665 #ifdef NICENAMES
1666 "ld rd,address_src",16,9,0x00,
1667 #endif
1668 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
1669         {CLASS_BIT+6,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,71},
1670
1671 /* 0110 0001 ssN0 dddd address_src *** ld rd,address_src(rs) */
1672 {
1673 #ifdef NICENAMES
1674 "ld rd,address_src(rs)",16,10,0x00,
1675 #endif
1676 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
1677         {CLASS_BIT+6,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,71},
1678
1679 /* 0010 0001 0000 dddd imm16 *** ld rd,imm16 */
1680 {
1681 #ifdef NICENAMES
1682 "ld rd,imm16",16,7,0x00,
1683 #endif
1684 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1685         {CLASS_BIT+2,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
1686
1687 /* 1010 0001 ssss dddd *** ld rd,rs */
1688 {
1689 #ifdef NICENAMES
1690 "ld rd,rs",16,3,0x00,
1691 #endif
1692 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1693         {CLASS_BIT+0xa,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,71},
1694
1695 /* 0011 0001 ssN0 dddd imm16 *** ld rd,rs(imm16) */
1696 {
1697 #ifdef NICENAMES
1698 "ld rd,rs(imm16)",16,14,0x00,
1699 #endif
1700 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BA+(ARG_RS),},
1701         {CLASS_BIT+3,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
1702
1703 /* 0111 0001 ssN0 dddd 0000 xxxx 0000 0000 *** ld rd,rs(rx) */
1704 {
1705 #ifdef NICENAMES
1706 "ld rd,rs(rx)",16,14,0x00,
1707 #endif
1708 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BX+(ARG_RS),},
1709         {CLASS_BIT+7,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,71},
1710
1711 /* 0111 0110 0000 dddd address_src *** lda prd,address_src */
1712 {
1713 #ifdef NICENAMES
1714 "lda prd,address_src",16,12,0x00,
1715 #endif
1716 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_DA+(ARG_SRC),},
1717         {CLASS_BIT+7,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,72},
1718
1719 /* 0111 0110 ssN0 dddd address_src *** lda prd,address_src(rs) */
1720 {
1721 #ifdef NICENAMES
1722 "lda prd,address_src(rs)",16,13,0x00,
1723 #endif
1724 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_X+(ARG_RS),},
1725         {CLASS_BIT+7,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,72},
1726
1727 /* 0011 0100 ssN0 dddd imm16 *** lda prd,rs(imm16) */
1728 {
1729 #ifdef NICENAMES
1730 "lda prd,rs(imm16)",16,15,0x00,
1731 #endif
1732 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BA+(ARG_RS),},
1733         {CLASS_BIT+3,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,72},
1734
1735 /* 0111 0100 ssN0 dddd 0000 xxxx 0000 0000 *** lda prd,rs(rx) */
1736 {
1737 #ifdef NICENAMES
1738 "lda prd,rs(rx)",16,15,0x00,
1739 #endif
1740 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BX+(ARG_RS),},
1741         {CLASS_BIT+7,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,72},
1742
1743 /* 0011 0100 0000 dddd disp16 *** ldar prd,disp16 */
1744 {
1745 #ifdef NICENAMES
1746 "ldar prd,disp16",16,15,0x00,
1747 #endif
1748 "ldar",OPC_ldar,0,{CLASS_PR+(ARG_RD),CLASS_DISP,},
1749         {CLASS_BIT+3,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,73},
1750
1751 /* 0000 1100 ddN0 0101 imm8 imm8 *** ldb @rd,imm8 */
1752 {
1753 #ifdef NICENAMES
1754 "ldb @rd,imm8",8,7,0x00,
1755 #endif
1756 "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
1757         {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,74},
1758
1759 /* 0010 1110 ddN0 ssss *** ldb @rd,rbs */
1760 {
1761 #ifdef NICENAMES
1762 "ldb @rd,rbs",8,8,0x00,
1763 #endif
1764 "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1765         {CLASS_BIT+2,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,74},
1766
1767 /* 0100 1100 ddN0 0101 address_dst imm8 imm8 *** ldb address_dst(rd),imm8 */
1768 {
1769 #ifdef NICENAMES
1770 "ldb address_dst(rd),imm8",8,15,0x00,
1771 #endif
1772 "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
1773         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,74},
1774
1775 /* 0110 1110 ddN0 ssss address_dst *** ldb address_dst(rd),rbs */
1776 {
1777 #ifdef NICENAMES
1778 "ldb address_dst(rd),rbs",8,12,0x00,
1779 #endif
1780 "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1781         {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,74},
1782
1783 /* 0100 1100 0000 0101 address_dst imm8 imm8 *** ldb address_dst,imm8 */
1784 {
1785 #ifdef NICENAMES
1786 "ldb address_dst,imm8",8,14,0x00,
1787 #endif
1788 "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),},
1789         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,74},
1790
1791 /* 0110 1110 0000 ssss address_dst *** ldb address_dst,rbs */
1792 {
1793 #ifdef NICENAMES
1794 "ldb address_dst,rbs",8,11,0x00,
1795 #endif
1796 "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_REG_BYTE+(ARG_RS),},
1797         {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,74},
1798
1799 /* 0010 0000 ssN0 dddd *** ldb rbd,@rs */
1800 {
1801 #ifdef NICENAMES
1802 "ldb rbd,@rs",8,7,0x00,
1803 #endif
1804 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
1805         {CLASS_BIT+2,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,74},
1806
1807 /* 0110 0000 0000 dddd address_src *** ldb rbd,address_src */
1808 {
1809 #ifdef NICENAMES
1810 "ldb rbd,address_src",8,9,0x00,
1811 #endif
1812 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
1813         {CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,74},
1814
1815 /* 0110 0000 ssN0 dddd address_src *** ldb rbd,address_src(rs) */
1816 {
1817 #ifdef NICENAMES
1818 "ldb rbd,address_src(rs)",8,10,0x00,
1819 #endif
1820 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
1821         {CLASS_BIT+6,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,74},
1822
1823 /* 1100 dddd imm8 *** ldb rbd,imm8 */
1824 {
1825 #ifdef NICENAMES
1826 "ldb rbd,imm8",8,5,0x00,
1827 #endif
1828 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
1829         {CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},2,2,74},
1830
1831 /* 0010 0000 0000 dddd imm8 imm8 *** ldb rbd,imm8 */
1832 {
1833 #ifdef NICENAMES
1834 "ldb rbd,imm8",8,7,0x00,
1835 #endif
1836 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
1837         {CLASS_BIT+2,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,74},
1838
1839 /* 1010 0000 ssss dddd *** ldb rbd,rbs */
1840 {
1841 #ifdef NICENAMES
1842 "ldb rbd,rbs",8,3,0x00,
1843 #endif
1844 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1845         {CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,74},
1846
1847 /* 0011 0000 ssN0 dddd imm16 *** ldb rbd,rs(imm16) */
1848 {
1849 #ifdef NICENAMES
1850 "ldb rbd,rs(imm16)",8,14,0x00,
1851 #endif
1852 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BA+(ARG_RS),},
1853         {CLASS_BIT+3,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,74},
1854
1855 /* 0111 0000 ssN0 dddd 0000 xxxx 0000 0000 *** ldb rbd,rs(rx) */
1856 {
1857 #ifdef NICENAMES
1858 "ldb rbd,rs(rx)",8,14,0x00,
1859 #endif
1860 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BX+(ARG_RS),},
1861         {CLASS_BIT+7,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,74},
1862
1863 /* 0011 0010 ddN0 ssss imm16 *** ldb rd(imm16),rbs */
1864 {
1865 #ifdef NICENAMES
1866 "ldb rd(imm16),rbs",8,14,0x00,
1867 #endif
1868 "ldb",OPC_ldb,0,{CLASS_BA+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1869         {CLASS_BIT+3,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,74},
1870
1871 /* 0111 0010 ddN0 ssss 0000 xxxx 0000 0000 *** ldb rd(rx),rbs */
1872 {
1873 #ifdef NICENAMES
1874 "ldb rd(rx),rbs",8,14,0x00,
1875 #endif
1876 "ldb",OPC_ldb,0,{CLASS_BX+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1877         {CLASS_BIT+7,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,74},
1878
1879 /* 0111 1101 ssss 1ccc *** ldctl ctrl,rs */
1880 {
1881 #ifdef NICENAMES
1882 "ldctl ctrl,rs",32,7,0x00,
1883 #endif
1884 "ldctl",OPC_ldctl,0,{CLASS_CTRL,CLASS_REG_WORD+(ARG_RS),},
1885         {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_1CCC,0,0,0,0,0,},2,2,75},
1886
1887 /* 0111 1101 dddd 0ccc *** ldctl rd,ctrl */
1888 {
1889 #ifdef NICENAMES
1890 "ldctl rd,ctrl",32,7,0x00,
1891 #endif
1892 "ldctl",OPC_ldctl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_CTRL,},
1893         {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_0CCC,0,0,0,0,0,},2,2,75},
1894
1895 /* 1000 1100 ssss 1001 *** ldctlb ctrl,rbs */
1896 {
1897 #ifdef NICENAMES
1898 "ldctlb ctrl,rbs",32,7,0x3f,
1899 #endif
1900 "ldctlb",OPC_ldctlb,0,{CLASS_CTRL,CLASS_REG_BYTE+(ARG_RS),},
1901         {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_BIT+9,0,0,0,0,0,},2,2,76},
1902
1903 /* 1000 1100 dddd 0001 *** ldctlb rbd,ctrl */
1904 {
1905 #ifdef NICENAMES
1906 "ldctlb rbd,ctrl",32,7,0x00,
1907 #endif
1908 "ldctlb",OPC_ldctlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_CTRL,},
1909         {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+1,0,0,0,0,0,},2,2,76},
1910
1911 /* 1011 1011 ssN0 1001 0000 rrrr ddN0 1000 *** ldd @rd,@rs,rr */
1912 {
1913 #ifdef NICENAMES
1914 "ldd @rd,@rs,rr",16,11,0x04,
1915 #endif
1916 "ldd",OPC_ldd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1917         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,77},
1918
1919 /* 1011 1010 ssN0 1001 0000 rrrr ddN0 1000 *** lddb @rd,@rs,rr */
1920 {
1921 #ifdef NICENAMES
1922 "lddb @rd,@rs,rr",8,11,0x04,
1923 #endif
1924 "lddb",OPC_lddb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1925         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,78},
1926
1927 /* 1011 1011 ssN0 1001 0000 rrrr ddN0 0000 *** lddr @rd,@rs,rr */
1928 {
1929 #ifdef NICENAMES
1930 "lddr @rd,@rs,rr",16,11,0x04,
1931 #endif
1932 "lddr",OPC_lddr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1933         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,79},
1934
1935 /* 1011 1010 ssN0 1001 0000 rrrr ddN0 0000 *** lddrb @rd,@rs,rr */
1936 {
1937 #ifdef NICENAMES
1938 "lddrb @rd,@rs,rr",8,11,0x04,
1939 #endif
1940 "lddrb",OPC_lddrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1941         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,80},
1942
1943 /* 1011 1011 ssN0 0001 0000 rrrr ddN0 1000 *** ldi @rd,@rs,rr */
1944 {
1945 #ifdef NICENAMES
1946 "ldi @rd,@rs,rr",16,11,0x04,
1947 #endif
1948 "ldi",OPC_ldi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1949         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,81},
1950
1951 /* 1011 1010 ssN0 0001 0000 rrrr ddN0 1000 *** ldib @rd,@rs,rr */
1952 {
1953 #ifdef NICENAMES
1954 "ldib @rd,@rs,rr",8,11,0x04,
1955 #endif
1956 "ldib",OPC_ldib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1957         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,82},
1958
1959 /* 1011 1011 ssN0 0001 0000 rrrr ddN0 0000 *** ldir @rd,@rs,rr */
1960 {
1961 #ifdef NICENAMES
1962 "ldir @rd,@rs,rr",16,11,0x04,
1963 #endif
1964 "ldir",OPC_ldir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1965         {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,83},
1966
1967 /* 1011 1010 ssN0 0001 0000 rrrr ddN0 0000 *** ldirb @rd,@rs,rr */
1968 {
1969 #ifdef NICENAMES
1970 "ldirb @rd,@rs,rr",8,11,0x04,
1971 #endif
1972 "ldirb",OPC_ldirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1973         {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,84},
1974
1975 /* 1011 1101 dddd imm4 *** ldk rd,imm4 */
1976 {
1977 #ifdef NICENAMES
1978 "ldk rd,imm4",16,5,0x00,
1979 #endif
1980 "ldk",OPC_ldk,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
1981         {CLASS_BIT+0xb,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,85},
1982
1983 /* 0001 1101 ddN0 ssss *** ldl @rd,rrs */
1984 {
1985 #ifdef NICENAMES
1986 "ldl @rd,rrs",32,11,0x00,
1987 #endif
1988 "ldl",OPC_ldl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
1989         {CLASS_BIT+1,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,86},
1990
1991 /* 0101 1101 ddN0 ssss address_dst *** ldl address_dst(rd),rrs */
1992 {
1993 #ifdef NICENAMES
1994 "ldl address_dst(rd),rrs",32,14,0x00,
1995 #endif
1996 "ldl",OPC_ldl,0,{CLASS_X+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
1997         {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,86},
1998
1999 /* 0101 1101 0000 ssss address_dst *** ldl address_dst,rrs */
2000 {
2001 #ifdef NICENAMES
2002 "ldl address_dst,rrs",32,15,0x00,
2003 #endif
2004 "ldl",OPC_ldl,0,{CLASS_DA+(ARG_DST),CLASS_REG_LONG+(ARG_RS),},
2005         {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,86},
2006
2007 /* 0011 0111 ddN0 ssss imm16 *** ldl rd(imm16),rrs */
2008 {
2009 #ifdef NICENAMES
2010 "ldl rd(imm16),rrs",32,17,0x00,
2011 #endif
2012 "ldl",OPC_ldl,0,{CLASS_BA+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2013         {CLASS_BIT+3,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,86},
2014
2015 /* 0111 0111 ddN0 ssss 0000 xxxx 0000 0000 *** ldl rd(rx),rrs */
2016 {
2017 #ifdef NICENAMES
2018 "ldl rd(rx),rrs",32,17,0x00,
2019 #endif
2020 "ldl",OPC_ldl,0,{CLASS_BX+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2021         {CLASS_BIT+7,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,86},
2022
2023 /* 0001 0100 ssN0 dddd *** ldl rrd,@rs */
2024 {
2025 #ifdef NICENAMES
2026 "ldl rrd,@rs",32,11,0x00,
2027 #endif
2028 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
2029         {CLASS_BIT+1,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,86},
2030
2031 /* 0101 0100 0000 dddd address_src *** ldl rrd,address_src */
2032 {
2033 #ifdef NICENAMES
2034 "ldl rrd,address_src",32,12,0x00,
2035 #endif
2036 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
2037         {CLASS_BIT+5,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,86},
2038
2039 /* 0101 0100 ssN0 dddd address_src *** ldl rrd,address_src(rs) */
2040 {
2041 #ifdef NICENAMES
2042 "ldl rrd,address_src(rs)",32,13,0x00,
2043 #endif
2044 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
2045         {CLASS_BIT+5,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,86},
2046
2047 /* 0001 0100 0000 dddd imm32 *** ldl rrd,imm32 */
2048 {
2049 #ifdef NICENAMES
2050 "ldl rrd,imm32",32,11,0x00,
2051 #endif
2052 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
2053         {CLASS_BIT+1,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,86},
2054
2055 /* 1001 0100 ssss dddd *** ldl rrd,rrs */
2056 {
2057 #ifdef NICENAMES
2058 "ldl rrd,rrs",32,5,0x00,
2059 #endif
2060 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2061         {CLASS_BIT+9,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,86},
2062
2063 /* 0011 0101 ssN0 dddd imm16 *** ldl rrd,rs(imm16) */
2064 {
2065 #ifdef NICENAMES
2066 "ldl rrd,rs(imm16)",32,17,0x00,
2067 #endif
2068 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BA+(ARG_RS),},
2069         {CLASS_BIT+3,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,86},
2070
2071 /* 0111 0101 ssN0 dddd 0000 xxxx 0000 0000 *** ldl rrd,rs(rx) */
2072 {
2073 #ifdef NICENAMES
2074 "ldl rrd,rs(rx)",32,17,0x00,
2075 #endif
2076 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BX+(ARG_RS),},
2077         {CLASS_BIT+7,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,86},
2078
2079 /* 0001 1100 ddN0 1001 0000 ssss 0000 imm4m1 *** ldm @rd,rs,n */
2080 {
2081 #ifdef NICENAMES
2082 "ldm @rd,rs,n",16,11,0x00,
2083 #endif
2084 "ldm",OPC_ldm,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2085         {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,87},
2086
2087 /* 0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst(rd),rs,n */
2088 {
2089 #ifdef NICENAMES
2090 "ldm address_dst(rd),rs,n",16,15,0x00,
2091 #endif
2092 "ldm",OPC_ldm,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2093         {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,87},
2094
2095 /* 0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst,rs,n */
2096 {
2097 #ifdef NICENAMES
2098 "ldm address_dst,rs,n",16,14,0x00,
2099 #endif
2100 "ldm",OPC_ldm,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2101         {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,87},
2102
2103 /* 0001 1100 ssN0 0001 0000 dddd 0000 imm4m1 *** ldm rd,@rs,n */
2104 {
2105 #ifdef NICENAMES
2106 "ldm rd,@rs,n",16,11,0x00,
2107 #endif
2108 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2109         {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,87},
2110
2111 /* 0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src(rs),n */
2112 {
2113 #ifdef NICENAMES
2114 "ldm rd,address_src(rs),n",16,15,0x00,
2115 #endif
2116 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2117         {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,87},
2118
2119 /* 0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src,n */
2120 {
2121 #ifdef NICENAMES
2122 "ldm rd,address_src,n",16,14,0x00,
2123 #endif
2124 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),CLASS_IMM + (ARG_IMM4M1),},
2125         {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,87},
2126
2127 /* 0011 1001 ssN0 0000 *** ldps @rs */
2128 {
2129 #ifdef NICENAMES
2130 "ldps @rs",16,12,0x3f,
2131 #endif
2132 "ldps",OPC_ldps,0,{CLASS_IR+(ARG_RS),},
2133         {CLASS_BIT+3,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,0,0,0,0,},1,2,88},
2134
2135 /* 0111 1001 0000 0000 address_src *** ldps address_src */
2136 {
2137 #ifdef NICENAMES
2138 "ldps address_src",16,16,0x3f,
2139 #endif
2140 "ldps",OPC_ldps,0,{CLASS_DA+(ARG_SRC),},
2141         {CLASS_BIT+7,CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,88},
2142
2143 /* 0111 1001 ssN0 0000 address_src *** ldps address_src(rs) */
2144 {
2145 #ifdef NICENAMES
2146 "ldps address_src(rs)",16,17,0x3f,
2147 #endif
2148 "ldps",OPC_ldps,0,{CLASS_X+(ARG_RS),},
2149         {CLASS_BIT+7,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,88},
2150
2151 /* 0011 0011 0000 ssss disp16 *** ldr disp16,rs */
2152 {
2153 #ifdef NICENAMES
2154 "ldr disp16,rs",16,14,0x00,
2155 #endif
2156 "ldr",OPC_ldr,0,{CLASS_DISP,CLASS_REG_WORD+(ARG_RS),},
2157         {CLASS_BIT+3,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,89},
2158
2159 /* 0011 0001 0000 dddd disp16 *** ldr rd,disp16 */
2160 {
2161 #ifdef NICENAMES
2162 "ldr rd,disp16",16,14,0x00,
2163 #endif
2164 "ldr",OPC_ldr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,},
2165         {CLASS_BIT+3,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,89},
2166
2167 /* 0011 0010 0000 ssss disp16 *** ldrb disp16,rbs */
2168 {
2169 #ifdef NICENAMES
2170 "ldrb disp16,rbs",8,14,0x00,
2171 #endif
2172 "ldrb",OPC_ldrb,0,{CLASS_DISP,CLASS_REG_BYTE+(ARG_RS),},
2173         {CLASS_BIT+3,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,90},
2174
2175 /* 0011 0000 0000 dddd disp16 *** ldrb rbd,disp16 */
2176 {
2177 #ifdef NICENAMES
2178 "ldrb rbd,disp16",8,14,0x00,
2179 #endif
2180 "ldrb",OPC_ldrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,},
2181         {CLASS_BIT+3,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,90},
2182
2183 /* 0011 0111 0000 ssss disp16 *** ldrl disp16,rrs */
2184 {
2185 #ifdef NICENAMES
2186 "ldrl disp16,rrs",32,17,0x00,
2187 #endif
2188 "ldrl",OPC_ldrl,0,{CLASS_DISP,CLASS_REG_LONG+(ARG_RS),},
2189         {CLASS_BIT+3,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,91},
2190
2191 /* 0011 0101 0000 dddd disp16 *** ldrl rrd,disp16 */
2192 {
2193 #ifdef NICENAMES
2194 "ldrl rrd,disp16",32,17,0x00,
2195 #endif
2196 "ldrl",OPC_ldrl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DISP,},
2197         {CLASS_BIT+3,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,91},
2198
2199 /* 0111 1011 0000 1010 *** mbit */
2200 {
2201 #ifdef NICENAMES
2202 "mbit",16,7,0x38,
2203 #endif
2204 "mbit",OPC_mbit,0,{0},
2205         {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0xa,0,0,0,0,0,},0,2,92},
2206
2207 /* 0111 1011 dddd 1101 *** mreq rd */
2208 {
2209 #ifdef NICENAMES
2210 "mreq rd",16,12,0x18,
2211 #endif
2212 "mreq",OPC_mreq,0,{CLASS_REG_WORD+(ARG_RD),},
2213         {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,0,0,0,0,0,},1,2,93},
2214
2215 /* 0111 1011 0000 1001 *** mres */
2216 {
2217 #ifdef NICENAMES
2218 "mres",16,5,0x00,
2219 #endif
2220 "mres",OPC_mres,0,{0},
2221         {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+9,0,0,0,0,0,},0,2,94},
2222
2223 /* 0111 1011 0000 1000 *** mset */
2224 {
2225 #ifdef NICENAMES
2226 "mset",16,5,0x00,
2227 #endif
2228 "mset",OPC_mset,0,{0},
2229         {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+8,0,0,0,0,0,},0,2,95},
2230
2231 /* 0001 1001 ssN0 dddd *** mult rrd,@rs */
2232 {
2233 #ifdef NICENAMES
2234 "mult rrd,@rs",16,70,0x3c,
2235 #endif
2236 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
2237         {CLASS_BIT+1,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
2238
2239 /* 0101 1001 0000 dddd address_src *** mult rrd,address_src */
2240 {
2241 #ifdef NICENAMES
2242 "mult rrd,address_src",16,70,0x3c,
2243 #endif
2244 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
2245         {CLASS_BIT+5,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
2246
2247 /* 0101 1001 ssN0 dddd address_src *** mult rrd,address_src(rs) */
2248 {
2249 #ifdef NICENAMES
2250 "mult rrd,address_src(rs)",16,70,0x3c,
2251 #endif
2252 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
2253         {CLASS_BIT+5,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
2254
2255 /* 0001 1001 0000 dddd imm16 *** mult rrd,imm16 */
2256 {
2257 #ifdef NICENAMES
2258 "mult rrd,imm16",16,70,0x3c,
2259 #endif
2260 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
2261         {CLASS_BIT+1,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,96},
2262
2263 /* 1001 1001 ssss dddd *** mult rrd,rs */
2264 {
2265 #ifdef NICENAMES
2266 "mult rrd,rs",16,70,0x3c,
2267 #endif
2268 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2269         {CLASS_BIT+9,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
2270
2271 /* 0001 1000 ssN0 dddd *** multl rqd,@rs */
2272 {
2273 #ifdef NICENAMES
2274 "multl rqd,@rs",32,282,0x3c,
2275 #endif
2276 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),},
2277         {CLASS_BIT+1,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
2278
2279 /* 0101 1000 0000 dddd address_src *** multl rqd,address_src */
2280 {
2281 #ifdef NICENAMES
2282 "multl rqd,address_src",32,282,0x3c,
2283 #endif
2284 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),},
2285         {CLASS_BIT+5,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
2286
2287 /* 0101 1000 ssN0 dddd address_src *** multl rqd,address_src(rs) */
2288 {
2289 #ifdef NICENAMES
2290 "multl rqd,address_src(rs)",32,282,0x3c,
2291 #endif
2292 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),},
2293         {CLASS_BIT+5,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
2294
2295 /* 0001 1000 0000 dddd imm32 *** multl rqd,imm32 */
2296 {
2297 #ifdef NICENAMES
2298 "multl rqd,imm32",32,282,0x3c,
2299 #endif
2300 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
2301         {CLASS_BIT+1,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,97},
2302
2303 /* 1001 1000 ssss dddd *** multl rqd,rrs */
2304 {
2305 #ifdef NICENAMES
2306 "multl rqd,rrs",32,282,0x3c,
2307 #endif
2308 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2309         {CLASS_BIT+9,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
2310
2311 /* 0000 1101 ddN0 0010 *** neg @rd */
2312 {
2313 #ifdef NICENAMES
2314 "neg @rd",16,12,0x3c,
2315 #endif
2316 "neg",OPC_neg,0,{CLASS_IR+(ARG_RD),},
2317         {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,98},
2318
2319 /* 0100 1101 0000 0010 address_dst *** neg address_dst */
2320 {
2321 #ifdef NICENAMES
2322 "neg address_dst",16,15,0x3c,
2323 #endif
2324 "neg",OPC_neg,0,{CLASS_DA+(ARG_DST),},
2325         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,98},
2326
2327 /* 0100 1101 ddN0 0010 address_dst *** neg address_dst(rd) */
2328 {
2329 #ifdef NICENAMES
2330 "neg address_dst(rd)",16,16,0x3c,
2331 #endif
2332 "neg",OPC_neg,0,{CLASS_X+(ARG_RD),},
2333         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,98},
2334
2335 /* 1000 1101 dddd 0010 *** neg rd */
2336 {
2337 #ifdef NICENAMES
2338 "neg rd",16,7,0x3c,
2339 #endif
2340 "neg",OPC_neg,0,{CLASS_REG_WORD+(ARG_RD),},
2341         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,98},
2342
2343 /* 0000 1100 ddN0 0010 *** negb @rd */
2344 {
2345 #ifdef NICENAMES
2346 "negb @rd",8,12,0x3c,
2347 #endif
2348 "negb",OPC_negb,0,{CLASS_IR+(ARG_RD),},
2349         {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,99},
2350
2351 /* 0100 1100 0000 0010 address_dst *** negb address_dst */
2352 {
2353 #ifdef NICENAMES
2354 "negb address_dst",8,15,0x3c,
2355 #endif
2356 "negb",OPC_negb,0,{CLASS_DA+(ARG_DST),},
2357         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,99},
2358
2359 /* 0100 1100 ddN0 0010 address_dst *** negb address_dst(rd) */
2360 {
2361 #ifdef NICENAMES
2362 "negb address_dst(rd)",8,16,0x3c,
2363 #endif
2364 "negb",OPC_negb,0,{CLASS_X+(ARG_RD),},
2365         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,99},
2366
2367 /* 1000 1100 dddd 0010 *** negb rbd */
2368 {
2369 #ifdef NICENAMES
2370 "negb rbd",8,7,0x3c,
2371 #endif
2372 "negb",OPC_negb,0,{CLASS_REG_BYTE+(ARG_RD),},
2373         {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,99},
2374
2375 /* 1000 1101 0000 0111 *** nop */
2376 {
2377 #ifdef NICENAMES
2378 "nop",16,7,0x00,
2379 #endif
2380 "nop",OPC_nop,0,{0},
2381         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+7,0,0,0,0,0,},0,2,100},
2382
2383 /* 0000 0101 ssN0 dddd *** or rd,@rs */
2384 {
2385 #ifdef NICENAMES
2386 "or rd,@rs",16,7,0x38,
2387 #endif
2388 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
2389         {CLASS_BIT+0,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,101},
2390
2391 /* 0100 0101 0000 dddd address_src *** or rd,address_src */
2392 {
2393 #ifdef NICENAMES
2394 "or rd,address_src",16,9,0x38,
2395 #endif
2396 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
2397         {CLASS_BIT+4,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,101},
2398
2399 /* 0100 0101 ssN0 dddd address_src *** or rd,address_src(rs) */
2400 {
2401 #ifdef NICENAMES
2402 "or rd,address_src(rs)",16,10,0x38,
2403 #endif
2404 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
2405         {CLASS_BIT+4,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,101},
2406
2407 /* 0000 0101 0000 dddd imm16 *** or rd,imm16 */
2408 {
2409 #ifdef NICENAMES
2410 "or rd,imm16",16,7,0x38,
2411 #endif
2412 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
2413         {CLASS_BIT+0,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,101},
2414
2415 /* 1000 0101 ssss dddd *** or rd,rs */
2416 {
2417 #ifdef NICENAMES
2418 "or rd,rs",16,4,0x38,
2419 #endif
2420 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2421         {CLASS_BIT+8,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,101},
2422
2423 /* 0000 0100 ssN0 dddd *** orb rbd,@rs */
2424 {
2425 #ifdef NICENAMES
2426 "orb rbd,@rs",8,7,0x3c,
2427 #endif
2428 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
2429         {CLASS_BIT+0,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,102},
2430
2431 /* 0100 0100 0000 dddd address_src *** orb rbd,address_src */
2432 {
2433 #ifdef NICENAMES
2434 "orb rbd,address_src",8,9,0x3c,
2435 #endif
2436 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
2437         {CLASS_BIT+4,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,102},
2438
2439 /* 0100 0100 ssN0 dddd address_src *** orb rbd,address_src(rs) */
2440 {
2441 #ifdef NICENAMES
2442 "orb rbd,address_src(rs)",8,10,0x3c,
2443 #endif
2444 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
2445         {CLASS_BIT+4,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,102},
2446
2447 /* 0000 0100 0000 dddd imm8 imm8 *** orb rbd,imm8 */
2448 {
2449 #ifdef NICENAMES
2450 "orb rbd,imm8",8,7,0x3c,
2451 #endif
2452 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
2453         {CLASS_BIT+0,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,102},
2454
2455 /* 1000 0100 ssss dddd *** orb rbd,rbs */
2456 {
2457 #ifdef NICENAMES
2458 "orb rbd,rbs",8,4,0x3c,
2459 #endif
2460 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
2461         {CLASS_BIT+8,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,102},
2462
2463 /* 0011 1011 ssN0 1010 0000 aaaa dddd 0000 *** otdr @ro,@rs,ra */
2464 {
2465 #ifdef NICENAMES
2466 "otdr @ro,@rs,ra",16,11,0x04,
2467 #endif
2468 "otdr",OPC_otdr,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2469         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,103},
2470
2471 /* 0011 1010 ssN0 1010 0000 aaaa dddd 0000 *** otdrb @ro,@rs,ra */
2472 {
2473 #ifdef NICENAMES
2474 "otdrb @ro,@rs,ra",8,11,0x04,
2475 #endif
2476 "otdrb",OPC_otdrb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2477         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,104},
2478
2479 /* 0011 1011 ssN0 0010 0000 aaaa dddd 0000 *** otir @ro,@rs,ra */
2480 {
2481 #ifdef NICENAMES
2482 "otir @ro,@rs,ra",16,11,0x04,
2483 #endif
2484 "otir",OPC_otir,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2485         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,105},
2486
2487 /* 0011 1010 ssN0 0010 0000 aaaa dddd 0000 *** otirb @ro,@rs,ra */
2488 {
2489 #ifdef NICENAMES
2490 "otirb @ro,@rs,ra",8,11,0x04,
2491 #endif
2492 "otirb",OPC_otirb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2493         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,106},
2494
2495 /* 0011 1111 dddd ssss *** out @ro,rs */
2496 {
2497 #ifdef NICENAMES
2498 "out @ro,rs",16,10,0x00,
2499 #endif
2500 "out",OPC_out,0,{CLASS_IRO+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2501         {CLASS_BIT+3,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,107},
2502
2503 /* 0011 1011 ssss 0110 imm16 *** out imm16,rs */
2504 {
2505 #ifdef NICENAMES
2506 "out imm16,rs",16,12,0x00,
2507 #endif
2508 "out",OPC_out,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
2509         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,107},
2510
2511 /* 0011 1110 dddd ssss *** outb @ro,rbs */
2512 {
2513 #ifdef NICENAMES
2514 "outb @ro,rbs",8,10,0x00,
2515 #endif
2516 "outb",OPC_outb,0,{CLASS_IRO+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
2517         {CLASS_BIT+3,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,108},
2518
2519 /* 0011 1010 ssss 0110 imm16 *** outb imm16,rbs */
2520 {
2521 #ifdef NICENAMES
2522 "outb imm16,rbs",8,12,0x00,
2523 #endif
2524 "outb",OPC_outb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
2525         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,108},
2526
2527 /* 0011 1011 ssN0 1010 0000 aaaa dddd 1000 *** outd @ro,@rs,ra */
2528 {
2529 #ifdef NICENAMES
2530 "outd @ro,@rs,ra",16,21,0x04,
2531 #endif
2532 "outd",OPC_outd,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2533         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,109},
2534
2535 /* 0011 1010 ssN0 1010 0000 aaaa dddd 1000 *** outdb @ro,@rs,ra */
2536 {
2537 #ifdef NICENAMES
2538 "outdb @ro,@rs,ra",8,21,0x04,
2539 #endif
2540 "outdb",OPC_outdb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2541         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,110},
2542
2543 /* 0011 1011 ssN0 0010 0000 aaaa dddd 1000 *** outi @ro,@rs,ra */
2544 {
2545 #ifdef NICENAMES
2546 "outi @ro,@rs,ra",16,21,0x04,
2547 #endif
2548 "outi",OPC_outi,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2549         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,111},
2550
2551 /* 0011 1010 ssN0 0010 0000 aaaa dddd 1000 *** outib @ro,@rs,ra */
2552 {
2553 #ifdef NICENAMES
2554 "outib @ro,@rs,ra",8,21,0x04,
2555 #endif
2556 "outib",OPC_outib,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2557         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,112},
2558
2559 /* 0001 0111 ssN0 ddN0 *** pop @rd,@rs */
2560 {
2561 #ifdef NICENAMES
2562 "pop @rd,@rs",16,12,0x00,
2563 #endif
2564 "pop",OPC_pop,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
2565         {CLASS_BIT+1,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,113},
2566
2567 /* 0101 0111 ssN0 ddN0 address_dst *** pop address_dst(rd),@rs */
2568 {
2569 #ifdef NICENAMES
2570 "pop address_dst(rd),@rs",16,16,0x00,
2571 #endif
2572 "pop",OPC_pop,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),},
2573         {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,113},
2574
2575 /* 0101 0111 ssN0 0000 address_dst *** pop address_dst,@rs */
2576 {
2577 #ifdef NICENAMES
2578 "pop address_dst,@rs",16,16,0x00,
2579 #endif
2580 "pop",OPC_pop,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),},
2581         {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,113},
2582
2583 /* 1001 0111 ssN0 dddd *** pop rd,@rs */
2584 {
2585 #ifdef NICENAMES
2586 "pop rd,@rs",16,8,0x00,
2587 #endif
2588 "pop",OPC_pop,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
2589         {CLASS_BIT+9,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,113},
2590
2591 /* 0001 0101 ssN0 ddN0 *** popl @rd,@rs */
2592 {
2593 #ifdef NICENAMES
2594 "popl @rd,@rs",32,19,0x00,
2595 #endif
2596 "popl",OPC_popl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
2597         {CLASS_BIT+1,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,114},
2598
2599 /* 0101 0101 ssN0 ddN0 address_dst *** popl address_dst(rd),@rs */
2600 {
2601 #ifdef NICENAMES
2602 "popl address_dst(rd),@rs",32,23,0x00,
2603 #endif
2604 "popl",OPC_popl,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),},
2605         {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,114},
2606
2607 /* 0101 0101 ssN0 0000 address_dst *** popl address_dst,@rs */
2608 {
2609 #ifdef NICENAMES
2610 "popl address_dst,@rs",32,23,0x00,
2611 #endif
2612 "popl",OPC_popl,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),},
2613         {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,114},
2614
2615 /* 1001 0101 ssN0 dddd *** popl rrd,@rs */
2616 {
2617 #ifdef NICENAMES
2618 "popl rrd,@rs",32,12,0x00,
2619 #endif
2620 "popl",OPC_popl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
2621         {CLASS_BIT+9,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,114},
2622
2623 /* 0001 0011 ddN0 ssN0 *** push @rd,@rs */
2624 {
2625 #ifdef NICENAMES
2626 "push @rd,@rs",16,13,0x00,
2627 #endif
2628 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
2629         {CLASS_BIT+1,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,115},
2630
2631 /* 0101 0011 ddN0 0000 address_src *** push @rd,address_src */
2632 {
2633 #ifdef NICENAMES
2634 "push @rd,address_src",16,14,0x00,
2635 #endif
2636 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),},
2637         {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,115},
2638
2639 /* 0101 0011 ddN0 ssN0 address_src *** push @rd,address_src(rs) */
2640 {
2641 #ifdef NICENAMES
2642 "push @rd,address_src(rs)",16,14,0x00,
2643 #endif
2644 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),},
2645         {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,115},
2646
2647 /* 0000 1101 ddN0 1001 imm16 *** push @rd,imm16 */
2648 {
2649 #ifdef NICENAMES
2650 "push @rd,imm16",16,12,0x00,
2651 #endif
2652 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
2653         {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,115},
2654
2655 /* 1001 0011 ddN0 ssss *** push @rd,rs */
2656 {
2657 #ifdef NICENAMES
2658 "push @rd,rs",16,9,0x00,
2659 #endif
2660 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2661         {CLASS_BIT+9,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,115},
2662
2663 /* 0001 0001 ddN0 ssN0 *** pushl @rd,@rs */
2664 {
2665 #ifdef NICENAMES
2666 "pushl @rd,@rs",32,20,0x00,
2667 #endif
2668 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
2669         {CLASS_BIT+1,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,116},
2670
2671 /* 0101 0001 ddN0 0000 address_src *** pushl @rd,address_src */
2672 {
2673 #ifdef NICENAMES
2674 "pushl @rd,address_src",32,21,0x00,
2675 #endif
2676 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),},
2677         {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,116},
2678
2679 /* 0101 0001 ddN0 ssN0 address_src *** pushl @rd,address_src(rs) */
2680 {
2681 #ifdef NICENAMES
2682 "pushl @rd,address_src(rs)",32,21,0x00,
2683 #endif
2684 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),},
2685         {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,116},
2686
2687 /* 1001 0001 ddN0 ssss *** pushl @rd,rrs */
2688 {
2689 #ifdef NICENAMES
2690 "pushl @rd,rrs",32,12,0x00,
2691 #endif
2692 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2693         {CLASS_BIT+9,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,116},
2694
2695 /* 0010 0011 ddN0 imm4 *** res @rd,imm4 */
2696 {
2697 #ifdef NICENAMES
2698 "res @rd,imm4",16,11,0x00,
2699 #endif
2700 "res",OPC_res,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2701         {CLASS_BIT+2,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,117},
2702
2703 /* 0110 0011 ddN0 imm4 address_dst *** res address_dst(rd),imm4 */
2704 {
2705 #ifdef NICENAMES
2706 "res address_dst(rd),imm4",16,14,0x00,
2707 #endif
2708 "res",OPC_res,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2709         {CLASS_BIT+6,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,117},
2710
2711 /* 0110 0011 0000 imm4 address_dst *** res address_dst,imm4 */
2712 {
2713 #ifdef NICENAMES
2714 "res address_dst,imm4",16,13,0x00,
2715 #endif
2716 "res",OPC_res,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
2717         {CLASS_BIT+6,CLASS_BIT+3,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,117},
2718
2719 /* 1010 0011 dddd imm4 *** res rd,imm4 */
2720 {
2721 #ifdef NICENAMES
2722 "res rd,imm4",16,4,0x00,
2723 #endif
2724 "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2725         {CLASS_BIT+0xa,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,117},
2726
2727 /* 0010 0011 0000 ssss 0000 dddd 0000 0000 *** res rd,rs */
2728 {
2729 #ifdef NICENAMES
2730 "res rd,rs",16,10,0x00,
2731 #endif
2732 "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2733         {CLASS_BIT+2,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,117},
2734
2735 /* 0010 0010 ddN0 imm4 *** resb @rd,imm4 */
2736 {
2737 #ifdef NICENAMES
2738 "resb @rd,imm4",8,11,0x00,
2739 #endif
2740 "resb",OPC_resb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2741         {CLASS_BIT+2,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,118},
2742
2743 /* 0110 0010 ddN0 imm4 address_dst *** resb address_dst(rd),imm4 */
2744 {
2745 #ifdef NICENAMES
2746 "resb address_dst(rd),imm4",8,14,0x00,
2747 #endif
2748 "resb",OPC_resb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2749         {CLASS_BIT+6,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,118},
2750
2751 /* 0110 0010 0000 imm4 address_dst *** resb address_dst,imm4 */
2752 {
2753 #ifdef NICENAMES
2754 "resb address_dst,imm4",8,13,0x00,
2755 #endif
2756 "resb",OPC_resb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
2757         {CLASS_BIT+6,CLASS_BIT+2,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,118},
2758
2759 /* 1010 0010 dddd imm4 *** resb rbd,imm4 */
2760 {
2761 #ifdef NICENAMES
2762 "resb rbd,imm4",8,4,0x00,
2763 #endif
2764 "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2765         {CLASS_BIT+0xa,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,118},
2766
2767 /* 0010 0010 0000 ssss 0000 dddd 0000 0000 *** resb rbd,rs */
2768 {
2769 #ifdef NICENAMES
2770 "resb rbd,rs",8,10,0x00,
2771 #endif
2772 "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2773         {CLASS_BIT+2,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,118},
2774
2775 /* 1000 1101 flags 0011 *** resflg flags */
2776 {
2777 #ifdef NICENAMES
2778 "resflg flags",16,7,0x3c,
2779 #endif
2780 "resflg",OPC_resflg,0,{CLASS_FLAGS,},
2781         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+3,0,0,0,0,0,},1,2,119},
2782
2783 /* 1001 1110 0000 cccc *** ret cc */
2784 {
2785 #ifdef NICENAMES
2786 "ret cc",16,10,0x00,
2787 #endif
2788 "ret",OPC_ret,0,{CLASS_CC,},
2789         {CLASS_BIT+9,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,0,0,0,0,0,},1,2,120},
2790
2791 /* 1011 0011 dddd 00I0 *** rl rd,imm1or2 */
2792 {
2793 #ifdef NICENAMES
2794 "rl rd,imm1or2",16,6,0x3c,
2795 #endif
2796 "rl",OPC_rl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2797         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,121},
2798
2799 /* 1011 0010 dddd 00I0 *** rlb rbd,imm1or2 */
2800 {
2801 #ifdef NICENAMES
2802 "rlb rbd,imm1or2",8,6,0x3c,
2803 #endif
2804 "rlb",OPC_rlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2805         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,122},
2806
2807 /* 1011 0011 dddd 10I0 *** rlc rd,imm1or2 */
2808 {
2809 #ifdef NICENAMES
2810 "rlc rd,imm1or2",16,6,0x3c,
2811 #endif
2812 "rlc",OPC_rlc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2813         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,123},
2814
2815 /* 1011 0010 dddd 10I0 *** rlcb rbd,imm1or2 */
2816 {
2817 #ifdef NICENAMES
2818 "rlcb rbd,imm1or2",8,9,0x10,
2819 #endif
2820 "rlcb",OPC_rlcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2821         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,124},
2822
2823 /* 1011 1110 aaaa bbbb *** rldb rbb,rba */
2824 {
2825 #ifdef NICENAMES
2826 "rldb rbb,rba",8,9,0x10,
2827 #endif
2828 "rldb",OPC_rldb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),},
2829         {CLASS_BIT+0xb,CLASS_BIT+0xe,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,125},
2830
2831 /* 1011 0011 dddd 01I0 *** rr rd,imm1or2 */
2832 {
2833 #ifdef NICENAMES
2834 "rr rd,imm1or2",16,6,0x3c,
2835 #endif
2836 "rr",OPC_rr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2837         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,126},
2838
2839 /* 1011 0010 dddd 01I0 *** rrb rbd,imm1or2 */
2840 {
2841 #ifdef NICENAMES
2842 "rrb rbd,imm1or2",8,6,0x3c,
2843 #endif
2844 "rrb",OPC_rrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2845         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,127},
2846
2847 /* 1011 0011 dddd 11I0 *** rrc rd,imm1or2 */
2848 {
2849 #ifdef NICENAMES
2850 "rrc rd,imm1or2",16,6,0x3c,
2851 #endif
2852 "rrc",OPC_rrc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2853         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,128},
2854
2855 /* 1011 0010 dddd 11I0 *** rrcb rbd,imm1or2 */
2856 {
2857 #ifdef NICENAMES
2858 "rrcb rbd,imm1or2",8,9,0x10,
2859 #endif
2860 "rrcb",OPC_rrcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2861         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,129},
2862
2863 /* 1011 1100 aaaa bbbb *** rrdb rbb,rba */
2864 {
2865 #ifdef NICENAMES
2866 "rrdb rbb,rba",8,9,0x10,
2867 #endif
2868 "rrdb",OPC_rrdb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),},
2869         {CLASS_BIT+0xb,CLASS_BIT+0xc,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,130},
2870
2871 /* 0011 0110 imm8 *** rsvd36 */
2872 {
2873 #ifdef NICENAMES
2874 "rsvd36",8,10,0x00,
2875 #endif
2876 "rsvd36",OPC_rsvd36,0,{0},
2877         {CLASS_BIT+3,CLASS_BIT+6,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,131},
2878
2879 /* 0011 1000 imm8 *** rsvd38 */
2880 {
2881 #ifdef NICENAMES
2882 "rsvd38",8,10,0x00,
2883 #endif
2884 "rsvd38",OPC_rsvd38,0,{0},
2885         {CLASS_BIT+3,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,132},
2886
2887 /* 0111 1000 imm8 *** rsvd78 */
2888 {
2889 #ifdef NICENAMES
2890 "rsvd78",8,10,0x00,
2891 #endif
2892 "rsvd78",OPC_rsvd78,0,{0},
2893         {CLASS_BIT+7,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,133},
2894
2895 /* 0111 1110 imm8 *** rsvd7e */
2896 {
2897 #ifdef NICENAMES
2898 "rsvd7e",8,10,0x00,
2899 #endif
2900 "rsvd7e",OPC_rsvd7e,0,{0},
2901         {CLASS_BIT+7,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,134},
2902
2903 /* 1001 1101 imm8 *** rsvd9d */
2904 {
2905 #ifdef NICENAMES
2906 "rsvd9d",8,10,0x00,
2907 #endif
2908 "rsvd9d",OPC_rsvd9d,0,{0},
2909         {CLASS_BIT+9,CLASS_BIT+0xd,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,135},
2910
2911 /* 1001 1111 imm8 *** rsvd9f */
2912 {
2913 #ifdef NICENAMES
2914 "rsvd9f",8,10,0x00,
2915 #endif
2916 "rsvd9f",OPC_rsvd9f,0,{0},
2917         {CLASS_BIT+9,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,136},
2918
2919 /* 1011 1001 imm8 *** rsvdb9 */
2920 {
2921 #ifdef NICENAMES
2922 "rsvdb9",8,10,0x00,
2923 #endif
2924 "rsvdb9",OPC_rsvdb9,0,{0},
2925         {CLASS_BIT+0xb,CLASS_BIT+9,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,137},
2926
2927 /* 1011 1111 imm8 *** rsvdbf */
2928 {
2929 #ifdef NICENAMES
2930 "rsvdbf",8,10,0x00,
2931 #endif
2932 "rsvdbf",OPC_rsvdbf,0,{0},
2933         {CLASS_BIT+0xb,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,138},
2934
2935 /* 1011 0111 ssss dddd *** sbc rd,rs */
2936 {
2937 #ifdef NICENAMES
2938 "sbc rd,rs",16,5,0x3c,
2939 #endif
2940 "sbc",OPC_sbc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2941         {CLASS_BIT+0xb,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,139},
2942
2943 /* 1011 0110 ssss dddd *** sbcb rbd,rbs */
2944 {
2945 #ifdef NICENAMES
2946 "sbcb rbd,rbs",8,5,0x3f,
2947 #endif
2948 "sbcb",OPC_sbcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
2949         {CLASS_BIT+0xb,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,140},
2950
2951 /* 0111 1111 imm8 *** sc imm8 */
2952 {
2953 #ifdef NICENAMES
2954 "sc imm8",8,33,0x3f,
2955 #endif
2956 "sc",OPC_sc,0,{CLASS_IMM+(ARG_IMM8),},
2957         {CLASS_BIT+7,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,141},
2958
2959 /* 1011 0011 dddd 1011 0000 ssss 0000 0000 *** sda rd,rs */
2960 {
2961 #ifdef NICENAMES
2962 "sda rd,rs",16,15,0x3c,
2963 #endif
2964 "sda",OPC_sda,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2965         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,142},
2966
2967 /* 1011 0010 dddd 1011 0000 ssss 0000 0000 *** sdab rbd,rs */
2968 {
2969 #ifdef NICENAMES
2970 "sdab rbd,rs",8,15,0x3c,
2971 #endif
2972 "sdab",OPC_sdab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2973         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,143},
2974
2975 /* 1011 0011 dddd 1111 0000 ssss 0000 0000 *** sdal rrd,rs */
2976 {
2977 #ifdef NICENAMES
2978 "sdal rrd,rs",32,15,0x3c,
2979 #endif
2980 "sdal",OPC_sdal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2981         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,144},
2982
2983 /* 1011 0011 dddd 0011 0000 ssss 0000 0000 *** sdl rd,rs */
2984 {
2985 #ifdef NICENAMES
2986 "sdl rd,rs",16,15,0x38,
2987 #endif
2988 "sdl",OPC_sdl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2989         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,145},
2990
2991 /* 1011 0010 dddd 0011 0000 ssss 0000 0000 *** sdlb rbd,rs */
2992 {
2993 #ifdef NICENAMES
2994 "sdlb rbd,rs",8,15,0x38,
2995 #endif
2996 "sdlb",OPC_sdlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2997         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,146},
2998
2999 /* 1011 0011 dddd 0111 0000 ssss 0000 0000 *** sdll rrd,rs */
3000 {
3001 #ifdef NICENAMES
3002 "sdll rrd,rs",32,15,0x38,
3003 #endif
3004 "sdll",OPC_sdll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3005         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,147},
3006
3007 /* 0010 0101 ddN0 imm4 *** set @rd,imm4 */
3008 {
3009 #ifdef NICENAMES
3010 "set @rd,imm4",16,11,0x00,
3011 #endif
3012 "set",OPC_set,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3013         {CLASS_BIT+2,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,148},
3014
3015 /* 0110 0101 ddN0 imm4 address_dst *** set address_dst(rd),imm4 */
3016 {
3017 #ifdef NICENAMES
3018 "set address_dst(rd),imm4",16,14,0x00,
3019 #endif
3020 "set",OPC_set,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3021         {CLASS_BIT+6,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,148},
3022
3023 /* 0110 0101 0000 imm4 address_dst *** set address_dst,imm4 */
3024 {
3025 #ifdef NICENAMES
3026 "set address_dst,imm4",16,13,0x00,
3027 #endif
3028 "set",OPC_set,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
3029         {CLASS_BIT+6,CLASS_BIT+5,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,148},
3030
3031 /* 1010 0101 dddd imm4 *** set rd,imm4 */
3032 {
3033 #ifdef NICENAMES
3034 "set rd,imm4",16,4,0x00,
3035 #endif
3036 "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3037         {CLASS_BIT+0xa,CLASS_BIT+5,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,148},
3038
3039 /* 0010 0101 0000 ssss 0000 dddd 0000 0000 *** set rd,rs */
3040 {
3041 #ifdef NICENAMES
3042 "set rd,rs",16,10,0x00,
3043 #endif
3044 "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3045         {CLASS_BIT+2,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,148},
3046
3047 /* 0010 0100 ddN0 imm4 *** setb @rd,imm4 */
3048 {
3049 #ifdef NICENAMES
3050 "setb @rd,imm4",8,11,0x00,
3051 #endif
3052 "setb",OPC_setb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3053         {CLASS_BIT+2,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,149},
3054
3055 /* 0110 0100 ddN0 imm4 address_dst *** setb address_dst(rd),imm4 */
3056 {
3057 #ifdef NICENAMES
3058 "setb address_dst(rd),imm4",8,14,0x00,
3059 #endif
3060 "setb",OPC_setb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3061         {CLASS_BIT+6,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,149},
3062
3063 /* 0110 0100 0000 imm4 address_dst *** setb address_dst,imm4 */
3064 {
3065 #ifdef NICENAMES
3066 "setb address_dst,imm4",8,13,0x00,
3067 #endif
3068 "setb",OPC_setb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
3069         {CLASS_BIT+6,CLASS_BIT+4,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,149},
3070
3071 /* 1010 0100 dddd imm4 *** setb rbd,imm4 */
3072 {
3073 #ifdef NICENAMES
3074 "setb rbd,imm4",8,4,0x00,
3075 #endif
3076 "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3077         {CLASS_BIT+0xa,CLASS_BIT+4,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,149},
3078
3079 /* 0010 0100 0000 ssss 0000 dddd 0000 0000 *** setb rbd,rs */
3080 {
3081 #ifdef NICENAMES
3082 "setb rbd,rs",8,10,0x00,
3083 #endif
3084 "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3085         {CLASS_BIT+2,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,149},
3086
3087 /* 1000 1101 flags 0001 *** setflg flags */
3088 {
3089 #ifdef NICENAMES
3090 "setflg flags",16,7,0x3c,
3091 #endif
3092 "setflg",OPC_setflg,0,{CLASS_FLAGS,},
3093         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+1,0,0,0,0,0,},1,2,150},
3094
3095 /* 0011 1011 dddd 0101 imm16 *** sin rd,imm16 */
3096 {
3097 #ifdef NICENAMES
3098 "sin rd,imm16",16,12,0x00,
3099 #endif
3100 "sin",OPC_sin,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
3101         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,151},
3102
3103 /* 0011 1010 dddd 0101 imm16 *** sinb rbd,imm16 */
3104 {
3105 #ifdef NICENAMES
3106 "sinb rbd,imm16",8,10,0x00,
3107 #endif
3108 "sinb",OPC_sinb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
3109         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,152},
3110
3111 /* 0011 1011 ssss 1001 0000 aaaa ddN0 1000 *** sind @rd,@ri,ra */
3112 {
3113 #ifdef NICENAMES
3114 "sind @rd,@ri,ra",16,21,0x04,
3115 #endif
3116 "sind",OPC_sind,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3117         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,153},
3118
3119 /* 0011 1010 ssss 1001 0000 aaaa ddN0 1000 *** sindb @rd,@ri,ra */
3120 {
3121 #ifdef NICENAMES
3122 "sindb @rd,@ri,ra",8,21,0x04,
3123 #endif
3124 "sindb",OPC_sindb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3125         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,154},
3126
3127 /* 0011 1011 ssss 1001 0000 aaaa ddN0 0000 *** sindr @rd,@ri,ra */
3128 {
3129 #ifdef NICENAMES
3130 "sindr @rd,@ri,ra",16,11,0x04,
3131 #endif
3132 "sindr",OPC_sindr,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3133         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,155},
3134
3135 /* 0011 1010 ssss 1001 0000 aaaa ddN0 0000 *** sindrb @rd,@ri,ra */
3136 {
3137 #ifdef NICENAMES
3138 "sindrb @rd,@ri,ra",8,11,0x04,
3139 #endif
3140 "sindrb",OPC_sindrb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3141         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,156},
3142
3143 /* 0011 1011 ssss 0001 0000 aaaa ddN0 1000 *** sini @rd,@ri,ra */
3144 {
3145 #ifdef NICENAMES
3146 "sini @rd,@ri,ra",16,21,0x04,
3147 #endif
3148 "sini",OPC_sini,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3149         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,157},
3150
3151 /* 0011 1010 ssss 0001 0000 aaaa ddN0 1000 *** sinib @rd,@ri,ra */
3152 {
3153 #ifdef NICENAMES
3154 "sinib @rd,@ri,ra",8,21,0x04,
3155 #endif
3156 "sinib",OPC_sinib,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3157         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,158},
3158
3159 /* 0011 1011 ssss 0001 0000 aaaa ddN0 0000 *** sinir @rd,@ri,ra */
3160 {
3161 #ifdef NICENAMES
3162 "sinir @rd,@ri,ra",16,11,0x04,
3163 #endif
3164 "sinir",OPC_sinir,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3165         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,159},
3166
3167 /* 0011 1010 ssss 0001 0000 aaaa ddN0 0000 *** sinirb @rd,@ri,ra */
3168 {
3169 #ifdef NICENAMES
3170 "sinirb @rd,@ri,ra",8,11,0x04,
3171 #endif
3172 "sinirb",OPC_sinirb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3173         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,160},
3174
3175 /* 1011 0011 dddd 1001 0000 0000 imm8 *** sla rd,imm8 */
3176 {
3177 #ifdef NICENAMES
3178 "sla rd,imm8",16,13,0x3c,
3179 #endif
3180 "sla",OPC_sla,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3181         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,161},
3182
3183 /* 1011 0010 dddd 1001 iiii iiii 0000 imm4 *** slab rbd,imm4 */
3184 {
3185 #ifdef NICENAMES
3186 "slab rbd,imm4",8,13,0x3c,
3187 #endif
3188 "slab",OPC_slab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3189         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,162},
3190
3191 /* 1011 0011 dddd 1101 0000 0000 imm8 *** slal rrd,imm8 */
3192 {
3193 #ifdef NICENAMES
3194 "slal rrd,imm8",32,13,0x3c,
3195 #endif
3196 "slal",OPC_slal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3197         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,163},
3198
3199 /* 1011 0011 dddd 0001 0000 0000 imm8 *** sll rd,imm8 */
3200 {
3201 #ifdef NICENAMES
3202 "sll rd,imm8",16,13,0x38,
3203 #endif
3204 "sll",OPC_sll,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3205         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,164},
3206
3207 /* 1011 0010 dddd 0001 iiii iiii 0000 imm4 *** sllb rbd,imm4 */
3208 {
3209 #ifdef NICENAMES
3210 "sllb rbd,imm4",8,13,0x38,
3211 #endif
3212 "sllb",OPC_sllb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3213         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,165},
3214
3215 /* 1011 0011 dddd 0101 0000 0000 imm8 *** slll rrd,imm8 */
3216 {
3217 #ifdef NICENAMES
3218 "slll rrd,imm8",32,13,0x38,
3219 #endif
3220 "slll",OPC_slll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3221         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,166},
3222
3223 /* 0011 1011 ssN0 1011 0000 aaaa dddd 0000 *** sotdr @ro,@rs,ra */
3224 {
3225 #ifdef NICENAMES
3226 "sotdr @ro,@rs,ra",16,11,0x04,
3227 #endif
3228 "sotdr",OPC_sotdr,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3229         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,167},
3230
3231 /* 0011 1010 ssN0 1011 0000 aaaa dddd 0000 *** sotdrb @ro,@rs,ra */
3232 {
3233 #ifdef NICENAMES
3234 "sotdrb @ro,@rs,ra",8,11,0x04,
3235 #endif
3236 "sotdrb",OPC_sotdrb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3237         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,168},
3238
3239 /* 0011 1011 ssN0 0011 0000 aaaa dddd 0000 *** sotir @ro,@rs,ra */
3240 {
3241 #ifdef NICENAMES
3242 "sotir @ro,@rs,ra",16,11,0x04,
3243 #endif
3244 "sotir",OPC_sotir,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3245         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,169},
3246
3247 /* 0011 1010 ssN0 0011 0000 aaaa dddd 0000 *** sotirb @ro,@rs,ra */
3248 {
3249 #ifdef NICENAMES
3250 "sotirb @ro,@rs,ra",8,11,0x04,
3251 #endif
3252 "sotirb",OPC_sotirb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3253         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,170},
3254
3255 /* 0011 1011 ssss 0110 imm16 *** sout imm16,rs */
3256 {
3257 #ifdef NICENAMES
3258 "sout imm16,rs",16,12,0x00,
3259 #endif
3260 "sout",OPC_sout,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
3261         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,171},
3262
3263 /* 0011 1010 ssss 0110 imm16 *** soutb imm16,rbs */
3264 {
3265 #ifdef NICENAMES
3266 "soutb imm16,rbs",8,12,0x00,
3267 #endif
3268 "soutb",OPC_soutb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
3269         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,172},
3270
3271 /* 0011 1011 ssN0 1011 0000 aaaa dddd 1000 *** soutd @ro,@rs,ra */
3272 {
3273 #ifdef NICENAMES
3274 "soutd @ro,@rs,ra",16,21,0x04,
3275 #endif
3276 "soutd",OPC_soutd,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3277         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,173},
3278
3279 /* 0011 1010 ssN0 1011 0000 aaaa dddd 1000 *** soutdb @ro,@rs,ra */
3280 {
3281 #ifdef NICENAMES
3282 "soutdb @ro,@rs,ra",8,21,0x04,
3283 #endif
3284 "soutdb",OPC_soutdb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3285         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,174},
3286
3287 /* 0011 1011 ssN0 0011 0000 aaaa dddd 1000 *** souti @ro,@rs,ra */
3288 {
3289 #ifdef NICENAMES
3290 "souti @ro,@rs,ra",16,21,0x04,
3291 #endif
3292 "souti",OPC_souti,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3293         {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,175},
3294
3295 /* 0011 1010 ssN0 0011 0000 aaaa dddd 1000 *** soutib @ro,@rs,ra */
3296 {
3297 #ifdef NICENAMES
3298 "soutib @ro,@rs,ra",8,21,0x04,
3299 #endif
3300 "soutib",OPC_soutib,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3301         {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,176},
3302
3303 /* 1011 0011 dddd 1001 1111 1111 nim8 *** sra rd,imm8 */
3304 {
3305 #ifdef NICENAMES
3306 "sra rd,imm8",16,13,0x3c,
3307 #endif
3308 "sra",OPC_sra,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3309         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,177},
3310
3311 /* 1011 0010 dddd 1001 iiii iiii 1111 nim4 *** srab rbd,imm4 */
3312 {
3313 #ifdef NICENAMES
3314 "srab rbd,imm4",8,13,0x3c,
3315 #endif
3316 "srab",OPC_srab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3317         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,178},
3318
3319 /* 1011 0011 dddd 1101 1111 1111 nim8 *** sral rrd,imm8 */
3320 {
3321 #ifdef NICENAMES
3322 "sral rrd,imm8",32,13,0x3c,
3323 #endif
3324 "sral",OPC_sral,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3325         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,179},
3326
3327 /* 1011 0011 dddd 0001 1111 1111 nim8 *** srl rd,imm8 */
3328 {
3329 #ifdef NICENAMES
3330 "srl rd,imm8",16,13,0x3c,
3331 #endif
3332 "srl",OPC_srl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3333         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,180},
3334
3335 /* 1011 0010 dddd 0001 iiii iiii 1111 nim4 *** srlb rbd,imm4 */
3336 {
3337 #ifdef NICENAMES
3338 "srlb rbd,imm4",8,13,0x3c,
3339 #endif
3340 "srlb",OPC_srlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3341         {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,181},
3342
3343 /* 1011 0011 dddd 0101 1111 1111 nim8 *** srll rrd,imm8 */
3344 {
3345 #ifdef NICENAMES
3346 "srll rrd,imm8",32,13,0x3c,
3347 #endif
3348 "srll",OPC_srll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3349         {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,182},
3350
3351 /* 0000 0011 ssN0 dddd *** sub rd,@rs */
3352 {
3353 #ifdef NICENAMES
3354 "sub rd,@rs",16,7,0x3c,
3355 #endif
3356 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
3357         {CLASS_BIT+0,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,183},
3358
3359 /* 0100 0011 0000 dddd address_src *** sub rd,address_src */
3360 {
3361 #ifdef NICENAMES
3362 "sub rd,address_src",16,9,0x3c,
3363 #endif
3364 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
3365         {CLASS_BIT+4,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,183},
3366
3367 /* 0100 0011 ssN0 dddd address_src *** sub rd,address_src(rs) */
3368 {
3369 #ifdef NICENAMES
3370 "sub rd,address_src(rs)",16,10,0x3c,
3371 #endif
3372 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
3373         {CLASS_BIT+4,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,183},
3374
3375 /* 0000 0011 0000 dddd imm16 *** sub rd,imm16 */
3376 {
3377 #ifdef NICENAMES
3378 "sub rd,imm16",16,7,0x3c,
3379 #endif
3380 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
3381         {CLASS_BIT+0,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,183},
3382
3383 /* 1000 0011 ssss dddd *** sub rd,rs */
3384 {
3385 #ifdef NICENAMES
3386 "sub rd,rs",16,4,0x3c,
3387 #endif
3388 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3389         {CLASS_BIT+8,CLASS_BIT+3,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,183},
3390
3391 /* 0000 0010 ssN0 dddd *** subb rbd,@rs */
3392 {
3393 #ifdef NICENAMES
3394 "subb rbd,@rs",8,7,0x3f,
3395 #endif
3396 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
3397         {CLASS_BIT+0,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,184},
3398
3399 /* 0100 0010 0000 dddd address_src *** subb rbd,address_src */
3400 {
3401 #ifdef NICENAMES
3402 "subb rbd,address_src",8,9,0x3f,
3403 #endif
3404 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
3405         {CLASS_BIT+4,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,184},
3406
3407 /* 0100 0010 ssN0 dddd address_src *** subb rbd,address_src(rs) */
3408 {
3409 #ifdef NICENAMES
3410 "subb rbd,address_src(rs)",8,10,0x3f,
3411 #endif
3412 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
3413         {CLASS_BIT+4,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,184},
3414
3415 /* 0000 0010 0000 dddd imm8 imm8 *** subb rbd,imm8 */
3416 {
3417 #ifdef NICENAMES
3418 "subb rbd,imm8",8,7,0x3f,
3419 #endif
3420 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3421         {CLASS_BIT+0,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,184},
3422
3423 /* 1000 0010 ssss dddd *** subb rbd,rbs */
3424 {
3425 #ifdef NICENAMES
3426 "subb rbd,rbs",8,4,0x3f,
3427 #endif
3428 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
3429         {CLASS_BIT+8,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,184},
3430
3431 /* 0001 0010 ssN0 dddd *** subl rrd,@rs */
3432 {
3433 #ifdef NICENAMES
3434 "subl rrd,@rs",32,14,0x3c,
3435 #endif
3436 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
3437         {CLASS_BIT+1,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,185},
3438
3439 /* 0101 0010 0000 dddd address_src *** subl rrd,address_src */
3440 {
3441 #ifdef NICENAMES
3442 "subl rrd,address_src",32,15,0x3c,
3443 #endif
3444 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
3445         {CLASS_BIT+5,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,185},
3446
3447 /* 0101 0010 ssN0 dddd address_src *** subl rrd,address_src(rs) */
3448 {
3449 #ifdef NICENAMES
3450 "subl rrd,address_src(rs)",32,16,0x3c,
3451 #endif
3452 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
3453         {CLASS_BIT+5,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,185},
3454
3455 /* 0001 0010 0000 dddd imm32 *** subl rrd,imm32 */
3456 {
3457 #ifdef NICENAMES
3458 "subl rrd,imm32",32,14,0x3c,
3459 #endif
3460 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
3461         {CLASS_BIT+1,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,185},
3462
3463 /* 1001 0010 ssss dddd *** subl rrd,rrs */
3464 {
3465 #ifdef NICENAMES
3466 "subl rrd,rrs",32,8,0x3c,
3467 #endif
3468 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
3469         {CLASS_BIT+9,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,185},
3470
3471 /* 1010 1111 dddd cccc *** tcc cc,rd */
3472 {
3473 #ifdef NICENAMES
3474 "tcc cc,rd",16,5,0x00,
3475 #endif
3476 "tcc",OPC_tcc,0,{CLASS_CC,CLASS_REG_WORD+(ARG_RD),},
3477         {CLASS_BIT+0xa,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,186},
3478
3479 /* 1010 1110 dddd cccc *** tccb cc,rbd */
3480 {
3481 #ifdef NICENAMES
3482 "tccb cc,rbd",8,5,0x00,
3483 #endif
3484 "tccb",OPC_tccb,0,{CLASS_CC,CLASS_REG_BYTE+(ARG_RD),},
3485         {CLASS_BIT+0xa,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,187},
3486
3487 /* 0000 1101 ddN0 0100 *** test @rd */
3488 {
3489 #ifdef NICENAMES
3490 "test @rd",16,8,0x18,
3491 #endif
3492 "test",OPC_test,0,{CLASS_IR+(ARG_RD),},
3493         {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,188},
3494
3495 /* 0100 1101 0000 0100 address_dst *** test address_dst */
3496 {
3497 #ifdef NICENAMES
3498 "test address_dst",16,11,0x00,
3499 #endif
3500 "test",OPC_test,0,{CLASS_DA+(ARG_DST),},
3501         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,188},
3502
3503 /* 0100 1101 ddN0 0100 address_dst *** test address_dst(rd) */
3504 {
3505 #ifdef NICENAMES
3506 "test address_dst(rd)",16,12,0x00,
3507 #endif
3508 "test",OPC_test,0,{CLASS_X+(ARG_RD),},
3509         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,188},
3510
3511 /* 1000 1101 dddd 0100 *** test rd */
3512 {
3513 #ifdef NICENAMES
3514 "test rd",16,7,0x00,
3515 #endif
3516 "test",OPC_test,0,{CLASS_REG_WORD+(ARG_RD),},
3517         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,188},
3518
3519 /* 0000 1100 ddN0 0100 *** testb @rd */
3520 {
3521 #ifdef NICENAMES
3522 "testb @rd",8,8,0x1c,
3523 #endif
3524 "testb",OPC_testb,0,{CLASS_IR+(ARG_RD),},
3525         {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,189},
3526
3527 /* 0100 1100 0000 0100 address_dst *** testb address_dst */
3528 {
3529 #ifdef NICENAMES
3530 "testb address_dst",8,11,0x1c,
3531 #endif
3532 "testb",OPC_testb,0,{CLASS_DA+(ARG_DST),},
3533         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,189},
3534
3535 /* 0100 1100 ddN0 0100 address_dst *** testb address_dst(rd) */
3536 {
3537 #ifdef NICENAMES
3538 "testb address_dst(rd)",8,12,0x1c,
3539 #endif
3540 "testb",OPC_testb,0,{CLASS_X+(ARG_RD),},
3541         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,189},
3542
3543 /* 1000 1100 dddd 0100 *** testb rbd */
3544 {
3545 #ifdef NICENAMES
3546 "testb rbd",8,7,0x1c,
3547 #endif
3548 "testb",OPC_testb,0,{CLASS_REG_BYTE+(ARG_RD),},
3549         {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,189},
3550
3551 /* 0001 1100 ddN0 1000 *** testl @rd */
3552 {
3553 #ifdef NICENAMES
3554 "testl @rd",32,13,0x18,
3555 #endif
3556 "testl",OPC_testl,0,{CLASS_IR+(ARG_RD),},
3557         {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,190},
3558
3559 /* 0101 1100 0000 1000 address_dst *** testl address_dst */
3560 {
3561 #ifdef NICENAMES
3562 "testl address_dst",32,16,0x18,
3563 #endif
3564 "testl",OPC_testl,0,{CLASS_DA+(ARG_DST),},
3565         {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,190},
3566
3567 /* 0101 1100 ddN0 1000 address_dst *** testl address_dst(rd) */
3568 {
3569 #ifdef NICENAMES
3570 "testl address_dst(rd)",32,17,0x18,
3571 #endif
3572 "testl",OPC_testl,0,{CLASS_X+(ARG_RD),},
3573         {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,190},
3574
3575 /* 1001 1100 dddd 1000 *** testl rrd */
3576 {
3577 #ifdef NICENAMES
3578 "testl rrd",32,13,0x18,
3579 #endif
3580 "testl",OPC_testl,0,{CLASS_REG_LONG+(ARG_RD),},
3581         {CLASS_BIT+9,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,190},
3582
3583 /* 1011 1000 ddN0 1000 0000 rrrr ssN0 0000 *** trdb @rd,@rs,rr */
3584 {
3585 #ifdef NICENAMES
3586 "trdb @rd,@rs,rr",8,25,0x04,
3587 #endif
3588 "trdb",OPC_trdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
3589         {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,191},
3590
3591 /* 1011 1000 ddN0 1100 0000 rrrr ssN0 0000 *** trdrb @rd,@rs,rr */
3592 {
3593 #ifdef NICENAMES
3594 "trdrb @rd,@rs,rr",8,25,0x04,
3595 #endif
3596 "trdrb",OPC_trdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
3597         {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,192},
3598
3599 /* 1011 1000 ddN0 0000 0000 rrrr ssN0 0000 *** trib @rd,@rs,rr */
3600 {
3601 #ifdef NICENAMES
3602 "trib @rd,@rs,rr",8,25,0x04,
3603 #endif
3604 "trib",OPC_trib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
3605         {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,193},
3606
3607 /* 1011 1000 ddN0 0100 0000 rrrr ssN0 0000 *** trirb @rd,@rs,rr */
3608 {
3609 #ifdef NICENAMES
3610 "trirb @rd,@rs,rr",8,25,0x04,
3611 #endif
3612 "trirb",OPC_trirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
3613         {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,194},
3614
3615 /* 1011 1000 aaN0 1010 0000 rrrr bbN0 0000 *** trtdb @ra,@rb,rr */
3616 {
3617 #ifdef NICENAMES
3618 "trtdb @ra,@rb,rr",8,25,0x14,
3619 #endif
3620 "trtdb",OPC_trtdb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_WORD+(ARG_RR),},
3621         {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,195},
3622
3623 /* 1011 1000 aaN0 1110 0000 rrrr bbN0 1110 *** trtdrb @ra,@rb,rr */
3624 {
3625 #ifdef NICENAMES
3626 "trtdrb @ra,@rb,rr",8,25,0x14,
3627 #endif
3628 "trtdrb",OPC_trtdrb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_WORD+(ARG_RR),},
3629         {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,196},
3630
3631 /* 1011 1000 aaN0 0010 0000 rrrr bbN0 0000 *** trtib @ra,@rb,rr */
3632 {
3633 #ifdef NICENAMES
3634 "trtib @ra,@rb,rr",8,25,0x14,
3635 #endif
3636 "trtib",OPC_trtib,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_WORD+(ARG_RR),},
3637         {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,197},
3638
3639 /* 1011 1000 aaN0 0110 0000 rrrr bbN0 1110 *** trtirb @ra,@rb,rr */
3640 {
3641 #ifdef NICENAMES
3642 "trtirb @ra,@rb,rr",8,25,0x14,
3643 #endif
3644 "trtirb",OPC_trtirb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_WORD+(ARG_RR),},
3645         {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,198},
3646
3647 /* 0000 1101 ddN0 0110 *** tset @rd */
3648 {
3649 #ifdef NICENAMES
3650 "tset @rd",16,11,0x08,
3651 #endif
3652 "tset",OPC_tset,0,{CLASS_IR+(ARG_RD),},
3653         {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,199},
3654
3655 /* 0100 1101 0000 0110 address_dst *** tset address_dst */
3656 {
3657 #ifdef NICENAMES
3658 "tset address_dst",16,14,0x08,
3659 #endif
3660 "tset",OPC_tset,0,{CLASS_DA+(ARG_DST),},
3661         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,199},
3662
3663 /* 0100 1101 ddN0 0110 address_dst *** tset address_dst(rd) */
3664 {
3665 #ifdef NICENAMES
3666 "tset address_dst(rd)",16,15,0x08,
3667 #endif
3668 "tset",OPC_tset,0,{CLASS_X+(ARG_RD),},
3669         {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,199},
3670
3671 /* 1000 1101 dddd 0110 *** tset rd */
3672 {
3673 #ifdef NICENAMES
3674 "tset rd",16,7,0x08,
3675 #endif
3676 "tset",OPC_tset,0,{CLASS_REG_WORD+(ARG_RD),},
3677         {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,199},
3678
3679 /* 0000 1100 ddN0 0110 *** tsetb @rd */
3680 {
3681 #ifdef NICENAMES
3682 "tsetb @rd",8,11,0x08,
3683 #endif
3684 "tsetb",OPC_tsetb,0,{CLASS_IR+(ARG_RD),},
3685         {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,200},
3686
3687 /* 0100 1100 0000 0110 address_dst *** tsetb address_dst */
3688 {
3689 #ifdef NICENAMES
3690 "tsetb address_dst",8,14,0x08,
3691 #endif
3692 "tsetb",OPC_tsetb,0,{CLASS_DA+(ARG_DST),},
3693         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,200},
3694
3695 /* 0100 1100 ddN0 0110 address_dst *** tsetb address_dst(rd) */
3696 {
3697 #ifdef NICENAMES
3698 "tsetb address_dst(rd)",8,15,0x08,
3699 #endif
3700 "tsetb",OPC_tsetb,0,{CLASS_X+(ARG_RD),},
3701         {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,200},
3702
3703 /* 1000 1100 dddd 0110 *** tsetb rbd */
3704 {
3705 #ifdef NICENAMES
3706 "tsetb rbd",8,7,0x08,
3707 #endif
3708 "tsetb",OPC_tsetb,0,{CLASS_REG_BYTE+(ARG_RD),},
3709         {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,200},
3710
3711 /* 0000 1001 ssN0 dddd *** xor rd,@rs */
3712 {
3713 #ifdef NICENAMES
3714 "xor rd,@rs",16,7,0x18,
3715 #endif
3716 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
3717         {CLASS_BIT+0,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,201},
3718
3719 /* 0100 1001 0000 dddd address_src *** xor rd,address_src */
3720 {
3721 #ifdef NICENAMES
3722 "xor rd,address_src",16,9,0x18,
3723 #endif
3724 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
3725         {CLASS_BIT+4,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,201},
3726
3727 /* 0100 1001 ssN0 dddd address_src *** xor rd,address_src(rs) */
3728 {
3729 #ifdef NICENAMES
3730 "xor rd,address_src(rs)",16,10,0x18,
3731 #endif
3732 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
3733         {CLASS_BIT+4,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,201},
3734
3735 /* 0000 1001 0000 dddd imm16 *** xor rd,imm16 */
3736 {
3737 #ifdef NICENAMES
3738 "xor rd,imm16",16,7,0x18,
3739 #endif
3740 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
3741         {CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,201},
3742
3743 /* 1000 1001 ssss dddd *** xor rd,rs */
3744 {
3745 #ifdef NICENAMES
3746 "xor rd,rs",16,4,0x18,
3747 #endif
3748 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3749         {CLASS_BIT+8,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,201},
3750
3751 /* 0000 1000 ssN0 dddd *** xorb rbd,@rs */
3752 {
3753 #ifdef NICENAMES
3754 "xorb rbd,@rs",8,7,0x1c,
3755 #endif
3756 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
3757         {CLASS_BIT+0,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,202},
3758
3759 /* 0100 1000 0000 dddd address_src *** xorb rbd,address_src */
3760 {
3761 #ifdef NICENAMES
3762 "xorb rbd,address_src",8,9,0x1c,
3763 #endif
3764 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
3765         {CLASS_BIT+4,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,202},
3766
3767 /* 0100 1000 ssN0 dddd address_src *** xorb rbd,address_src(rs) */
3768 {
3769 #ifdef NICENAMES
3770 "xorb rbd,address_src(rs)",8,10,0x1c,
3771 #endif
3772 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
3773         {CLASS_BIT+4,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,202},
3774
3775 /* 0000 1000 0000 dddd imm8 imm8 *** xorb rbd,imm8 */
3776 {
3777 #ifdef NICENAMES
3778 "xorb rbd,imm8",8,7,0x1c,
3779 #endif
3780 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3781         {CLASS_BIT+0,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,202},
3782
3783 /* 1000 1000 ssss dddd *** xorb rbd,rbs */
3784 {
3785 #ifdef NICENAMES
3786 "xorb rbd,rbs",8,4,0x1c,
3787 #endif
3788 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
3789         {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,202},
3790
3791 /* end marker */
3792 {
3793 #ifdef NICENAMES
3794 NULL,0,0,
3795 0,
3796 #endif
3797 NULL,0,0,{0,0,0,0},{0,0,0,0,0,0,0,0,0,0},0,0,0}
3798 };
3799 #endif