1 /* udis86 - libudis86/itab.h 2 * 3 * Copyright (c) 2002-2013 Vivek Thampi 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without modification, 7 * are permitted provided that the following conditions are met: 8 * 9 * * Redistributions of source code must retain the above copyright notice, 10 * this list of conditions and the following disclaimer. 11 * * Redistributions in binary form must reproduce the above copyright notice, 12 * this list of conditions and the following disclaimer in the documentation 13 * and/or other materials provided with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 19 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 22 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27 module udis86.c.itab; 28 29 enum ud_table_type 30 { 31 UD_TAB__OPC_TABLE, 32 UD_TAB__OPC_X87, 33 UD_TAB__OPC_MOD, 34 UD_TAB__OPC_VEX_M, 35 UD_TAB__OPC_VEX_P, 36 UD_TAB__OPC_RM, 37 UD_TAB__OPC_VENDOR, 38 UD_TAB__OPC_OSIZE, 39 UD_TAB__OPC_MODE, 40 UD_TAB__OPC_3DNOW, 41 UD_TAB__OPC_REG, 42 UD_TAB__OPC_ASIZE, 43 UD_TAB__OPC_SSE, 44 } 45 46 enum ud_mnemonic_code 47 { 48 UD_Iinvalid, 49 UD_I3dnow, 50 UD_Inone, 51 UD_Idb, 52 UD_Ipause, 53 UD_Iaaa, 54 UD_Iaad, 55 UD_Iaam, 56 UD_Iaas, 57 UD_Iadc, 58 UD_Iadd, 59 UD_Iaddpd, 60 UD_Iaddps, 61 UD_Iaddsd, 62 UD_Iaddss, 63 UD_Iand, 64 UD_Iandpd, 65 UD_Iandps, 66 UD_Iandnpd, 67 UD_Iandnps, 68 UD_Iarpl, 69 UD_Imovsxd, 70 UD_Ibound, 71 UD_Ibsf, 72 UD_Ibsr, 73 UD_Ibswap, 74 UD_Ibt, 75 UD_Ibtc, 76 UD_Ibtr, 77 UD_Ibts, 78 UD_Icall, 79 UD_Icbw, 80 UD_Icwde, 81 UD_Icdqe, 82 UD_Iclc, 83 UD_Icld, 84 UD_Iclflush, 85 UD_Iclgi, 86 UD_Icli, 87 UD_Iclts, 88 UD_Icmc, 89 UD_Icmovo, 90 UD_Icmovno, 91 UD_Icmovb, 92 UD_Icmovae, 93 UD_Icmovz, 94 UD_Icmovnz, 95 UD_Icmovbe, 96 UD_Icmova, 97 UD_Icmovs, 98 UD_Icmovns, 99 UD_Icmovp, 100 UD_Icmovnp, 101 UD_Icmovl, 102 UD_Icmovge, 103 UD_Icmovle, 104 UD_Icmovg, 105 UD_Icmp, 106 UD_Icmppd, 107 UD_Icmpps, 108 UD_Icmpsb, 109 UD_Icmpsw, 110 UD_Icmpsd, 111 UD_Icmpsq, 112 UD_Icmpss, 113 UD_Icmpxchg, 114 UD_Icmpxchg8b, 115 UD_Icmpxchg16b, 116 UD_Icomisd, 117 UD_Icomiss, 118 UD_Icpuid, 119 UD_Icvtdq2pd, 120 UD_Icvtdq2ps, 121 UD_Icvtpd2dq, 122 UD_Icvtpd2pi, 123 UD_Icvtpd2ps, 124 UD_Icvtpi2ps, 125 UD_Icvtpi2pd, 126 UD_Icvtps2dq, 127 UD_Icvtps2pi, 128 UD_Icvtps2pd, 129 UD_Icvtsd2si, 130 UD_Icvtsd2ss, 131 UD_Icvtsi2ss, 132 UD_Icvtss2si, 133 UD_Icvtss2sd, 134 UD_Icvttpd2pi, 135 UD_Icvttpd2dq, 136 UD_Icvttps2dq, 137 UD_Icvttps2pi, 138 UD_Icvttsd2si, 139 UD_Icvtsi2sd, 140 UD_Icvttss2si, 141 UD_Icwd, 142 UD_Icdq, 143 UD_Icqo, 144 UD_Idaa, 145 UD_Idas, 146 UD_Idec, 147 UD_Idiv, 148 UD_Idivpd, 149 UD_Idivps, 150 UD_Idivsd, 151 UD_Idivss, 152 UD_Iemms, 153 UD_Ienter, 154 UD_If2xm1, 155 UD_Ifabs, 156 UD_Ifadd, 157 UD_Ifaddp, 158 UD_Ifbld, 159 UD_Ifbstp, 160 UD_Ifchs, 161 UD_Ifclex, 162 UD_Ifcmovb, 163 UD_Ifcmove, 164 UD_Ifcmovbe, 165 UD_Ifcmovu, 166 UD_Ifcmovnb, 167 UD_Ifcmovne, 168 UD_Ifcmovnbe, 169 UD_Ifcmovnu, 170 UD_Ifucomi, 171 UD_Ifcom, 172 UD_Ifcom2, 173 UD_Ifcomp3, 174 UD_Ifcomi, 175 UD_Ifucomip, 176 UD_Ifcomip, 177 UD_Ifcomp, 178 UD_Ifcomp5, 179 UD_Ifcompp, 180 UD_Ifcos, 181 UD_Ifdecstp, 182 UD_Ifdiv, 183 UD_Ifdivp, 184 UD_Ifdivr, 185 UD_Ifdivrp, 186 UD_Ifemms, 187 UD_Iffree, 188 UD_Iffreep, 189 UD_Ificom, 190 UD_Ificomp, 191 UD_Ifild, 192 UD_Ifincstp, 193 UD_Ifninit, 194 UD_Ifiadd, 195 UD_Ifidivr, 196 UD_Ifidiv, 197 UD_Ifisub, 198 UD_Ifisubr, 199 UD_Ifist, 200 UD_Ifistp, 201 UD_Ifisttp, 202 UD_Ifld, 203 UD_Ifld1, 204 UD_Ifldl2t, 205 UD_Ifldl2e, 206 UD_Ifldpi, 207 UD_Ifldlg2, 208 UD_Ifldln2, 209 UD_Ifldz, 210 UD_Ifldcw, 211 UD_Ifldenv, 212 UD_Ifmul, 213 UD_Ifmulp, 214 UD_Ifimul, 215 UD_Ifnop, 216 UD_Ifpatan, 217 UD_Ifprem, 218 UD_Ifprem1, 219 UD_Ifptan, 220 UD_Ifrndint, 221 UD_Ifrstor, 222 UD_Ifnsave, 223 UD_Ifscale, 224 UD_Ifsin, 225 UD_Ifsincos, 226 UD_Ifsqrt, 227 UD_Ifstp, 228 UD_Ifstp1, 229 UD_Ifstp8, 230 UD_Ifstp9, 231 UD_Ifst, 232 UD_Ifnstcw, 233 UD_Ifnstenv, 234 UD_Ifnstsw, 235 UD_Ifsub, 236 UD_Ifsubp, 237 UD_Ifsubr, 238 UD_Ifsubrp, 239 UD_Iftst, 240 UD_Ifucom, 241 UD_Ifucomp, 242 UD_Ifucompp, 243 UD_Ifxam, 244 UD_Ifxch, 245 UD_Ifxch4, 246 UD_Ifxch7, 247 UD_Ifxrstor, 248 UD_Ifxsave, 249 UD_Ifxtract, 250 UD_Ifyl2x, 251 UD_Ifyl2xp1, 252 UD_Ihlt, 253 UD_Iidiv, 254 UD_Iin, 255 UD_Iimul, 256 UD_Iinc, 257 UD_Iinsb, 258 UD_Iinsw, 259 UD_Iinsd, 260 UD_Iint1, 261 UD_Iint3, 262 UD_Iint, 263 UD_Iinto, 264 UD_Iinvd, 265 UD_Iinvept, 266 UD_Iinvlpg, 267 UD_Iinvlpga, 268 UD_Iinvvpid, 269 UD_Iiretw, 270 UD_Iiretd, 271 UD_Iiretq, 272 UD_Ijo, 273 UD_Ijno, 274 UD_Ijb, 275 UD_Ijae, 276 UD_Ijz, 277 UD_Ijnz, 278 UD_Ijbe, 279 UD_Ija, 280 UD_Ijs, 281 UD_Ijns, 282 UD_Ijp, 283 UD_Ijnp, 284 UD_Ijl, 285 UD_Ijge, 286 UD_Ijle, 287 UD_Ijg, 288 UD_Ijcxz, 289 UD_Ijecxz, 290 UD_Ijrcxz, 291 UD_Ijmp, 292 UD_Ilahf, 293 UD_Ilar, 294 UD_Ilddqu, 295 UD_Ildmxcsr, 296 UD_Ilds, 297 UD_Ilea, 298 UD_Iles, 299 UD_Ilfs, 300 UD_Ilgs, 301 UD_Ilidt, 302 UD_Ilss, 303 UD_Ileave, 304 UD_Ilfence, 305 UD_Ilgdt, 306 UD_Illdt, 307 UD_Ilmsw, 308 UD_Ilock, 309 UD_Ilodsb, 310 UD_Ilodsw, 311 UD_Ilodsd, 312 UD_Ilodsq, 313 UD_Iloopne, 314 UD_Iloope, 315 UD_Iloop, 316 UD_Ilsl, 317 UD_Iltr, 318 UD_Imaskmovq, 319 UD_Imaxpd, 320 UD_Imaxps, 321 UD_Imaxsd, 322 UD_Imaxss, 323 UD_Imfence, 324 UD_Iminpd, 325 UD_Iminps, 326 UD_Iminsd, 327 UD_Iminss, 328 UD_Imonitor, 329 UD_Imontmul, 330 UD_Imov, 331 UD_Imovapd, 332 UD_Imovaps, 333 UD_Imovd, 334 UD_Imovhpd, 335 UD_Imovhps, 336 UD_Imovlhps, 337 UD_Imovlpd, 338 UD_Imovlps, 339 UD_Imovhlps, 340 UD_Imovmskpd, 341 UD_Imovmskps, 342 UD_Imovntdq, 343 UD_Imovnti, 344 UD_Imovntpd, 345 UD_Imovntps, 346 UD_Imovntq, 347 UD_Imovq, 348 UD_Imovsb, 349 UD_Imovsw, 350 UD_Imovsd, 351 UD_Imovsq, 352 UD_Imovss, 353 UD_Imovsx, 354 UD_Imovupd, 355 UD_Imovups, 356 UD_Imovzx, 357 UD_Imul, 358 UD_Imulpd, 359 UD_Imulps, 360 UD_Imulsd, 361 UD_Imulss, 362 UD_Imwait, 363 UD_Ineg, 364 UD_Inop, 365 UD_Inot, 366 UD_Ior, 367 UD_Iorpd, 368 UD_Iorps, 369 UD_Iout, 370 UD_Ioutsb, 371 UD_Ioutsw, 372 UD_Ioutsd, 373 UD_Ipacksswb, 374 UD_Ipackssdw, 375 UD_Ipackuswb, 376 UD_Ipaddb, 377 UD_Ipaddw, 378 UD_Ipaddd, 379 UD_Ipaddsb, 380 UD_Ipaddsw, 381 UD_Ipaddusb, 382 UD_Ipaddusw, 383 UD_Ipand, 384 UD_Ipandn, 385 UD_Ipavgb, 386 UD_Ipavgw, 387 UD_Ipcmpeqb, 388 UD_Ipcmpeqw, 389 UD_Ipcmpeqd, 390 UD_Ipcmpgtb, 391 UD_Ipcmpgtw, 392 UD_Ipcmpgtd, 393 UD_Ipextrb, 394 UD_Ipextrd, 395 UD_Ipextrq, 396 UD_Ipextrw, 397 UD_Ipinsrb, 398 UD_Ipinsrw, 399 UD_Ipinsrd, 400 UD_Ipinsrq, 401 UD_Ipmaddwd, 402 UD_Ipmaxsw, 403 UD_Ipmaxub, 404 UD_Ipminsw, 405 UD_Ipminub, 406 UD_Ipmovmskb, 407 UD_Ipmulhuw, 408 UD_Ipmulhw, 409 UD_Ipmullw, 410 UD_Ipop, 411 UD_Ipopa, 412 UD_Ipopad, 413 UD_Ipopfw, 414 UD_Ipopfd, 415 UD_Ipopfq, 416 UD_Ipor, 417 UD_Iprefetch, 418 UD_Iprefetchnta, 419 UD_Iprefetcht0, 420 UD_Iprefetcht1, 421 UD_Iprefetcht2, 422 UD_Ipsadbw, 423 UD_Ipshufw, 424 UD_Ipsllw, 425 UD_Ipslld, 426 UD_Ipsllq, 427 UD_Ipsraw, 428 UD_Ipsrad, 429 UD_Ipsrlw, 430 UD_Ipsrld, 431 UD_Ipsrlq, 432 UD_Ipsubb, 433 UD_Ipsubw, 434 UD_Ipsubd, 435 UD_Ipsubsb, 436 UD_Ipsubsw, 437 UD_Ipsubusb, 438 UD_Ipsubusw, 439 UD_Ipunpckhbw, 440 UD_Ipunpckhwd, 441 UD_Ipunpckhdq, 442 UD_Ipunpcklbw, 443 UD_Ipunpcklwd, 444 UD_Ipunpckldq, 445 UD_Ipi2fw, 446 UD_Ipi2fd, 447 UD_Ipf2iw, 448 UD_Ipf2id, 449 UD_Ipfnacc, 450 UD_Ipfpnacc, 451 UD_Ipfcmpge, 452 UD_Ipfmin, 453 UD_Ipfrcp, 454 UD_Ipfrsqrt, 455 UD_Ipfsub, 456 UD_Ipfadd, 457 UD_Ipfcmpgt, 458 UD_Ipfmax, 459 UD_Ipfrcpit1, 460 UD_Ipfrsqit1, 461 UD_Ipfsubr, 462 UD_Ipfacc, 463 UD_Ipfcmpeq, 464 UD_Ipfmul, 465 UD_Ipfrcpit2, 466 UD_Ipmulhrw, 467 UD_Ipswapd, 468 UD_Ipavgusb, 469 UD_Ipush, 470 UD_Ipusha, 471 UD_Ipushad, 472 UD_Ipushfw, 473 UD_Ipushfd, 474 UD_Ipushfq, 475 UD_Ipxor, 476 UD_Ircl, 477 UD_Ircr, 478 UD_Irol, 479 UD_Iror, 480 UD_Ircpps, 481 UD_Ircpss, 482 UD_Irdmsr, 483 UD_Irdpmc, 484 UD_Irdtsc, 485 UD_Irdtscp, 486 UD_Irepne, 487 UD_Irep, 488 UD_Iret, 489 UD_Iretf, 490 UD_Irsm, 491 UD_Irsqrtps, 492 UD_Irsqrtss, 493 UD_Isahf, 494 UD_Isalc, 495 UD_Isar, 496 UD_Ishl, 497 UD_Ishr, 498 UD_Isbb, 499 UD_Iscasb, 500 UD_Iscasw, 501 UD_Iscasd, 502 UD_Iscasq, 503 UD_Iseto, 504 UD_Isetno, 505 UD_Isetb, 506 UD_Isetae, 507 UD_Isetz, 508 UD_Isetnz, 509 UD_Isetbe, 510 UD_Iseta, 511 UD_Isets, 512 UD_Isetns, 513 UD_Isetp, 514 UD_Isetnp, 515 UD_Isetl, 516 UD_Isetge, 517 UD_Isetle, 518 UD_Isetg, 519 UD_Isfence, 520 UD_Isgdt, 521 UD_Ishld, 522 UD_Ishrd, 523 UD_Ishufpd, 524 UD_Ishufps, 525 UD_Isidt, 526 UD_Isldt, 527 UD_Ismsw, 528 UD_Isqrtps, 529 UD_Isqrtpd, 530 UD_Isqrtsd, 531 UD_Isqrtss, 532 UD_Istc, 533 UD_Istd, 534 UD_Istgi, 535 UD_Isti, 536 UD_Iskinit, 537 UD_Istmxcsr, 538 UD_Istosb, 539 UD_Istosw, 540 UD_Istosd, 541 UD_Istosq, 542 UD_Istr, 543 UD_Isub, 544 UD_Isubpd, 545 UD_Isubps, 546 UD_Isubsd, 547 UD_Isubss, 548 UD_Iswapgs, 549 UD_Isyscall, 550 UD_Isysenter, 551 UD_Isysexit, 552 UD_Isysret, 553 UD_Itest, 554 UD_Iucomisd, 555 UD_Iucomiss, 556 UD_Iud2, 557 UD_Iunpckhpd, 558 UD_Iunpckhps, 559 UD_Iunpcklps, 560 UD_Iunpcklpd, 561 UD_Iverr, 562 UD_Iverw, 563 UD_Ivmcall, 564 UD_Ivmclear, 565 UD_Ivmxon, 566 UD_Ivmptrld, 567 UD_Ivmptrst, 568 UD_Ivmlaunch, 569 UD_Ivmresume, 570 UD_Ivmxoff, 571 UD_Ivmread, 572 UD_Ivmwrite, 573 UD_Ivmrun, 574 UD_Ivmmcall, 575 UD_Ivmload, 576 UD_Ivmsave, 577 UD_Iwait, 578 UD_Iwbinvd, 579 UD_Iwrmsr, 580 UD_Ixadd, 581 UD_Ixchg, 582 UD_Ixgetbv, 583 UD_Ixlatb, 584 UD_Ixor, 585 UD_Ixorpd, 586 UD_Ixorps, 587 UD_Ixcryptecb, 588 UD_Ixcryptcbc, 589 UD_Ixcryptctr, 590 UD_Ixcryptcfb, 591 UD_Ixcryptofb, 592 UD_Ixrstor, 593 UD_Ixsave, 594 UD_Ixsetbv, 595 UD_Ixsha1, 596 UD_Ixsha256, 597 UD_Ixstore, 598 UD_Iaesdec, 599 UD_Iaesdeclast, 600 UD_Iaesenc, 601 UD_Iaesenclast, 602 UD_Iaesimc, 603 UD_Iaeskeygenassist, 604 UD_Ipclmulqdq, 605 UD_Igetsec, 606 UD_Imovdqa, 607 UD_Imaskmovdqu, 608 UD_Imovdq2q, 609 UD_Imovdqu, 610 UD_Imovq2dq, 611 UD_Ipaddq, 612 UD_Ipsubq, 613 UD_Ipmuludq, 614 UD_Ipshufhw, 615 UD_Ipshuflw, 616 UD_Ipshufd, 617 UD_Ipslldq, 618 UD_Ipsrldq, 619 UD_Ipunpckhqdq, 620 UD_Ipunpcklqdq, 621 UD_Iaddsubpd, 622 UD_Iaddsubps, 623 UD_Ihaddpd, 624 UD_Ihaddps, 625 UD_Ihsubpd, 626 UD_Ihsubps, 627 UD_Imovddup, 628 UD_Imovshdup, 629 UD_Imovsldup, 630 UD_Ipabsb, 631 UD_Ipabsw, 632 UD_Ipabsd, 633 UD_Ipshufb, 634 UD_Iphaddw, 635 UD_Iphaddd, 636 UD_Iphaddsw, 637 UD_Ipmaddubsw, 638 UD_Iphsubw, 639 UD_Iphsubd, 640 UD_Iphsubsw, 641 UD_Ipsignb, 642 UD_Ipsignd, 643 UD_Ipsignw, 644 UD_Ipmulhrsw, 645 UD_Ipalignr, 646 UD_Ipblendvb, 647 UD_Ipmuldq, 648 UD_Ipminsb, 649 UD_Ipminsd, 650 UD_Ipminuw, 651 UD_Ipminud, 652 UD_Ipmaxsb, 653 UD_Ipmaxsd, 654 UD_Ipmaxud, 655 UD_Ipmaxuw, 656 UD_Ipmulld, 657 UD_Iphminposuw, 658 UD_Iroundps, 659 UD_Iroundpd, 660 UD_Iroundss, 661 UD_Iroundsd, 662 UD_Iblendpd, 663 UD_Ipblendw, 664 UD_Iblendps, 665 UD_Iblendvpd, 666 UD_Iblendvps, 667 UD_Idpps, 668 UD_Idppd, 669 UD_Impsadbw, 670 UD_Iextractps, 671 UD_Iinsertps, 672 UD_Imovntdqa, 673 UD_Ipackusdw, 674 UD_Ipmovsxbw, 675 UD_Ipmovsxbd, 676 UD_Ipmovsxbq, 677 UD_Ipmovsxwd, 678 UD_Ipmovsxwq, 679 UD_Ipmovsxdq, 680 UD_Ipmovzxbw, 681 UD_Ipmovzxbd, 682 UD_Ipmovzxbq, 683 UD_Ipmovzxwd, 684 UD_Ipmovzxwq, 685 UD_Ipmovzxdq, 686 UD_Ipcmpeqq, 687 UD_Ipopcnt, 688 UD_Iptest, 689 UD_Ipcmpestri, 690 UD_Ipcmpestrm, 691 UD_Ipcmpgtq, 692 UD_Ipcmpistri, 693 UD_Ipcmpistrm, 694 UD_Imovbe, 695 UD_Icrc32, 696 UD_MAX_MNEMONIC_CODE, 697 } 698 699 extern(C) extern __gshared const(char)** ud_mnemonics_str;