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