/* * File: opcode.h * * Register and instruction symbol definitions * * Generated from file ../genop/a86.dat on Tue Jul 26 13:29:04 1960 * */ /* * Macro definitions * */ #define JUMP(x) ((opcinfo1[x] >> 31) & 0x01) #define OPB(x,n) ((unsigned char) ((opcinfo2[x] >> (32-x*8)) & 0xff)) #define OPB1(x) ((unsigned char) ((opcinfo2[x] >> 24) & 0xff)) #define OPB2(x) ((unsigned char) ((opcinfo2[x] >> 16) & 0xff)) #define OPB3(x) ((unsigned char) ((opcinfo2[x] >> 8) & 0xff)) #define OPSIZE(x) (opcinfo2[x] & 0xff) #define RAND1(x) ((opcinfo1[x] >> 16) & 0xff) #define RAND2(x) ((opcinfo1[x] >> 8) & 0xff) #define RAND3(x) (opcinfo1[x] & 0xff) #define REG8(x) (AL <= x && x <= BH) #define REG16(x) (AX <= x && x <= DI) #define REG32(x) (EAX <= x && x <= EDI) #define VARIANT(x) ((opcinfo1[x] >> 24) & 0x1f) /* * Register symbols * */ #define MAXREGNAME 42 #define MAXREGS 24 #define AL 0x00 #define CL 0x01 #define DL 0x02 #define BL 0x03 #define AH 0x04 #define CH 0x05 #define DH 0x06 #define BH 0x07 #define AX 0x08 #define CX 0x09 #define DX 0x0a #define BX 0x0b #define SP 0x0c #define BP 0x0d #define SI 0x0e #define DI 0x0f #define EAX 0x10 #define ECX 0x11 #define EDX 0x12 #define EBX 0x13 #define ESP 0x14 #define EBP 0x15 #define ESI 0x16 #define EDI 0x17 #define CR0 0x20 #define CR1 0x21 #define CR2 0x22 #define CR3 0x23 #define CR4 0x24 #define DR0 0x30 #define DR1 0x31 #define DR2 0x32 #define DR3 0x33 #define DR4 0x34 #define DR5 0x35 #define DR6 0x36 #define DR7 0x37 #define TR3 0x43 #define TR4 0x44 #define TR5 0x45 #define TR6 0x46 #define TR7 0x47 /* * Opcode symbols * */ #define NOOFOPS 559 #define OP_AAA 0 #define OP_AAD 1 #define OP_AAM 2 #define OP_AAS 3 #define OP_ADC1IB 4 #define OP_ADC1IW 5 #define OP_ADCIB 6 #define OP_ADCIW 7 #define OP_ADCISXW 8 #define OP_ADCB 9 #define OP_ADCW 10 #define OP_ADCRB 11 #define OP_ADCRW 12 #define OP_ADD1IB 13 #define OP_ADD1IW 14 #define OP_ADDIB 15 #define OP_ADDIW 16 #define OP_ADDISXW 17 #define OP_ADDB 18 #define OP_ADDW 19 #define OP_ADDRB 20 #define OP_ADDRW 21 #define OP_AND1IB 22 #define OP_AND1IW 23 #define OP_ANDIB 24 #define OP_ANDIW 25 #define OP_ANDISXW 26 #define OP_ANDB 27 #define OP_ANDW 28 #define OP_ANDRB 29 #define OP_ANDRW 30 #define OP_ARPL 31 #define OP_BOUND 32 #define OP_BSF 33 #define OP_BSR 34 #define OP_BSWAP 35 #define OP_BT 36 #define OP_BTI 37 #define OP_BTC 38 #define OP_BTCI 39 #define OP_BTR 40 #define OP_BTRI 41 #define OP_BTS 42 #define OP_BTSI 43 #define OP_CALLF 44 #define OP_CALLFI 45 #define OP_CALLN 46 #define OP_CALLNI 47 #define OP_CBW 48 #define OP_CDQ 49 #define OP_CLC 50 #define OP_CLD 51 #define OP_CLI 52 #define OP_CLTS 53 #define OP_CMC 54 #define OP_CMP1IB 55 #define OP_CMP1IW 56 #define OP_CMPIB 57 #define OP_CMPIW 58 #define OP_CMPISXW 59 #define OP_CMPB 60 #define OP_CMPW 61 #define OP_CMPRB 62 #define OP_CMPRW 63 #define OP_CMPSB 64 #define OP_CMPSD 65 #define OP_CMPSW 66 #define OP_CMPXCH8 67 #define OP_CMPXCH32 68 #define OP_CMPXCHG8 69 #define OP_CPUID 70 #define OP_CWD 71 #define OP_CWDE 72 #define OP_DAA 73 #define OP_DAS 74 #define OP_DECB 75 #define OP_DECR 76 #define OP_DECW 77 #define OP_DIVB 78 #define OP_DIVW 79 #define OP_ENTER 80 #define OP_F2XM1 81 #define OP_FABS 82 #define OP_FADDMD 83 #define OP_FADDMQ 84 #define OP_FADDT 85 #define OP_FADDS 86 #define OP_FADDPS 87 #define OP_FADD 88 #define OP_FADDP 89 #define OP_FIADDW 90 #define OP_FIADDD 91 #define OP_FBLD 92 #define OP_FBSTP 93 #define OP_FCHS 94 #define OP_FCLEX 95 #define OP_FCOMD 96 #define OP_FCOMQ 97 #define OP_FCOMS 98 #define OP_FCOM 99 #define OP_FCOMDP 100 #define OP_FCOMQP 101 #define OP_FCOMPS 102 #define OP_FCOMP 103 #define OP_FCOMPP 104 #define OP_FCOS 105 #define OP_FDECSTP 106 #define OP_FDIVD 107 #define OP_FDIVQ 108 #define OP_FDIVT 109 #define OP_FDIVS 110 #define OP_FDIV 111 #define OP_FDIVP 112 #define OP_FDIVPS 113 #define OP_FIDIVD 114 #define OP_FIDIVW 115 #define OP_FDIVRD 116 #define OP_FDIVRQ 117 #define OP_FDIVRT 118 #define OP_FDIVRS 119 #define OP_FDIVRPS 120 #define OP_FDIVR 121 #define OP_FDIVRP 122 #define OP_FIDIVRD 123 #define OP_FIDIVRW 124 #define OP_FFREE 125 #define OP_FICOMW 126 #define OP_FICOMD 127 #define OP_FICOMPW 128 #define OP_FICOMPD 129 #define OP_FILDW 130 #define OP_FILDD 131 #define OP_FILDQ 132 #define OP_FINCSTP 133 #define OP_FINIT 134 #define OP_FISTW 135 #define OP_FISTD 136 #define OP_FISTPW 137 #define OP_FISTPD 138 #define OP_FISTPQ 139 #define OP_FLDD 140 #define OP_FLDQ 141 #define OP_FLDX 142 #define OP_FLDS 143 #define OP_FLD1 144 #define OP_FLDL2T 145 #define OP_FLDL2E 146 #define OP_FLDPI 147 #define OP_FLDLG2 148 #define OP_FLDLN2 149 #define OP_FLDZ 150 #define OP_FLDCW 151 #define OP_FLDENV 152 #define OP_FMULW 153 #define OP_FMULQ 154 #define OP_FMULT 155 #define OP_FMULS 156 #define OP_FMULPS 157 #define OP_FMUL 158 #define OP_FMULP 159 #define OP_FIMULW 160 #define OP_FIMULQ 161 #define OP_FNCLEX 162 #define OP_FNINIT 163 #define OP_FNOP 164 #define OP_FNSAVE 165 #define OP_FNSTCW 166 #define OP_FNSTENV 167 #define OP_FNSTSW 168 #define OP_FNSTSWAX 169 #define OP_FPATAN 170 #define OP_FPREM 171 #define OP_FPREM1 172 #define OP_FPTAN 173 #define OP_FRNDINT 174 #define OP_FRSTOR 175 #define OP_FSAVE 176 #define OP_FSCALE 177 #define OP_FSIN 178 #define OP_FSINCOS 179 #define OP_FSQRT 180 #define OP_FSTCW 181 #define OP_FSTENV 182 #define OP_FSTD 183 #define OP_FSTQ 184 #define OP_FSTS 185 #define OP_FSTPD 186 #define OP_FSTPQ 187 #define OP_FSTPX 188 #define OP_FSTPS 189 #define OP_FSTSW 190 #define OP_FSTSWAX 191 #define OP_FSUBD 192 #define OP_FSUBQ 193 #define OP_FSUBT 194 #define OP_FSUBS 195 #define OP_FSUBPS 196 #define OP_FSUB 197 #define OP_FSUBP 198 #define OP_FISUBD 199 #define OP_FISUBQ 200 #define OP_FSUBRD 201 #define OP_FSUBRQ 202 #define OP_FSUBRT 203 #define OP_FSUBRS 204 #define OP_FSUBRPS 205 #define OP_FSUBR 206 #define OP_FSUBRP 207 #define OP_FISUBRW 208 #define OP_FISUBRD 209 #define OP_FTST 210 #define OP_FUCOMS 211 #define OP_FUCOM 212 #define OP_FUCOMPS 213 #define OP_FUCOMP 214 #define OP_FUCOMPP 215 #define OP_FWAIT 216 #define OP_FXAM 217 #define OP_FXCHS 218 #define OP_FXCH 219 #define OP_FXTRACT 220 #define OP_FYL2X 221 #define OP_FYL2XP1 222 #define OP_HLT 223 #define OP_IDIVB 224 #define OP_IDIVW 225 #define OP_IMUL1B 226 #define OP_IMUL1W 227 #define OP_IMUL2 228 #define OP_IMUL3B 229 #define OP_IMUL3W 230 #define OP_INB 231 #define OP_INIB 232 #define OP_INIW 233 #define OP_INW 234 #define OP_INCB 235 #define OP_INCR 236 #define OP_INCW 237 #define OP_INSB 238 #define OP_INSW 239 #define OP_INT 240 #define OP_INT3 241 #define OP_INTO 242 #define OP_INVD 243 #define OP_INVLPG 244 #define OP_IRET 245 #define OP_JA 246 #define OP_JAN 247 #define OP_JAE 248 #define OP_JAEN 249 #define OP_JB 250 #define OP_JBN 251 #define OP_JBE 252 #define OP_JBEN 253 #define OP_JC 254 #define OP_JCN 255 #define OP_JECXZ 256 #define OP_JE 257 #define OP_JEN 258 #define OP_JG 259 #define OP_JGN 260 #define OP_JGE 261 #define OP_JGEN 262 #define OP_JL 263 #define OP_JLN 264 #define OP_JLE 265 #define OP_JLEN 266 #define OP_JNA 267 #define OP_JNAN 268 #define OP_JNAE 269 #define OP_JNAEN 270 #define OP_JNB 271 #define OP_JNBN 272 #define OP_JNBE 273 #define OP_JNBEN 274 #define OP_JNC 275 #define OP_JNCN 276 #define OP_JNE 277 #define OP_JNEN 278 #define OP_JNG 279 #define OP_JNGN 280 #define OP_JNGE 281 #define OP_JNGEN 282 #define OP_JNL 283 #define OP_JNLN 284 #define OP_JNLE 285 #define OP_JNLEN 286 #define OP_JNO 287 #define OP_JNON 288 #define OP_JNP 289 #define OP_JNPN 290 #define OP_JNS 291 #define OP_JNSN 292 #define OP_JNZ 293 #define OP_JNZN 294 #define OP_JO 295 #define OP_JON 296 #define OP_JP 297 #define OP_JPN 298 #define OP_JPE 299 #define OP_JPEN 300 #define OP_JPO 301 #define OP_JPON 302 #define OP_JS 303 #define OP_JSN 304 #define OP_JZ 305 #define OP_JZN 306 #define OP_JMP 307 #define OP_JMPN 308 #define OP_JMPNI 309 #define OP_JMPF 310 #define OP_JMPFI 311 #define OP_LAHF 312 #define OP_LAR 313 #define OP_LDS 314 #define OP_LEA 315 #define OP_LEAVE 316 #define OP_LES 317 #define OP_LFS 318 #define OP_LGDT 319 #define OP_LGS 320 #define OP_LIDT 321 #define OP_LLDT 322 #define OP_LMSW 323 #define OP_LOCK 324 #define OP_LODSB 325 #define OP_LODSW 326 #define OP_LOOP 327 #define OP_LOOPE 328 #define OP_LOOPZ 329 #define OP_LOOPNE 330 #define OP_LOOPNZ 331 #define OP_LSL 332 #define OP_LSS 333 #define OP_LTR 334 #define OP_MOVB 335 #define OP_MOVW 336 #define OP_MOVRB 337 #define OP_MOVRW 338 #define OP_MOVS 339 #define OP_MOVSR 340 #define OP_MOV1RB 341 #define OP_MOV1RW 342 #define OP_MOV1B 343 #define OP_MOV1W 344 #define OP_MOVIRB 345 #define OP_MOVIRW 346 #define OP_MOVIB 347 #define OP_MOVIW 348 #define OP_MOVCR 349 #define OP_MOVCRR 350 #define OP_MOVDR 351 #define OP_MOVDRR 352 #define OP_MOVTR 353 #define OP_MOVTRR 354 #define OP_MOVSB 355 #define OP_MOVSW 356 #define OP_MOVSXB 357 #define OP_MOVSXW 358 #define OP_MOVZXB 359 #define OP_MOVZXW 360 #define OP_MULB 361 #define OP_MULW 362 #define OP_NEGB 363 #define OP_NEGW 364 #define OP_NOP 365 #define OP_NOTB 366 #define OP_NOTW 367 #define OP_OR1IB 368 #define OP_OR1IW 369 #define OP_ORIB 370 #define OP_ORIW 371 #define OP_ORISXW 372 #define OP_ORB 373 #define OP_ORW 374 #define OP_ORRB 375 #define OP_ORRW 376 #define OP_OUTB 377 #define OP_OUTIB 378 #define OP_OUTIW 379 #define OP_OUTW 380 #define OP_OUTSB 381 #define OP_OUTSW 382 #define OP_POP 383 #define OP_POPR 384 #define OP_POPDS 385 #define OP_POPES 386 #define OP_POPFS 387 #define OP_POPGS 388 #define OP_POPSS 389 #define OP_POPAD 390 #define OP_POPFD 391 #define OP_PUSH 392 #define OP_PUSHR 393 #define OP_PUSHCS 394 #define OP_PUSHDS 395 #define OP_PUSHES 396 #define OP_PUSHFS 397 #define OP_PUSHGS 398 #define OP_PUSHIB 399 #define OP_PUSHIW 400 #define OP_PUSHSS 401 #define OP_PUSHAD 402 #define OP_PUSHFD 403 #define OP_RCL1B 404 #define OP_RCLCB 405 #define OP_RCLIB 406 #define OP_RCL1W 407 #define OP_RCLCW 408 #define OP_RCLIW 409 #define OP_RCR1B 410 #define OP_RCRCB 411 #define OP_RCRIB 412 #define OP_RCR1W 413 #define OP_RCRCW 414 #define OP_RCRIW 415 #define OP_RDMSR 416 #define OP_RDTSC 417 #define OP_REP 418 #define OP_REPE 419 #define OP_REPNE 420 #define OP_REPNZ 421 #define OP_REPZ 422 #define OP_RET 423 #define OP_RETF 424 #define OP_RETFN 425 #define OP_RETN 426 #define OP_ROL1B 427 #define OP_ROLCB 428 #define OP_ROLIB 429 #define OP_ROL1W 430 #define OP_ROLCW 431 #define OP_ROLIW 432 #define OP_ROR1B 433 #define OP_RORCB 434 #define OP_RORIB 435 #define OP_ROR1W 436 #define OP_RORCW 437 #define OP_RORIW 438 #define OP_RSM 439 #define OP_SAHF 440 #define OP_SAL1B 441 #define OP_SALCB 442 #define OP_SALIB 443 #define OP_SAL1W 444 #define OP_SALCW 445 #define OP_SALIW 446 #define OP_SAR1B 447 #define OP_SARCB 448 #define OP_SARIB 449 #define OP_SAR1W 450 #define OP_SARCW 451 #define OP_SARIW 452 #define OP_SBB1IB 453 #define OP_SBB1IW 454 #define OP_SBBIB 455 #define OP_SBBIW 456 #define OP_SBBISXW 457 #define OP_SBBB 458 #define OP_SBBW 459 #define OP_SBBRB 460 #define OP_SBBRW 461 #define OP_SCASB 462 #define OP_SCASW 463 #define OP_SETA 464 #define OP_SETAE 465 #define OP_SETB 466 #define OP_SETBE 467 #define OP_SETC 468 #define OP_SETE 469 #define OP_SETG 470 #define OP_SETGE 471 #define OP_SETL 472 #define OP_SETLE 473 #define OP_SETNA 474 #define OP_SETNAE 475 #define OP_SETNB 476 #define OP_SETNBE 477 #define OP_SETNC 478 #define OP_SETNE 479 #define OP_SETNG 480 #define OP_SETNGE 481 #define OP_SETNL 482 #define OP_SETNLE 483 #define OP_SETNO 484 #define OP_SETNP 485 #define OP_SETNS 486 #define OP_SETNZ 487 #define OP_SETO 488 #define OP_SETP 489 #define OP_SETPE 490 #define OP_SETPO 491 #define OP_SETS 492 #define OP_SETZ 493 #define OP_SGDT 494 #define OP_SHL1B 495 #define OP_SHLCB 496 #define OP_SHLIB 497 #define OP_SHL1W 498 #define OP_SHLCW 499 #define OP_SHLIW 500 #define OP_SHLD 501 #define OP_SHLDC 502 #define OP_SHR1B 503 #define OP_SHRCB 504 #define OP_SHRIB 505 #define OP_SHR1W 506 #define OP_SHRCW 507 #define OP_SHRIW 508 #define OP_SHRD 509 #define OP_SHRDC 510 #define OP_SIDT 511 #define OP_SLDT 512 #define OP_SMSW 513 #define OP_STC 514 #define OP_STD 515 #define OP_STI 516 #define OP_STOSB 517 #define OP_STOSW 518 #define OP_STR 519 #define OP_SUB1IB 520 #define OP_SUB1IW 521 #define OP_SUBIB 522 #define OP_SUBIW 523 #define OP_SUBISXW 524 #define OP_SUBB 525 #define OP_SUBW 526 #define OP_SUBRB 527 #define OP_SUBRW 528 #define OP_TEST1IB 529 #define OP_TEST1IW 530 #define OP_TESTIB 531 #define OP_TESTIW 532 #define OP_TESTB 533 #define OP_TESTW 534 #define OP_TESTRB 535 #define OP_TESTRW 536 #define OP_VERR 537 #define OP_VERW 538 #define OP_WAIT 539 #define OP_WBINVD 540 #define OP_WRMSR 541 #define OP_XADDB 542 #define OP_XADDW 543 #define OP_XCHGR 544 #define OP_XCHGB 545 #define OP_XCHGBR 546 #define OP_XCHGW 547 #define OP_XCHGWR 548 #define OP_XLATB 549 #define OP_XOR1IB 550 #define OP_XOR1IW 551 #define OP_XORIB 552 #define OP_XORIW 553 #define OP_XORISXW 554 #define OP_XORB 555 #define OP_XORW 556 #define OP_XORRB 557 #define OP_XORRW 558 /* * Pseudo operand symbols * */ #define RA_N 0x100 #define RA_R8 0x101 #define RA_R16 0x102 #define RA_R32 0x103 #define RA_S16 0x104 #define RA_CR 0x105 #define RA_DR 0x106 #define RA_TR 0x107 #define RA_RF 0x108 #define RA_RT 0x109 #define RA_IMM8 0x10a #define RA_IMM16 0x10b #define RA_IMM32 0x10c #define RA_MOFFS8 0x10d #define RA_MOFFS32 0x10e #define RA_RM8 0x10f #define RA_RM16 0x110 #define RA_RM32 0x111 #define RA_RM64 0x112 #define RA_REL8 0x113 #define RA_REL32 0x114 #define RA_M8 0x115 #define RA_M16 0x116 #define RA_M32 0x117 #define RA_M16_32 0x118 #define RA_M16_AND_32 0x119 #define RA_M64 0x11a #define RA_PTR48 0x11b #define RA_M32REAL 0x11c #define RA_M64REAL 0x11d #define RA_M80REAL 0x11e #define RA_M80DEC 0x11f /* * Actual operand symbols * */ #define RA_I_EAX 0x00 #define RA_I_ECX 0x01 #define RA_I_EDX 0x02 #define RA_I_EBX 0x03 #define RA_SIB 0x04 #define RA_DISP32 0x05 #define RA_I_ESI 0x06 #define RA_I_EDI 0x07 #define RA_I_EAX_DISP8 0x40 #define RA_I_ECX_DISP8 0x41 #define RA_I_EDX_DISP8 0x42 #define RA_I_EBX_DISP8 0x43 #define RA_I_SIB_DISP8 0x44 #define RA_I_EBP_DISP8 0x45 #define RA_I_ESI_DISP8 0x46 #define RA_I_EDI_DISP8 0x47 #define RA_I_EAX_DISP32 0x80 #define RA_I_ECX_DISP32 0x81 #define RA_I_EDX_DISP32 0x82 #define RA_I_EBX_DISP32 0x83 #define RA_I_SIB_DISP32 0x84 #define RA_I_EBP_DISP32 0x85 #define RA_I_ESI_DISP32 0x86 #define RA_I_EDI_DISP32 0x87 /* * Variant symbols * */ #define VA_SLASH0 0 #define VA_SLASH1 1 #define VA_SLASH2 2 #define VA_SLASH3 3 #define VA_SLASH4 4 #define VA_SLASH5 5 #define VA_SLASH6 6 #define VA_SLASH7 7 #define VA_S 8 #define VA_REG 9 #define VA_PLUS_R8 10 #define VA_PLUS_R32 11 #define VA_PLUS_I 12 #define VA_CREG 13 #define VA_DREG 14 #define VA_TREG 15 /* * End of file: opcode.h * */