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