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