github.com/rohankumardubey/syslog-redirector-golang@v0.0.0-20140320174030-4859f03d829a/src/cmd/6l/optab.c (about) 1 // Inferno utils/6l/optab.c 2 // http://code.google.com/p/inferno-os/source/browse/utils/6l/optab.c 3 // 4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. 5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) 6 // Portions Copyright © 1997-1999 Vita Nuova Limited 7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com) 8 // Portions Copyright © 2004,2006 Bruce Ellis 9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) 10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others 11 // Portions Copyright © 2009 The Go Authors. All rights reserved. 12 // 13 // Permission is hereby granted, free of charge, to any person obtaining a copy 14 // of this software and associated documentation files (the "Software"), to deal 15 // in the Software without restriction, including without limitation the rights 16 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 // copies of the Software, and to permit persons to whom the Software is 18 // furnished to do so, subject to the following conditions: 19 // 20 // The above copyright notice and this permission notice shall be included in 21 // all copies or substantial portions of the Software. 22 // 23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 // THE SOFTWARE. 30 31 #include "l.h" 32 33 uchar ynone[] = 34 { 35 Ynone, Ynone, Zlit, 1, 36 0 37 }; 38 uchar ytext[] = 39 { 40 Ymb, Yi64, Zpseudo,1, 41 0 42 }; 43 uchar ynop[] = 44 { 45 Ynone, Ynone, Zpseudo,0, 46 Ynone, Yiauto, Zpseudo,0, 47 Ynone, Yml, Zpseudo,0, 48 Ynone, Yrf, Zpseudo,0, 49 Ynone, Yxr, Zpseudo,0, 50 Yiauto, Ynone, Zpseudo,0, 51 Yml, Ynone, Zpseudo,0, 52 Yrf, Ynone, Zpseudo,0, 53 Yxr, Ynone, Zpseudo,1, 54 0 55 }; 56 uchar yfuncdata[] = 57 { 58 Yi32, Ym, Zpseudo, 0, 59 0 60 }; 61 uchar ypcdata[] = 62 { 63 Yi32, Yi32, Zpseudo, 0, 64 0 65 }; 66 uchar yxorb[] = 67 { 68 Yi32, Yal, Zib_, 1, 69 Yi32, Ymb, Zibo_m, 2, 70 Yrb, Ymb, Zr_m, 1, 71 Ymb, Yrb, Zm_r, 1, 72 0 73 }; 74 uchar yxorl[] = 75 { 76 Yi8, Yml, Zibo_m, 2, 77 Yi32, Yax, Zil_, 1, 78 Yi32, Yml, Zilo_m, 2, 79 Yrl, Yml, Zr_m, 1, 80 Yml, Yrl, Zm_r, 1, 81 0 82 }; 83 uchar yaddl[] = 84 { 85 Yi8, Yml, Zibo_m, 2, 86 Yi32, Yax, Zil_, 1, 87 Yi32, Yml, Zilo_m, 2, 88 Yrl, Yml, Zr_m, 1, 89 Yml, Yrl, Zm_r, 1, 90 0 91 }; 92 uchar yincb[] = 93 { 94 Ynone, Ymb, Zo_m, 2, 95 0 96 }; 97 uchar yincw[] = 98 { 99 Ynone, Yml, Zo_m, 2, 100 0 101 }; 102 uchar yincl[] = 103 { 104 Ynone, Yml, Zo_m, 2, 105 0 106 }; 107 uchar ycmpb[] = 108 { 109 Yal, Yi32, Z_ib, 1, 110 Ymb, Yi32, Zm_ibo, 2, 111 Ymb, Yrb, Zm_r, 1, 112 Yrb, Ymb, Zr_m, 1, 113 0 114 }; 115 uchar ycmpl[] = 116 { 117 Yml, Yi8, Zm_ibo, 2, 118 Yax, Yi32, Z_il, 1, 119 Yml, Yi32, Zm_ilo, 2, 120 Yml, Yrl, Zm_r, 1, 121 Yrl, Yml, Zr_m, 1, 122 0 123 }; 124 uchar yshb[] = 125 { 126 Yi1, Ymb, Zo_m, 2, 127 Yi32, Ymb, Zibo_m, 2, 128 Ycx, Ymb, Zo_m, 2, 129 0 130 }; 131 uchar yshl[] = 132 { 133 Yi1, Yml, Zo_m, 2, 134 Yi32, Yml, Zibo_m, 2, 135 Ycl, Yml, Zo_m, 2, 136 Ycx, Yml, Zo_m, 2, 137 0 138 }; 139 uchar ytestb[] = 140 { 141 Yi32, Yal, Zib_, 1, 142 Yi32, Ymb, Zibo_m, 2, 143 Yrb, Ymb, Zr_m, 1, 144 Ymb, Yrb, Zm_r, 1, 145 0 146 }; 147 uchar ytestl[] = 148 { 149 Yi32, Yax, Zil_, 1, 150 Yi32, Yml, Zilo_m, 2, 151 Yrl, Yml, Zr_m, 1, 152 Yml, Yrl, Zm_r, 1, 153 0 154 }; 155 uchar ymovb[] = 156 { 157 Yrb, Ymb, Zr_m, 1, 158 Ymb, Yrb, Zm_r, 1, 159 Yi32, Yrb, Zib_rp, 1, 160 Yi32, Ymb, Zibo_m, 2, 161 0 162 }; 163 uchar ymbs[] = 164 { 165 Ymb, Ynone, Zm_o, 2, 166 0 167 }; 168 uchar ybtl[] = 169 { 170 Yi8, Yml, Zibo_m, 2, 171 Yrl, Yml, Zr_m, 1, 172 0 173 }; 174 uchar ymovw[] = 175 { 176 Yrl, Yml, Zr_m, 1, 177 Yml, Yrl, Zm_r, 1, 178 Yi0, Yrl, Zclr, 1, 179 Yi32, Yrl, Zil_rp, 1, 180 Yi32, Yml, Zilo_m, 2, 181 Yiauto, Yrl, Zaut_r, 2, 182 0 183 }; 184 uchar ymovl[] = 185 { 186 Yrl, Yml, Zr_m, 1, 187 Yml, Yrl, Zm_r, 1, 188 Yi0, Yrl, Zclr, 1, 189 Yi32, Yrl, Zil_rp, 1, 190 Yi32, Yml, Zilo_m, 2, 191 Yml, Ymr, Zm_r_xm, 1, // MMX MOVD 192 Ymr, Yml, Zr_m_xm, 1, // MMX MOVD 193 Yml, Yxr, Zm_r_xm, 2, // XMM MOVD (32 bit) 194 Yxr, Yml, Zr_m_xm, 2, // XMM MOVD (32 bit) 195 Yiauto, Yrl, Zaut_r, 2, 196 0 197 }; 198 uchar yret[] = 199 { 200 Ynone, Ynone, Zo_iw, 1, 201 Yi32, Ynone, Zo_iw, 1, 202 0 203 }; 204 uchar ymovq[] = 205 { 206 Yrl, Yml, Zr_m, 1, // 0x89 207 Yml, Yrl, Zm_r, 1, // 0x8b 208 Yi0, Yrl, Zclr, 1, // 0x31 209 Ys32, Yrl, Zilo_m, 2, // 32 bit signed 0xc7,(0) 210 Yi64, Yrl, Ziq_rp, 1, // 0xb8 -- 32/64 bit immediate 211 Yi32, Yml, Zilo_m, 2, // 0xc7,(0) 212 Ym, Ymr, Zm_r_xm_nr, 1, // MMX MOVQ (shorter encoding) 213 Ymr, Ym, Zr_m_xm_nr, 1, // MMX MOVQ 214 Ymm, Ymr, Zm_r_xm, 1, // MMX MOVD 215 Ymr, Ymm, Zr_m_xm, 1, // MMX MOVD 216 Yxr, Ymr, Zm_r_xm_nr, 2, // MOVDQ2Q 217 Yxm, Yxr, Zm_r_xm_nr, 2, // MOVQ xmm1/m64 -> xmm2 218 Yxr, Yxm, Zr_m_xm_nr, 2, // MOVQ xmm1 -> xmm2/m64 219 Yml, Yxr, Zm_r_xm, 2, // MOVD xmm load 220 Yxr, Yml, Zr_m_xm, 2, // MOVD xmm store 221 Yiauto, Yrl, Zaut_r, 2, // built-in LEAQ 222 0 223 }; 224 uchar ym_rl[] = 225 { 226 Ym, Yrl, Zm_r, 1, 227 0 228 }; 229 uchar yrl_m[] = 230 { 231 Yrl, Ym, Zr_m, 1, 232 0 233 }; 234 uchar ymb_rl[] = 235 { 236 Ymb, Yrl, Zmb_r, 1, 237 0 238 }; 239 uchar yml_rl[] = 240 { 241 Yml, Yrl, Zm_r, 1, 242 0 243 }; 244 uchar yrl_ml[] = 245 { 246 Yrl, Yml, Zr_m, 1, 247 0 248 }; 249 uchar yml_mb[] = 250 { 251 Yrb, Ymb, Zr_m, 1, 252 Ymb, Yrb, Zm_r, 1, 253 0 254 }; 255 uchar yrb_mb[] = 256 { 257 Yrb, Ymb, Zr_m, 1, 258 0 259 }; 260 uchar yxchg[] = 261 { 262 Yax, Yrl, Z_rp, 1, 263 Yrl, Yax, Zrp_, 1, 264 Yrl, Yml, Zr_m, 1, 265 Yml, Yrl, Zm_r, 1, 266 0 267 }; 268 uchar ydivl[] = 269 { 270 Yml, Ynone, Zm_o, 2, 271 0 272 }; 273 uchar ydivb[] = 274 { 275 Ymb, Ynone, Zm_o, 2, 276 0 277 }; 278 uchar yimul[] = 279 { 280 Yml, Ynone, Zm_o, 2, 281 Yi8, Yrl, Zib_rr, 1, 282 Yi32, Yrl, Zil_rr, 1, 283 Yml, Yrl, Zm_r, 2, 284 0 285 }; 286 uchar yimul3[] = 287 { 288 Yml, Yrl, Zibm_r, 2, 289 0 290 }; 291 uchar ybyte[] = 292 { 293 Yi64, Ynone, Zbyte, 1, 294 0 295 }; 296 uchar yin[] = 297 { 298 Yi32, Ynone, Zib_, 1, 299 Ynone, Ynone, Zlit, 1, 300 0 301 }; 302 uchar yint[] = 303 { 304 Yi32, Ynone, Zib_, 1, 305 0 306 }; 307 uchar ypushl[] = 308 { 309 Yrl, Ynone, Zrp_, 1, 310 Ym, Ynone, Zm_o, 2, 311 Yi8, Ynone, Zib_, 1, 312 Yi32, Ynone, Zil_, 1, 313 0 314 }; 315 uchar ypopl[] = 316 { 317 Ynone, Yrl, Z_rp, 1, 318 Ynone, Ym, Zo_m, 2, 319 0 320 }; 321 uchar ybswap[] = 322 { 323 Ynone, Yrl, Z_rp, 2, 324 0, 325 }; 326 uchar yscond[] = 327 { 328 Ynone, Ymb, Zo_m, 2, 329 0 330 }; 331 uchar yjcond[] = 332 { 333 Ynone, Ybr, Zbr, 0, 334 Yi0, Ybr, Zbr, 0, 335 Yi1, Ybr, Zbr, 1, 336 0 337 }; 338 uchar yloop[] = 339 { 340 Ynone, Ybr, Zloop, 1, 341 0 342 }; 343 uchar ycall[] = 344 { 345 Ynone, Yml, Zo_m64, 0, 346 Yrx, Yrx, Zo_m64, 2, 347 Ynone, Ybr, Zcall, 1, 348 0 349 }; 350 uchar yjmp[] = 351 { 352 Ynone, Yml, Zo_m64, 2, 353 Ynone, Ybr, Zjmp, 1, 354 0 355 }; 356 357 uchar yfmvd[] = 358 { 359 Ym, Yf0, Zm_o, 2, 360 Yf0, Ym, Zo_m, 2, 361 Yrf, Yf0, Zm_o, 2, 362 Yf0, Yrf, Zo_m, 2, 363 0 364 }; 365 uchar yfmvdp[] = 366 { 367 Yf0, Ym, Zo_m, 2, 368 Yf0, Yrf, Zo_m, 2, 369 0 370 }; 371 uchar yfmvf[] = 372 { 373 Ym, Yf0, Zm_o, 2, 374 Yf0, Ym, Zo_m, 2, 375 0 376 }; 377 uchar yfmvx[] = 378 { 379 Ym, Yf0, Zm_o, 2, 380 0 381 }; 382 uchar yfmvp[] = 383 { 384 Yf0, Ym, Zo_m, 2, 385 0 386 }; 387 uchar yfadd[] = 388 { 389 Ym, Yf0, Zm_o, 2, 390 Yrf, Yf0, Zm_o, 2, 391 Yf0, Yrf, Zo_m, 2, 392 0 393 }; 394 uchar yfaddp[] = 395 { 396 Yf0, Yrf, Zo_m, 2, 397 0 398 }; 399 uchar yfxch[] = 400 { 401 Yf0, Yrf, Zo_m, 2, 402 Yrf, Yf0, Zm_o, 2, 403 0 404 }; 405 uchar ycompp[] = 406 { 407 Yf0, Yrf, Zo_m, 2, /* botch is really f0,f1 */ 408 0 409 }; 410 uchar ystsw[] = 411 { 412 Ynone, Ym, Zo_m, 2, 413 Ynone, Yax, Zlit, 1, 414 0 415 }; 416 uchar ystcw[] = 417 { 418 Ynone, Ym, Zo_m, 2, 419 Ym, Ynone, Zm_o, 2, 420 0 421 }; 422 uchar ysvrs[] = 423 { 424 Ynone, Ym, Zo_m, 2, 425 Ym, Ynone, Zm_o, 2, 426 0 427 }; 428 uchar ymm[] = 429 { 430 Ymm, Ymr, Zm_r_xm, 1, 431 Yxm, Yxr, Zm_r_xm, 2, 432 0 433 }; 434 uchar yxm[] = 435 { 436 Yxm, Yxr, Zm_r_xm, 1, 437 0 438 }; 439 uchar yxcvm1[] = 440 { 441 Yxm, Yxr, Zm_r_xm, 2, 442 Yxm, Ymr, Zm_r_xm, 2, 443 0 444 }; 445 uchar yxcvm2[] = 446 { 447 Yxm, Yxr, Zm_r_xm, 2, 448 Ymm, Yxr, Zm_r_xm, 2, 449 0 450 }; 451 uchar yxmq[] = 452 { 453 Yxm, Yxr, Zm_r_xm, 2, 454 0 455 }; 456 uchar yxr[] = 457 { 458 Yxr, Yxr, Zm_r_xm, 1, 459 0 460 }; 461 uchar yxr_ml[] = 462 { 463 Yxr, Yml, Zr_m_xm, 1, 464 0 465 }; 466 uchar ymr[] = 467 { 468 Ymr, Ymr, Zm_r, 1, 469 0 470 }; 471 uchar ymr_ml[] = 472 { 473 Ymr, Yml, Zr_m_xm, 1, 474 0 475 }; 476 uchar yxcmp[] = 477 { 478 Yxm, Yxr, Zm_r_xm, 1, 479 0 480 }; 481 uchar yxcmpi[] = 482 { 483 Yxm, Yxr, Zm_r_i_xm, 2, 484 0 485 }; 486 uchar yxmov[] = 487 { 488 Yxm, Yxr, Zm_r_xm, 1, 489 Yxr, Yxm, Zr_m_xm, 1, 490 0 491 }; 492 uchar yxcvfl[] = 493 { 494 Yxm, Yrl, Zm_r_xm, 1, 495 0 496 }; 497 uchar yxcvlf[] = 498 { 499 Yml, Yxr, Zm_r_xm, 1, 500 0 501 }; 502 uchar yxcvfq[] = 503 { 504 Yxm, Yrl, Zm_r_xm, 2, 505 0 506 }; 507 uchar yxcvqf[] = 508 { 509 Yml, Yxr, Zm_r_xm, 2, 510 0 511 }; 512 uchar yps[] = 513 { 514 Ymm, Ymr, Zm_r_xm, 1, 515 Yi8, Ymr, Zibo_m_xm, 2, 516 Yxm, Yxr, Zm_r_xm, 2, 517 Yi8, Yxr, Zibo_m_xm, 3, 518 0 519 }; 520 uchar yxrrl[] = 521 { 522 Yxr, Yrl, Zm_r, 1, 523 0 524 }; 525 uchar ymfp[] = 526 { 527 Ymm, Ymr, Zm_r_3d, 1, 528 0, 529 }; 530 uchar ymrxr[] = 531 { 532 Ymr, Yxr, Zm_r, 1, 533 Yxm, Yxr, Zm_r_xm, 1, 534 0 535 }; 536 uchar ymshuf[] = 537 { 538 Ymm, Ymr, Zibm_r, 2, 539 0 540 }; 541 uchar ymshufb[] = 542 { 543 Yxm, Yxr, Zm2_r, 2, 544 0 545 }; 546 uchar yxshuf[] = 547 { 548 Yxm, Yxr, Zibm_r, 2, 549 0 550 }; 551 uchar yextrw[] = 552 { 553 Yxr, Yrl, Zibm_r, 2, 554 0 555 }; 556 uchar yinsrw[] = 557 { 558 Yml, Yxr, Zibm_r, 2, 559 0 560 }; 561 uchar yinsr[] = 562 { 563 Ymm, Yxr, Zibm_r, 3, 564 0 565 }; 566 uchar ypsdq[] = 567 { 568 Yi8, Yxr, Zibo_m, 2, 569 0 570 }; 571 uchar ymskb[] = 572 { 573 Yxr, Yrl, Zm_r_xm, 2, 574 Ymr, Yrl, Zm_r_xm, 1, 575 0 576 }; 577 uchar ycrc32l[] = 578 { 579 Yml, Yrl, Zlitm_r, 0, 580 }; 581 uchar yprefetch[] = 582 { 583 Ym, Ynone, Zm_o, 2, 584 0, 585 }; 586 uchar yaes[] = 587 { 588 Yxm, Yxr, Zlitm_r, 2, 589 0 590 }; 591 uchar yaes2[] = 592 { 593 Yxm, Yxr, Zibm_r, 2, 594 0 595 }; 596 597 /* 598 * You are doasm, holding in your hand a Prog* with p->as set to, say, ACRC32, 599 * and p->from and p->to as operands (Adr*). The linker scans optab to find 600 * the entry with the given p->as and then looks through the ytable for that 601 * instruction (the second field in the optab struct) for a line whose first 602 * two values match the Ytypes of the p->from and p->to operands. The function 603 * oclass in span.c computes the specific Ytype of an operand and then the set 604 * of more general Ytypes that it satisfies is implied by the ycover table, set 605 * up in instinit. For example, oclass distinguishes the constants 0 and 1 606 * from the more general 8-bit constants, but instinit says 607 * 608 * ycover[Yi0*Ymax + Ys32] = 1; 609 * ycover[Yi1*Ymax + Ys32] = 1; 610 * ycover[Yi8*Ymax + Ys32] = 1; 611 * 612 * which means that Yi0, Yi1, and Yi8 all count as Ys32 (signed 32) 613 * if that's what an instruction can handle. 614 * 615 * In parallel with the scan through the ytable for the appropriate line, there 616 * is a z pointer that starts out pointing at the strange magic byte list in 617 * the Optab struct. With each step past a non-matching ytable line, z 618 * advances by the 4th entry in the line. When a matching line is found, that 619 * z pointer has the extra data to use in laying down the instruction bytes. 620 * The actual bytes laid down are a function of the 3rd entry in the line (that 621 * is, the Ztype) and the z bytes. 622 * 623 * For example, let's look at AADDL. The optab line says: 624 * { AADDL, yaddl, Px, 0x83,(00),0x05,0x81,(00),0x01,0x03 }, 625 * 626 * and yaddl says 627 * uchar yaddl[] = 628 * { 629 * Yi8, Yml, Zibo_m, 2, 630 * Yi32, Yax, Zil_, 1, 631 * Yi32, Yml, Zilo_m, 2, 632 * Yrl, Yml, Zr_m, 1, 633 * Yml, Yrl, Zm_r, 1, 634 * 0 635 * }; 636 * 637 * so there are 5 possible types of ADDL instruction that can be laid down, and 638 * possible states used to lay them down (Ztype and z pointer, assuming z 639 * points at {0x83,(00),0x05,0x81,(00),0x01,0x03}) are: 640 * 641 * Yi8, Yml -> Zibo_m, z (0x83, 00) 642 * Yi32, Yax -> Zil_, z+2 (0x05) 643 * Yi32, Yml -> Zilo_m, z+2+1 (0x81, 0x00) 644 * Yrl, Yml -> Zr_m, z+2+1+2 (0x01) 645 * Yml, Yrl -> Zm_r, z+2+1+2+1 (0x03) 646 * 647 * The Pconstant in the optab line controls the prefix bytes to emit. That's 648 * relatively straightforward as this program goes. 649 * 650 * The switch on t[2] in doasm implements the various Z cases. Zibo_m, for 651 * example, is an opcode byte (z[0]) then an asmando (which is some kind of 652 * encoded addressing mode for the Yml arg), and then a single immediate byte. 653 * Zilo_m is the same but a long (32-bit) immediate. 654 */ 655 Optab optab[] = 656 /* as, ytab, andproto, opcode */ 657 { 658 { AXXX }, 659 { AAAA, ynone, P32, 0x37 }, 660 { AAAD, ynone, P32, 0xd5,0x0a }, 661 { AAAM, ynone, P32, 0xd4,0x0a }, 662 { AAAS, ynone, P32, 0x3f }, 663 { AADCB, yxorb, Pb, 0x14,0x80,(02),0x10,0x10 }, 664 { AADCL, yxorl, Px, 0x83,(02),0x15,0x81,(02),0x11,0x13 }, 665 { AADCQ, yxorl, Pw, 0x83,(02),0x15,0x81,(02),0x11,0x13 }, 666 { AADCW, yxorl, Pe, 0x83,(02),0x15,0x81,(02),0x11,0x13 }, 667 { AADDB, yxorb, Pb, 0x04,0x80,(00),0x00,0x02 }, 668 { AADDL, yaddl, Px, 0x83,(00),0x05,0x81,(00),0x01,0x03 }, 669 { AADDPD, yxm, Pq, 0x58 }, 670 { AADDPS, yxm, Pm, 0x58 }, 671 { AADDQ, yaddl, Pw, 0x83,(00),0x05,0x81,(00),0x01,0x03 }, 672 { AADDSD, yxm, Pf2, 0x58 }, 673 { AADDSS, yxm, Pf3, 0x58 }, 674 { AADDW, yaddl, Pe, 0x83,(00),0x05,0x81,(00),0x01,0x03 }, 675 { AADJSP }, 676 { AANDB, yxorb, Pb, 0x24,0x80,(04),0x20,0x22 }, 677 { AANDL, yxorl, Px, 0x83,(04),0x25,0x81,(04),0x21,0x23 }, 678 { AANDNPD, yxm, Pq, 0x55 }, 679 { AANDNPS, yxm, Pm, 0x55 }, 680 { AANDPD, yxm, Pq, 0x54 }, 681 { AANDPS, yxm, Pq, 0x54 }, 682 { AANDQ, yxorl, Pw, 0x83,(04),0x25,0x81,(04),0x21,0x23 }, 683 { AANDW, yxorl, Pe, 0x83,(04),0x25,0x81,(04),0x21,0x23 }, 684 { AARPL, yrl_ml, P32, 0x63 }, 685 { ABOUNDL, yrl_m, P32, 0x62 }, 686 { ABOUNDW, yrl_m, Pe, 0x62 }, 687 { ABSFL, yml_rl, Pm, 0xbc }, 688 { ABSFQ, yml_rl, Pw, 0x0f,0xbc }, 689 { ABSFW, yml_rl, Pq, 0xbc }, 690 { ABSRL, yml_rl, Pm, 0xbd }, 691 { ABSRQ, yml_rl, Pw, 0x0f,0xbd }, 692 { ABSRW, yml_rl, Pq, 0xbd }, 693 { ABSWAPL, ybswap, Px, 0x0f,0xc8 }, 694 { ABSWAPQ, ybswap, Pw, 0x0f,0xc8 }, 695 { ABTCL, ybtl, Pm, 0xba,(07),0xbb }, 696 { ABTCQ, ybtl, Pw, 0x0f,0xba,(07),0x0f,0xbb }, 697 { ABTCW, ybtl, Pq, 0xba,(07),0xbb }, 698 { ABTL, ybtl, Pm, 0xba,(04),0xa3 }, 699 { ABTQ, ybtl, Pw, 0x0f,0xba,(04),0x0f,0xa3}, 700 { ABTRL, ybtl, Pm, 0xba,(06),0xb3 }, 701 { ABTRQ, ybtl, Pw, 0x0f,0xba,(06),0x0f,0xb3 }, 702 { ABTRW, ybtl, Pq, 0xba,(06),0xb3 }, 703 { ABTSL, ybtl, Pm, 0xba,(05),0xab }, 704 { ABTSQ, ybtl, Pw, 0x0f,0xba,(05),0x0f,0xab }, 705 { ABTSW, ybtl, Pq, 0xba,(05),0xab }, 706 { ABTW, ybtl, Pq, 0xba,(04),0xa3 }, 707 { ABYTE, ybyte, Px, 1 }, 708 { ACALL, ycall, Px, 0xff,(02),0xe8 }, 709 { ACDQ, ynone, Px, 0x99 }, 710 { ACLC, ynone, Px, 0xf8 }, 711 { ACLD, ynone, Px, 0xfc }, 712 { ACLI, ynone, Px, 0xfa }, 713 { ACLTS, ynone, Pm, 0x06 }, 714 { ACMC, ynone, Px, 0xf5 }, 715 { ACMOVLCC, yml_rl, Pm, 0x43 }, 716 { ACMOVLCS, yml_rl, Pm, 0x42 }, 717 { ACMOVLEQ, yml_rl, Pm, 0x44 }, 718 { ACMOVLGE, yml_rl, Pm, 0x4d }, 719 { ACMOVLGT, yml_rl, Pm, 0x4f }, 720 { ACMOVLHI, yml_rl, Pm, 0x47 }, 721 { ACMOVLLE, yml_rl, Pm, 0x4e }, 722 { ACMOVLLS, yml_rl, Pm, 0x46 }, 723 { ACMOVLLT, yml_rl, Pm, 0x4c }, 724 { ACMOVLMI, yml_rl, Pm, 0x48 }, 725 { ACMOVLNE, yml_rl, Pm, 0x45 }, 726 { ACMOVLOC, yml_rl, Pm, 0x41 }, 727 { ACMOVLOS, yml_rl, Pm, 0x40 }, 728 { ACMOVLPC, yml_rl, Pm, 0x4b }, 729 { ACMOVLPL, yml_rl, Pm, 0x49 }, 730 { ACMOVLPS, yml_rl, Pm, 0x4a }, 731 { ACMOVQCC, yml_rl, Pw, 0x0f,0x43 }, 732 { ACMOVQCS, yml_rl, Pw, 0x0f,0x42 }, 733 { ACMOVQEQ, yml_rl, Pw, 0x0f,0x44 }, 734 { ACMOVQGE, yml_rl, Pw, 0x0f,0x4d }, 735 { ACMOVQGT, yml_rl, Pw, 0x0f,0x4f }, 736 { ACMOVQHI, yml_rl, Pw, 0x0f,0x47 }, 737 { ACMOVQLE, yml_rl, Pw, 0x0f,0x4e }, 738 { ACMOVQLS, yml_rl, Pw, 0x0f,0x46 }, 739 { ACMOVQLT, yml_rl, Pw, 0x0f,0x4c }, 740 { ACMOVQMI, yml_rl, Pw, 0x0f,0x48 }, 741 { ACMOVQNE, yml_rl, Pw, 0x0f,0x45 }, 742 { ACMOVQOC, yml_rl, Pw, 0x0f,0x41 }, 743 { ACMOVQOS, yml_rl, Pw, 0x0f,0x40 }, 744 { ACMOVQPC, yml_rl, Pw, 0x0f,0x4b }, 745 { ACMOVQPL, yml_rl, Pw, 0x0f,0x49 }, 746 { ACMOVQPS, yml_rl, Pw, 0x0f,0x4a }, 747 { ACMOVWCC, yml_rl, Pq, 0x43 }, 748 { ACMOVWCS, yml_rl, Pq, 0x42 }, 749 { ACMOVWEQ, yml_rl, Pq, 0x44 }, 750 { ACMOVWGE, yml_rl, Pq, 0x4d }, 751 { ACMOVWGT, yml_rl, Pq, 0x4f }, 752 { ACMOVWHI, yml_rl, Pq, 0x47 }, 753 { ACMOVWLE, yml_rl, Pq, 0x4e }, 754 { ACMOVWLS, yml_rl, Pq, 0x46 }, 755 { ACMOVWLT, yml_rl, Pq, 0x4c }, 756 { ACMOVWMI, yml_rl, Pq, 0x48 }, 757 { ACMOVWNE, yml_rl, Pq, 0x45 }, 758 { ACMOVWOC, yml_rl, Pq, 0x41 }, 759 { ACMOVWOS, yml_rl, Pq, 0x40 }, 760 { ACMOVWPC, yml_rl, Pq, 0x4b }, 761 { ACMOVWPL, yml_rl, Pq, 0x49 }, 762 { ACMOVWPS, yml_rl, Pq, 0x4a }, 763 { ACMPB, ycmpb, Pb, 0x3c,0x80,(07),0x38,0x3a }, 764 { ACMPL, ycmpl, Px, 0x83,(07),0x3d,0x81,(07),0x39,0x3b }, 765 { ACMPPD, yxcmpi, Px, Pe,0xc2 }, 766 { ACMPPS, yxcmpi, Pm, 0xc2,0 }, 767 { ACMPQ, ycmpl, Pw, 0x83,(07),0x3d,0x81,(07),0x39,0x3b }, 768 { ACMPSB, ynone, Pb, 0xa6 }, 769 { ACMPSD, yxcmpi, Px, Pf2,0xc2 }, 770 { ACMPSL, ynone, Px, 0xa7 }, 771 { ACMPSQ, ynone, Pw, 0xa7 }, 772 { ACMPSS, yxcmpi, Px, Pf3,0xc2 }, 773 { ACMPSW, ynone, Pe, 0xa7 }, 774 { ACMPW, ycmpl, Pe, 0x83,(07),0x3d,0x81,(07),0x39,0x3b }, 775 { ACOMISD, yxcmp, Pe, 0x2f }, 776 { ACOMISS, yxcmp, Pm, 0x2f }, 777 { ACPUID, ynone, Pm, 0xa2 }, 778 { ACVTPL2PD, yxcvm2, Px, Pf3,0xe6,Pe,0x2a }, 779 { ACVTPL2PS, yxcvm2, Pm, 0x5b,0,0x2a,0, }, 780 { ACVTPD2PL, yxcvm1, Px, Pf2,0xe6,Pe,0x2d }, 781 { ACVTPD2PS, yxm, Pe, 0x5a }, 782 { ACVTPS2PL, yxcvm1, Px, Pe,0x5b,Pm,0x2d }, 783 { ACVTPS2PD, yxm, Pm, 0x5a }, 784 { API2FW, ymfp, Px, 0x0c }, 785 { ACVTSD2SL, yxcvfl, Pf2, 0x2d }, 786 { ACVTSD2SQ, yxcvfq, Pw, Pf2,0x2d }, 787 { ACVTSD2SS, yxm, Pf2, 0x5a }, 788 { ACVTSL2SD, yxcvlf, Pf2, 0x2a }, 789 { ACVTSQ2SD, yxcvqf, Pw, Pf2,0x2a }, 790 { ACVTSL2SS, yxcvlf, Pf3, 0x2a }, 791 { ACVTSQ2SS, yxcvqf, Pw, Pf3,0x2a }, 792 { ACVTSS2SD, yxm, Pf3, 0x5a }, 793 { ACVTSS2SL, yxcvfl, Pf3, 0x2d }, 794 { ACVTSS2SQ, yxcvfq, Pw, Pf3,0x2d }, 795 { ACVTTPD2PL, yxcvm1, Px, Pe,0xe6,Pe,0x2c }, 796 { ACVTTPS2PL, yxcvm1, Px, Pf3,0x5b,Pm,0x2c }, 797 { ACVTTSD2SL, yxcvfl, Pf2, 0x2c }, 798 { ACVTTSD2SQ, yxcvfq, Pw, Pf2,0x2c }, 799 { ACVTTSS2SL, yxcvfl, Pf3, 0x2c }, 800 { ACVTTSS2SQ, yxcvfq, Pw, Pf3,0x2c }, 801 { ACWD, ynone, Pe, 0x99 }, 802 { ACQO, ynone, Pw, 0x99 }, 803 { ADAA, ynone, P32, 0x27 }, 804 { ADAS, ynone, P32, 0x2f }, 805 { ADATA }, 806 { ADECB, yincb, Pb, 0xfe,(01) }, 807 { ADECL, yincl, Px, 0xff,(01) }, 808 { ADECQ, yincl, Pw, 0xff,(01) }, 809 { ADECW, yincw, Pe, 0xff,(01) }, 810 { ADIVB, ydivb, Pb, 0xf6,(06) }, 811 { ADIVL, ydivl, Px, 0xf7,(06) }, 812 { ADIVPD, yxm, Pe, 0x5e }, 813 { ADIVPS, yxm, Pm, 0x5e }, 814 { ADIVQ, ydivl, Pw, 0xf7,(06) }, 815 { ADIVSD, yxm, Pf2, 0x5e }, 816 { ADIVSS, yxm, Pf3, 0x5e }, 817 { ADIVW, ydivl, Pe, 0xf7,(06) }, 818 { AEMMS, ynone, Pm, 0x77 }, 819 { AENTER }, /* botch */ 820 { AFXRSTOR, ysvrs, Pm, 0xae,(01),0xae,(01) }, 821 { AFXSAVE, ysvrs, Pm, 0xae,(00),0xae,(00) }, 822 { AFXRSTOR64, ysvrs, Pw, 0x0f,0xae,(01),0x0f,0xae,(01) }, 823 { AFXSAVE64, ysvrs, Pw, 0x0f,0xae,(00),0x0f,0xae,(00) }, 824 { AGLOBL }, 825 { AGOK }, 826 { AHISTORY }, 827 { AHLT, ynone, Px, 0xf4 }, 828 { AIDIVB, ydivb, Pb, 0xf6,(07) }, 829 { AIDIVL, ydivl, Px, 0xf7,(07) }, 830 { AIDIVQ, ydivl, Pw, 0xf7,(07) }, 831 { AIDIVW, ydivl, Pe, 0xf7,(07) }, 832 { AIMULB, ydivb, Pb, 0xf6,(05) }, 833 { AIMULL, yimul, Px, 0xf7,(05),0x6b,0x69,Pm,0xaf }, 834 { AIMULQ, yimul, Pw, 0xf7,(05),0x6b,0x69,Pm,0xaf }, 835 { AIMULW, yimul, Pe, 0xf7,(05),0x6b,0x69,Pm,0xaf }, 836 { AIMUL3Q, yimul3, Pw, 0x6b,(00) }, 837 { AINB, yin, Pb, 0xe4,0xec }, 838 { AINCB, yincb, Pb, 0xfe,(00) }, 839 { AINCL, yincl, Px, 0xff,(00) }, 840 { AINCQ, yincl, Pw, 0xff,(00) }, 841 { AINCW, yincw, Pe, 0xff,(00) }, 842 { AINL, yin, Px, 0xe5,0xed }, 843 { AINSB, ynone, Pb, 0x6c }, 844 { AINSL, ynone, Px, 0x6d }, 845 { AINSW, ynone, Pe, 0x6d }, 846 { AINT, yint, Px, 0xcd }, 847 { AINTO, ynone, P32, 0xce }, 848 { AINW, yin, Pe, 0xe5,0xed }, 849 { AIRETL, ynone, Px, 0xcf }, 850 { AIRETQ, ynone, Pw, 0xcf }, 851 { AIRETW, ynone, Pe, 0xcf }, 852 { AJCC, yjcond, Px, 0x73,0x83,(00) }, 853 { AJCS, yjcond, Px, 0x72,0x82 }, 854 { AJCXZL, yloop, Px, 0xe3 }, 855 { AJCXZQ, yloop, Px, 0xe3 }, 856 { AJEQ, yjcond, Px, 0x74,0x84 }, 857 { AJGE, yjcond, Px, 0x7d,0x8d }, 858 { AJGT, yjcond, Px, 0x7f,0x8f }, 859 { AJHI, yjcond, Px, 0x77,0x87 }, 860 { AJLE, yjcond, Px, 0x7e,0x8e }, 861 { AJLS, yjcond, Px, 0x76,0x86 }, 862 { AJLT, yjcond, Px, 0x7c,0x8c }, 863 { AJMI, yjcond, Px, 0x78,0x88 }, 864 { AJMP, yjmp, Px, 0xff,(04),0xeb,0xe9 }, 865 { AJNE, yjcond, Px, 0x75,0x85 }, 866 { AJOC, yjcond, Px, 0x71,0x81,(00) }, 867 { AJOS, yjcond, Px, 0x70,0x80,(00) }, 868 { AJPC, yjcond, Px, 0x7b,0x8b }, 869 { AJPL, yjcond, Px, 0x79,0x89 }, 870 { AJPS, yjcond, Px, 0x7a,0x8a }, 871 { ALAHF, ynone, Px, 0x9f }, 872 { ALARL, yml_rl, Pm, 0x02 }, 873 { ALARW, yml_rl, Pq, 0x02 }, 874 { ALDMXCSR, ysvrs, Pm, 0xae,(02),0xae,(02) }, 875 { ALEAL, ym_rl, Px, 0x8d }, 876 { ALEAQ, ym_rl, Pw, 0x8d }, 877 { ALEAVEL, ynone, P32, 0xc9 }, 878 { ALEAVEQ, ynone, Py, 0xc9 }, 879 { ALEAVEW, ynone, Pe, 0xc9 }, 880 { ALEAW, ym_rl, Pe, 0x8d }, 881 { ALOCK, ynone, Px, 0xf0 }, 882 { ALODSB, ynone, Pb, 0xac }, 883 { ALODSL, ynone, Px, 0xad }, 884 { ALODSQ, ynone, Pw, 0xad }, 885 { ALODSW, ynone, Pe, 0xad }, 886 { ALONG, ybyte, Px, 4 }, 887 { ALOOP, yloop, Px, 0xe2 }, 888 { ALOOPEQ, yloop, Px, 0xe1 }, 889 { ALOOPNE, yloop, Px, 0xe0 }, 890 { ALSLL, yml_rl, Pm, 0x03 }, 891 { ALSLW, yml_rl, Pq, 0x03 }, 892 { AMASKMOVOU, yxr, Pe, 0xf7 }, 893 { AMASKMOVQ, ymr, Pm, 0xf7 }, 894 { AMAXPD, yxm, Pe, 0x5f }, 895 { AMAXPS, yxm, Pm, 0x5f }, 896 { AMAXSD, yxm, Pf2, 0x5f }, 897 { AMAXSS, yxm, Pf3, 0x5f }, 898 { AMINPD, yxm, Pe, 0x5d }, 899 { AMINPS, yxm, Pm, 0x5d }, 900 { AMINSD, yxm, Pf2, 0x5d }, 901 { AMINSS, yxm, Pf3, 0x5d }, 902 { AMOVAPD, yxmov, Pe, 0x28,0x29 }, 903 { AMOVAPS, yxmov, Pm, 0x28,0x29 }, 904 { AMOVB, ymovb, Pb, 0x88,0x8a,0xb0,0xc6,(00) }, 905 { AMOVBLSX, ymb_rl, Pm, 0xbe }, 906 { AMOVBLZX, ymb_rl, Pm, 0xb6 }, 907 { AMOVBQSX, ymb_rl, Pw, 0x0f,0xbe }, 908 { AMOVBQZX, ymb_rl, Pw, 0x0f,0xb6 }, 909 { AMOVBWSX, ymb_rl, Pq, 0xbe }, 910 { AMOVBWZX, ymb_rl, Pq, 0xb6 }, 911 { AMOVO, yxmov, Pe, 0x6f,0x7f }, 912 { AMOVOU, yxmov, Pf3, 0x6f,0x7f }, 913 { AMOVHLPS, yxr, Pm, 0x12 }, 914 { AMOVHPD, yxmov, Pe, 0x16,0x17 }, 915 { AMOVHPS, yxmov, Pm, 0x16,0x17 }, 916 { AMOVL, ymovl, Px, 0x89,0x8b,0x31,0xb8,0xc7,(00),0x6e,0x7e,Pe,0x6e,Pe,0x7e,0 }, 917 { AMOVLHPS, yxr, Pm, 0x16 }, 918 { AMOVLPD, yxmov, Pe, 0x12,0x13 }, 919 { AMOVLPS, yxmov, Pm, 0x12,0x13 }, 920 { AMOVLQSX, yml_rl, Pw, 0x63 }, 921 { AMOVLQZX, yml_rl, Px, 0x8b }, 922 { AMOVMSKPD, yxrrl, Pq, 0x50 }, 923 { AMOVMSKPS, yxrrl, Pm, 0x50 }, 924 { AMOVNTO, yxr_ml, Pe, 0xe7 }, 925 { AMOVNTPD, yxr_ml, Pe, 0x2b }, 926 { AMOVNTPS, yxr_ml, Pm, 0x2b }, 927 { AMOVNTQ, ymr_ml, Pm, 0xe7 }, 928 { AMOVQ, ymovq, Pw, 0x89, 0x8b, 0x31, 0xc7,(00), 0xb8, 0xc7,(00), 0x6f, 0x7f, 0x6e, 0x7e, Pf2,0xd6, Pf3,0x7e, Pe,0xd6, Pe,0x6e, Pe,0x7e,0 }, 929 { AMOVQOZX, ymrxr, Pf3, 0xd6,0x7e }, 930 { AMOVSB, ynone, Pb, 0xa4 }, 931 { AMOVSD, yxmov, Pf2, 0x10,0x11 }, 932 { AMOVSL, ynone, Px, 0xa5 }, 933 { AMOVSQ, ynone, Pw, 0xa5 }, 934 { AMOVSS, yxmov, Pf3, 0x10,0x11 }, 935 { AMOVSW, ynone, Pe, 0xa5 }, 936 { AMOVUPD, yxmov, Pe, 0x10,0x11 }, 937 { AMOVUPS, yxmov, Pm, 0x10,0x11 }, 938 { AMOVW, ymovw, Pe, 0x89,0x8b,0x31,0xb8,0xc7,(00),0 }, 939 { AMOVWLSX, yml_rl, Pm, 0xbf }, 940 { AMOVWLZX, yml_rl, Pm, 0xb7 }, 941 { AMOVWQSX, yml_rl, Pw, 0x0f,0xbf }, 942 { AMOVWQZX, yml_rl, Pw, 0x0f,0xb7 }, 943 { AMULB, ydivb, Pb, 0xf6,(04) }, 944 { AMULL, ydivl, Px, 0xf7,(04) }, 945 { AMULPD, yxm, Pe, 0x59 }, 946 { AMULPS, yxm, Ym, 0x59 }, 947 { AMULQ, ydivl, Pw, 0xf7,(04) }, 948 { AMULSD, yxm, Pf2, 0x59 }, 949 { AMULSS, yxm, Pf3, 0x59 }, 950 { AMULW, ydivl, Pe, 0xf7,(04) }, 951 { ANAME }, 952 { ANEGB, yscond, Pb, 0xf6,(03) }, 953 { ANEGL, yscond, Px, 0xf7,(03) }, 954 { ANEGQ, yscond, Pw, 0xf7,(03) }, 955 { ANEGW, yscond, Pe, 0xf7,(03) }, 956 { ANOP, ynop, Px, 0,0 }, 957 { ANOTB, yscond, Pb, 0xf6,(02) }, 958 { ANOTL, yscond, Px, 0xf7,(02) }, 959 { ANOTQ, yscond, Pw, 0xf7,(02) }, 960 { ANOTW, yscond, Pe, 0xf7,(02) }, 961 { AORB, yxorb, Pb, 0x0c,0x80,(01),0x08,0x0a }, 962 { AORL, yxorl, Px, 0x83,(01),0x0d,0x81,(01),0x09,0x0b }, 963 { AORPD, yxm, Pq, 0x56 }, 964 { AORPS, yxm, Pm, 0x56 }, 965 { AORQ, yxorl, Pw, 0x83,(01),0x0d,0x81,(01),0x09,0x0b }, 966 { AORW, yxorl, Pe, 0x83,(01),0x0d,0x81,(01),0x09,0x0b }, 967 { AOUTB, yin, Pb, 0xe6,0xee }, 968 { AOUTL, yin, Px, 0xe7,0xef }, 969 { AOUTSB, ynone, Pb, 0x6e }, 970 { AOUTSL, ynone, Px, 0x6f }, 971 { AOUTSW, ynone, Pe, 0x6f }, 972 { AOUTW, yin, Pe, 0xe7,0xef }, 973 { APACKSSLW, ymm, Py, 0x6b,Pe,0x6b }, 974 { APACKSSWB, ymm, Py, 0x63,Pe,0x63 }, 975 { APACKUSWB, ymm, Py, 0x67,Pe,0x67 }, 976 { APADDB, ymm, Py, 0xfc,Pe,0xfc }, 977 { APADDL, ymm, Py, 0xfe,Pe,0xfe }, 978 { APADDQ, yxm, Pe, 0xd4 }, 979 { APADDSB, ymm, Py, 0xec,Pe,0xec }, 980 { APADDSW, ymm, Py, 0xed,Pe,0xed }, 981 { APADDUSB, ymm, Py, 0xdc,Pe,0xdc }, 982 { APADDUSW, ymm, Py, 0xdd,Pe,0xdd }, 983 { APADDW, ymm, Py, 0xfd,Pe,0xfd }, 984 { APAND, ymm, Py, 0xdb,Pe,0xdb }, 985 { APANDN, ymm, Py, 0xdf,Pe,0xdf }, 986 { APAUSE, ynone, Px, 0xf3,0x90 }, 987 { APAVGB, ymm, Py, 0xe0,Pe,0xe0 }, 988 { APAVGW, ymm, Py, 0xe3,Pe,0xe3 }, 989 { APCMPEQB, ymm, Py, 0x74,Pe,0x74 }, 990 { APCMPEQL, ymm, Py, 0x76,Pe,0x76 }, 991 { APCMPEQW, ymm, Py, 0x75,Pe,0x75 }, 992 { APCMPGTB, ymm, Py, 0x64,Pe,0x64 }, 993 { APCMPGTL, ymm, Py, 0x66,Pe,0x66 }, 994 { APCMPGTW, ymm, Py, 0x65,Pe,0x65 }, 995 { APEXTRW, yextrw, Pq, 0xc5,(00) }, 996 { APF2IL, ymfp, Px, 0x1d }, 997 { APF2IW, ymfp, Px, 0x1c }, 998 { API2FL, ymfp, Px, 0x0d }, 999 { APFACC, ymfp, Px, 0xae }, 1000 { APFADD, ymfp, Px, 0x9e }, 1001 { APFCMPEQ, ymfp, Px, 0xb0 }, 1002 { APFCMPGE, ymfp, Px, 0x90 }, 1003 { APFCMPGT, ymfp, Px, 0xa0 }, 1004 { APFMAX, ymfp, Px, 0xa4 }, 1005 { APFMIN, ymfp, Px, 0x94 }, 1006 { APFMUL, ymfp, Px, 0xb4 }, 1007 { APFNACC, ymfp, Px, 0x8a }, 1008 { APFPNACC, ymfp, Px, 0x8e }, 1009 { APFRCP, ymfp, Px, 0x96 }, 1010 { APFRCPIT1, ymfp, Px, 0xa6 }, 1011 { APFRCPI2T, ymfp, Px, 0xb6 }, 1012 { APFRSQIT1, ymfp, Px, 0xa7 }, 1013 { APFRSQRT, ymfp, Px, 0x97 }, 1014 { APFSUB, ymfp, Px, 0x9a }, 1015 { APFSUBR, ymfp, Px, 0xaa }, 1016 { APINSRW, yinsrw, Pq, 0xc4,(00) }, 1017 { APINSRD, yinsr, Pq, 0x3a, 0x22, (00) }, 1018 { APINSRQ, yinsr, Pq3, 0x3a, 0x22, (00) }, 1019 { APMADDWL, ymm, Py, 0xf5,Pe,0xf5 }, 1020 { APMAXSW, yxm, Pe, 0xee }, 1021 { APMAXUB, yxm, Pe, 0xde }, 1022 { APMINSW, yxm, Pe, 0xea }, 1023 { APMINUB, yxm, Pe, 0xda }, 1024 { APMOVMSKB, ymskb, Px, Pe,0xd7,0xd7 }, 1025 { APMULHRW, ymfp, Px, 0xb7 }, 1026 { APMULHUW, ymm, Py, 0xe4,Pe,0xe4 }, 1027 { APMULHW, ymm, Py, 0xe5,Pe,0xe5 }, 1028 { APMULLW, ymm, Py, 0xd5,Pe,0xd5 }, 1029 { APMULULQ, ymm, Py, 0xf4,Pe,0xf4 }, 1030 { APOPAL, ynone, P32, 0x61 }, 1031 { APOPAW, ynone, Pe, 0x61 }, 1032 { APOPFL, ynone, P32, 0x9d }, 1033 { APOPFQ, ynone, Py, 0x9d }, 1034 { APOPFW, ynone, Pe, 0x9d }, 1035 { APOPL, ypopl, P32, 0x58,0x8f,(00) }, 1036 { APOPQ, ypopl, Py, 0x58,0x8f,(00) }, 1037 { APOPW, ypopl, Pe, 0x58,0x8f,(00) }, 1038 { APOR, ymm, Py, 0xeb,Pe,0xeb }, 1039 { APSADBW, yxm, Pq, 0xf6 }, 1040 { APSHUFHW, yxshuf, Pf3, 0x70,(00) }, 1041 { APSHUFL, yxshuf, Pq, 0x70,(00) }, 1042 { APSHUFLW, yxshuf, Pf2, 0x70,(00) }, 1043 { APSHUFW, ymshuf, Pm, 0x70,(00) }, 1044 { APSHUFB, ymshufb,Pq, 0x38, 0x00 }, 1045 { APSLLO, ypsdq, Pq, 0x73,(07) }, 1046 { APSLLL, yps, Py, 0xf2, 0x72,(06), Pe,0xf2, Pe,0x72,(06) }, 1047 { APSLLQ, yps, Py, 0xf3, 0x73,(06), Pe,0xf3, Pe,0x73,(06) }, 1048 { APSLLW, yps, Py, 0xf1, 0x71,(06), Pe,0xf1, Pe,0x71,(06) }, 1049 { APSRAL, yps, Py, 0xe2, 0x72,(04), Pe,0xe2, Pe,0x72,(04) }, 1050 { APSRAW, yps, Py, 0xe1, 0x71,(04), Pe,0xe1, Pe,0x71,(04) }, 1051 { APSRLO, ypsdq, Pq, 0x73,(03) }, 1052 { APSRLL, yps, Py, 0xd2, 0x72,(02), Pe,0xd2, Pe,0x72,(02) }, 1053 { APSRLQ, yps, Py, 0xd3, 0x73,(02), Pe,0xd3, Pe,0x73,(02) }, 1054 { APSRLW, yps, Py, 0xd1, 0x71,(02), Pe,0xe1, Pe,0x71,(02) }, 1055 { APSUBB, yxm, Pe, 0xf8 }, 1056 { APSUBL, yxm, Pe, 0xfa }, 1057 { APSUBQ, yxm, Pe, 0xfb }, 1058 { APSUBSB, yxm, Pe, 0xe8 }, 1059 { APSUBSW, yxm, Pe, 0xe9 }, 1060 { APSUBUSB, yxm, Pe, 0xd8 }, 1061 { APSUBUSW, yxm, Pe, 0xd9 }, 1062 { APSUBW, yxm, Pe, 0xf9 }, 1063 { APSWAPL, ymfp, Px, 0xbb }, 1064 { APUNPCKHBW, ymm, Py, 0x68,Pe,0x68 }, 1065 { APUNPCKHLQ, ymm, Py, 0x6a,Pe,0x6a }, 1066 { APUNPCKHQDQ, yxm, Pe, 0x6d }, 1067 { APUNPCKHWL, ymm, Py, 0x69,Pe,0x69 }, 1068 { APUNPCKLBW, ymm, Py, 0x60,Pe,0x60 }, 1069 { APUNPCKLLQ, ymm, Py, 0x62,Pe,0x62 }, 1070 { APUNPCKLQDQ, yxm, Pe, 0x6c }, 1071 { APUNPCKLWL, ymm, Py, 0x61,Pe,0x61 }, 1072 { APUSHAL, ynone, P32, 0x60 }, 1073 { APUSHAW, ynone, Pe, 0x60 }, 1074 { APUSHFL, ynone, P32, 0x9c }, 1075 { APUSHFQ, ynone, Py, 0x9c }, 1076 { APUSHFW, ynone, Pe, 0x9c }, 1077 { APUSHL, ypushl, P32, 0x50,0xff,(06),0x6a,0x68 }, 1078 { APUSHQ, ypushl, Py, 0x50,0xff,(06),0x6a,0x68 }, 1079 { APUSHW, ypushl, Pe, 0x50,0xff,(06),0x6a,0x68 }, 1080 { APXOR, ymm, Py, 0xef,Pe,0xef }, 1081 { AQUAD, ybyte, Px, 8 }, 1082 { ARCLB, yshb, Pb, 0xd0,(02),0xc0,(02),0xd2,(02) }, 1083 { ARCLL, yshl, Px, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) }, 1084 { ARCLQ, yshl, Pw, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) }, 1085 { ARCLW, yshl, Pe, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) }, 1086 { ARCPPS, yxm, Pm, 0x53 }, 1087 { ARCPSS, yxm, Pf3, 0x53 }, 1088 { ARCRB, yshb, Pb, 0xd0,(03),0xc0,(03),0xd2,(03) }, 1089 { ARCRL, yshl, Px, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) }, 1090 { ARCRQ, yshl, Pw, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) }, 1091 { ARCRW, yshl, Pe, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) }, 1092 { AREP, ynone, Px, 0xf3 }, 1093 { AREPN, ynone, Px, 0xf2 }, 1094 { ARET, ynone, Px, 0xc3 }, 1095 { ARETFW, yret, Pe, 0xcb,0xca }, 1096 { ARETFL, yret, Px, 0xcb,0xca }, 1097 { ARETFQ, yret, Pw, 0xcb,0xca }, 1098 { AROLB, yshb, Pb, 0xd0,(00),0xc0,(00),0xd2,(00) }, 1099 { AROLL, yshl, Px, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) }, 1100 { AROLQ, yshl, Pw, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) }, 1101 { AROLW, yshl, Pe, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) }, 1102 { ARORB, yshb, Pb, 0xd0,(01),0xc0,(01),0xd2,(01) }, 1103 { ARORL, yshl, Px, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) }, 1104 { ARORQ, yshl, Pw, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) }, 1105 { ARORW, yshl, Pe, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) }, 1106 { ARSQRTPS, yxm, Pm, 0x52 }, 1107 { ARSQRTSS, yxm, Pf3, 0x52 }, 1108 { ASAHF, ynone, Px, 0x86,0xe0,0x50,0x9d }, /* XCHGB AH,AL; PUSH AX; POPFL */ 1109 { ASALB, yshb, Pb, 0xd0,(04),0xc0,(04),0xd2,(04) }, 1110 { ASALL, yshl, Px, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, 1111 { ASALQ, yshl, Pw, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, 1112 { ASALW, yshl, Pe, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, 1113 { ASARB, yshb, Pb, 0xd0,(07),0xc0,(07),0xd2,(07) }, 1114 { ASARL, yshl, Px, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) }, 1115 { ASARQ, yshl, Pw, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) }, 1116 { ASARW, yshl, Pe, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) }, 1117 { ASBBB, yxorb, Pb, 0x1c,0x80,(03),0x18,0x1a }, 1118 { ASBBL, yxorl, Px, 0x83,(03),0x1d,0x81,(03),0x19,0x1b }, 1119 { ASBBQ, yxorl, Pw, 0x83,(03),0x1d,0x81,(03),0x19,0x1b }, 1120 { ASBBW, yxorl, Pe, 0x83,(03),0x1d,0x81,(03),0x19,0x1b }, 1121 { ASCASB, ynone, Pb, 0xae }, 1122 { ASCASL, ynone, Px, 0xaf }, 1123 { ASCASQ, ynone, Pw, 0xaf }, 1124 { ASCASW, ynone, Pe, 0xaf }, 1125 { ASETCC, yscond, Pm, 0x93,(00) }, 1126 { ASETCS, yscond, Pm, 0x92,(00) }, 1127 { ASETEQ, yscond, Pm, 0x94,(00) }, 1128 { ASETGE, yscond, Pm, 0x9d,(00) }, 1129 { ASETGT, yscond, Pm, 0x9f,(00) }, 1130 { ASETHI, yscond, Pm, 0x97,(00) }, 1131 { ASETLE, yscond, Pm, 0x9e,(00) }, 1132 { ASETLS, yscond, Pm, 0x96,(00) }, 1133 { ASETLT, yscond, Pm, 0x9c,(00) }, 1134 { ASETMI, yscond, Pm, 0x98,(00) }, 1135 { ASETNE, yscond, Pm, 0x95,(00) }, 1136 { ASETOC, yscond, Pm, 0x91,(00) }, 1137 { ASETOS, yscond, Pm, 0x90,(00) }, 1138 { ASETPC, yscond, Pm, 0x96,(00) }, 1139 { ASETPL, yscond, Pm, 0x99,(00) }, 1140 { ASETPS, yscond, Pm, 0x9a,(00) }, 1141 { ASHLB, yshb, Pb, 0xd0,(04),0xc0,(04),0xd2,(04) }, 1142 { ASHLL, yshl, Px, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, 1143 { ASHLQ, yshl, Pw, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, 1144 { ASHLW, yshl, Pe, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, 1145 { ASHRB, yshb, Pb, 0xd0,(05),0xc0,(05),0xd2,(05) }, 1146 { ASHRL, yshl, Px, 0xd1,(05),0xc1,(05),0xd3,(05),0xd3,(05) }, 1147 { ASHRQ, yshl, Pw, 0xd1,(05),0xc1,(05),0xd3,(05),0xd3,(05) }, 1148 { ASHRW, yshl, Pe, 0xd1,(05),0xc1,(05),0xd3,(05),0xd3,(05) }, 1149 { ASHUFPD, yxshuf, Pq, 0xc6,(00) }, 1150 { ASHUFPS, yxshuf, Pm, 0xc6,(00) }, 1151 { ASQRTPD, yxm, Pe, 0x51 }, 1152 { ASQRTPS, yxm, Pm, 0x51 }, 1153 { ASQRTSD, yxm, Pf2, 0x51 }, 1154 { ASQRTSS, yxm, Pf3, 0x51 }, 1155 { ASTC, ynone, Px, 0xf9 }, 1156 { ASTD, ynone, Px, 0xfd }, 1157 { ASTI, ynone, Px, 0xfb }, 1158 { ASTMXCSR, ysvrs, Pm, 0xae,(03),0xae,(03) }, 1159 { ASTOSB, ynone, Pb, 0xaa }, 1160 { ASTOSL, ynone, Px, 0xab }, 1161 { ASTOSQ, ynone, Pw, 0xab }, 1162 { ASTOSW, ynone, Pe, 0xab }, 1163 { ASUBB, yxorb, Pb, 0x2c,0x80,(05),0x28,0x2a }, 1164 { ASUBL, yaddl, Px, 0x83,(05),0x2d,0x81,(05),0x29,0x2b }, 1165 { ASUBPD, yxm, Pe, 0x5c }, 1166 { ASUBPS, yxm, Pm, 0x5c }, 1167 { ASUBQ, yaddl, Pw, 0x83,(05),0x2d,0x81,(05),0x29,0x2b }, 1168 { ASUBSD, yxm, Pf2, 0x5c }, 1169 { ASUBSS, yxm, Pf3, 0x5c }, 1170 { ASUBW, yaddl, Pe, 0x83,(05),0x2d,0x81,(05),0x29,0x2b }, 1171 { ASWAPGS, ynone, Pm, 0x01,0xf8 }, 1172 { ASYSCALL, ynone, Px, 0x0f,0x05 }, /* fast syscall */ 1173 { ATESTB, ytestb, Pb, 0xa8,0xf6,(00),0x84,0x84 }, 1174 { ATESTL, ytestl, Px, 0xa9,0xf7,(00),0x85,0x85 }, 1175 { ATESTQ, ytestl, Pw, 0xa9,0xf7,(00),0x85,0x85 }, 1176 { ATESTW, ytestl, Pe, 0xa9,0xf7,(00),0x85,0x85 }, 1177 { ATEXT, ytext, Px }, 1178 { AUCOMISD, yxcmp, Pe, 0x2e }, 1179 { AUCOMISS, yxcmp, Pm, 0x2e }, 1180 { AUNPCKHPD, yxm, Pe, 0x15 }, 1181 { AUNPCKHPS, yxm, Pm, 0x15 }, 1182 { AUNPCKLPD, yxm, Pe, 0x14 }, 1183 { AUNPCKLPS, yxm, Pm, 0x14 }, 1184 { AVERR, ydivl, Pm, 0x00,(04) }, 1185 { AVERW, ydivl, Pm, 0x00,(05) }, 1186 { AWAIT, ynone, Px, 0x9b }, 1187 { AWORD, ybyte, Px, 2 }, 1188 { AXCHGB, yml_mb, Pb, 0x86,0x86 }, 1189 { AXCHGL, yxchg, Px, 0x90,0x90,0x87,0x87 }, 1190 { AXCHGQ, yxchg, Pw, 0x90,0x90,0x87,0x87 }, 1191 { AXCHGW, yxchg, Pe, 0x90,0x90,0x87,0x87 }, 1192 { AXLAT, ynone, Px, 0xd7 }, 1193 { AXORB, yxorb, Pb, 0x34,0x80,(06),0x30,0x32 }, 1194 { AXORL, yxorl, Px, 0x83,(06),0x35,0x81,(06),0x31,0x33 }, 1195 { AXORPD, yxm, Pe, 0x57 }, 1196 { AXORPS, yxm, Pm, 0x57 }, 1197 { AXORQ, yxorl, Pw, 0x83,(06),0x35,0x81,(06),0x31,0x33 }, 1198 { AXORW, yxorl, Pe, 0x83,(06),0x35,0x81,(06),0x31,0x33 }, 1199 1200 { AFMOVB, yfmvx, Px, 0xdf,(04) }, 1201 { AFMOVBP, yfmvp, Px, 0xdf,(06) }, 1202 { AFMOVD, yfmvd, Px, 0xdd,(00),0xdd,(02),0xd9,(00),0xdd,(02) }, 1203 { AFMOVDP, yfmvdp, Px, 0xdd,(03),0xdd,(03) }, 1204 { AFMOVF, yfmvf, Px, 0xd9,(00),0xd9,(02) }, 1205 { AFMOVFP, yfmvp, Px, 0xd9,(03) }, 1206 { AFMOVL, yfmvf, Px, 0xdb,(00),0xdb,(02) }, 1207 { AFMOVLP, yfmvp, Px, 0xdb,(03) }, 1208 { AFMOVV, yfmvx, Px, 0xdf,(05) }, 1209 { AFMOVVP, yfmvp, Px, 0xdf,(07) }, 1210 { AFMOVW, yfmvf, Px, 0xdf,(00),0xdf,(02) }, 1211 { AFMOVWP, yfmvp, Px, 0xdf,(03) }, 1212 { AFMOVX, yfmvx, Px, 0xdb,(05) }, 1213 { AFMOVXP, yfmvp, Px, 0xdb,(07) }, 1214 1215 { AFCOMB }, 1216 { AFCOMBP }, 1217 { AFCOMD, yfadd, Px, 0xdc,(02),0xd8,(02),0xdc,(02) }, /* botch */ 1218 { AFCOMDP, yfadd, Px, 0xdc,(03),0xd8,(03),0xdc,(03) }, /* botch */ 1219 { AFCOMDPP, ycompp, Px, 0xde,(03) }, 1220 { AFCOMF, yfmvx, Px, 0xd8,(02) }, 1221 { AFCOMFP, yfmvx, Px, 0xd8,(03) }, 1222 { AFCOML, yfmvx, Px, 0xda,(02) }, 1223 { AFCOMLP, yfmvx, Px, 0xda,(03) }, 1224 { AFCOMW, yfmvx, Px, 0xde,(02) }, 1225 { AFCOMWP, yfmvx, Px, 0xde,(03) }, 1226 1227 { AFUCOM, ycompp, Px, 0xdd,(04) }, 1228 { AFUCOMP, ycompp, Px, 0xdd,(05) }, 1229 { AFUCOMPP, ycompp, Px, 0xda,(13) }, 1230 1231 { AFADDDP, yfaddp, Px, 0xde,(00) }, 1232 { AFADDW, yfmvx, Px, 0xde,(00) }, 1233 { AFADDL, yfmvx, Px, 0xda,(00) }, 1234 { AFADDF, yfmvx, Px, 0xd8,(00) }, 1235 { AFADDD, yfadd, Px, 0xdc,(00),0xd8,(00),0xdc,(00) }, 1236 1237 { AFMULDP, yfaddp, Px, 0xde,(01) }, 1238 { AFMULW, yfmvx, Px, 0xde,(01) }, 1239 { AFMULL, yfmvx, Px, 0xda,(01) }, 1240 { AFMULF, yfmvx, Px, 0xd8,(01) }, 1241 { AFMULD, yfadd, Px, 0xdc,(01),0xd8,(01),0xdc,(01) }, 1242 1243 { AFSUBDP, yfaddp, Px, 0xde,(05) }, 1244 { AFSUBW, yfmvx, Px, 0xde,(04) }, 1245 { AFSUBL, yfmvx, Px, 0xda,(04) }, 1246 { AFSUBF, yfmvx, Px, 0xd8,(04) }, 1247 { AFSUBD, yfadd, Px, 0xdc,(04),0xd8,(04),0xdc,(05) }, 1248 1249 { AFSUBRDP, yfaddp, Px, 0xde,(04) }, 1250 { AFSUBRW, yfmvx, Px, 0xde,(05) }, 1251 { AFSUBRL, yfmvx, Px, 0xda,(05) }, 1252 { AFSUBRF, yfmvx, Px, 0xd8,(05) }, 1253 { AFSUBRD, yfadd, Px, 0xdc,(05),0xd8,(05),0xdc,(04) }, 1254 1255 { AFDIVDP, yfaddp, Px, 0xde,(07) }, 1256 { AFDIVW, yfmvx, Px, 0xde,(06) }, 1257 { AFDIVL, yfmvx, Px, 0xda,(06) }, 1258 { AFDIVF, yfmvx, Px, 0xd8,(06) }, 1259 { AFDIVD, yfadd, Px, 0xdc,(06),0xd8,(06),0xdc,(07) }, 1260 1261 { AFDIVRDP, yfaddp, Px, 0xde,(06) }, 1262 { AFDIVRW, yfmvx, Px, 0xde,(07) }, 1263 { AFDIVRL, yfmvx, Px, 0xda,(07) }, 1264 { AFDIVRF, yfmvx, Px, 0xd8,(07) }, 1265 { AFDIVRD, yfadd, Px, 0xdc,(07),0xd8,(07),0xdc,(06) }, 1266 1267 { AFXCHD, yfxch, Px, 0xd9,(01),0xd9,(01) }, 1268 { AFFREE }, 1269 { AFLDCW, ystcw, Px, 0xd9,(05),0xd9,(05) }, 1270 { AFLDENV, ystcw, Px, 0xd9,(04),0xd9,(04) }, 1271 { AFRSTOR, ysvrs, Px, 0xdd,(04),0xdd,(04) }, 1272 { AFSAVE, ysvrs, Px, 0xdd,(06),0xdd,(06) }, 1273 { AFSTCW, ystcw, Px, 0xd9,(07),0xd9,(07) }, 1274 { AFSTENV, ystcw, Px, 0xd9,(06),0xd9,(06) }, 1275 { AFSTSW, ystsw, Px, 0xdd,(07),0xdf,0xe0 }, 1276 { AF2XM1, ynone, Px, 0xd9, 0xf0 }, 1277 { AFABS, ynone, Px, 0xd9, 0xe1 }, 1278 { AFCHS, ynone, Px, 0xd9, 0xe0 }, 1279 { AFCLEX, ynone, Px, 0xdb, 0xe2 }, 1280 { AFCOS, ynone, Px, 0xd9, 0xff }, 1281 { AFDECSTP, ynone, Px, 0xd9, 0xf6 }, 1282 { AFINCSTP, ynone, Px, 0xd9, 0xf7 }, 1283 { AFINIT, ynone, Px, 0xdb, 0xe3 }, 1284 { AFLD1, ynone, Px, 0xd9, 0xe8 }, 1285 { AFLDL2E, ynone, Px, 0xd9, 0xea }, 1286 { AFLDL2T, ynone, Px, 0xd9, 0xe9 }, 1287 { AFLDLG2, ynone, Px, 0xd9, 0xec }, 1288 { AFLDLN2, ynone, Px, 0xd9, 0xed }, 1289 { AFLDPI, ynone, Px, 0xd9, 0xeb }, 1290 { AFLDZ, ynone, Px, 0xd9, 0xee }, 1291 { AFNOP, ynone, Px, 0xd9, 0xd0 }, 1292 { AFPATAN, ynone, Px, 0xd9, 0xf3 }, 1293 { AFPREM, ynone, Px, 0xd9, 0xf8 }, 1294 { AFPREM1, ynone, Px, 0xd9, 0xf5 }, 1295 { AFPTAN, ynone, Px, 0xd9, 0xf2 }, 1296 { AFRNDINT, ynone, Px, 0xd9, 0xfc }, 1297 { AFSCALE, ynone, Px, 0xd9, 0xfd }, 1298 { AFSIN, ynone, Px, 0xd9, 0xfe }, 1299 { AFSINCOS, ynone, Px, 0xd9, 0xfb }, 1300 { AFSQRT, ynone, Px, 0xd9, 0xfa }, 1301 { AFTST, ynone, Px, 0xd9, 0xe4 }, 1302 { AFXAM, ynone, Px, 0xd9, 0xe5 }, 1303 { AFXTRACT, ynone, Px, 0xd9, 0xf4 }, 1304 { AFYL2X, ynone, Px, 0xd9, 0xf1 }, 1305 { AFYL2XP1, ynone, Px, 0xd9, 0xf9 }, 1306 1307 { ACMPXCHGB, yrb_mb, Pb, 0x0f,0xb0 }, 1308 { ACMPXCHGL, yrl_ml, Px, 0x0f,0xb1 }, 1309 { ACMPXCHGW, yrl_ml, Pe, 0x0f,0xb1 }, 1310 { ACMPXCHGQ, yrl_ml, Pw, 0x0f,0xb1 }, 1311 { ACMPXCHG8B, yscond, Pm, 0xc7,(01) }, 1312 { AINVD, ynone, Pm, 0x08 }, 1313 { AINVLPG, ymbs, Pm, 0x01,(07) }, 1314 { ALFENCE, ynone, Pm, 0xae,0xe8 }, 1315 { AMFENCE, ynone, Pm, 0xae,0xf0 }, 1316 { AMOVNTIL, yrl_ml, Pm, 0xc3 }, 1317 { AMOVNTIQ, yrl_ml, Pw, 0x0f,0xc3 }, 1318 { ARDMSR, ynone, Pm, 0x32 }, 1319 { ARDPMC, ynone, Pm, 0x33 }, 1320 { ARDTSC, ynone, Pm, 0x31 }, 1321 { ARSM, ynone, Pm, 0xaa }, 1322 { ASFENCE, ynone, Pm, 0xae,0xf8 }, 1323 { ASYSRET, ynone, Pm, 0x07 }, 1324 { AWBINVD, ynone, Pm, 0x09 }, 1325 { AWRMSR, ynone, Pm, 0x30 }, 1326 1327 { AXADDB, yrb_mb, Pb, 0x0f,0xc0 }, 1328 { AXADDL, yrl_ml, Px, 0x0f,0xc1 }, 1329 { AXADDQ, yrl_ml, Pw, 0x0f,0xc1 }, 1330 { AXADDW, yrl_ml, Pe, 0x0f,0xc1 }, 1331 1332 { ACRC32B, ycrc32l,Px, 0xf2,0x0f,0x38,0xf0,0 }, 1333 { ACRC32Q, ycrc32l,Pw, 0xf2,0x0f,0x38,0xf1,0 }, 1334 1335 { APREFETCHT0, yprefetch, Pm, 0x18,(01) }, 1336 { APREFETCHT1, yprefetch, Pm, 0x18,(02) }, 1337 { APREFETCHT2, yprefetch, Pm, 0x18,(03) }, 1338 { APREFETCHNTA, yprefetch, Pm, 0x18,(00) }, 1339 1340 { AMOVQL, yrl_ml, Px, 0x89 }, 1341 1342 { AUNDEF, ynone, Px, 0x0f, 0x0b }, 1343 1344 { AAESENC, yaes, Pq, 0x38,0xdc,(0) }, 1345 { AAESENCLAST, yaes, Pq, 0x38,0xdd,(0) }, 1346 { AAESDEC, yaes, Pq, 0x38,0xde,(0) }, 1347 { AAESDECLAST, yaes, Pq, 0x38,0xdf,(0) }, 1348 { AAESIMC, yaes, Pq, 0x38,0xdb,(0) }, 1349 { AAESKEYGENASSIST, yaes2, Pq, 0x3a,0xdf,(0) }, 1350 1351 { APSHUFD, yaes2, Pq, 0x70,(0) }, 1352 { APCLMULQDQ, yxshuf, Pq, 0x3a,0x44,0 }, 1353 1354 { AUSEFIELD, ynop, Px, 0,0 }, 1355 { AFUNCDATA, yfuncdata, Px, 0,0 }, 1356 { APCDATA, ypcdata, Px, 0,0 }, 1357 1358 { AEND }, 1359 0 1360 }; 1361 1362 Optab* opindex[ALAST+1]; 1363 1364 /* 1365 AMOVD 0f 6e/r mmx,reg/mem32[mem64-rex?] 1366 AMOVD 0f 7e/r reg/mem32[64],mmx STORE 1367 AMOVQ 0f 6f/r mmx1,mmx2/mem64 1368 AMOVQ 0f 7f/r mmx1/mem64,mmx2 1369 */