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