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