source: trunk/src/binutils/opcodes/z8k-opc.h@ 1036

Last change on this file since 1036 was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

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