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