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