OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [opcodes/] [z8k-opc.h] - Blame information for rev 587

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.