1 #ifdef NEED_OPCODE_TABLE 2 3 static const struct dis386 evex_table[][256] = { 4 /* EVEX_0F */ 5 { 6 /* 00 */ 7 { Bad_Opcode }, 8 { Bad_Opcode }, 9 { Bad_Opcode }, 10 { Bad_Opcode }, 11 { Bad_Opcode }, 12 { Bad_Opcode }, 13 { Bad_Opcode }, 14 { Bad_Opcode }, 15 /* 08 */ 16 { Bad_Opcode }, 17 { Bad_Opcode }, 18 { Bad_Opcode }, 19 { Bad_Opcode }, 20 { Bad_Opcode }, 21 { Bad_Opcode }, 22 { Bad_Opcode }, 23 { Bad_Opcode }, 24 /* 10 */ 25 { PREFIX_TABLE (PREFIX_EVEX_0F10) }, 26 { PREFIX_TABLE (PREFIX_EVEX_0F11) }, 27 { PREFIX_TABLE (PREFIX_EVEX_0F12) }, 28 { PREFIX_TABLE (PREFIX_EVEX_0F13) }, 29 { PREFIX_TABLE (PREFIX_EVEX_0F14) }, 30 { PREFIX_TABLE (PREFIX_EVEX_0F15) }, 31 { PREFIX_TABLE (PREFIX_EVEX_0F16) }, 32 { PREFIX_TABLE (PREFIX_EVEX_0F17) }, 33 /* 18 */ 34 { Bad_Opcode }, 35 { Bad_Opcode }, 36 { Bad_Opcode }, 37 { Bad_Opcode }, 38 { Bad_Opcode }, 39 { Bad_Opcode }, 40 { Bad_Opcode }, 41 { Bad_Opcode }, 42 /* 20 */ 43 { Bad_Opcode }, 44 { Bad_Opcode }, 45 { Bad_Opcode }, 46 { Bad_Opcode }, 47 { Bad_Opcode }, 48 { Bad_Opcode }, 49 { Bad_Opcode }, 50 { Bad_Opcode }, 51 /* 28 */ 52 { PREFIX_TABLE (PREFIX_EVEX_0F28) }, 53 { PREFIX_TABLE (PREFIX_EVEX_0F29) }, 54 { PREFIX_TABLE (PREFIX_EVEX_0F2A) }, 55 { PREFIX_TABLE (PREFIX_EVEX_0F2B) }, 56 { PREFIX_TABLE (PREFIX_EVEX_0F2C) }, 57 { PREFIX_TABLE (PREFIX_EVEX_0F2D) }, 58 { PREFIX_TABLE (PREFIX_EVEX_0F2E) }, 59 { PREFIX_TABLE (PREFIX_EVEX_0F2F) }, 60 /* 30 */ 61 { Bad_Opcode }, 62 { Bad_Opcode }, 63 { Bad_Opcode }, 64 { Bad_Opcode }, 65 { Bad_Opcode }, 66 { Bad_Opcode }, 67 { Bad_Opcode }, 68 { Bad_Opcode }, 69 /* 38 */ 70 { Bad_Opcode }, 71 { Bad_Opcode }, 72 { Bad_Opcode }, 73 { Bad_Opcode }, 74 { Bad_Opcode }, 75 { Bad_Opcode }, 76 { Bad_Opcode }, 77 { Bad_Opcode }, 78 /* 40 */ 79 { Bad_Opcode }, 80 { Bad_Opcode }, 81 { Bad_Opcode }, 82 { Bad_Opcode }, 83 { Bad_Opcode }, 84 { Bad_Opcode }, 85 { Bad_Opcode }, 86 { Bad_Opcode }, 87 /* 48 */ 88 { Bad_Opcode }, 89 { Bad_Opcode }, 90 { Bad_Opcode }, 91 { Bad_Opcode }, 92 { Bad_Opcode }, 93 { Bad_Opcode }, 94 { Bad_Opcode }, 95 { Bad_Opcode }, 96 /* 50 */ 97 { Bad_Opcode }, 98 { PREFIX_TABLE (PREFIX_EVEX_0F51) }, 99 { Bad_Opcode }, 100 { Bad_Opcode }, 101 { PREFIX_TABLE (PREFIX_EVEX_0F54) }, 102 { PREFIX_TABLE (PREFIX_EVEX_0F55) }, 103 { PREFIX_TABLE (PREFIX_EVEX_0F56) }, 104 { PREFIX_TABLE (PREFIX_EVEX_0F57) }, 105 /* 58 */ 106 { PREFIX_TABLE (PREFIX_EVEX_0F58) }, 107 { PREFIX_TABLE (PREFIX_EVEX_0F59) }, 108 { PREFIX_TABLE (PREFIX_EVEX_0F5A) }, 109 { PREFIX_TABLE (PREFIX_EVEX_0F5B) }, 110 { PREFIX_TABLE (PREFIX_EVEX_0F5C) }, 111 { PREFIX_TABLE (PREFIX_EVEX_0F5D) }, 112 { PREFIX_TABLE (PREFIX_EVEX_0F5E) }, 113 { PREFIX_TABLE (PREFIX_EVEX_0F5F) }, 114 /* 60 */ 115 { PREFIX_TABLE (PREFIX_EVEX_0F60) }, 116 { PREFIX_TABLE (PREFIX_EVEX_0F61) }, 117 { PREFIX_TABLE (PREFIX_EVEX_0F62) }, 118 { PREFIX_TABLE (PREFIX_EVEX_0F63) }, 119 { PREFIX_TABLE (PREFIX_EVEX_0F64) }, 120 { PREFIX_TABLE (PREFIX_EVEX_0F65) }, 121 { PREFIX_TABLE (PREFIX_EVEX_0F66) }, 122 { PREFIX_TABLE (PREFIX_EVEX_0F67) }, 123 /* 68 */ 124 { PREFIX_TABLE (PREFIX_EVEX_0F68) }, 125 { PREFIX_TABLE (PREFIX_EVEX_0F69) }, 126 { PREFIX_TABLE (PREFIX_EVEX_0F6A) }, 127 { PREFIX_TABLE (PREFIX_EVEX_0F6B) }, 128 { PREFIX_TABLE (PREFIX_EVEX_0F6C) }, 129 { PREFIX_TABLE (PREFIX_EVEX_0F6D) }, 130 { PREFIX_TABLE (PREFIX_EVEX_0F6E) }, 131 { PREFIX_TABLE (PREFIX_EVEX_0F6F) }, 132 /* 70 */ 133 { PREFIX_TABLE (PREFIX_EVEX_0F70) }, 134 { REG_TABLE (REG_EVEX_0F71) }, 135 { REG_TABLE (REG_EVEX_0F72) }, 136 { REG_TABLE (REG_EVEX_0F73) }, 137 { PREFIX_TABLE (PREFIX_EVEX_0F74) }, 138 { PREFIX_TABLE (PREFIX_EVEX_0F75) }, 139 { PREFIX_TABLE (PREFIX_EVEX_0F76) }, 140 { Bad_Opcode }, 141 /* 78 */ 142 { PREFIX_TABLE (PREFIX_EVEX_0F78) }, 143 { PREFIX_TABLE (PREFIX_EVEX_0F79) }, 144 { PREFIX_TABLE (PREFIX_EVEX_0F7A) }, 145 { PREFIX_TABLE (PREFIX_EVEX_0F7B) }, 146 { Bad_Opcode }, 147 { Bad_Opcode }, 148 { PREFIX_TABLE (PREFIX_EVEX_0F7E) }, 149 { PREFIX_TABLE (PREFIX_EVEX_0F7F) }, 150 /* 80 */ 151 { Bad_Opcode }, 152 { Bad_Opcode }, 153 { Bad_Opcode }, 154 { Bad_Opcode }, 155 { Bad_Opcode }, 156 { Bad_Opcode }, 157 { Bad_Opcode }, 158 { Bad_Opcode }, 159 /* 88 */ 160 { Bad_Opcode }, 161 { Bad_Opcode }, 162 { Bad_Opcode }, 163 { Bad_Opcode }, 164 { Bad_Opcode }, 165 { Bad_Opcode }, 166 { Bad_Opcode }, 167 { Bad_Opcode }, 168 /* 90 */ 169 { Bad_Opcode }, 170 { Bad_Opcode }, 171 { Bad_Opcode }, 172 { Bad_Opcode }, 173 { Bad_Opcode }, 174 { Bad_Opcode }, 175 { Bad_Opcode }, 176 { Bad_Opcode }, 177 /* 98 */ 178 { Bad_Opcode }, 179 { Bad_Opcode }, 180 { Bad_Opcode }, 181 { Bad_Opcode }, 182 { Bad_Opcode }, 183 { Bad_Opcode }, 184 { Bad_Opcode }, 185 { Bad_Opcode }, 186 /* A0 */ 187 { Bad_Opcode }, 188 { Bad_Opcode }, 189 { Bad_Opcode }, 190 { Bad_Opcode }, 191 { Bad_Opcode }, 192 { Bad_Opcode }, 193 { Bad_Opcode }, 194 { Bad_Opcode }, 195 /* A8 */ 196 { Bad_Opcode }, 197 { Bad_Opcode }, 198 { Bad_Opcode }, 199 { Bad_Opcode }, 200 { Bad_Opcode }, 201 { Bad_Opcode }, 202 { Bad_Opcode }, 203 { Bad_Opcode }, 204 /* B0 */ 205 { Bad_Opcode }, 206 { Bad_Opcode }, 207 { Bad_Opcode }, 208 { Bad_Opcode }, 209 { Bad_Opcode }, 210 { Bad_Opcode }, 211 { Bad_Opcode }, 212 { Bad_Opcode }, 213 /* B8 */ 214 { Bad_Opcode }, 215 { Bad_Opcode }, 216 { Bad_Opcode }, 217 { Bad_Opcode }, 218 { Bad_Opcode }, 219 { Bad_Opcode }, 220 { Bad_Opcode }, 221 { Bad_Opcode }, 222 /* C0 */ 223 { Bad_Opcode }, 224 { Bad_Opcode }, 225 { PREFIX_TABLE (PREFIX_EVEX_0FC2) }, 226 { Bad_Opcode }, 227 { PREFIX_TABLE (PREFIX_EVEX_0FC4) }, 228 { PREFIX_TABLE (PREFIX_EVEX_0FC5) }, 229 { PREFIX_TABLE (PREFIX_EVEX_0FC6) }, 230 { Bad_Opcode }, 231 /* C8 */ 232 { Bad_Opcode }, 233 { Bad_Opcode }, 234 { Bad_Opcode }, 235 { Bad_Opcode }, 236 { Bad_Opcode }, 237 { Bad_Opcode }, 238 { Bad_Opcode }, 239 { Bad_Opcode }, 240 /* D0 */ 241 { Bad_Opcode }, 242 { PREFIX_TABLE (PREFIX_EVEX_0FD1) }, 243 { PREFIX_TABLE (PREFIX_EVEX_0FD2) }, 244 { PREFIX_TABLE (PREFIX_EVEX_0FD3) }, 245 { PREFIX_TABLE (PREFIX_EVEX_0FD4) }, 246 { PREFIX_TABLE (PREFIX_EVEX_0FD5) }, 247 { PREFIX_TABLE (PREFIX_EVEX_0FD6) }, 248 { Bad_Opcode }, 249 /* D8 */ 250 { PREFIX_TABLE (PREFIX_EVEX_0FD8) }, 251 { PREFIX_TABLE (PREFIX_EVEX_0FD9) }, 252 { PREFIX_TABLE (PREFIX_EVEX_0FDA) }, 253 { PREFIX_TABLE (PREFIX_EVEX_0FDB) }, 254 { PREFIX_TABLE (PREFIX_EVEX_0FDC) }, 255 { PREFIX_TABLE (PREFIX_EVEX_0FDD) }, 256 { PREFIX_TABLE (PREFIX_EVEX_0FDE) }, 257 { PREFIX_TABLE (PREFIX_EVEX_0FDF) }, 258 /* E0 */ 259 { PREFIX_TABLE (PREFIX_EVEX_0FE0) }, 260 { PREFIX_TABLE (PREFIX_EVEX_0FE1) }, 261 { PREFIX_TABLE (PREFIX_EVEX_0FE2) }, 262 { PREFIX_TABLE (PREFIX_EVEX_0FE3) }, 263 { PREFIX_TABLE (PREFIX_EVEX_0FE4) }, 264 { PREFIX_TABLE (PREFIX_EVEX_0FE5) }, 265 { PREFIX_TABLE (PREFIX_EVEX_0FE6) }, 266 { PREFIX_TABLE (PREFIX_EVEX_0FE7) }, 267 /* E8 */ 268 { PREFIX_TABLE (PREFIX_EVEX_0FE8) }, 269 { PREFIX_TABLE (PREFIX_EVEX_0FE9) }, 270 { PREFIX_TABLE (PREFIX_EVEX_0FEA) }, 271 { PREFIX_TABLE (PREFIX_EVEX_0FEB) }, 272 { PREFIX_TABLE (PREFIX_EVEX_0FEC) }, 273 { PREFIX_TABLE (PREFIX_EVEX_0FED) }, 274 { PREFIX_TABLE (PREFIX_EVEX_0FEE) }, 275 { PREFIX_TABLE (PREFIX_EVEX_0FEF) }, 276 /* F0 */ 277 { Bad_Opcode }, 278 { PREFIX_TABLE (PREFIX_EVEX_0FF1) }, 279 { PREFIX_TABLE (PREFIX_EVEX_0FF2) }, 280 { PREFIX_TABLE (PREFIX_EVEX_0FF3) }, 281 { PREFIX_TABLE (PREFIX_EVEX_0FF4) }, 282 { PREFIX_TABLE (PREFIX_EVEX_0FF5) }, 283 { PREFIX_TABLE (PREFIX_EVEX_0FF6) }, 284 { Bad_Opcode }, 285 /* F8 */ 286 { PREFIX_TABLE (PREFIX_EVEX_0FF8) }, 287 { PREFIX_TABLE (PREFIX_EVEX_0FF9) }, 288 { PREFIX_TABLE (PREFIX_EVEX_0FFA) }, 289 { PREFIX_TABLE (PREFIX_EVEX_0FFB) }, 290 { PREFIX_TABLE (PREFIX_EVEX_0FFC) }, 291 { PREFIX_TABLE (PREFIX_EVEX_0FFD) }, 292 { PREFIX_TABLE (PREFIX_EVEX_0FFE) }, 293 { Bad_Opcode }, 294 }, 295 /* EVEX_0F38 */ 296 { 297 /* 00 */ 298 { PREFIX_TABLE (PREFIX_EVEX_0F3800) }, 299 { Bad_Opcode }, 300 { Bad_Opcode }, 301 { Bad_Opcode }, 302 { PREFIX_TABLE (PREFIX_EVEX_0F3804) }, 303 { Bad_Opcode }, 304 { Bad_Opcode }, 305 { Bad_Opcode }, 306 /* 08 */ 307 { Bad_Opcode }, 308 { Bad_Opcode }, 309 { Bad_Opcode }, 310 { PREFIX_TABLE (PREFIX_EVEX_0F380B) }, 311 { PREFIX_TABLE (PREFIX_EVEX_0F380C) }, 312 { PREFIX_TABLE (PREFIX_EVEX_0F380D) }, 313 { Bad_Opcode }, 314 { Bad_Opcode }, 315 /* 10 */ 316 { PREFIX_TABLE (PREFIX_EVEX_0F3810) }, 317 { PREFIX_TABLE (PREFIX_EVEX_0F3811) }, 318 { PREFIX_TABLE (PREFIX_EVEX_0F3812) }, 319 { PREFIX_TABLE (PREFIX_EVEX_0F3813) }, 320 { PREFIX_TABLE (PREFIX_EVEX_0F3814) }, 321 { PREFIX_TABLE (PREFIX_EVEX_0F3815) }, 322 { PREFIX_TABLE (PREFIX_EVEX_0F3816) }, 323 { Bad_Opcode }, 324 /* 18 */ 325 { PREFIX_TABLE (PREFIX_EVEX_0F3818) }, 326 { PREFIX_TABLE (PREFIX_EVEX_0F3819) }, 327 { PREFIX_TABLE (PREFIX_EVEX_0F381A) }, 328 { PREFIX_TABLE (PREFIX_EVEX_0F381B) }, 329 { PREFIX_TABLE (PREFIX_EVEX_0F381C) }, 330 { PREFIX_TABLE (PREFIX_EVEX_0F381D) }, 331 { PREFIX_TABLE (PREFIX_EVEX_0F381E) }, 332 { PREFIX_TABLE (PREFIX_EVEX_0F381F) }, 333 /* 20 */ 334 { PREFIX_TABLE (PREFIX_EVEX_0F3820) }, 335 { PREFIX_TABLE (PREFIX_EVEX_0F3821) }, 336 { PREFIX_TABLE (PREFIX_EVEX_0F3822) }, 337 { PREFIX_TABLE (PREFIX_EVEX_0F3823) }, 338 { PREFIX_TABLE (PREFIX_EVEX_0F3824) }, 339 { PREFIX_TABLE (PREFIX_EVEX_0F3825) }, 340 { PREFIX_TABLE (PREFIX_EVEX_0F3826) }, 341 { PREFIX_TABLE (PREFIX_EVEX_0F3827) }, 342 /* 28 */ 343 { PREFIX_TABLE (PREFIX_EVEX_0F3828) }, 344 { PREFIX_TABLE (PREFIX_EVEX_0F3829) }, 345 { PREFIX_TABLE (PREFIX_EVEX_0F382A) }, 346 { PREFIX_TABLE (PREFIX_EVEX_0F382B) }, 347 { PREFIX_TABLE (PREFIX_EVEX_0F382C) }, 348 { PREFIX_TABLE (PREFIX_EVEX_0F382D) }, 349 { Bad_Opcode }, 350 { Bad_Opcode }, 351 /* 30 */ 352 { PREFIX_TABLE (PREFIX_EVEX_0F3830) }, 353 { PREFIX_TABLE (PREFIX_EVEX_0F3831) }, 354 { PREFIX_TABLE (PREFIX_EVEX_0F3832) }, 355 { PREFIX_TABLE (PREFIX_EVEX_0F3833) }, 356 { PREFIX_TABLE (PREFIX_EVEX_0F3834) }, 357 { PREFIX_TABLE (PREFIX_EVEX_0F3835) }, 358 { PREFIX_TABLE (PREFIX_EVEX_0F3836) }, 359 { PREFIX_TABLE (PREFIX_EVEX_0F3837) }, 360 /* 38 */ 361 { PREFIX_TABLE (PREFIX_EVEX_0F3838) }, 362 { PREFIX_TABLE (PREFIX_EVEX_0F3839) }, 363 { PREFIX_TABLE (PREFIX_EVEX_0F383A) }, 364 { PREFIX_TABLE (PREFIX_EVEX_0F383B) }, 365 { PREFIX_TABLE (PREFIX_EVEX_0F383C) }, 366 { PREFIX_TABLE (PREFIX_EVEX_0F383D) }, 367 { PREFIX_TABLE (PREFIX_EVEX_0F383E) }, 368 { PREFIX_TABLE (PREFIX_EVEX_0F383F) }, 369 /* 40 */ 370 { PREFIX_TABLE (PREFIX_EVEX_0F3840) }, 371 { Bad_Opcode }, 372 { PREFIX_TABLE (PREFIX_EVEX_0F3842) }, 373 { PREFIX_TABLE (PREFIX_EVEX_0F3843) }, 374 { PREFIX_TABLE (PREFIX_EVEX_0F3844) }, 375 { PREFIX_TABLE (PREFIX_EVEX_0F3845) }, 376 { PREFIX_TABLE (PREFIX_EVEX_0F3846) }, 377 { PREFIX_TABLE (PREFIX_EVEX_0F3847) }, 378 /* 48 */ 379 { Bad_Opcode }, 380 { Bad_Opcode }, 381 { Bad_Opcode }, 382 { Bad_Opcode }, 383 { PREFIX_TABLE (PREFIX_EVEX_0F384C) }, 384 { PREFIX_TABLE (PREFIX_EVEX_0F384D) }, 385 { PREFIX_TABLE (PREFIX_EVEX_0F384E) }, 386 { PREFIX_TABLE (PREFIX_EVEX_0F384F) }, 387 /* 50 */ 388 { PREFIX_TABLE (PREFIX_EVEX_0F3850) }, 389 { PREFIX_TABLE (PREFIX_EVEX_0F3851) }, 390 { PREFIX_TABLE (PREFIX_EVEX_0F3852) }, 391 { PREFIX_TABLE (PREFIX_EVEX_0F3853) }, 392 { PREFIX_TABLE (PREFIX_EVEX_0F3854) }, 393 { PREFIX_TABLE (PREFIX_EVEX_0F3855) }, 394 { Bad_Opcode }, 395 { Bad_Opcode }, 396 /* 58 */ 397 { PREFIX_TABLE (PREFIX_EVEX_0F3858) }, 398 { PREFIX_TABLE (PREFIX_EVEX_0F3859) }, 399 { PREFIX_TABLE (PREFIX_EVEX_0F385A) }, 400 { PREFIX_TABLE (PREFIX_EVEX_0F385B) }, 401 { Bad_Opcode }, 402 { Bad_Opcode }, 403 { Bad_Opcode }, 404 { Bad_Opcode }, 405 /* 60 */ 406 { Bad_Opcode }, 407 { Bad_Opcode }, 408 { PREFIX_TABLE (PREFIX_EVEX_0F3862) }, 409 { PREFIX_TABLE (PREFIX_EVEX_0F3863) }, 410 { PREFIX_TABLE (PREFIX_EVEX_0F3864) }, 411 { PREFIX_TABLE (PREFIX_EVEX_0F3865) }, 412 { PREFIX_TABLE (PREFIX_EVEX_0F3866) }, 413 { Bad_Opcode }, 414 /* 68 */ 415 { Bad_Opcode }, 416 { Bad_Opcode }, 417 { Bad_Opcode }, 418 { Bad_Opcode }, 419 { Bad_Opcode }, 420 { Bad_Opcode }, 421 { Bad_Opcode }, 422 { Bad_Opcode }, 423 /* 70 */ 424 { PREFIX_TABLE (PREFIX_EVEX_0F3870) }, 425 { PREFIX_TABLE (PREFIX_EVEX_0F3871) }, 426 { PREFIX_TABLE (PREFIX_EVEX_0F3872) }, 427 { PREFIX_TABLE (PREFIX_EVEX_0F3873) }, 428 { Bad_Opcode }, 429 { PREFIX_TABLE (PREFIX_EVEX_0F3875) }, 430 { PREFIX_TABLE (PREFIX_EVEX_0F3876) }, 431 { PREFIX_TABLE (PREFIX_EVEX_0F3877) }, 432 /* 78 */ 433 { PREFIX_TABLE (PREFIX_EVEX_0F3878) }, 434 { PREFIX_TABLE (PREFIX_EVEX_0F3879) }, 435 { PREFIX_TABLE (PREFIX_EVEX_0F387A) }, 436 { PREFIX_TABLE (PREFIX_EVEX_0F387B) }, 437 { PREFIX_TABLE (PREFIX_EVEX_0F387C) }, 438 { PREFIX_TABLE (PREFIX_EVEX_0F387D) }, 439 { PREFIX_TABLE (PREFIX_EVEX_0F387E) }, 440 { PREFIX_TABLE (PREFIX_EVEX_0F387F) }, 441 /* 80 */ 442 { Bad_Opcode }, 443 { Bad_Opcode }, 444 { Bad_Opcode }, 445 { PREFIX_TABLE (PREFIX_EVEX_0F3883) }, 446 { Bad_Opcode }, 447 { Bad_Opcode }, 448 { Bad_Opcode }, 449 { Bad_Opcode }, 450 /* 88 */ 451 { PREFIX_TABLE (PREFIX_EVEX_0F3888) }, 452 { PREFIX_TABLE (PREFIX_EVEX_0F3889) }, 453 { PREFIX_TABLE (PREFIX_EVEX_0F388A) }, 454 { PREFIX_TABLE (PREFIX_EVEX_0F388B) }, 455 { Bad_Opcode }, 456 { PREFIX_TABLE (PREFIX_EVEX_0F388D) }, 457 { Bad_Opcode }, 458 { PREFIX_TABLE (PREFIX_EVEX_0F388F) }, 459 /* 90 */ 460 { PREFIX_TABLE (PREFIX_EVEX_0F3890) }, 461 { PREFIX_TABLE (PREFIX_EVEX_0F3891) }, 462 { PREFIX_TABLE (PREFIX_EVEX_0F3892) }, 463 { PREFIX_TABLE (PREFIX_EVEX_0F3893) }, 464 { Bad_Opcode }, 465 { Bad_Opcode }, 466 { PREFIX_TABLE (PREFIX_EVEX_0F3896) }, 467 { PREFIX_TABLE (PREFIX_EVEX_0F3897) }, 468 /* 98 */ 469 { PREFIX_TABLE (PREFIX_EVEX_0F3898) }, 470 { PREFIX_TABLE (PREFIX_EVEX_0F3899) }, 471 { PREFIX_TABLE (PREFIX_EVEX_0F389A) }, 472 { PREFIX_TABLE (PREFIX_EVEX_0F389B) }, 473 { PREFIX_TABLE (PREFIX_EVEX_0F389C) }, 474 { PREFIX_TABLE (PREFIX_EVEX_0F389D) }, 475 { PREFIX_TABLE (PREFIX_EVEX_0F389E) }, 476 { PREFIX_TABLE (PREFIX_EVEX_0F389F) }, 477 /* A0 */ 478 { PREFIX_TABLE (PREFIX_EVEX_0F38A0) }, 479 { PREFIX_TABLE (PREFIX_EVEX_0F38A1) }, 480 { PREFIX_TABLE (PREFIX_EVEX_0F38A2) }, 481 { PREFIX_TABLE (PREFIX_EVEX_0F38A3) }, 482 { Bad_Opcode }, 483 { Bad_Opcode }, 484 { PREFIX_TABLE (PREFIX_EVEX_0F38A6) }, 485 { PREFIX_TABLE (PREFIX_EVEX_0F38A7) }, 486 /* A8 */ 487 { PREFIX_TABLE (PREFIX_EVEX_0F38A8) }, 488 { PREFIX_TABLE (PREFIX_EVEX_0F38A9) }, 489 { PREFIX_TABLE (PREFIX_EVEX_0F38AA) }, 490 { PREFIX_TABLE (PREFIX_EVEX_0F38AB) }, 491 { PREFIX_TABLE (PREFIX_EVEX_0F38AC) }, 492 { PREFIX_TABLE (PREFIX_EVEX_0F38AD) }, 493 { PREFIX_TABLE (PREFIX_EVEX_0F38AE) }, 494 { PREFIX_TABLE (PREFIX_EVEX_0F38AF) }, 495 /* B0 */ 496 { Bad_Opcode }, 497 { Bad_Opcode }, 498 { Bad_Opcode }, 499 { Bad_Opcode }, 500 { PREFIX_TABLE (PREFIX_EVEX_0F38B4) }, 501 { PREFIX_TABLE (PREFIX_EVEX_0F38B5) }, 502 { PREFIX_TABLE (PREFIX_EVEX_0F38B6) }, 503 { PREFIX_TABLE (PREFIX_EVEX_0F38B7) }, 504 /* B8 */ 505 { PREFIX_TABLE (PREFIX_EVEX_0F38B8) }, 506 { PREFIX_TABLE (PREFIX_EVEX_0F38B9) }, 507 { PREFIX_TABLE (PREFIX_EVEX_0F38BA) }, 508 { PREFIX_TABLE (PREFIX_EVEX_0F38BB) }, 509 { PREFIX_TABLE (PREFIX_EVEX_0F38BC) }, 510 { PREFIX_TABLE (PREFIX_EVEX_0F38BD) }, 511 { PREFIX_TABLE (PREFIX_EVEX_0F38BE) }, 512 { PREFIX_TABLE (PREFIX_EVEX_0F38BF) }, 513 /* C0 */ 514 { Bad_Opcode }, 515 { Bad_Opcode }, 516 { Bad_Opcode }, 517 { Bad_Opcode }, 518 { PREFIX_TABLE (PREFIX_EVEX_0F38C4) }, 519 { Bad_Opcode }, 520 { REG_TABLE (REG_EVEX_0F38C6) }, 521 { REG_TABLE (REG_EVEX_0F38C7) }, 522 /* C8 */ 523 { PREFIX_TABLE (PREFIX_EVEX_0F38C8) }, 524 { Bad_Opcode }, 525 { PREFIX_TABLE (PREFIX_EVEX_0F38CA) }, 526 { PREFIX_TABLE (PREFIX_EVEX_0F38CB) }, 527 { PREFIX_TABLE (PREFIX_EVEX_0F38CC) }, 528 { PREFIX_TABLE (PREFIX_EVEX_0F38CD) }, 529 { Bad_Opcode }, 530 { PREFIX_TABLE (PREFIX_EVEX_0F38CF) }, 531 /* D0 */ 532 { Bad_Opcode }, 533 { Bad_Opcode }, 534 { Bad_Opcode }, 535 { Bad_Opcode }, 536 { Bad_Opcode }, 537 { Bad_Opcode }, 538 { Bad_Opcode }, 539 { Bad_Opcode }, 540 /* D8 */ 541 { Bad_Opcode }, 542 { Bad_Opcode }, 543 { Bad_Opcode }, 544 { Bad_Opcode }, 545 { PREFIX_TABLE (PREFIX_EVEX_0F38DC) }, 546 { PREFIX_TABLE (PREFIX_EVEX_0F38DD) }, 547 { PREFIX_TABLE (PREFIX_EVEX_0F38DE) }, 548 { PREFIX_TABLE (PREFIX_EVEX_0F38DF) }, 549 /* E0 */ 550 { Bad_Opcode }, 551 { Bad_Opcode }, 552 { Bad_Opcode }, 553 { Bad_Opcode }, 554 { Bad_Opcode }, 555 { Bad_Opcode }, 556 { Bad_Opcode }, 557 { Bad_Opcode }, 558 /* E8 */ 559 { Bad_Opcode }, 560 { Bad_Opcode }, 561 { Bad_Opcode }, 562 { Bad_Opcode }, 563 { Bad_Opcode }, 564 { Bad_Opcode }, 565 { Bad_Opcode }, 566 { Bad_Opcode }, 567 /* F0 */ 568 { Bad_Opcode }, 569 { Bad_Opcode }, 570 { Bad_Opcode }, 571 { Bad_Opcode }, 572 { Bad_Opcode }, 573 { Bad_Opcode }, 574 { Bad_Opcode }, 575 { Bad_Opcode }, 576 /* F8 */ 577 { Bad_Opcode }, 578 { Bad_Opcode }, 579 { Bad_Opcode }, 580 { Bad_Opcode }, 581 { Bad_Opcode }, 582 { Bad_Opcode }, 583 { Bad_Opcode }, 584 { Bad_Opcode }, 585 }, 586 /* EVEX_0F3A */ 587 { 588 /* 00 */ 589 { PREFIX_TABLE (PREFIX_EVEX_0F3A00) }, 590 { PREFIX_TABLE (PREFIX_EVEX_0F3A01) }, 591 { Bad_Opcode }, 592 { PREFIX_TABLE (PREFIX_EVEX_0F3A03) }, 593 { PREFIX_TABLE (PREFIX_EVEX_0F3A04) }, 594 { PREFIX_TABLE (PREFIX_EVEX_0F3A05) }, 595 { Bad_Opcode }, 596 { Bad_Opcode }, 597 /* 08 */ 598 { PREFIX_TABLE (PREFIX_EVEX_0F3A08) }, 599 { PREFIX_TABLE (PREFIX_EVEX_0F3A09) }, 600 { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) }, 601 { PREFIX_TABLE (PREFIX_EVEX_0F3A0B) }, 602 { Bad_Opcode }, 603 { Bad_Opcode }, 604 { Bad_Opcode }, 605 { PREFIX_TABLE (PREFIX_EVEX_0F3A0F) }, 606 /* 10 */ 607 { Bad_Opcode }, 608 { Bad_Opcode }, 609 { Bad_Opcode }, 610 { Bad_Opcode }, 611 { PREFIX_TABLE (PREFIX_EVEX_0F3A14) }, 612 { PREFIX_TABLE (PREFIX_EVEX_0F3A15) }, 613 { PREFIX_TABLE (PREFIX_EVEX_0F3A16) }, 614 { PREFIX_TABLE (PREFIX_EVEX_0F3A17) }, 615 /* 18 */ 616 { PREFIX_TABLE (PREFIX_EVEX_0F3A18) }, 617 { PREFIX_TABLE (PREFIX_EVEX_0F3A19) }, 618 { PREFIX_TABLE (PREFIX_EVEX_0F3A1A) }, 619 { PREFIX_TABLE (PREFIX_EVEX_0F3A1B) }, 620 { Bad_Opcode }, 621 { PREFIX_TABLE (PREFIX_EVEX_0F3A1D) }, 622 { PREFIX_TABLE (PREFIX_EVEX_0F3A1E) }, 623 { PREFIX_TABLE (PREFIX_EVEX_0F3A1F) }, 624 /* 20 */ 625 { PREFIX_TABLE (PREFIX_EVEX_0F3A20) }, 626 { PREFIX_TABLE (PREFIX_EVEX_0F3A21) }, 627 { PREFIX_TABLE (PREFIX_EVEX_0F3A22) }, 628 { PREFIX_TABLE (PREFIX_EVEX_0F3A23) }, 629 { Bad_Opcode }, 630 { PREFIX_TABLE (PREFIX_EVEX_0F3A25) }, 631 { PREFIX_TABLE (PREFIX_EVEX_0F3A26) }, 632 { PREFIX_TABLE (PREFIX_EVEX_0F3A27) }, 633 /* 28 */ 634 { Bad_Opcode }, 635 { Bad_Opcode }, 636 { Bad_Opcode }, 637 { Bad_Opcode }, 638 { Bad_Opcode }, 639 { Bad_Opcode }, 640 { Bad_Opcode }, 641 { Bad_Opcode }, 642 /* 30 */ 643 { Bad_Opcode }, 644 { Bad_Opcode }, 645 { Bad_Opcode }, 646 { Bad_Opcode }, 647 { Bad_Opcode }, 648 { Bad_Opcode }, 649 { Bad_Opcode }, 650 { Bad_Opcode }, 651 /* 38 */ 652 { PREFIX_TABLE (PREFIX_EVEX_0F3A38) }, 653 { PREFIX_TABLE (PREFIX_EVEX_0F3A39) }, 654 { PREFIX_TABLE (PREFIX_EVEX_0F3A3A) }, 655 { PREFIX_TABLE (PREFIX_EVEX_0F3A3B) }, 656 { Bad_Opcode }, 657 { Bad_Opcode }, 658 { PREFIX_TABLE (PREFIX_EVEX_0F3A3E) }, 659 { PREFIX_TABLE (PREFIX_EVEX_0F3A3F) }, 660 /* 40 */ 661 { Bad_Opcode }, 662 { Bad_Opcode }, 663 { PREFIX_TABLE (PREFIX_EVEX_0F3A42) }, 664 { PREFIX_TABLE (PREFIX_EVEX_0F3A43) }, 665 { PREFIX_TABLE (PREFIX_EVEX_0F3A44) }, 666 { Bad_Opcode }, 667 { Bad_Opcode }, 668 { Bad_Opcode }, 669 /* 48 */ 670 { Bad_Opcode }, 671 { Bad_Opcode }, 672 { Bad_Opcode }, 673 { Bad_Opcode }, 674 { Bad_Opcode }, 675 { Bad_Opcode }, 676 { Bad_Opcode }, 677 { Bad_Opcode }, 678 /* 50 */ 679 { PREFIX_TABLE (PREFIX_EVEX_0F3A50) }, 680 { PREFIX_TABLE (PREFIX_EVEX_0F3A51) }, 681 { Bad_Opcode }, 682 { Bad_Opcode }, 683 { PREFIX_TABLE (PREFIX_EVEX_0F3A54) }, 684 { PREFIX_TABLE (PREFIX_EVEX_0F3A55) }, 685 { PREFIX_TABLE (PREFIX_EVEX_0F3A56) }, 686 { PREFIX_TABLE (PREFIX_EVEX_0F3A57) }, 687 /* 58 */ 688 { Bad_Opcode }, 689 { Bad_Opcode }, 690 { Bad_Opcode }, 691 { Bad_Opcode }, 692 { Bad_Opcode }, 693 { Bad_Opcode }, 694 { Bad_Opcode }, 695 { Bad_Opcode }, 696 /* 60 */ 697 { Bad_Opcode }, 698 { Bad_Opcode }, 699 { Bad_Opcode }, 700 { Bad_Opcode }, 701 { Bad_Opcode }, 702 { Bad_Opcode }, 703 { PREFIX_TABLE (PREFIX_EVEX_0F3A66) }, 704 { PREFIX_TABLE (PREFIX_EVEX_0F3A67) }, 705 /* 68 */ 706 { Bad_Opcode }, 707 { Bad_Opcode }, 708 { Bad_Opcode }, 709 { Bad_Opcode }, 710 { Bad_Opcode }, 711 { Bad_Opcode }, 712 { Bad_Opcode }, 713 { Bad_Opcode }, 714 /* 70 */ 715 { PREFIX_TABLE (PREFIX_EVEX_0F3A70) }, 716 { PREFIX_TABLE (PREFIX_EVEX_0F3A71) }, 717 { PREFIX_TABLE (PREFIX_EVEX_0F3A72) }, 718 { PREFIX_TABLE (PREFIX_EVEX_0F3A73) }, 719 { Bad_Opcode }, 720 { Bad_Opcode }, 721 { Bad_Opcode }, 722 { Bad_Opcode }, 723 /* 78 */ 724 { Bad_Opcode }, 725 { Bad_Opcode }, 726 { Bad_Opcode }, 727 { Bad_Opcode }, 728 { Bad_Opcode }, 729 { Bad_Opcode }, 730 { Bad_Opcode }, 731 { Bad_Opcode }, 732 /* 80 */ 733 { Bad_Opcode }, 734 { Bad_Opcode }, 735 { Bad_Opcode }, 736 { Bad_Opcode }, 737 { Bad_Opcode }, 738 { Bad_Opcode }, 739 { Bad_Opcode }, 740 { Bad_Opcode }, 741 /* 88 */ 742 { Bad_Opcode }, 743 { Bad_Opcode }, 744 { Bad_Opcode }, 745 { Bad_Opcode }, 746 { Bad_Opcode }, 747 { Bad_Opcode }, 748 { Bad_Opcode }, 749 { Bad_Opcode }, 750 /* 90 */ 751 { Bad_Opcode }, 752 { Bad_Opcode }, 753 { Bad_Opcode }, 754 { Bad_Opcode }, 755 { Bad_Opcode }, 756 { Bad_Opcode }, 757 { Bad_Opcode }, 758 { Bad_Opcode }, 759 /* 98 */ 760 { Bad_Opcode }, 761 { Bad_Opcode }, 762 { Bad_Opcode }, 763 { Bad_Opcode }, 764 { Bad_Opcode }, 765 { Bad_Opcode }, 766 { Bad_Opcode }, 767 { Bad_Opcode }, 768 /* A0 */ 769 { Bad_Opcode }, 770 { Bad_Opcode }, 771 { Bad_Opcode }, 772 { Bad_Opcode }, 773 { Bad_Opcode }, 774 { Bad_Opcode }, 775 { Bad_Opcode }, 776 { Bad_Opcode }, 777 /* A8 */ 778 { Bad_Opcode }, 779 { Bad_Opcode }, 780 { Bad_Opcode }, 781 { Bad_Opcode }, 782 { Bad_Opcode }, 783 { Bad_Opcode }, 784 { Bad_Opcode }, 785 { Bad_Opcode }, 786 /* B0 */ 787 { Bad_Opcode }, 788 { Bad_Opcode }, 789 { Bad_Opcode }, 790 { Bad_Opcode }, 791 { Bad_Opcode }, 792 { Bad_Opcode }, 793 { Bad_Opcode }, 794 { Bad_Opcode }, 795 /* B8 */ 796 { Bad_Opcode }, 797 { Bad_Opcode }, 798 { Bad_Opcode }, 799 { Bad_Opcode }, 800 { Bad_Opcode }, 801 { Bad_Opcode }, 802 { Bad_Opcode }, 803 { Bad_Opcode }, 804 /* C0 */ 805 { Bad_Opcode }, 806 { Bad_Opcode }, 807 { Bad_Opcode }, 808 { Bad_Opcode }, 809 { Bad_Opcode }, 810 { Bad_Opcode }, 811 { Bad_Opcode }, 812 { Bad_Opcode }, 813 /* C8 */ 814 { Bad_Opcode }, 815 { Bad_Opcode }, 816 { Bad_Opcode }, 817 { Bad_Opcode }, 818 { Bad_Opcode }, 819 { Bad_Opcode }, 820 { PREFIX_TABLE (PREFIX_EVEX_0F3ACE) }, 821 { PREFIX_TABLE (PREFIX_EVEX_0F3ACF) }, 822 /* D0 */ 823 { Bad_Opcode }, 824 { Bad_Opcode }, 825 { Bad_Opcode }, 826 { Bad_Opcode }, 827 { Bad_Opcode }, 828 { Bad_Opcode }, 829 { Bad_Opcode }, 830 { Bad_Opcode }, 831 /* D8 */ 832 { Bad_Opcode }, 833 { Bad_Opcode }, 834 { Bad_Opcode }, 835 { Bad_Opcode }, 836 { Bad_Opcode }, 837 { Bad_Opcode }, 838 { Bad_Opcode }, 839 { Bad_Opcode }, 840 /* E0 */ 841 { Bad_Opcode }, 842 { Bad_Opcode }, 843 { Bad_Opcode }, 844 { Bad_Opcode }, 845 { Bad_Opcode }, 846 { Bad_Opcode }, 847 { Bad_Opcode }, 848 { Bad_Opcode }, 849 /* E8 */ 850 { Bad_Opcode }, 851 { Bad_Opcode }, 852 { Bad_Opcode }, 853 { Bad_Opcode }, 854 { Bad_Opcode }, 855 { Bad_Opcode }, 856 { Bad_Opcode }, 857 { Bad_Opcode }, 858 /* F0 */ 859 { Bad_Opcode }, 860 { Bad_Opcode }, 861 { Bad_Opcode }, 862 { Bad_Opcode }, 863 { Bad_Opcode }, 864 { Bad_Opcode }, 865 { Bad_Opcode }, 866 { Bad_Opcode }, 867 /* F8 */ 868 { Bad_Opcode }, 869 { Bad_Opcode }, 870 { Bad_Opcode }, 871 { Bad_Opcode }, 872 { Bad_Opcode }, 873 { Bad_Opcode }, 874 { Bad_Opcode }, 875 { Bad_Opcode }, 876 }, 877 }; 878 #endif /* NEED_OPCODE_TABLE */ 879 880 #ifdef NEED_REG_TABLE 881 /* REG_EVEX_0F71 */ 882 { 883 { Bad_Opcode }, 884 { Bad_Opcode }, 885 { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_2) }, 886 { Bad_Opcode }, 887 { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_4) }, 888 { Bad_Opcode }, 889 { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_6) }, 890 }, 891 /* REG_EVEX_0F72 */ 892 { 893 { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_0) }, 894 { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_1) }, 895 { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_2) }, 896 { Bad_Opcode }, 897 { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_4) }, 898 { Bad_Opcode }, 899 { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_6) }, 900 }, 901 /* REG_EVEX_0F73 */ 902 { 903 { Bad_Opcode }, 904 { Bad_Opcode }, 905 { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_2) }, 906 { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_3) }, 907 { Bad_Opcode }, 908 { Bad_Opcode }, 909 { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_6) }, 910 { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_7) }, 911 }, 912 /* REG_EVEX_0F38C6 */ 913 { 914 { Bad_Opcode }, 915 { MOD_TABLE (MOD_EVEX_0F38C6_REG_1) }, 916 { MOD_TABLE (MOD_EVEX_0F38C6_REG_2) }, 917 { Bad_Opcode }, 918 { Bad_Opcode }, 919 { MOD_TABLE (MOD_EVEX_0F38C6_REG_5) }, 920 { MOD_TABLE (MOD_EVEX_0F38C6_REG_6) }, 921 }, 922 /* REG_EVEX_0F38C7 */ 923 { 924 { Bad_Opcode }, 925 { MOD_TABLE (MOD_EVEX_0F38C7_REG_1) }, 926 { MOD_TABLE (MOD_EVEX_0F38C7_REG_2) }, 927 { Bad_Opcode }, 928 { Bad_Opcode }, 929 { MOD_TABLE (MOD_EVEX_0F38C7_REG_5) }, 930 { MOD_TABLE (MOD_EVEX_0F38C7_REG_6) }, 931 }, 932 #endif /* NEED_REG_TABLE */ 933 934 #ifdef NEED_PREFIX_TABLE 935 /* PREFIX_EVEX_0F10 */ 936 { 937 { VEX_W_TABLE (EVEX_W_0F10_P_0) }, 938 { MOD_TABLE (MOD_EVEX_0F10_PREFIX_1) }, 939 { VEX_W_TABLE (EVEX_W_0F10_P_2) }, 940 { MOD_TABLE (MOD_EVEX_0F10_PREFIX_3) }, 941 }, 942 /* PREFIX_EVEX_0F11 */ 943 { 944 { VEX_W_TABLE (EVEX_W_0F11_P_0) }, 945 { MOD_TABLE (MOD_EVEX_0F11_PREFIX_1) }, 946 { VEX_W_TABLE (EVEX_W_0F11_P_2) }, 947 { MOD_TABLE (MOD_EVEX_0F11_PREFIX_3) }, 948 }, 949 /* PREFIX_EVEX_0F12 */ 950 { 951 { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) }, 952 { VEX_W_TABLE (EVEX_W_0F12_P_1) }, 953 { VEX_W_TABLE (EVEX_W_0F12_P_2) }, 954 { VEX_W_TABLE (EVEX_W_0F12_P_3) }, 955 }, 956 /* PREFIX_EVEX_0F13 */ 957 { 958 { VEX_W_TABLE (EVEX_W_0F13_P_0) }, 959 { Bad_Opcode }, 960 { VEX_W_TABLE (EVEX_W_0F13_P_2) }, 961 }, 962 /* PREFIX_EVEX_0F14 */ 963 { 964 { VEX_W_TABLE (EVEX_W_0F14_P_0) }, 965 { Bad_Opcode }, 966 { VEX_W_TABLE (EVEX_W_0F14_P_2) }, 967 }, 968 /* PREFIX_EVEX_0F15 */ 969 { 970 { VEX_W_TABLE (EVEX_W_0F15_P_0) }, 971 { Bad_Opcode }, 972 { VEX_W_TABLE (EVEX_W_0F15_P_2) }, 973 }, 974 /* PREFIX_EVEX_0F16 */ 975 { 976 { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) }, 977 { VEX_W_TABLE (EVEX_W_0F16_P_1) }, 978 { VEX_W_TABLE (EVEX_W_0F16_P_2) }, 979 }, 980 /* PREFIX_EVEX_0F17 */ 981 { 982 { VEX_W_TABLE (EVEX_W_0F17_P_0) }, 983 { Bad_Opcode }, 984 { VEX_W_TABLE (EVEX_W_0F17_P_2) }, 985 }, 986 /* PREFIX_EVEX_0F28 */ 987 { 988 { VEX_W_TABLE (EVEX_W_0F28_P_0) }, 989 { Bad_Opcode }, 990 { VEX_W_TABLE (EVEX_W_0F28_P_2) }, 991 }, 992 /* PREFIX_EVEX_0F29 */ 993 { 994 { VEX_W_TABLE (EVEX_W_0F29_P_0) }, 995 { Bad_Opcode }, 996 { VEX_W_TABLE (EVEX_W_0F29_P_2) }, 997 }, 998 /* PREFIX_EVEX_0F2A */ 999 { 1000 { Bad_Opcode }, 1001 { VEX_W_TABLE (EVEX_W_0F2A_P_1) }, 1002 { Bad_Opcode }, 1003 { VEX_W_TABLE (EVEX_W_0F2A_P_3) }, 1004 }, 1005 /* PREFIX_EVEX_0F2B */ 1006 { 1007 { VEX_W_TABLE (EVEX_W_0F2B_P_0) }, 1008 { Bad_Opcode }, 1009 { VEX_W_TABLE (EVEX_W_0F2B_P_2) }, 1010 }, 1011 /* PREFIX_EVEX_0F2C */ 1012 { 1013 { Bad_Opcode }, 1014 { "vcvttss2si", { Gdq, EXxmm_md, EXxEVexS }, 0 }, 1015 { Bad_Opcode }, 1016 { "vcvttsd2si", { Gdq, EXxmm_mq, EXxEVexS }, 0 }, 1017 }, 1018 /* PREFIX_EVEX_0F2D */ 1019 { 1020 { Bad_Opcode }, 1021 { "vcvtss2si", { Gdq, EXxmm_md, EXxEVexR }, 0 }, 1022 { Bad_Opcode }, 1023 { "vcvtsd2si", { Gdq, EXxmm_mq, EXxEVexR }, 0 }, 1024 }, 1025 /* PREFIX_EVEX_0F2E */ 1026 { 1027 { VEX_W_TABLE (EVEX_W_0F2E_P_0) }, 1028 { Bad_Opcode }, 1029 { VEX_W_TABLE (EVEX_W_0F2E_P_2) }, 1030 }, 1031 /* PREFIX_EVEX_0F2F */ 1032 { 1033 { VEX_W_TABLE (EVEX_W_0F2F_P_0) }, 1034 { Bad_Opcode }, 1035 { VEX_W_TABLE (EVEX_W_0F2F_P_2) }, 1036 }, 1037 /* PREFIX_EVEX_0F51 */ 1038 { 1039 { VEX_W_TABLE (EVEX_W_0F51_P_0) }, 1040 { VEX_W_TABLE (EVEX_W_0F51_P_1) }, 1041 { VEX_W_TABLE (EVEX_W_0F51_P_2) }, 1042 { VEX_W_TABLE (EVEX_W_0F51_P_3) }, 1043 }, 1044 /* PREFIX_EVEX_0F54 */ 1045 { 1046 { VEX_W_TABLE (EVEX_W_0F54_P_0) }, 1047 { Bad_Opcode }, 1048 { VEX_W_TABLE (EVEX_W_0F54_P_2) }, 1049 }, 1050 /* PREFIX_EVEX_0F55 */ 1051 { 1052 { VEX_W_TABLE (EVEX_W_0F55_P_0) }, 1053 { Bad_Opcode }, 1054 { VEX_W_TABLE (EVEX_W_0F55_P_2) }, 1055 }, 1056 /* PREFIX_EVEX_0F56 */ 1057 { 1058 { VEX_W_TABLE (EVEX_W_0F56_P_0) }, 1059 { Bad_Opcode }, 1060 { VEX_W_TABLE (EVEX_W_0F56_P_2) }, 1061 }, 1062 /* PREFIX_EVEX_0F57 */ 1063 { 1064 { VEX_W_TABLE (EVEX_W_0F57_P_0) }, 1065 { Bad_Opcode }, 1066 { VEX_W_TABLE (EVEX_W_0F57_P_2) }, 1067 }, 1068 /* PREFIX_EVEX_0F58 */ 1069 { 1070 { VEX_W_TABLE (EVEX_W_0F58_P_0) }, 1071 { VEX_W_TABLE (EVEX_W_0F58_P_1) }, 1072 { VEX_W_TABLE (EVEX_W_0F58_P_2) }, 1073 { VEX_W_TABLE (EVEX_W_0F58_P_3) }, 1074 }, 1075 /* PREFIX_EVEX_0F59 */ 1076 { 1077 { VEX_W_TABLE (EVEX_W_0F59_P_0) }, 1078 { VEX_W_TABLE (EVEX_W_0F59_P_1) }, 1079 { VEX_W_TABLE (EVEX_W_0F59_P_2) }, 1080 { VEX_W_TABLE (EVEX_W_0F59_P_3) }, 1081 }, 1082 /* PREFIX_EVEX_0F5A */ 1083 { 1084 { VEX_W_TABLE (EVEX_W_0F5A_P_0) }, 1085 { VEX_W_TABLE (EVEX_W_0F5A_P_1) }, 1086 { VEX_W_TABLE (EVEX_W_0F5A_P_2) }, 1087 { VEX_W_TABLE (EVEX_W_0F5A_P_3) }, 1088 }, 1089 /* PREFIX_EVEX_0F5B */ 1090 { 1091 { VEX_W_TABLE (EVEX_W_0F5B_P_0) }, 1092 { VEX_W_TABLE (EVEX_W_0F5B_P_1) }, 1093 { VEX_W_TABLE (EVEX_W_0F5B_P_2) }, 1094 }, 1095 /* PREFIX_EVEX_0F5C */ 1096 { 1097 { VEX_W_TABLE (EVEX_W_0F5C_P_0) }, 1098 { VEX_W_TABLE (EVEX_W_0F5C_P_1) }, 1099 { VEX_W_TABLE (EVEX_W_0F5C_P_2) }, 1100 { VEX_W_TABLE (EVEX_W_0F5C_P_3) }, 1101 }, 1102 /* PREFIX_EVEX_0F5D */ 1103 { 1104 { VEX_W_TABLE (EVEX_W_0F5D_P_0) }, 1105 { VEX_W_TABLE (EVEX_W_0F5D_P_1) }, 1106 { VEX_W_TABLE (EVEX_W_0F5D_P_2) }, 1107 { VEX_W_TABLE (EVEX_W_0F5D_P_3) }, 1108 }, 1109 /* PREFIX_EVEX_0F5E */ 1110 { 1111 { VEX_W_TABLE (EVEX_W_0F5E_P_0) }, 1112 { VEX_W_TABLE (EVEX_W_0F5E_P_1) }, 1113 { VEX_W_TABLE (EVEX_W_0F5E_P_2) }, 1114 { VEX_W_TABLE (EVEX_W_0F5E_P_3) }, 1115 }, 1116 /* PREFIX_EVEX_0F5F */ 1117 { 1118 { VEX_W_TABLE (EVEX_W_0F5F_P_0) }, 1119 { VEX_W_TABLE (EVEX_W_0F5F_P_1) }, 1120 { VEX_W_TABLE (EVEX_W_0F5F_P_2) }, 1121 { VEX_W_TABLE (EVEX_W_0F5F_P_3) }, 1122 }, 1123 /* PREFIX_EVEX_0F60 */ 1124 { 1125 { Bad_Opcode }, 1126 { Bad_Opcode }, 1127 { "vpunpcklbw", { XM, Vex, EXx }, 0 }, 1128 }, 1129 /* PREFIX_EVEX_0F61 */ 1130 { 1131 { Bad_Opcode }, 1132 { Bad_Opcode }, 1133 { "vpunpcklwd", { XM, Vex, EXx }, 0 }, 1134 }, 1135 /* PREFIX_EVEX_0F62 */ 1136 { 1137 { Bad_Opcode }, 1138 { Bad_Opcode }, 1139 { VEX_W_TABLE (EVEX_W_0F62_P_2) }, 1140 }, 1141 /* PREFIX_EVEX_0F63 */ 1142 { 1143 { Bad_Opcode }, 1144 { Bad_Opcode }, 1145 { "vpacksswb", { XM, Vex, EXx }, 0 }, 1146 }, 1147 /* PREFIX_EVEX_0F64 */ 1148 { 1149 { Bad_Opcode }, 1150 { Bad_Opcode }, 1151 { "vpcmpgtb", { XMask, Vex, EXx }, 0 }, 1152 }, 1153 /* PREFIX_EVEX_0F65 */ 1154 { 1155 { Bad_Opcode }, 1156 { Bad_Opcode }, 1157 { "vpcmpgtw", { XMask, Vex, EXx }, 0 }, 1158 }, 1159 /* PREFIX_EVEX_0F66 */ 1160 { 1161 { Bad_Opcode }, 1162 { Bad_Opcode }, 1163 { VEX_W_TABLE (EVEX_W_0F66_P_2) }, 1164 }, 1165 /* PREFIX_EVEX_0F67 */ 1166 { 1167 { Bad_Opcode }, 1168 { Bad_Opcode }, 1169 { "vpackuswb", { XM, Vex, EXx }, 0 }, 1170 }, 1171 /* PREFIX_EVEX_0F68 */ 1172 { 1173 { Bad_Opcode }, 1174 { Bad_Opcode }, 1175 { "vpunpckhbw", { XM, Vex, EXx }, 0 }, 1176 }, 1177 /* PREFIX_EVEX_0F69 */ 1178 { 1179 { Bad_Opcode }, 1180 { Bad_Opcode }, 1181 { "vpunpckhwd", { XM, Vex, EXx }, 0 }, 1182 }, 1183 /* PREFIX_EVEX_0F6A */ 1184 { 1185 { Bad_Opcode }, 1186 { Bad_Opcode }, 1187 { VEX_W_TABLE (EVEX_W_0F6A_P_2) }, 1188 }, 1189 /* PREFIX_EVEX_0F6B */ 1190 { 1191 { Bad_Opcode }, 1192 { Bad_Opcode }, 1193 { VEX_W_TABLE (EVEX_W_0F6B_P_2) }, 1194 }, 1195 /* PREFIX_EVEX_0F6C */ 1196 { 1197 { Bad_Opcode }, 1198 { Bad_Opcode }, 1199 { VEX_W_TABLE (EVEX_W_0F6C_P_2) }, 1200 }, 1201 /* PREFIX_EVEX_0F6D */ 1202 { 1203 { Bad_Opcode }, 1204 { Bad_Opcode }, 1205 { VEX_W_TABLE (EVEX_W_0F6D_P_2) }, 1206 }, 1207 /* PREFIX_EVEX_0F6E */ 1208 { 1209 { Bad_Opcode }, 1210 { Bad_Opcode }, 1211 { VEX_W_TABLE (EVEX_W_0F6E_P_2) }, 1212 }, 1213 /* PREFIX_EVEX_0F6F */ 1214 { 1215 { Bad_Opcode }, 1216 { VEX_W_TABLE (EVEX_W_0F6F_P_1) }, 1217 { VEX_W_TABLE (EVEX_W_0F6F_P_2) }, 1218 { VEX_W_TABLE (EVEX_W_0F6F_P_3) }, 1219 }, 1220 /* PREFIX_EVEX_0F70 */ 1221 { 1222 { Bad_Opcode }, 1223 { "vpshufhw", { XM, EXx, Ib }, 0 }, 1224 { VEX_W_TABLE (EVEX_W_0F70_P_2) }, 1225 { "vpshuflw", { XM, EXx, Ib }, 0 }, 1226 }, 1227 /* PREFIX_EVEX_0F71_REG_2 */ 1228 { 1229 { Bad_Opcode }, 1230 { Bad_Opcode }, 1231 { "vpsrlw", { Vex, EXx, Ib }, 0 }, 1232 }, 1233 /* PREFIX_EVEX_0F71_REG_4 */ 1234 { 1235 { Bad_Opcode }, 1236 { Bad_Opcode }, 1237 { "vpsraw", { Vex, EXx, Ib }, 0 }, 1238 }, 1239 /* PREFIX_EVEX_0F71_REG_6 */ 1240 { 1241 { Bad_Opcode }, 1242 { Bad_Opcode }, 1243 { "vpsllw", { Vex, EXx, Ib }, 0 }, 1244 }, 1245 /* PREFIX_EVEX_0F72_REG_0 */ 1246 { 1247 { Bad_Opcode }, 1248 { Bad_Opcode }, 1249 { "vpror%LW", { Vex, EXx, Ib }, 0 }, 1250 }, 1251 /* PREFIX_EVEX_0F72_REG_1 */ 1252 { 1253 { Bad_Opcode }, 1254 { Bad_Opcode }, 1255 { "vprol%LW", { Vex, EXx, Ib }, 0 }, 1256 }, 1257 /* PREFIX_EVEX_0F72_REG_2 */ 1258 { 1259 { Bad_Opcode }, 1260 { Bad_Opcode }, 1261 { VEX_W_TABLE (EVEX_W_0F72_R_2_P_2) }, 1262 }, 1263 /* PREFIX_EVEX_0F72_REG_4 */ 1264 { 1265 { Bad_Opcode }, 1266 { Bad_Opcode }, 1267 { "vpsra%LW", { Vex, EXx, Ib }, 0 }, 1268 }, 1269 /* PREFIX_EVEX_0F72_REG_6 */ 1270 { 1271 { Bad_Opcode }, 1272 { Bad_Opcode }, 1273 { VEX_W_TABLE (EVEX_W_0F72_R_6_P_2) }, 1274 }, 1275 /* PREFIX_EVEX_0F73_REG_2 */ 1276 { 1277 { Bad_Opcode }, 1278 { Bad_Opcode }, 1279 { VEX_W_TABLE (EVEX_W_0F73_R_2_P_2) }, 1280 }, 1281 /* PREFIX_EVEX_0F73_REG_3 */ 1282 { 1283 { Bad_Opcode }, 1284 { Bad_Opcode }, 1285 { "vpsrldq", { Vex, EXx, Ib }, 0 }, 1286 }, 1287 /* PREFIX_EVEX_0F73_REG_6 */ 1288 { 1289 { Bad_Opcode }, 1290 { Bad_Opcode }, 1291 { VEX_W_TABLE (EVEX_W_0F73_R_6_P_2) }, 1292 }, 1293 /* PREFIX_EVEX_0F73_REG_7 */ 1294 { 1295 { Bad_Opcode }, 1296 { Bad_Opcode }, 1297 { "vpslldq", { Vex, EXx, Ib }, 0 }, 1298 }, 1299 /* PREFIX_EVEX_0F74 */ 1300 { 1301 { Bad_Opcode }, 1302 { Bad_Opcode }, 1303 { "vpcmpeqb", { XMask, Vex, EXx }, 0 }, 1304 }, 1305 /* PREFIX_EVEX_0F75 */ 1306 { 1307 { Bad_Opcode }, 1308 { Bad_Opcode }, 1309 { "vpcmpeqw", { XMask, Vex, EXx }, 0 }, 1310 }, 1311 /* PREFIX_EVEX_0F76 */ 1312 { 1313 { Bad_Opcode }, 1314 { Bad_Opcode }, 1315 { VEX_W_TABLE (EVEX_W_0F76_P_2) }, 1316 }, 1317 /* PREFIX_EVEX_0F78 */ 1318 { 1319 { VEX_W_TABLE (EVEX_W_0F78_P_0) }, 1320 { "vcvttss2usi", { Gdq, EXxmm_md, EXxEVexS }, 0 }, 1321 { VEX_W_TABLE (EVEX_W_0F78_P_2) }, 1322 { "vcvttsd2usi", { Gdq, EXxmm_mq, EXxEVexS }, 0 }, 1323 }, 1324 /* PREFIX_EVEX_0F79 */ 1325 { 1326 { VEX_W_TABLE (EVEX_W_0F79_P_0) }, 1327 { "vcvtss2usi", { Gdq, EXxmm_md, EXxEVexR }, 0 }, 1328 { VEX_W_TABLE (EVEX_W_0F79_P_2) }, 1329 { "vcvtsd2usi", { Gdq, EXxmm_mq, EXxEVexR }, 0 }, 1330 }, 1331 /* PREFIX_EVEX_0F7A */ 1332 { 1333 { Bad_Opcode }, 1334 { VEX_W_TABLE (EVEX_W_0F7A_P_1) }, 1335 { VEX_W_TABLE (EVEX_W_0F7A_P_2) }, 1336 { VEX_W_TABLE (EVEX_W_0F7A_P_3) }, 1337 }, 1338 /* PREFIX_EVEX_0F7B */ 1339 { 1340 { Bad_Opcode }, 1341 { VEX_W_TABLE (EVEX_W_0F7B_P_1) }, 1342 { VEX_W_TABLE (EVEX_W_0F7B_P_2) }, 1343 { VEX_W_TABLE (EVEX_W_0F7B_P_3) }, 1344 }, 1345 /* PREFIX_EVEX_0F7E */ 1346 { 1347 { Bad_Opcode }, 1348 { VEX_W_TABLE (EVEX_W_0F7E_P_1) }, 1349 { VEX_W_TABLE (EVEX_W_0F7E_P_2) }, 1350 }, 1351 /* PREFIX_EVEX_0F7F */ 1352 { 1353 { Bad_Opcode }, 1354 { VEX_W_TABLE (EVEX_W_0F7F_P_1) }, 1355 { VEX_W_TABLE (EVEX_W_0F7F_P_2) }, 1356 { VEX_W_TABLE (EVEX_W_0F7F_P_3) }, 1357 }, 1358 /* PREFIX_EVEX_0FC2 */ 1359 { 1360 { VEX_W_TABLE (EVEX_W_0FC2_P_0) }, 1361 { VEX_W_TABLE (EVEX_W_0FC2_P_1) }, 1362 { VEX_W_TABLE (EVEX_W_0FC2_P_2) }, 1363 { VEX_W_TABLE (EVEX_W_0FC2_P_3) }, 1364 }, 1365 /* PREFIX_EVEX_0FC4 */ 1366 { 1367 { Bad_Opcode }, 1368 { Bad_Opcode }, 1369 { "vpinsrw", { XM, Vex128, Edw, Ib }, 0 }, 1370 }, 1371 /* PREFIX_EVEX_0FC5 */ 1372 { 1373 { Bad_Opcode }, 1374 { Bad_Opcode }, 1375 { "vpextrw", { Gdq, XS, Ib }, 0 }, 1376 }, 1377 /* PREFIX_EVEX_0FC6 */ 1378 { 1379 { VEX_W_TABLE (EVEX_W_0FC6_P_0) }, 1380 { Bad_Opcode }, 1381 { VEX_W_TABLE (EVEX_W_0FC6_P_2) }, 1382 }, 1383 /* PREFIX_EVEX_0FD1 */ 1384 { 1385 { Bad_Opcode }, 1386 { Bad_Opcode }, 1387 { "vpsrlw", { XM, Vex, EXxmm }, 0 }, 1388 }, 1389 /* PREFIX_EVEX_0FD2 */ 1390 { 1391 { Bad_Opcode }, 1392 { Bad_Opcode }, 1393 { VEX_W_TABLE (EVEX_W_0FD2_P_2) }, 1394 }, 1395 /* PREFIX_EVEX_0FD3 */ 1396 { 1397 { Bad_Opcode }, 1398 { Bad_Opcode }, 1399 { VEX_W_TABLE (EVEX_W_0FD3_P_2) }, 1400 }, 1401 /* PREFIX_EVEX_0FD4 */ 1402 { 1403 { Bad_Opcode }, 1404 { Bad_Opcode }, 1405 { VEX_W_TABLE (EVEX_W_0FD4_P_2) }, 1406 }, 1407 /* PREFIX_EVEX_0FD5 */ 1408 { 1409 { Bad_Opcode }, 1410 { Bad_Opcode }, 1411 { "vpmullw", { XM, Vex, EXx }, 0 }, 1412 }, 1413 /* PREFIX_EVEX_0FD6 */ 1414 { 1415 { Bad_Opcode }, 1416 { Bad_Opcode }, 1417 { VEX_W_TABLE (EVEX_W_0FD6_P_2) }, 1418 }, 1419 /* PREFIX_EVEX_0FD8 */ 1420 { 1421 { Bad_Opcode }, 1422 { Bad_Opcode }, 1423 { "vpsubusb", { XM, Vex, EXx }, 0 }, 1424 }, 1425 /* PREFIX_EVEX_0FD9 */ 1426 { 1427 { Bad_Opcode }, 1428 { Bad_Opcode }, 1429 { "vpsubusw", { XM, Vex, EXx }, 0 }, 1430 }, 1431 /* PREFIX_EVEX_0FDA */ 1432 { 1433 { Bad_Opcode }, 1434 { Bad_Opcode }, 1435 { "vpminub", { XM, Vex, EXx }, 0 }, 1436 }, 1437 /* PREFIX_EVEX_0FDB */ 1438 { 1439 { Bad_Opcode }, 1440 { Bad_Opcode }, 1441 { "vpand%LW", { XM, Vex, EXx }, 0 }, 1442 }, 1443 /* PREFIX_EVEX_0FDC */ 1444 { 1445 { Bad_Opcode }, 1446 { Bad_Opcode }, 1447 { "vpaddusb", { XM, Vex, EXx }, 0 }, 1448 }, 1449 /* PREFIX_EVEX_0FDD */ 1450 { 1451 { Bad_Opcode }, 1452 { Bad_Opcode }, 1453 { "vpaddusw", { XM, Vex, EXx }, 0 }, 1454 }, 1455 /* PREFIX_EVEX_0FDE */ 1456 { 1457 { Bad_Opcode }, 1458 { Bad_Opcode }, 1459 { "vpmaxub", { XM, Vex, EXx }, 0 }, 1460 }, 1461 /* PREFIX_EVEX_0FDF */ 1462 { 1463 { Bad_Opcode }, 1464 { Bad_Opcode }, 1465 { "vpandn%LW", { XM, Vex, EXx }, 0 }, 1466 }, 1467 /* PREFIX_EVEX_0FE0 */ 1468 { 1469 { Bad_Opcode }, 1470 { Bad_Opcode }, 1471 { "vpavgb", { XM, Vex, EXx }, 0 }, 1472 }, 1473 /* PREFIX_EVEX_0FE1 */ 1474 { 1475 { Bad_Opcode }, 1476 { Bad_Opcode }, 1477 { "vpsraw", { XM, Vex, EXxmm }, 0 }, 1478 }, 1479 /* PREFIX_EVEX_0FE2 */ 1480 { 1481 { Bad_Opcode }, 1482 { Bad_Opcode }, 1483 { "vpsra%LW", { XM, Vex, EXxmm }, 0 }, 1484 }, 1485 /* PREFIX_EVEX_0FE3 */ 1486 { 1487 { Bad_Opcode }, 1488 { Bad_Opcode }, 1489 { "vpavgw", { XM, Vex, EXx }, 0 }, 1490 }, 1491 /* PREFIX_EVEX_0FE4 */ 1492 { 1493 { Bad_Opcode }, 1494 { Bad_Opcode }, 1495 { "vpmulhuw", { XM, Vex, EXx }, 0 }, 1496 }, 1497 /* PREFIX_EVEX_0FE5 */ 1498 { 1499 { Bad_Opcode }, 1500 { Bad_Opcode }, 1501 { "vpmulhw", { XM, Vex, EXx }, 0 }, 1502 }, 1503 /* PREFIX_EVEX_0FE6 */ 1504 { 1505 { Bad_Opcode }, 1506 { VEX_W_TABLE (EVEX_W_0FE6_P_1) }, 1507 { VEX_W_TABLE (EVEX_W_0FE6_P_2) }, 1508 { VEX_W_TABLE (EVEX_W_0FE6_P_3) }, 1509 }, 1510 /* PREFIX_EVEX_0FE7 */ 1511 { 1512 { Bad_Opcode }, 1513 { Bad_Opcode }, 1514 { VEX_W_TABLE (EVEX_W_0FE7_P_2) }, 1515 }, 1516 /* PREFIX_EVEX_0FE8 */ 1517 { 1518 { Bad_Opcode }, 1519 { Bad_Opcode }, 1520 { "vpsubsb", { XM, Vex, EXx }, 0 }, 1521 }, 1522 /* PREFIX_EVEX_0FE9 */ 1523 { 1524 { Bad_Opcode }, 1525 { Bad_Opcode }, 1526 { "vpsubsw", { XM, Vex, EXx }, 0 }, 1527 }, 1528 /* PREFIX_EVEX_0FEA */ 1529 { 1530 { Bad_Opcode }, 1531 { Bad_Opcode }, 1532 { "vpminsw", { XM, Vex, EXx }, 0 }, 1533 }, 1534 /* PREFIX_EVEX_0FEB */ 1535 { 1536 { Bad_Opcode }, 1537 { Bad_Opcode }, 1538 { "vpor%LW", { XM, Vex, EXx }, 0 }, 1539 }, 1540 /* PREFIX_EVEX_0FEC */ 1541 { 1542 { Bad_Opcode }, 1543 { Bad_Opcode }, 1544 { "vpaddsb", { XM, Vex, EXx }, 0 }, 1545 }, 1546 /* PREFIX_EVEX_0FED */ 1547 { 1548 { Bad_Opcode }, 1549 { Bad_Opcode }, 1550 { "vpaddsw", { XM, Vex, EXx }, 0 }, 1551 }, 1552 /* PREFIX_EVEX_0FEE */ 1553 { 1554 { Bad_Opcode }, 1555 { Bad_Opcode }, 1556 { "vpmaxsw", { XM, Vex, EXx }, 0 }, 1557 }, 1558 /* PREFIX_EVEX_0FEF */ 1559 { 1560 { Bad_Opcode }, 1561 { Bad_Opcode }, 1562 { "vpxor%LW", { XM, Vex, EXx }, 0 }, 1563 }, 1564 /* PREFIX_EVEX_0FF1 */ 1565 { 1566 { Bad_Opcode }, 1567 { Bad_Opcode }, 1568 { "vpsllw", { XM, Vex, EXxmm }, 0 }, 1569 }, 1570 /* PREFIX_EVEX_0FF2 */ 1571 { 1572 { Bad_Opcode }, 1573 { Bad_Opcode }, 1574 { VEX_W_TABLE (EVEX_W_0FF2_P_2) }, 1575 }, 1576 /* PREFIX_EVEX_0FF3 */ 1577 { 1578 { Bad_Opcode }, 1579 { Bad_Opcode }, 1580 { VEX_W_TABLE (EVEX_W_0FF3_P_2) }, 1581 }, 1582 /* PREFIX_EVEX_0FF4 */ 1583 { 1584 { Bad_Opcode }, 1585 { Bad_Opcode }, 1586 { VEX_W_TABLE (EVEX_W_0FF4_P_2) }, 1587 }, 1588 /* PREFIX_EVEX_0FF5 */ 1589 { 1590 { Bad_Opcode }, 1591 { Bad_Opcode }, 1592 { "vpmaddwd", { XM, Vex, EXx }, 0 }, 1593 }, 1594 /* PREFIX_EVEX_0FF6 */ 1595 { 1596 { Bad_Opcode }, 1597 { Bad_Opcode }, 1598 { "vpsadbw", { XM, Vex, EXx }, 0 }, 1599 }, 1600 /* PREFIX_EVEX_0FF8 */ 1601 { 1602 { Bad_Opcode }, 1603 { Bad_Opcode }, 1604 { "vpsubb", { XM, Vex, EXx }, 0 }, 1605 }, 1606 /* PREFIX_EVEX_0FF9 */ 1607 { 1608 { Bad_Opcode }, 1609 { Bad_Opcode }, 1610 { "vpsubw", { XM, Vex, EXx }, 0 }, 1611 }, 1612 /* PREFIX_EVEX_0FFA */ 1613 { 1614 { Bad_Opcode }, 1615 { Bad_Opcode }, 1616 { VEX_W_TABLE (EVEX_W_0FFA_P_2) }, 1617 }, 1618 /* PREFIX_EVEX_0FFB */ 1619 { 1620 { Bad_Opcode }, 1621 { Bad_Opcode }, 1622 { VEX_W_TABLE (EVEX_W_0FFB_P_2) }, 1623 }, 1624 /* PREFIX_EVEX_0FFC */ 1625 { 1626 { Bad_Opcode }, 1627 { Bad_Opcode }, 1628 { "vpaddb", { XM, Vex, EXx }, 0 }, 1629 }, 1630 /* PREFIX_EVEX_0FFD */ 1631 { 1632 { Bad_Opcode }, 1633 { Bad_Opcode }, 1634 { "vpaddw", { XM, Vex, EXx }, 0 }, 1635 }, 1636 /* PREFIX_EVEX_0FFE */ 1637 { 1638 { Bad_Opcode }, 1639 { Bad_Opcode }, 1640 { VEX_W_TABLE (EVEX_W_0FFE_P_2) }, 1641 }, 1642 /* PREFIX_EVEX_0F3800 */ 1643 { 1644 { Bad_Opcode }, 1645 { Bad_Opcode }, 1646 { "vpshufb", { XM, Vex, EXx }, 0 }, 1647 }, 1648 /* PREFIX_EVEX_0F3804 */ 1649 { 1650 { Bad_Opcode }, 1651 { Bad_Opcode }, 1652 { "vpmaddubsw", { XM, Vex, EXx }, 0 }, 1653 }, 1654 /* PREFIX_EVEX_0F380B */ 1655 { 1656 { Bad_Opcode }, 1657 { Bad_Opcode }, 1658 { "vpmulhrsw", { XM, Vex, EXx }, 0 }, 1659 }, 1660 /* PREFIX_EVEX_0F380C */ 1661 { 1662 { Bad_Opcode }, 1663 { Bad_Opcode }, 1664 { VEX_W_TABLE (EVEX_W_0F380C_P_2) }, 1665 }, 1666 /* PREFIX_EVEX_0F380D */ 1667 { 1668 { Bad_Opcode }, 1669 { Bad_Opcode }, 1670 { VEX_W_TABLE (EVEX_W_0F380D_P_2) }, 1671 }, 1672 /* PREFIX_EVEX_0F3810 */ 1673 { 1674 { Bad_Opcode }, 1675 { VEX_W_TABLE (EVEX_W_0F3810_P_1) }, 1676 { VEX_W_TABLE (EVEX_W_0F3810_P_2) }, 1677 }, 1678 /* PREFIX_EVEX_0F3811 */ 1679 { 1680 { Bad_Opcode }, 1681 { VEX_W_TABLE (EVEX_W_0F3811_P_1) }, 1682 { VEX_W_TABLE (EVEX_W_0F3811_P_2) }, 1683 }, 1684 /* PREFIX_EVEX_0F3812 */ 1685 { 1686 { Bad_Opcode }, 1687 { VEX_W_TABLE (EVEX_W_0F3812_P_1) }, 1688 { VEX_W_TABLE (EVEX_W_0F3812_P_2) }, 1689 }, 1690 /* PREFIX_EVEX_0F3813 */ 1691 { 1692 { Bad_Opcode }, 1693 { VEX_W_TABLE (EVEX_W_0F3813_P_1) }, 1694 { VEX_W_TABLE (EVEX_W_0F3813_P_2) }, 1695 }, 1696 /* PREFIX_EVEX_0F3814 */ 1697 { 1698 { Bad_Opcode }, 1699 { VEX_W_TABLE (EVEX_W_0F3814_P_1) }, 1700 { "vprorv%LW", { XM, Vex, EXx }, 0 }, 1701 }, 1702 /* PREFIX_EVEX_0F3815 */ 1703 { 1704 { Bad_Opcode }, 1705 { VEX_W_TABLE (EVEX_W_0F3815_P_1) }, 1706 { "vprolv%LW", { XM, Vex, EXx }, 0 }, 1707 }, 1708 /* PREFIX_EVEX_0F3816 */ 1709 { 1710 { Bad_Opcode }, 1711 { Bad_Opcode }, 1712 { "vpermp%XW", { XM, Vex, EXx }, 0 }, 1713 }, 1714 /* PREFIX_EVEX_0F3818 */ 1715 { 1716 { Bad_Opcode }, 1717 { Bad_Opcode }, 1718 { VEX_W_TABLE (EVEX_W_0F3818_P_2) }, 1719 }, 1720 /* PREFIX_EVEX_0F3819 */ 1721 { 1722 { Bad_Opcode }, 1723 { Bad_Opcode }, 1724 { VEX_W_TABLE (EVEX_W_0F3819_P_2) }, 1725 }, 1726 /* PREFIX_EVEX_0F381A */ 1727 { 1728 { Bad_Opcode }, 1729 { Bad_Opcode }, 1730 { VEX_W_TABLE (EVEX_W_0F381A_P_2) }, 1731 }, 1732 /* PREFIX_EVEX_0F381B */ 1733 { 1734 { Bad_Opcode }, 1735 { Bad_Opcode }, 1736 { VEX_W_TABLE (EVEX_W_0F381B_P_2) }, 1737 }, 1738 /* PREFIX_EVEX_0F381C */ 1739 { 1740 { Bad_Opcode }, 1741 { Bad_Opcode }, 1742 { "vpabsb", { XM, EXx }, 0 }, 1743 }, 1744 /* PREFIX_EVEX_0F381D */ 1745 { 1746 { Bad_Opcode }, 1747 { Bad_Opcode }, 1748 { "vpabsw", { XM, EXx }, 0 }, 1749 }, 1750 /* PREFIX_EVEX_0F381E */ 1751 { 1752 { Bad_Opcode }, 1753 { Bad_Opcode }, 1754 { VEX_W_TABLE (EVEX_W_0F381E_P_2) }, 1755 }, 1756 /* PREFIX_EVEX_0F381F */ 1757 { 1758 { Bad_Opcode }, 1759 { Bad_Opcode }, 1760 { VEX_W_TABLE (EVEX_W_0F381F_P_2) }, 1761 }, 1762 /* PREFIX_EVEX_0F3820 */ 1763 { 1764 { Bad_Opcode }, 1765 { VEX_W_TABLE (EVEX_W_0F3820_P_1) }, 1766 { "vpmovsxbw", { XM, EXxmmq }, 0 }, 1767 }, 1768 /* PREFIX_EVEX_0F3821 */ 1769 { 1770 { Bad_Opcode }, 1771 { VEX_W_TABLE (EVEX_W_0F3821_P_1) }, 1772 { "vpmovsxbd", { XM, EXxmmqd }, 0 }, 1773 }, 1774 /* PREFIX_EVEX_0F3822 */ 1775 { 1776 { Bad_Opcode }, 1777 { VEX_W_TABLE (EVEX_W_0F3822_P_1) }, 1778 { "vpmovsxbq", { XM, EXxmmdw }, 0 }, 1779 }, 1780 /* PREFIX_EVEX_0F3823 */ 1781 { 1782 { Bad_Opcode }, 1783 { VEX_W_TABLE (EVEX_W_0F3823_P_1) }, 1784 { "vpmovsxwd", { XM, EXxmmq }, 0 }, 1785 }, 1786 /* PREFIX_EVEX_0F3824 */ 1787 { 1788 { Bad_Opcode }, 1789 { VEX_W_TABLE (EVEX_W_0F3824_P_1) }, 1790 { "vpmovsxwq", { XM, EXxmmqd }, 0 }, 1791 }, 1792 /* PREFIX_EVEX_0F3825 */ 1793 { 1794 { Bad_Opcode }, 1795 { VEX_W_TABLE (EVEX_W_0F3825_P_1) }, 1796 { VEX_W_TABLE (EVEX_W_0F3825_P_2) }, 1797 }, 1798 /* PREFIX_EVEX_0F3826 */ 1799 { 1800 { Bad_Opcode }, 1801 { VEX_W_TABLE (EVEX_W_0F3826_P_1) }, 1802 { VEX_W_TABLE (EVEX_W_0F3826_P_2) }, 1803 }, 1804 /* PREFIX_EVEX_0F3827 */ 1805 { 1806 { Bad_Opcode }, 1807 { "vptestnm%LW", { XMask, Vex, EXx }, 0 }, 1808 { "vptestm%LW", { XMask, Vex, EXx }, 0 }, 1809 }, 1810 /* PREFIX_EVEX_0F3828 */ 1811 { 1812 { Bad_Opcode }, 1813 { VEX_W_TABLE (EVEX_W_0F3828_P_1) }, 1814 { VEX_W_TABLE (EVEX_W_0F3828_P_2) }, 1815 }, 1816 /* PREFIX_EVEX_0F3829 */ 1817 { 1818 { Bad_Opcode }, 1819 { VEX_W_TABLE (EVEX_W_0F3829_P_1) }, 1820 { VEX_W_TABLE (EVEX_W_0F3829_P_2) }, 1821 }, 1822 /* PREFIX_EVEX_0F382A */ 1823 { 1824 { Bad_Opcode }, 1825 { VEX_W_TABLE (EVEX_W_0F382A_P_1) }, 1826 { VEX_W_TABLE (EVEX_W_0F382A_P_2) }, 1827 }, 1828 /* PREFIX_EVEX_0F382B */ 1829 { 1830 { Bad_Opcode }, 1831 { Bad_Opcode }, 1832 { VEX_W_TABLE (EVEX_W_0F382B_P_2) }, 1833 }, 1834 /* PREFIX_EVEX_0F382C */ 1835 { 1836 { Bad_Opcode }, 1837 { Bad_Opcode }, 1838 { "vscalefp%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 1839 }, 1840 /* PREFIX_EVEX_0F382D */ 1841 { 1842 { Bad_Opcode }, 1843 { Bad_Opcode }, 1844 { "vscalefs%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 1845 }, 1846 /* PREFIX_EVEX_0F3830 */ 1847 { 1848 { Bad_Opcode }, 1849 { VEX_W_TABLE (EVEX_W_0F3830_P_1) }, 1850 { "vpmovzxbw", { XM, EXxmmq }, 0 }, 1851 }, 1852 /* PREFIX_EVEX_0F3831 */ 1853 { 1854 { Bad_Opcode }, 1855 { VEX_W_TABLE (EVEX_W_0F3831_P_1) }, 1856 { "vpmovzxbd", { XM, EXxmmqd }, 0 }, 1857 }, 1858 /* PREFIX_EVEX_0F3832 */ 1859 { 1860 { Bad_Opcode }, 1861 { VEX_W_TABLE (EVEX_W_0F3832_P_1) }, 1862 { "vpmovzxbq", { XM, EXxmmdw }, 0 }, 1863 }, 1864 /* PREFIX_EVEX_0F3833 */ 1865 { 1866 { Bad_Opcode }, 1867 { VEX_W_TABLE (EVEX_W_0F3833_P_1) }, 1868 { "vpmovzxwd", { XM, EXxmmq }, 0 }, 1869 }, 1870 /* PREFIX_EVEX_0F3834 */ 1871 { 1872 { Bad_Opcode }, 1873 { VEX_W_TABLE (EVEX_W_0F3834_P_1) }, 1874 { "vpmovzxwq", { XM, EXxmmqd }, 0 }, 1875 }, 1876 /* PREFIX_EVEX_0F3835 */ 1877 { 1878 { Bad_Opcode }, 1879 { VEX_W_TABLE (EVEX_W_0F3835_P_1) }, 1880 { VEX_W_TABLE (EVEX_W_0F3835_P_2) }, 1881 }, 1882 /* PREFIX_EVEX_0F3836 */ 1883 { 1884 { Bad_Opcode }, 1885 { Bad_Opcode }, 1886 { "vperm%LW", { XM, Vex, EXx }, 0 }, 1887 }, 1888 /* PREFIX_EVEX_0F3837 */ 1889 { 1890 { Bad_Opcode }, 1891 { Bad_Opcode }, 1892 { VEX_W_TABLE (EVEX_W_0F3837_P_2) }, 1893 }, 1894 /* PREFIX_EVEX_0F3838 */ 1895 { 1896 { Bad_Opcode }, 1897 { VEX_W_TABLE (EVEX_W_0F3838_P_1) }, 1898 { "vpminsb", { XM, Vex, EXx }, 0 }, 1899 }, 1900 /* PREFIX_EVEX_0F3839 */ 1901 { 1902 { Bad_Opcode }, 1903 { VEX_W_TABLE (EVEX_W_0F3839_P_1) }, 1904 { "vpmins%LW", { XM, Vex, EXx }, 0 }, 1905 }, 1906 /* PREFIX_EVEX_0F383A */ 1907 { 1908 { Bad_Opcode }, 1909 { VEX_W_TABLE (EVEX_W_0F383A_P_1) }, 1910 { "vpminuw", { XM, Vex, EXx }, 0 }, 1911 }, 1912 /* PREFIX_EVEX_0F383B */ 1913 { 1914 { Bad_Opcode }, 1915 { Bad_Opcode }, 1916 { "vpminu%LW", { XM, Vex, EXx }, 0 }, 1917 }, 1918 /* PREFIX_EVEX_0F383C */ 1919 { 1920 { Bad_Opcode }, 1921 { Bad_Opcode }, 1922 { "vpmaxsb", { XM, Vex, EXx }, 0 }, 1923 }, 1924 /* PREFIX_EVEX_0F383D */ 1925 { 1926 { Bad_Opcode }, 1927 { Bad_Opcode }, 1928 { "vpmaxs%LW", { XM, Vex, EXx }, 0 }, 1929 }, 1930 /* PREFIX_EVEX_0F383E */ 1931 { 1932 { Bad_Opcode }, 1933 { Bad_Opcode }, 1934 { "vpmaxuw", { XM, Vex, EXx }, 0 }, 1935 }, 1936 /* PREFIX_EVEX_0F383F */ 1937 { 1938 { Bad_Opcode }, 1939 { Bad_Opcode }, 1940 { "vpmaxu%LW", { XM, Vex, EXx }, 0 }, 1941 }, 1942 /* PREFIX_EVEX_0F3840 */ 1943 { 1944 { Bad_Opcode }, 1945 { Bad_Opcode }, 1946 { VEX_W_TABLE (EVEX_W_0F3840_P_2) }, 1947 }, 1948 /* PREFIX_EVEX_0F3842 */ 1949 { 1950 { Bad_Opcode }, 1951 { Bad_Opcode }, 1952 { "vgetexpp%XW", { XM, EXx, EXxEVexS }, 0 }, 1953 }, 1954 /* PREFIX_EVEX_0F3843 */ 1955 { 1956 { Bad_Opcode }, 1957 { Bad_Opcode }, 1958 { "vgetexps%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 }, 1959 }, 1960 /* PREFIX_EVEX_0F3844 */ 1961 { 1962 { Bad_Opcode }, 1963 { Bad_Opcode }, 1964 { "vplzcnt%LW", { XM, EXx }, 0 }, 1965 }, 1966 /* PREFIX_EVEX_0F3845 */ 1967 { 1968 { Bad_Opcode }, 1969 { Bad_Opcode }, 1970 { "vpsrlv%LW", { XM, Vex, EXx }, 0 }, 1971 }, 1972 /* PREFIX_EVEX_0F3846 */ 1973 { 1974 { Bad_Opcode }, 1975 { Bad_Opcode }, 1976 { "vpsrav%LW", { XM, Vex, EXx }, 0 }, 1977 }, 1978 /* PREFIX_EVEX_0F3847 */ 1979 { 1980 { Bad_Opcode }, 1981 { Bad_Opcode }, 1982 { "vpsllv%LW", { XM, Vex, EXx }, 0 }, 1983 }, 1984 /* PREFIX_EVEX_0F384C */ 1985 { 1986 { Bad_Opcode }, 1987 { Bad_Opcode }, 1988 { "vrcp14p%XW", { XM, EXx }, 0 }, 1989 }, 1990 /* PREFIX_EVEX_0F384D */ 1991 { 1992 { Bad_Opcode }, 1993 { Bad_Opcode }, 1994 { "vrcp14s%XW", { XMScalar, VexScalar, EXxmm_mdq }, 0 }, 1995 }, 1996 /* PREFIX_EVEX_0F384E */ 1997 { 1998 { Bad_Opcode }, 1999 { Bad_Opcode }, 2000 { "vrsqrt14p%XW", { XM, EXx }, 0 }, 2001 }, 2002 /* PREFIX_EVEX_0F384F */ 2003 { 2004 { Bad_Opcode }, 2005 { Bad_Opcode }, 2006 { "vrsqrt14s%XW", { XMScalar, VexScalar, EXxmm_mdq }, 0 }, 2007 }, 2008 /* PREFIX_EVEX_0F3850 */ 2009 { 2010 { Bad_Opcode }, 2011 { Bad_Opcode }, 2012 { "vpdpbusd", { XM, Vex, EXx }, 0 }, 2013 }, 2014 /* PREFIX_EVEX_0F3851 */ 2015 { 2016 { Bad_Opcode }, 2017 { Bad_Opcode }, 2018 { "vpdpbusds", { XM, Vex, EXx }, 0 }, 2019 }, 2020 /* PREFIX_EVEX_0F3852 */ 2021 { 2022 { Bad_Opcode }, 2023 { Bad_Opcode }, 2024 { "vpdpwssd", { XM, Vex, EXx }, 0 }, 2025 { "vp4dpwssd", { XM, Vex, EXxmm }, 0 }, 2026 }, 2027 /* PREFIX_EVEX_0F3853 */ 2028 { 2029 { Bad_Opcode }, 2030 { Bad_Opcode }, 2031 { "vpdpwssds", { XM, Vex, EXx }, 0 }, 2032 { "vp4dpwssds", { XM, Vex, EXxmm }, 0 }, 2033 }, 2034 /* PREFIX_EVEX_0F3854 */ 2035 { 2036 { Bad_Opcode }, 2037 { Bad_Opcode }, 2038 { VEX_W_TABLE (EVEX_W_0F3854_P_2) }, 2039 }, 2040 /* PREFIX_EVEX_0F3855 */ 2041 { 2042 { Bad_Opcode }, 2043 { Bad_Opcode }, 2044 { VEX_W_TABLE (EVEX_W_0F3855_P_2) }, 2045 }, 2046 /* PREFIX_EVEX_0F3858 */ 2047 { 2048 { Bad_Opcode }, 2049 { Bad_Opcode }, 2050 { VEX_W_TABLE (EVEX_W_0F3858_P_2) }, 2051 }, 2052 /* PREFIX_EVEX_0F3859 */ 2053 { 2054 { Bad_Opcode }, 2055 { Bad_Opcode }, 2056 { VEX_W_TABLE (EVEX_W_0F3859_P_2) }, 2057 }, 2058 /* PREFIX_EVEX_0F385A */ 2059 { 2060 { Bad_Opcode }, 2061 { Bad_Opcode }, 2062 { VEX_W_TABLE (EVEX_W_0F385A_P_2) }, 2063 }, 2064 /* PREFIX_EVEX_0F385B */ 2065 { 2066 { Bad_Opcode }, 2067 { Bad_Opcode }, 2068 { VEX_W_TABLE (EVEX_W_0F385B_P_2) }, 2069 }, 2070 /* PREFIX_EVEX_0F3862 */ 2071 { 2072 { Bad_Opcode }, 2073 { Bad_Opcode }, 2074 { VEX_W_TABLE (EVEX_W_0F3862_P_2) }, 2075 }, 2076 /* PREFIX_EVEX_0F3863 */ 2077 { 2078 { Bad_Opcode }, 2079 { Bad_Opcode }, 2080 { VEX_W_TABLE (EVEX_W_0F3863_P_2) }, 2081 }, 2082 /* PREFIX_EVEX_0F3864 */ 2083 { 2084 { Bad_Opcode }, 2085 { Bad_Opcode }, 2086 { "vpblendm%LW", { XM, Vex, EXx }, 0 }, 2087 }, 2088 /* PREFIX_EVEX_0F3865 */ 2089 { 2090 { Bad_Opcode }, 2091 { Bad_Opcode }, 2092 { "vblendmp%XW", { XM, Vex, EXx }, 0 }, 2093 }, 2094 /* PREFIX_EVEX_0F3866 */ 2095 { 2096 { Bad_Opcode }, 2097 { Bad_Opcode }, 2098 { VEX_W_TABLE (EVEX_W_0F3866_P_2) }, 2099 }, 2100 /* PREFIX_EVEX_0F3870 */ 2101 { 2102 { Bad_Opcode }, 2103 { Bad_Opcode }, 2104 { VEX_W_TABLE (EVEX_W_0F3870_P_2) }, 2105 }, 2106 /* PREFIX_EVEX_0F3871 */ 2107 { 2108 { Bad_Opcode }, 2109 { Bad_Opcode }, 2110 { VEX_W_TABLE (EVEX_W_0F3871_P_2) }, 2111 }, 2112 /* PREFIX_EVEX_0F3872 */ 2113 { 2114 { Bad_Opcode }, 2115 { Bad_Opcode }, 2116 { VEX_W_TABLE (EVEX_W_0F3872_P_2) }, 2117 }, 2118 /* PREFIX_EVEX_0F3873 */ 2119 { 2120 { Bad_Opcode }, 2121 { Bad_Opcode }, 2122 { VEX_W_TABLE (EVEX_W_0F3873_P_2) }, 2123 }, 2124 /* PREFIX_EVEX_0F3875 */ 2125 { 2126 { Bad_Opcode }, 2127 { Bad_Opcode }, 2128 { VEX_W_TABLE (EVEX_W_0F3875_P_2) }, 2129 }, 2130 /* PREFIX_EVEX_0F3876 */ 2131 { 2132 { Bad_Opcode }, 2133 { Bad_Opcode }, 2134 { "vpermi2%LW", { XM, Vex, EXx }, 0 }, 2135 }, 2136 /* PREFIX_EVEX_0F3877 */ 2137 { 2138 { Bad_Opcode }, 2139 { Bad_Opcode }, 2140 { "vpermi2p%XW", { XM, Vex, EXx }, 0 }, 2141 }, 2142 /* PREFIX_EVEX_0F3878 */ 2143 { 2144 { Bad_Opcode }, 2145 { Bad_Opcode }, 2146 { VEX_W_TABLE (EVEX_W_0F3878_P_2) }, 2147 }, 2148 /* PREFIX_EVEX_0F3879 */ 2149 { 2150 { Bad_Opcode }, 2151 { Bad_Opcode }, 2152 { VEX_W_TABLE (EVEX_W_0F3879_P_2) }, 2153 }, 2154 /* PREFIX_EVEX_0F387A */ 2155 { 2156 { Bad_Opcode }, 2157 { Bad_Opcode }, 2158 { VEX_W_TABLE (EVEX_W_0F387A_P_2) }, 2159 }, 2160 /* PREFIX_EVEX_0F387B */ 2161 { 2162 { Bad_Opcode }, 2163 { Bad_Opcode }, 2164 { VEX_W_TABLE (EVEX_W_0F387B_P_2) }, 2165 }, 2166 /* PREFIX_EVEX_0F387C */ 2167 { 2168 { Bad_Opcode }, 2169 { Bad_Opcode }, 2170 { "vpbroadcast%LW", { XM, Rdq }, 0 }, 2171 }, 2172 /* PREFIX_EVEX_0F387D */ 2173 { 2174 { Bad_Opcode }, 2175 { Bad_Opcode }, 2176 { VEX_W_TABLE (EVEX_W_0F387D_P_2) }, 2177 }, 2178 /* PREFIX_EVEX_0F387E */ 2179 { 2180 { Bad_Opcode }, 2181 { Bad_Opcode }, 2182 { "vpermt2%LW", { XM, Vex, EXx }, 0 }, 2183 }, 2184 /* PREFIX_EVEX_0F387F */ 2185 { 2186 { Bad_Opcode }, 2187 { Bad_Opcode }, 2188 { "vpermt2p%XW", { XM, Vex, EXx }, 0 }, 2189 }, 2190 /* PREFIX_EVEX_0F3883 */ 2191 { 2192 { Bad_Opcode }, 2193 { Bad_Opcode }, 2194 { VEX_W_TABLE (EVEX_W_0F3883_P_2) }, 2195 }, 2196 /* PREFIX_EVEX_0F3888 */ 2197 { 2198 { Bad_Opcode }, 2199 { Bad_Opcode }, 2200 { "vexpandp%XW", { XM, EXEvexXGscat }, 0 }, 2201 }, 2202 /* PREFIX_EVEX_0F3889 */ 2203 { 2204 { Bad_Opcode }, 2205 { Bad_Opcode }, 2206 { "vpexpand%LW", { XM, EXEvexXGscat }, 0 }, 2207 }, 2208 /* PREFIX_EVEX_0F388A */ 2209 { 2210 { Bad_Opcode }, 2211 { Bad_Opcode }, 2212 { "vcompressp%XW", { EXEvexXGscat, XM }, 0 }, 2213 }, 2214 /* PREFIX_EVEX_0F388B */ 2215 { 2216 { Bad_Opcode }, 2217 { Bad_Opcode }, 2218 { "vpcompress%LW", { EXEvexXGscat, XM }, 0 }, 2219 }, 2220 /* PREFIX_EVEX_0F388D */ 2221 { 2222 { Bad_Opcode }, 2223 { Bad_Opcode }, 2224 { VEX_W_TABLE (EVEX_W_0F388D_P_2) }, 2225 }, 2226 /* PREFIX_EVEX_0F388F */ 2227 { 2228 { Bad_Opcode }, 2229 { Bad_Opcode }, 2230 { "vpshufbitqmb", { XMask, Vex, EXx }, 0 }, 2231 }, 2232 /* PREFIX_EVEX_0F3890 */ 2233 { 2234 { Bad_Opcode }, 2235 { Bad_Opcode }, 2236 { "vpgatherd%LW", { XM, MVexVSIBDWpX }, 0 }, 2237 }, 2238 /* PREFIX_EVEX_0F3891 */ 2239 { 2240 { Bad_Opcode }, 2241 { Bad_Opcode }, 2242 { VEX_W_TABLE (EVEX_W_0F3891_P_2) }, 2243 }, 2244 /* PREFIX_EVEX_0F3892 */ 2245 { 2246 { Bad_Opcode }, 2247 { Bad_Opcode }, 2248 { "vgatherdp%XW", { XM, MVexVSIBDWpX}, 0 }, 2249 }, 2250 /* PREFIX_EVEX_0F3893 */ 2251 { 2252 { Bad_Opcode }, 2253 { Bad_Opcode }, 2254 { VEX_W_TABLE (EVEX_W_0F3893_P_2) }, 2255 }, 2256 /* PREFIX_EVEX_0F3896 */ 2257 { 2258 { Bad_Opcode }, 2259 { Bad_Opcode }, 2260 { "vfmaddsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2261 }, 2262 /* PREFIX_EVEX_0F3897 */ 2263 { 2264 { Bad_Opcode }, 2265 { Bad_Opcode }, 2266 { "vfmsubadd132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2267 }, 2268 /* PREFIX_EVEX_0F3898 */ 2269 { 2270 { Bad_Opcode }, 2271 { Bad_Opcode }, 2272 { "vfmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2273 }, 2274 /* PREFIX_EVEX_0F3899 */ 2275 { 2276 { Bad_Opcode }, 2277 { Bad_Opcode }, 2278 { "vfmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2279 }, 2280 /* PREFIX_EVEX_0F389A */ 2281 { 2282 { Bad_Opcode }, 2283 { Bad_Opcode }, 2284 { "vfmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2285 { "v4fmaddps", { XM, Vex, Mxmm }, 0 }, 2286 }, 2287 /* PREFIX_EVEX_0F389B */ 2288 { 2289 { Bad_Opcode }, 2290 { Bad_Opcode }, 2291 { "vfmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2292 { "v4fmaddss", { XMScalar, VexScalar, Mxmm }, 0 }, 2293 }, 2294 /* PREFIX_EVEX_0F389C */ 2295 { 2296 { Bad_Opcode }, 2297 { Bad_Opcode }, 2298 { "vfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2299 }, 2300 /* PREFIX_EVEX_0F389D */ 2301 { 2302 { Bad_Opcode }, 2303 { Bad_Opcode }, 2304 { "vfnmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2305 }, 2306 /* PREFIX_EVEX_0F389E */ 2307 { 2308 { Bad_Opcode }, 2309 { Bad_Opcode }, 2310 { "vfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2311 }, 2312 /* PREFIX_EVEX_0F389F */ 2313 { 2314 { Bad_Opcode }, 2315 { Bad_Opcode }, 2316 { "vfnmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2317 }, 2318 /* PREFIX_EVEX_0F38A0 */ 2319 { 2320 { Bad_Opcode }, 2321 { Bad_Opcode }, 2322 { "vpscatterd%LW", { MVexVSIBDWpX, XM }, 0 }, 2323 }, 2324 /* PREFIX_EVEX_0F38A1 */ 2325 { 2326 { Bad_Opcode }, 2327 { Bad_Opcode }, 2328 { VEX_W_TABLE (EVEX_W_0F38A1_P_2) }, 2329 }, 2330 /* PREFIX_EVEX_0F38A2 */ 2331 { 2332 { Bad_Opcode }, 2333 { Bad_Opcode }, 2334 { "vscatterdp%XW", { MVexVSIBDWpX, XM }, 0 }, 2335 }, 2336 /* PREFIX_EVEX_0F38A3 */ 2337 { 2338 { Bad_Opcode }, 2339 { Bad_Opcode }, 2340 { VEX_W_TABLE (EVEX_W_0F38A3_P_2) }, 2341 }, 2342 /* PREFIX_EVEX_0F38A6 */ 2343 { 2344 { Bad_Opcode }, 2345 { Bad_Opcode }, 2346 { "vfmaddsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2347 }, 2348 /* PREFIX_EVEX_0F38A7 */ 2349 { 2350 { Bad_Opcode }, 2351 { Bad_Opcode }, 2352 { "vfmsubadd213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2353 }, 2354 /* PREFIX_EVEX_0F38A8 */ 2355 { 2356 { Bad_Opcode }, 2357 { Bad_Opcode }, 2358 { "vfmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2359 }, 2360 /* PREFIX_EVEX_0F38A9 */ 2361 { 2362 { Bad_Opcode }, 2363 { Bad_Opcode }, 2364 { "vfmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2365 }, 2366 /* PREFIX_EVEX_0F38AA */ 2367 { 2368 { Bad_Opcode }, 2369 { Bad_Opcode }, 2370 { "vfmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2371 { "v4fnmaddps", { XM, Vex, Mxmm }, 0 }, 2372 }, 2373 /* PREFIX_EVEX_0F38AB */ 2374 { 2375 { Bad_Opcode }, 2376 { Bad_Opcode }, 2377 { "vfmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2378 { "v4fnmaddss", { XMScalar, VexScalar, Mxmm }, 0 }, 2379 }, 2380 /* PREFIX_EVEX_0F38AC */ 2381 { 2382 { Bad_Opcode }, 2383 { Bad_Opcode }, 2384 { "vfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2385 }, 2386 /* PREFIX_EVEX_0F38AD */ 2387 { 2388 { Bad_Opcode }, 2389 { Bad_Opcode }, 2390 { "vfnmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2391 }, 2392 /* PREFIX_EVEX_0F38AE */ 2393 { 2394 { Bad_Opcode }, 2395 { Bad_Opcode }, 2396 { "vfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2397 }, 2398 /* PREFIX_EVEX_0F38AF */ 2399 { 2400 { Bad_Opcode }, 2401 { Bad_Opcode }, 2402 { "vfnmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2403 }, 2404 /* PREFIX_EVEX_0F38B4 */ 2405 { 2406 { Bad_Opcode }, 2407 { Bad_Opcode }, 2408 { "vpmadd52luq", { XM, Vex, EXx }, 0 }, 2409 }, 2410 /* PREFIX_EVEX_0F38B5 */ 2411 { 2412 { Bad_Opcode }, 2413 { Bad_Opcode }, 2414 { "vpmadd52huq", { XM, Vex, EXx }, 0 }, 2415 }, 2416 /* PREFIX_EVEX_0F38B6 */ 2417 { 2418 { Bad_Opcode }, 2419 { Bad_Opcode }, 2420 { "vfmaddsub231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2421 }, 2422 /* PREFIX_EVEX_0F38B7 */ 2423 { 2424 { Bad_Opcode }, 2425 { Bad_Opcode }, 2426 { "vfmsubadd231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2427 }, 2428 /* PREFIX_EVEX_0F38B8 */ 2429 { 2430 { Bad_Opcode }, 2431 { Bad_Opcode }, 2432 { "vfmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2433 }, 2434 /* PREFIX_EVEX_0F38B9 */ 2435 { 2436 { Bad_Opcode }, 2437 { Bad_Opcode }, 2438 { "vfmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2439 }, 2440 /* PREFIX_EVEX_0F38BA */ 2441 { 2442 { Bad_Opcode }, 2443 { Bad_Opcode }, 2444 { "vfmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2445 }, 2446 /* PREFIX_EVEX_0F38BB */ 2447 { 2448 { Bad_Opcode }, 2449 { Bad_Opcode }, 2450 { "vfmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2451 }, 2452 /* PREFIX_EVEX_0F38BC */ 2453 { 2454 { Bad_Opcode }, 2455 { Bad_Opcode }, 2456 { "vfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2457 }, 2458 /* PREFIX_EVEX_0F38BD */ 2459 { 2460 { Bad_Opcode }, 2461 { Bad_Opcode }, 2462 { "vfnmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2463 }, 2464 /* PREFIX_EVEX_0F38BE */ 2465 { 2466 { Bad_Opcode }, 2467 { Bad_Opcode }, 2468 { "vfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, 2469 }, 2470 /* PREFIX_EVEX_0F38BF */ 2471 { 2472 { Bad_Opcode }, 2473 { Bad_Opcode }, 2474 { "vfnmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, 2475 }, 2476 /* PREFIX_EVEX_0F38C4 */ 2477 { 2478 { Bad_Opcode }, 2479 { Bad_Opcode }, 2480 { "vpconflict%LW", { XM, EXx }, 0 }, 2481 }, 2482 /* PREFIX_EVEX_0F38C6_REG_1 */ 2483 { 2484 { Bad_Opcode }, 2485 { Bad_Opcode }, 2486 { "vgatherpf0dp%XW", { MVexVSIBDWpX }, 0 }, 2487 }, 2488 /* PREFIX_EVEX_0F38C6_REG_2 */ 2489 { 2490 { Bad_Opcode }, 2491 { Bad_Opcode }, 2492 { "vgatherpf1dp%XW", { MVexVSIBDWpX }, 0 }, 2493 }, 2494 /* PREFIX_EVEX_0F38C6_REG_5 */ 2495 { 2496 { Bad_Opcode }, 2497 { Bad_Opcode }, 2498 { "vscatterpf0dp%XW", { MVexVSIBDWpX }, 0 }, 2499 }, 2500 /* PREFIX_EVEX_0F38C6_REG_6 */ 2501 { 2502 { Bad_Opcode }, 2503 { Bad_Opcode }, 2504 { "vscatterpf1dp%XW", { MVexVSIBDWpX }, 0 }, 2505 }, 2506 /* PREFIX_EVEX_0F38C7_REG_1 */ 2507 { 2508 { Bad_Opcode }, 2509 { Bad_Opcode }, 2510 { VEX_W_TABLE (EVEX_W_0F38C7_R_1_P_2) }, 2511 }, 2512 /* PREFIX_EVEX_0F38C7_REG_2 */ 2513 { 2514 { Bad_Opcode }, 2515 { Bad_Opcode }, 2516 { VEX_W_TABLE (EVEX_W_0F38C7_R_2_P_2) }, 2517 }, 2518 /* PREFIX_EVEX_0F38C7_REG_5 */ 2519 { 2520 { Bad_Opcode }, 2521 { Bad_Opcode }, 2522 { VEX_W_TABLE (EVEX_W_0F38C7_R_5_P_2) }, 2523 }, 2524 /* PREFIX_EVEX_0F38C7_REG_6 */ 2525 { 2526 { Bad_Opcode }, 2527 { Bad_Opcode }, 2528 { VEX_W_TABLE (EVEX_W_0F38C7_R_6_P_2) }, 2529 }, 2530 /* PREFIX_EVEX_0F38C8 */ 2531 { 2532 { Bad_Opcode }, 2533 { Bad_Opcode }, 2534 { "vexp2p%XW", { XM, EXx, EXxEVexS }, 0 }, 2535 }, 2536 /* PREFIX_EVEX_0F38CA */ 2537 { 2538 { Bad_Opcode }, 2539 { Bad_Opcode }, 2540 { "vrcp28p%XW", { XM, EXx, EXxEVexS }, 0 }, 2541 }, 2542 /* PREFIX_EVEX_0F38CB */ 2543 { 2544 { Bad_Opcode }, 2545 { Bad_Opcode }, 2546 { "vrcp28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 }, 2547 }, 2548 /* PREFIX_EVEX_0F38CC */ 2549 { 2550 { Bad_Opcode }, 2551 { Bad_Opcode }, 2552 { "vrsqrt28p%XW", { XM, EXx, EXxEVexS }, 0 }, 2553 }, 2554 /* PREFIX_EVEX_0F38CD */ 2555 { 2556 { Bad_Opcode }, 2557 { Bad_Opcode }, 2558 { "vrsqrt28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 }, 2559 }, 2560 /* PREFIX_EVEX_0F38CF */ 2561 { 2562 { Bad_Opcode }, 2563 { Bad_Opcode }, 2564 { "vgf2p8mulb", { XM, Vex, EXx }, 0 }, 2565 }, 2566 /* PREFIX_EVEX_0F38DC */ 2567 { 2568 { Bad_Opcode }, 2569 { Bad_Opcode }, 2570 { "vaesenc", { XM, Vex, EXx }, 0 }, 2571 }, 2572 /* PREFIX_EVEX_0F38DD */ 2573 { 2574 { Bad_Opcode }, 2575 { Bad_Opcode }, 2576 { "vaesenclast", { XM, Vex, EXx }, 0 }, 2577 }, 2578 /* PREFIX_EVEX_0F38DE */ 2579 { 2580 { Bad_Opcode }, 2581 { Bad_Opcode }, 2582 { "vaesdec", { XM, Vex, EXx }, 0 }, 2583 }, 2584 /* PREFIX_EVEX_0F38DF */ 2585 { 2586 { Bad_Opcode }, 2587 { Bad_Opcode }, 2588 { "vaesdeclast", { XM, Vex, EXx }, 0 }, 2589 }, 2590 /* PREFIX_EVEX_0F3A00 */ 2591 { 2592 { Bad_Opcode }, 2593 { Bad_Opcode }, 2594 { VEX_W_TABLE (EVEX_W_0F3A00_P_2) }, 2595 }, 2596 /* PREFIX_EVEX_0F3A01 */ 2597 { 2598 { Bad_Opcode }, 2599 { Bad_Opcode }, 2600 { VEX_W_TABLE (EVEX_W_0F3A01_P_2) }, 2601 }, 2602 /* PREFIX_EVEX_0F3A03 */ 2603 { 2604 { Bad_Opcode }, 2605 { Bad_Opcode }, 2606 { "valign%LW", { XM, Vex, EXx, Ib }, 0 }, 2607 }, 2608 /* PREFIX_EVEX_0F3A04 */ 2609 { 2610 { Bad_Opcode }, 2611 { Bad_Opcode }, 2612 { VEX_W_TABLE (EVEX_W_0F3A04_P_2) }, 2613 }, 2614 /* PREFIX_EVEX_0F3A05 */ 2615 { 2616 { Bad_Opcode }, 2617 { Bad_Opcode }, 2618 { VEX_W_TABLE (EVEX_W_0F3A05_P_2) }, 2619 }, 2620 /* PREFIX_EVEX_0F3A08 */ 2621 { 2622 { Bad_Opcode }, 2623 { Bad_Opcode }, 2624 { VEX_W_TABLE (EVEX_W_0F3A08_P_2) }, 2625 }, 2626 /* PREFIX_EVEX_0F3A09 */ 2627 { 2628 { Bad_Opcode }, 2629 { Bad_Opcode }, 2630 { VEX_W_TABLE (EVEX_W_0F3A09_P_2) }, 2631 }, 2632 /* PREFIX_EVEX_0F3A0A */ 2633 { 2634 { Bad_Opcode }, 2635 { Bad_Opcode }, 2636 { VEX_W_TABLE (EVEX_W_0F3A0A_P_2) }, 2637 }, 2638 /* PREFIX_EVEX_0F3A0B */ 2639 { 2640 { Bad_Opcode }, 2641 { Bad_Opcode }, 2642 { VEX_W_TABLE (EVEX_W_0F3A0B_P_2) }, 2643 }, 2644 /* PREFIX_EVEX_0F3A0F */ 2645 { 2646 { Bad_Opcode }, 2647 { Bad_Opcode }, 2648 { "vpalignr", { XM, Vex, EXx, Ib }, 0 }, 2649 }, 2650 /* PREFIX_EVEX_0F3A14 */ 2651 { 2652 { Bad_Opcode }, 2653 { Bad_Opcode }, 2654 { "vpextrb", { Edqb, XM, Ib }, 0 }, 2655 }, 2656 /* PREFIX_EVEX_0F3A15 */ 2657 { 2658 { Bad_Opcode }, 2659 { Bad_Opcode }, 2660 { "vpextrw", { Edqw, XM, Ib }, 0 }, 2661 }, 2662 /* PREFIX_EVEX_0F3A16 */ 2663 { 2664 { Bad_Opcode }, 2665 { Bad_Opcode }, 2666 { VEX_W_TABLE (EVEX_W_0F3A16_P_2) }, 2667 }, 2668 /* PREFIX_EVEX_0F3A17 */ 2669 { 2670 { Bad_Opcode }, 2671 { Bad_Opcode }, 2672 { "vextractps", { Edqd, XMM, Ib }, 0 }, 2673 }, 2674 /* PREFIX_EVEX_0F3A18 */ 2675 { 2676 { Bad_Opcode }, 2677 { Bad_Opcode }, 2678 { VEX_W_TABLE (EVEX_W_0F3A18_P_2) }, 2679 }, 2680 /* PREFIX_EVEX_0F3A19 */ 2681 { 2682 { Bad_Opcode }, 2683 { Bad_Opcode }, 2684 { VEX_W_TABLE (EVEX_W_0F3A19_P_2) }, 2685 }, 2686 /* PREFIX_EVEX_0F3A1A */ 2687 { 2688 { Bad_Opcode }, 2689 { Bad_Opcode }, 2690 { VEX_W_TABLE (EVEX_W_0F3A1A_P_2) }, 2691 }, 2692 /* PREFIX_EVEX_0F3A1B */ 2693 { 2694 { Bad_Opcode }, 2695 { Bad_Opcode }, 2696 { VEX_W_TABLE (EVEX_W_0F3A1B_P_2) }, 2697 }, 2698 /* PREFIX_EVEX_0F3A1D */ 2699 { 2700 { Bad_Opcode }, 2701 { Bad_Opcode }, 2702 { VEX_W_TABLE (EVEX_W_0F3A1D_P_2) }, 2703 }, 2704 /* PREFIX_EVEX_0F3A1E */ 2705 { 2706 { Bad_Opcode }, 2707 { Bad_Opcode }, 2708 { "vpcmpu%LW", { XMask, Vex, EXx, VPCMP }, 0 }, 2709 }, 2710 /* PREFIX_EVEX_0F3A1F */ 2711 { 2712 { Bad_Opcode }, 2713 { Bad_Opcode }, 2714 { "vpcmp%LW", { XMask, Vex, EXx, VPCMP }, 0 }, 2715 }, 2716 /* PREFIX_EVEX_0F3A20 */ 2717 { 2718 { Bad_Opcode }, 2719 { Bad_Opcode }, 2720 { "vpinsrb", { XM, Vex128, Edb, Ib }, 0 }, 2721 }, 2722 /* PREFIX_EVEX_0F3A21 */ 2723 { 2724 { Bad_Opcode }, 2725 { Bad_Opcode }, 2726 { VEX_W_TABLE (EVEX_W_0F3A21_P_2) }, 2727 }, 2728 /* PREFIX_EVEX_0F3A22 */ 2729 { 2730 { Bad_Opcode }, 2731 { Bad_Opcode }, 2732 { VEX_W_TABLE (EVEX_W_0F3A22_P_2) }, 2733 }, 2734 /* PREFIX_EVEX_0F3A23 */ 2735 { 2736 { Bad_Opcode }, 2737 { Bad_Opcode }, 2738 { VEX_W_TABLE (EVEX_W_0F3A23_P_2) }, 2739 }, 2740 /* PREFIX_EVEX_0F3A25 */ 2741 { 2742 { Bad_Opcode }, 2743 { Bad_Opcode }, 2744 { "vpternlog%LW", { XM, Vex, EXx, Ib }, 0 }, 2745 }, 2746 /* PREFIX_EVEX_0F3A26 */ 2747 { 2748 { Bad_Opcode }, 2749 { Bad_Opcode }, 2750 { "vgetmantp%XW", { XM, EXx, EXxEVexS, Ib }, 0 }, 2751 }, 2752 /* PREFIX_EVEX_0F3A27 */ 2753 { 2754 { Bad_Opcode }, 2755 { Bad_Opcode }, 2756 { "vgetmants%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 }, 2757 }, 2758 /* PREFIX_EVEX_0F3A38 */ 2759 { 2760 { Bad_Opcode }, 2761 { Bad_Opcode }, 2762 { VEX_W_TABLE (EVEX_W_0F3A38_P_2) }, 2763 }, 2764 /* PREFIX_EVEX_0F3A39 */ 2765 { 2766 { Bad_Opcode }, 2767 { Bad_Opcode }, 2768 { VEX_W_TABLE (EVEX_W_0F3A39_P_2) }, 2769 }, 2770 /* PREFIX_EVEX_0F3A3A */ 2771 { 2772 { Bad_Opcode }, 2773 { Bad_Opcode }, 2774 { VEX_W_TABLE (EVEX_W_0F3A3A_P_2) }, 2775 }, 2776 /* PREFIX_EVEX_0F3A3B */ 2777 { 2778 { Bad_Opcode }, 2779 { Bad_Opcode }, 2780 { VEX_W_TABLE (EVEX_W_0F3A3B_P_2) }, 2781 }, 2782 /* PREFIX_EVEX_0F3A3E */ 2783 { 2784 { Bad_Opcode }, 2785 { Bad_Opcode }, 2786 { VEX_W_TABLE (EVEX_W_0F3A3E_P_2) }, 2787 }, 2788 /* PREFIX_EVEX_0F3A3F */ 2789 { 2790 { Bad_Opcode }, 2791 { Bad_Opcode }, 2792 { VEX_W_TABLE (EVEX_W_0F3A3F_P_2) }, 2793 }, 2794 /* PREFIX_EVEX_0F3A42 */ 2795 { 2796 { Bad_Opcode }, 2797 { Bad_Opcode }, 2798 { VEX_W_TABLE (EVEX_W_0F3A42_P_2) }, 2799 }, 2800 /* PREFIX_EVEX_0F3A43 */ 2801 { 2802 { Bad_Opcode }, 2803 { Bad_Opcode }, 2804 { VEX_W_TABLE (EVEX_W_0F3A43_P_2) }, 2805 }, 2806 /* PREFIX_EVEX_0F3A44 */ 2807 { 2808 { Bad_Opcode }, 2809 { Bad_Opcode }, 2810 { "vpclmulqdq", { XM, Vex, EXx, Ib }, 0 }, 2811 }, 2812 /* PREFIX_EVEX_0F3A50 */ 2813 { 2814 { Bad_Opcode }, 2815 { Bad_Opcode }, 2816 { VEX_W_TABLE (EVEX_W_0F3A50_P_2) }, 2817 }, 2818 /* PREFIX_EVEX_0F3A51 */ 2819 { 2820 { Bad_Opcode }, 2821 { Bad_Opcode }, 2822 { VEX_W_TABLE (EVEX_W_0F3A51_P_2) }, 2823 }, 2824 /* PREFIX_EVEX_0F3A54 */ 2825 { 2826 { Bad_Opcode }, 2827 { Bad_Opcode }, 2828 { "vfixupimmp%XW", { XM, Vex, EXx, EXxEVexS, Ib }, 0 }, 2829 }, 2830 /* PREFIX_EVEX_0F3A55 */ 2831 { 2832 { Bad_Opcode }, 2833 { Bad_Opcode }, 2834 { "vfixupimms%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 }, 2835 }, 2836 /* PREFIX_EVEX_0F3A56 */ 2837 { 2838 { Bad_Opcode }, 2839 { Bad_Opcode }, 2840 { VEX_W_TABLE (EVEX_W_0F3A56_P_2) }, 2841 }, 2842 /* PREFIX_EVEX_0F3A57 */ 2843 { 2844 { Bad_Opcode }, 2845 { Bad_Opcode }, 2846 { VEX_W_TABLE (EVEX_W_0F3A57_P_2) }, 2847 }, 2848 /* PREFIX_EVEX_0F3A66 */ 2849 { 2850 { Bad_Opcode }, 2851 { Bad_Opcode }, 2852 { VEX_W_TABLE (EVEX_W_0F3A66_P_2) }, 2853 }, 2854 /* PREFIX_EVEX_0F3A67 */ 2855 { 2856 { Bad_Opcode }, 2857 { Bad_Opcode }, 2858 { VEX_W_TABLE (EVEX_W_0F3A67_P_2) }, 2859 }, 2860 /* PREFIX_EVEX_0F3A70 */ 2861 { 2862 { Bad_Opcode }, 2863 { Bad_Opcode }, 2864 { VEX_W_TABLE (EVEX_W_0F3A70_P_2) }, 2865 }, 2866 /* PREFIX_EVEX_0F3A71 */ 2867 { 2868 { Bad_Opcode }, 2869 { Bad_Opcode }, 2870 { VEX_W_TABLE (EVEX_W_0F3A71_P_2) }, 2871 }, 2872 /* PREFIX_EVEX_0F3A72 */ 2873 { 2874 { Bad_Opcode }, 2875 { Bad_Opcode }, 2876 { VEX_W_TABLE (EVEX_W_0F3A72_P_2) }, 2877 }, 2878 /* PREFIX_EVEX_0F3A73 */ 2879 { 2880 { Bad_Opcode }, 2881 { Bad_Opcode }, 2882 { VEX_W_TABLE (EVEX_W_0F3A73_P_2) }, 2883 }, 2884 /* PREFIX_EVEX_0F3ACE */ 2885 { 2886 { Bad_Opcode }, 2887 { Bad_Opcode }, 2888 { VEX_W_TABLE (EVEX_W_0F3ACE_P_2) }, 2889 }, 2890 /* PREFIX_EVEX_0F3ACF */ 2891 { 2892 { Bad_Opcode }, 2893 { Bad_Opcode }, 2894 { VEX_W_TABLE (EVEX_W_0F3ACF_P_2) }, 2895 }, 2896 #endif /* NEED_PREFIX_TABLE */ 2897 2898 #ifdef NEED_VEX_W_TABLE 2899 /* EVEX_W_0F10_P_0 */ 2900 { 2901 { "vmovups", { XM, EXEvexXNoBcst }, 0 }, 2902 }, 2903 /* EVEX_W_0F10_P_1_M_0 */ 2904 { 2905 { "vmovss", { XMScalar, EXdScalar }, 0 }, 2906 }, 2907 /* EVEX_W_0F10_P_1_M_1 */ 2908 { 2909 { "vmovss", { XMScalar, VexScalar, EXxmm_md }, 0 }, 2910 }, 2911 /* EVEX_W_0F10_P_2 */ 2912 { 2913 { Bad_Opcode }, 2914 { "vmovupd", { XM, EXEvexXNoBcst }, 0 }, 2915 }, 2916 /* EVEX_W_0F10_P_3_M_0 */ 2917 { 2918 { Bad_Opcode }, 2919 { "vmovsd", { XMScalar, EXqScalar }, 0 }, 2920 }, 2921 /* EVEX_W_0F10_P_3_M_1 */ 2922 { 2923 { Bad_Opcode }, 2924 { "vmovsd", { XMScalar, VexScalar, EXxmm_mq }, 0 }, 2925 }, 2926 /* EVEX_W_0F11_P_0 */ 2927 { 2928 { "vmovups", { EXxS, XM }, 0 }, 2929 }, 2930 /* EVEX_W_0F11_P_1_M_0 */ 2931 { 2932 { "vmovss", { EXdScalarS, XMScalar }, 0 }, 2933 }, 2934 /* EVEX_W_0F11_P_1_M_1 */ 2935 { 2936 { "vmovss", { EXxS, Vex, XMScalar }, 0 }, 2937 }, 2938 /* EVEX_W_0F11_P_2 */ 2939 { 2940 { Bad_Opcode }, 2941 { "vmovupd", { EXxS, XM }, 0 }, 2942 }, 2943 /* EVEX_W_0F11_P_3_M_0 */ 2944 { 2945 { Bad_Opcode }, 2946 { "vmovsd", { EXqScalarS, XMScalar }, 0 }, 2947 }, 2948 /* EVEX_W_0F11_P_3_M_1 */ 2949 { 2950 { Bad_Opcode }, 2951 { "vmovsd", { EXxS, Vex, XMScalar }, 0 }, 2952 }, 2953 /* EVEX_W_0F12_P_0_M_0 */ 2954 { 2955 { "vmovlps", { XMM, Vex, EXxmm_mq }, 0 }, 2956 }, 2957 /* EVEX_W_0F12_P_0_M_1 */ 2958 { 2959 { "vmovhlps", { XMM, Vex, EXxmm_mq }, 0 }, 2960 }, 2961 /* EVEX_W_0F12_P_1 */ 2962 { 2963 { "vmovsldup", { XM, EXEvexXNoBcst }, 0 }, 2964 }, 2965 /* EVEX_W_0F12_P_2 */ 2966 { 2967 { Bad_Opcode }, 2968 { "vmovlpd", { XMM, Vex, EXxmm_mq }, 0 }, 2969 }, 2970 /* EVEX_W_0F12_P_3 */ 2971 { 2972 { Bad_Opcode }, 2973 { "vmovddup", { XM, EXymmq }, 0 }, 2974 }, 2975 /* EVEX_W_0F13_P_0 */ 2976 { 2977 { "vmovlps", { EXxmm_mq, XMM }, 0 }, 2978 }, 2979 /* EVEX_W_0F13_P_2 */ 2980 { 2981 { Bad_Opcode }, 2982 { "vmovlpd", { EXxmm_mq, XMM }, 0 }, 2983 }, 2984 /* EVEX_W_0F14_P_0 */ 2985 { 2986 { "vunpcklps", { XM, Vex, EXx }, 0 }, 2987 }, 2988 /* EVEX_W_0F14_P_2 */ 2989 { 2990 { Bad_Opcode }, 2991 { "vunpcklpd", { XM, Vex, EXx }, 0 }, 2992 }, 2993 /* EVEX_W_0F15_P_0 */ 2994 { 2995 { "vunpckhps", { XM, Vex, EXx }, 0 }, 2996 }, 2997 /* EVEX_W_0F15_P_2 */ 2998 { 2999 { Bad_Opcode }, 3000 { "vunpckhpd", { XM, Vex, EXx }, 0 }, 3001 }, 3002 /* EVEX_W_0F16_P_0_M_0 */ 3003 { 3004 { "vmovhps", { XMM, Vex, EXxmm_mq }, 0 }, 3005 }, 3006 /* EVEX_W_0F16_P_0_M_1 */ 3007 { 3008 { "vmovlhps", { XMM, Vex, EXx }, 0 }, 3009 }, 3010 /* EVEX_W_0F16_P_1 */ 3011 { 3012 { "vmovshdup", { XM, EXx }, 0 }, 3013 }, 3014 /* EVEX_W_0F16_P_2 */ 3015 { 3016 { Bad_Opcode }, 3017 { "vmovhpd", { XMM, Vex, EXxmm_mq }, 0 }, 3018 }, 3019 /* EVEX_W_0F17_P_0 */ 3020 { 3021 { "vmovhps", { EXxmm_mq, XMM }, 0 }, 3022 }, 3023 /* EVEX_W_0F17_P_2 */ 3024 { 3025 { Bad_Opcode }, 3026 { "vmovhpd", { EXxmm_mq, XMM }, 0 }, 3027 }, 3028 /* EVEX_W_0F28_P_0 */ 3029 { 3030 { "vmovaps", { XM, EXx }, 0 }, 3031 }, 3032 /* EVEX_W_0F28_P_2 */ 3033 { 3034 { Bad_Opcode }, 3035 { "vmovapd", { XM, EXx }, 0 }, 3036 }, 3037 /* EVEX_W_0F29_P_0 */ 3038 { 3039 { "vmovaps", { EXxS, XM }, 0 }, 3040 }, 3041 /* EVEX_W_0F29_P_2 */ 3042 { 3043 { Bad_Opcode }, 3044 { "vmovapd", { EXxS, XM }, 0 }, 3045 }, 3046 /* EVEX_W_0F2A_P_1 */ 3047 { 3048 { "vcvtsi2ss", { XMScalar, VexScalar, EXxEVexR, Ed }, 0 }, 3049 { "vcvtsi2ss", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 }, 3050 }, 3051 /* EVEX_W_0F2A_P_3 */ 3052 { 3053 { "vcvtsi2sd", { XMScalar, VexScalar, Ed }, 0 }, 3054 { "vcvtsi2sd", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 }, 3055 }, 3056 /* EVEX_W_0F2B_P_0 */ 3057 { 3058 { "vmovntps", { EXx, XM }, 0 }, 3059 }, 3060 /* EVEX_W_0F2B_P_2 */ 3061 { 3062 { Bad_Opcode }, 3063 { "vmovntpd", { EXx, XM }, 0 }, 3064 }, 3065 /* EVEX_W_0F2E_P_0 */ 3066 { 3067 { "vucomiss", { XMScalar, EXxmm_md, EXxEVexS }, 0 }, 3068 }, 3069 /* EVEX_W_0F2E_P_2 */ 3070 { 3071 { Bad_Opcode }, 3072 { "vucomisd", { XMScalar, EXxmm_mq, EXxEVexS }, 0 }, 3073 }, 3074 /* EVEX_W_0F2F_P_0 */ 3075 { 3076 { "vcomiss", { XMScalar, EXxmm_md, EXxEVexS }, 0 }, 3077 }, 3078 /* EVEX_W_0F2F_P_2 */ 3079 { 3080 { Bad_Opcode }, 3081 { "vcomisd", { XMScalar, EXxmm_mq, EXxEVexS }, 0 }, 3082 }, 3083 /* EVEX_W_0F51_P_0 */ 3084 { 3085 { "vsqrtps", { XM, EXx, EXxEVexR }, 0 }, 3086 }, 3087 /* EVEX_W_0F51_P_1 */ 3088 { 3089 { "vsqrtss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 }, 3090 }, 3091 /* EVEX_W_0F51_P_2 */ 3092 { 3093 { Bad_Opcode }, 3094 { "vsqrtpd", { XM, EXx, EXxEVexR }, 0 }, 3095 }, 3096 /* EVEX_W_0F51_P_3 */ 3097 { 3098 { Bad_Opcode }, 3099 { "vsqrtsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 }, 3100 }, 3101 /* EVEX_W_0F54_P_0 */ 3102 { 3103 { "vandps", { XM, Vex, EXx }, 0 }, 3104 }, 3105 /* EVEX_W_0F54_P_2 */ 3106 { 3107 { Bad_Opcode }, 3108 { "vandpd", { XM, Vex, EXx }, 0 }, 3109 }, 3110 /* EVEX_W_0F55_P_0 */ 3111 { 3112 { "vandnps", { XM, Vex, EXx }, 0 }, 3113 }, 3114 /* EVEX_W_0F55_P_2 */ 3115 { 3116 { Bad_Opcode }, 3117 { "vandnpd", { XM, Vex, EXx }, 0 }, 3118 }, 3119 /* EVEX_W_0F56_P_0 */ 3120 { 3121 { "vorps", { XM, Vex, EXx }, 0 }, 3122 }, 3123 /* EVEX_W_0F56_P_2 */ 3124 { 3125 { Bad_Opcode }, 3126 { "vorpd", { XM, Vex, EXx }, 0 }, 3127 }, 3128 /* EVEX_W_0F57_P_0 */ 3129 { 3130 { "vxorps", { XM, Vex, EXx }, 0 }, 3131 }, 3132 /* EVEX_W_0F57_P_2 */ 3133 { 3134 { Bad_Opcode }, 3135 { "vxorpd", { XM, Vex, EXx }, 0 }, 3136 }, 3137 /* EVEX_W_0F58_P_0 */ 3138 { 3139 { "vaddps", { XM, Vex, EXx, EXxEVexR }, 0 }, 3140 }, 3141 /* EVEX_W_0F58_P_1 */ 3142 { 3143 { "vaddss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 }, 3144 }, 3145 /* EVEX_W_0F58_P_2 */ 3146 { 3147 { Bad_Opcode }, 3148 { "vaddpd", { XM, Vex, EXx, EXxEVexR }, 0 }, 3149 }, 3150 /* EVEX_W_0F58_P_3 */ 3151 { 3152 { Bad_Opcode }, 3153 { "vaddsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 }, 3154 }, 3155 /* EVEX_W_0F59_P_0 */ 3156 { 3157 { "vmulps", { XM, Vex, EXx, EXxEVexR }, 0 }, 3158 }, 3159 /* EVEX_W_0F59_P_1 */ 3160 { 3161 { "vmulss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 }, 3162 }, 3163 /* EVEX_W_0F59_P_2 */ 3164 { 3165 { Bad_Opcode }, 3166 { "vmulpd", { XM, Vex, EXx, EXxEVexR }, 0 }, 3167 }, 3168 /* EVEX_W_0F59_P_3 */ 3169 { 3170 { Bad_Opcode }, 3171 { "vmulsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 }, 3172 }, 3173 /* EVEX_W_0F5A_P_0 */ 3174 { 3175 { "vcvtps2pd", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, 3176 }, 3177 /* EVEX_W_0F5A_P_1 */ 3178 { 3179 { "vcvtss2sd", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 }, 3180 }, 3181 /* EVEX_W_0F5A_P_2 */ 3182 { 3183 { Bad_Opcode }, 3184 { "vcvtpd2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 3185 }, 3186 /* EVEX_W_0F5A_P_3 */ 3187 { 3188 { Bad_Opcode }, 3189 { "vcvtsd2ss", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 }, 3190 }, 3191 /* EVEX_W_0F5B_P_0 */ 3192 { 3193 { "vcvtdq2ps", { XM, EXx, EXxEVexR }, 0 }, 3194 { "vcvtqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 3195 }, 3196 /* EVEX_W_0F5B_P_1 */ 3197 { 3198 { "vcvttps2dq", { XM, EXx, EXxEVexS }, 0 }, 3199 }, 3200 /* EVEX_W_0F5B_P_2 */ 3201 { 3202 { "vcvtps2dq", { XM, EXx, EXxEVexR }, 0 }, 3203 }, 3204 /* EVEX_W_0F5C_P_0 */ 3205 { 3206 { "vsubps", { XM, Vex, EXx, EXxEVexR }, 0 }, 3207 }, 3208 /* EVEX_W_0F5C_P_1 */ 3209 { 3210 { "vsubss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 }, 3211 }, 3212 /* EVEX_W_0F5C_P_2 */ 3213 { 3214 { Bad_Opcode }, 3215 { "vsubpd", { XM, Vex, EXx, EXxEVexR }, 0 }, 3216 }, 3217 /* EVEX_W_0F5C_P_3 */ 3218 { 3219 { Bad_Opcode }, 3220 { "vsubsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 }, 3221 }, 3222 /* EVEX_W_0F5D_P_0 */ 3223 { 3224 { "vminps", { XM, Vex, EXx, EXxEVexS }, 0 }, 3225 }, 3226 /* EVEX_W_0F5D_P_1 */ 3227 { 3228 { "vminss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 }, 3229 }, 3230 /* EVEX_W_0F5D_P_2 */ 3231 { 3232 { Bad_Opcode }, 3233 { "vminpd", { XM, Vex, EXx, EXxEVexS }, 0 }, 3234 }, 3235 /* EVEX_W_0F5D_P_3 */ 3236 { 3237 { Bad_Opcode }, 3238 { "vminsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 }, 3239 }, 3240 /* EVEX_W_0F5E_P_0 */ 3241 { 3242 { "vdivps", { XM, Vex, EXx, EXxEVexR }, 0 }, 3243 }, 3244 /* EVEX_W_0F5E_P_1 */ 3245 { 3246 { "vdivss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 }, 3247 }, 3248 /* EVEX_W_0F5E_P_2 */ 3249 { 3250 { Bad_Opcode }, 3251 { "vdivpd", { XM, Vex, EXx, EXxEVexR }, 0 }, 3252 }, 3253 /* EVEX_W_0F5E_P_3 */ 3254 { 3255 { Bad_Opcode }, 3256 { "vdivsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 }, 3257 }, 3258 /* EVEX_W_0F5F_P_0 */ 3259 { 3260 { "vmaxps", { XM, Vex, EXx, EXxEVexS }, 0 }, 3261 }, 3262 /* EVEX_W_0F5F_P_1 */ 3263 { 3264 { "vmaxss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 }, 3265 }, 3266 /* EVEX_W_0F5F_P_2 */ 3267 { 3268 { Bad_Opcode }, 3269 { "vmaxpd", { XM, Vex, EXx, EXxEVexS }, 0 }, 3270 }, 3271 /* EVEX_W_0F5F_P_3 */ 3272 { 3273 { Bad_Opcode }, 3274 { "vmaxsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 }, 3275 }, 3276 /* EVEX_W_0F62_P_2 */ 3277 { 3278 { "vpunpckldq", { XM, Vex, EXx }, 0 }, 3279 }, 3280 /* EVEX_W_0F66_P_2 */ 3281 { 3282 { "vpcmpgtd", { XMask, Vex, EXx }, 0 }, 3283 }, 3284 /* EVEX_W_0F6A_P_2 */ 3285 { 3286 { "vpunpckhdq", { XM, Vex, EXx }, 0 }, 3287 }, 3288 /* EVEX_W_0F6B_P_2 */ 3289 { 3290 { "vpackssdw", { XM, Vex, EXx }, 0 }, 3291 }, 3292 /* EVEX_W_0F6C_P_2 */ 3293 { 3294 { Bad_Opcode }, 3295 { "vpunpcklqdq", { XM, Vex, EXx }, 0 }, 3296 }, 3297 /* EVEX_W_0F6D_P_2 */ 3298 { 3299 { Bad_Opcode }, 3300 { "vpunpckhqdq", { XM, Vex, EXx }, 0 }, 3301 }, 3302 /* EVEX_W_0F6E_P_2 */ 3303 { 3304 { "vmovd", { XMScalar, Ed }, 0 }, 3305 { "vmovq", { XMScalar, Eq }, 0 }, 3306 }, 3307 /* EVEX_W_0F6F_P_1 */ 3308 { 3309 { "vmovdqu32", { XM, EXEvexXNoBcst }, 0 }, 3310 { "vmovdqu64", { XM, EXEvexXNoBcst }, 0 }, 3311 }, 3312 /* EVEX_W_0F6F_P_2 */ 3313 { 3314 { "vmovdqa32", { XM, EXEvexXNoBcst }, 0 }, 3315 { "vmovdqa64", { XM, EXEvexXNoBcst }, 0 }, 3316 }, 3317 /* EVEX_W_0F6F_P_3 */ 3318 { 3319 { "vmovdqu8", { XM, EXx }, 0 }, 3320 { "vmovdqu16", { XM, EXx }, 0 }, 3321 }, 3322 /* EVEX_W_0F70_P_2 */ 3323 { 3324 { "vpshufd", { XM, EXx, Ib }, 0 }, 3325 }, 3326 /* EVEX_W_0F72_R_2_P_2 */ 3327 { 3328 { "vpsrld", { Vex, EXx, Ib }, 0 }, 3329 }, 3330 /* EVEX_W_0F72_R_6_P_2 */ 3331 { 3332 { "vpslld", { Vex, EXx, Ib }, 0 }, 3333 }, 3334 /* EVEX_W_0F73_R_2_P_2 */ 3335 { 3336 { Bad_Opcode }, 3337 { "vpsrlq", { Vex, EXx, Ib }, 0 }, 3338 }, 3339 /* EVEX_W_0F73_R_6_P_2 */ 3340 { 3341 { Bad_Opcode }, 3342 { "vpsllq", { Vex, EXx, Ib }, 0 }, 3343 }, 3344 /* EVEX_W_0F76_P_2 */ 3345 { 3346 { "vpcmpeqd", { XMask, Vex, EXx }, 0 }, 3347 }, 3348 /* EVEX_W_0F78_P_0 */ 3349 { 3350 { "vcvttps2udq", { XM, EXx, EXxEVexS }, 0 }, 3351 { "vcvttpd2udq%XY", { XMxmmq, EXx, EXxEVexS }, 0 }, 3352 }, 3353 /* EVEX_W_0F78_P_2 */ 3354 { 3355 { "vcvttps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, 3356 { "vcvttpd2uqq", { XM, EXx, EXxEVexS }, 0 }, 3357 }, 3358 /* EVEX_W_0F79_P_0 */ 3359 { 3360 { "vcvtps2udq", { XM, EXx, EXxEVexR }, 0 }, 3361 { "vcvtpd2udq%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 3362 }, 3363 /* EVEX_W_0F79_P_2 */ 3364 { 3365 { "vcvtps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 }, 3366 { "vcvtpd2uqq", { XM, EXx, EXxEVexR }, 0 }, 3367 }, 3368 /* EVEX_W_0F7A_P_1 */ 3369 { 3370 { "vcvtudq2pd", { XM, EXEvexHalfBcstXmmq }, 0 }, 3371 { "vcvtuqq2pd", { XM, EXx, EXxEVexR }, 0 }, 3372 }, 3373 /* EVEX_W_0F7A_P_2 */ 3374 { 3375 { "vcvttps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, 3376 { "vcvttpd2qq", { XM, EXx, EXxEVexS }, 0 }, 3377 }, 3378 /* EVEX_W_0F7A_P_3 */ 3379 { 3380 { "vcvtudq2ps", { XM, EXx, EXxEVexR }, 0 }, 3381 { "vcvtuqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 3382 }, 3383 /* EVEX_W_0F7B_P_1 */ 3384 { 3385 { "vcvtusi2ss", { XMScalar, VexScalar, EXxEVexR, Ed }, 0 }, 3386 { "vcvtusi2ss", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 }, 3387 }, 3388 /* EVEX_W_0F7B_P_2 */ 3389 { 3390 { "vcvtps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 }, 3391 { "vcvtpd2qq", { XM, EXx, EXxEVexR }, 0 }, 3392 }, 3393 /* EVEX_W_0F7B_P_3 */ 3394 { 3395 { "vcvtusi2sd", { XMScalar, VexScalar, Ed }, 0 }, 3396 { "vcvtusi2sd", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 }, 3397 }, 3398 /* EVEX_W_0F7E_P_1 */ 3399 { 3400 { Bad_Opcode }, 3401 { "vmovq", { XMScalar, EXxmm_mq }, 0 }, 3402 }, 3403 /* EVEX_W_0F7E_P_2 */ 3404 { 3405 { "vmovd", { Ed, XMScalar }, 0 }, 3406 { "vmovq", { Eq, XMScalar }, 0 }, 3407 }, 3408 /* EVEX_W_0F7F_P_1 */ 3409 { 3410 { "vmovdqu32", { EXxS, XM }, 0 }, 3411 { "vmovdqu64", { EXxS, XM }, 0 }, 3412 }, 3413 /* EVEX_W_0F7F_P_2 */ 3414 { 3415 { "vmovdqa32", { EXxS, XM }, 0 }, 3416 { "vmovdqa64", { EXxS, XM }, 0 }, 3417 }, 3418 /* EVEX_W_0F7F_P_3 */ 3419 { 3420 { "vmovdqu8", { EXxS, XM }, 0 }, 3421 { "vmovdqu16", { EXxS, XM }, 0 }, 3422 }, 3423 /* EVEX_W_0FC2_P_0 */ 3424 { 3425 { "vcmpps", { XMask, Vex, EXx, EXxEVexS, VCMP }, 0 }, 3426 }, 3427 /* EVEX_W_0FC2_P_1 */ 3428 { 3429 { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, VCMP }, 0 }, 3430 }, 3431 /* EVEX_W_0FC2_P_2 */ 3432 { 3433 { Bad_Opcode }, 3434 { "vcmppd", { XMask, Vex, EXx, EXxEVexS, VCMP }, 0 }, 3435 }, 3436 /* EVEX_W_0FC2_P_3 */ 3437 { 3438 { Bad_Opcode }, 3439 { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, VCMP }, 0 }, 3440 }, 3441 /* EVEX_W_0FC6_P_0 */ 3442 { 3443 { "vshufps", { XM, Vex, EXx, Ib }, 0 }, 3444 }, 3445 /* EVEX_W_0FC6_P_2 */ 3446 { 3447 { Bad_Opcode }, 3448 { "vshufpd", { XM, Vex, EXx, Ib }, 0 }, 3449 }, 3450 /* EVEX_W_0FD2_P_2 */ 3451 { 3452 { "vpsrld", { XM, Vex, EXxmm }, 0 }, 3453 }, 3454 /* EVEX_W_0FD3_P_2 */ 3455 { 3456 { Bad_Opcode }, 3457 { "vpsrlq", { XM, Vex, EXxmm }, 0 }, 3458 }, 3459 /* EVEX_W_0FD4_P_2 */ 3460 { 3461 { Bad_Opcode }, 3462 { "vpaddq", { XM, Vex, EXx }, 0 }, 3463 }, 3464 /* EVEX_W_0FD6_P_2 */ 3465 { 3466 { Bad_Opcode }, 3467 { "vmovq", { EXxmm_mq, XMScalar }, 0 }, 3468 }, 3469 /* EVEX_W_0FE6_P_1 */ 3470 { 3471 { "vcvtdq2pd", { XM, EXEvexHalfBcstXmmq }, 0 }, 3472 { "vcvtqq2pd", { XM, EXx, EXxEVexR }, 0 }, 3473 }, 3474 /* EVEX_W_0FE6_P_2 */ 3475 { 3476 { Bad_Opcode }, 3477 { "vcvttpd2dq%XY", { XMxmmq, EXx, EXxEVexS }, 0 }, 3478 }, 3479 /* EVEX_W_0FE6_P_3 */ 3480 { 3481 { Bad_Opcode }, 3482 { "vcvtpd2dq%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 3483 }, 3484 /* EVEX_W_0FE7_P_2 */ 3485 { 3486 { "vmovntdq", { EXEvexXNoBcst, XM }, 0 }, 3487 }, 3488 /* EVEX_W_0FF2_P_2 */ 3489 { 3490 { "vpslld", { XM, Vex, EXxmm }, 0 }, 3491 }, 3492 /* EVEX_W_0FF3_P_2 */ 3493 { 3494 { Bad_Opcode }, 3495 { "vpsllq", { XM, Vex, EXxmm }, 0 }, 3496 }, 3497 /* EVEX_W_0FF4_P_2 */ 3498 { 3499 { Bad_Opcode }, 3500 { "vpmuludq", { XM, Vex, EXx }, 0 }, 3501 }, 3502 /* EVEX_W_0FFA_P_2 */ 3503 { 3504 { "vpsubd", { XM, Vex, EXx }, 0 }, 3505 }, 3506 /* EVEX_W_0FFB_P_2 */ 3507 { 3508 { Bad_Opcode }, 3509 { "vpsubq", { XM, Vex, EXx }, 0 }, 3510 }, 3511 /* EVEX_W_0FFE_P_2 */ 3512 { 3513 { "vpaddd", { XM, Vex, EXx }, 0 }, 3514 }, 3515 /* EVEX_W_0F380C_P_2 */ 3516 { 3517 { "vpermilps", { XM, Vex, EXx }, 0 }, 3518 }, 3519 /* EVEX_W_0F380D_P_2 */ 3520 { 3521 { Bad_Opcode }, 3522 { "vpermilpd", { XM, Vex, EXx }, 0 }, 3523 }, 3524 /* EVEX_W_0F3810_P_1 */ 3525 { 3526 { "vpmovuswb", { EXxmmq, XM }, 0 }, 3527 }, 3528 /* EVEX_W_0F3810_P_2 */ 3529 { 3530 { Bad_Opcode }, 3531 { "vpsrlvw", { XM, Vex, EXx }, 0 }, 3532 }, 3533 /* EVEX_W_0F3811_P_1 */ 3534 { 3535 { "vpmovusdb", { EXxmmqd, XM }, 0 }, 3536 }, 3537 /* EVEX_W_0F3811_P_2 */ 3538 { 3539 { Bad_Opcode }, 3540 { "vpsravw", { XM, Vex, EXx }, 0 }, 3541 }, 3542 /* EVEX_W_0F3812_P_1 */ 3543 { 3544 { "vpmovusqb", { EXxmmdw, XM }, 0 }, 3545 }, 3546 /* EVEX_W_0F3812_P_2 */ 3547 { 3548 { Bad_Opcode }, 3549 { "vpsllvw", { XM, Vex, EXx }, 0 }, 3550 }, 3551 /* EVEX_W_0F3813_P_1 */ 3552 { 3553 { "vpmovusdw", { EXxmmq, XM }, 0 }, 3554 }, 3555 /* EVEX_W_0F3813_P_2 */ 3556 { 3557 { "vcvtph2ps", { XM, EXxmmq, EXxEVexS }, 0 }, 3558 }, 3559 /* EVEX_W_0F3814_P_1 */ 3560 { 3561 { "vpmovusqw", { EXxmmqd, XM }, 0 }, 3562 }, 3563 /* EVEX_W_0F3815_P_1 */ 3564 { 3565 { "vpmovusqd", { EXxmmq, XM }, 0 }, 3566 }, 3567 /* EVEX_W_0F3818_P_2 */ 3568 { 3569 { "vbroadcastss", { XM, EXxmm_md }, 0 }, 3570 }, 3571 /* EVEX_W_0F3819_P_2 */ 3572 { 3573 { "vbroadcastf32x2", { XM, EXxmm_mq }, 0 }, 3574 { "vbroadcastsd", { XM, EXxmm_mq }, 0 }, 3575 }, 3576 /* EVEX_W_0F381A_P_2 */ 3577 { 3578 { "vbroadcastf32x4", { XM, EXxmm }, 0 }, 3579 { "vbroadcastf64x2", { XM, EXxmm }, 0 }, 3580 }, 3581 /* EVEX_W_0F381B_P_2 */ 3582 { 3583 { "vbroadcastf32x8", { XM, EXxmmq }, 0 }, 3584 { "vbroadcastf64x4", { XM, EXymm }, 0 }, 3585 }, 3586 /* EVEX_W_0F381E_P_2 */ 3587 { 3588 { "vpabsd", { XM, EXx }, 0 }, 3589 }, 3590 /* EVEX_W_0F381F_P_2 */ 3591 { 3592 { Bad_Opcode }, 3593 { "vpabsq", { XM, EXx }, 0 }, 3594 }, 3595 /* EVEX_W_0F3820_P_1 */ 3596 { 3597 { "vpmovswb", { EXxmmq, XM }, 0 }, 3598 }, 3599 /* EVEX_W_0F3821_P_1 */ 3600 { 3601 { "vpmovsdb", { EXxmmqd, XM }, 0 }, 3602 }, 3603 /* EVEX_W_0F3822_P_1 */ 3604 { 3605 { "vpmovsqb", { EXxmmdw, XM }, 0 }, 3606 }, 3607 /* EVEX_W_0F3823_P_1 */ 3608 { 3609 { "vpmovsdw", { EXxmmq, XM }, 0 }, 3610 }, 3611 /* EVEX_W_0F3824_P_1 */ 3612 { 3613 { "vpmovsqw", { EXxmmqd, XM }, 0 }, 3614 }, 3615 /* EVEX_W_0F3825_P_1 */ 3616 { 3617 { "vpmovsqd", { EXxmmq, XM }, 0 }, 3618 }, 3619 /* EVEX_W_0F3825_P_2 */ 3620 { 3621 { "vpmovsxdq", { XM, EXxmmq }, 0 }, 3622 }, 3623 /* EVEX_W_0F3826_P_1 */ 3624 { 3625 { "vptestnmb", { XMask, Vex, EXx }, 0 }, 3626 { "vptestnmw", { XMask, Vex, EXx }, 0 }, 3627 }, 3628 /* EVEX_W_0F3826_P_2 */ 3629 { 3630 { "vptestmb", { XMask, Vex, EXx }, 0 }, 3631 { "vptestmw", { XMask, Vex, EXx }, 0 }, 3632 }, 3633 /* EVEX_W_0F3828_P_1 */ 3634 { 3635 { "vpmovm2b", { XM, MaskR }, 0 }, 3636 { "vpmovm2w", { XM, MaskR }, 0 }, 3637 }, 3638 /* EVEX_W_0F3828_P_2 */ 3639 { 3640 { Bad_Opcode }, 3641 { "vpmuldq", { XM, Vex, EXx }, 0 }, 3642 }, 3643 /* EVEX_W_0F3829_P_1 */ 3644 { 3645 { "vpmovb2m", { XMask, EXx }, 0 }, 3646 { "vpmovw2m", { XMask, EXx }, 0 }, 3647 }, 3648 /* EVEX_W_0F3829_P_2 */ 3649 { 3650 { Bad_Opcode }, 3651 { "vpcmpeqq", { XMask, Vex, EXx }, 0 }, 3652 }, 3653 /* EVEX_W_0F382A_P_1 */ 3654 { 3655 { Bad_Opcode }, 3656 { "vpbroadcastmb2q", { XM, MaskR }, 0 }, 3657 }, 3658 /* EVEX_W_0F382A_P_2 */ 3659 { 3660 { "vmovntdqa", { XM, EXEvexXNoBcst }, 0 }, 3661 }, 3662 /* EVEX_W_0F382B_P_2 */ 3663 { 3664 { "vpackusdw", { XM, Vex, EXx }, 0 }, 3665 }, 3666 /* EVEX_W_0F3830_P_1 */ 3667 { 3668 { "vpmovwb", { EXxmmq, XM }, 0 }, 3669 }, 3670 /* EVEX_W_0F3831_P_1 */ 3671 { 3672 { "vpmovdb", { EXxmmqd, XM }, 0 }, 3673 }, 3674 /* EVEX_W_0F3832_P_1 */ 3675 { 3676 { "vpmovqb", { EXxmmdw, XM }, 0 }, 3677 }, 3678 /* EVEX_W_0F3833_P_1 */ 3679 { 3680 { "vpmovdw", { EXxmmq, XM }, 0 }, 3681 }, 3682 /* EVEX_W_0F3834_P_1 */ 3683 { 3684 { "vpmovqw", { EXxmmqd, XM }, 0 }, 3685 }, 3686 /* EVEX_W_0F3835_P_1 */ 3687 { 3688 { "vpmovqd", { EXxmmq, XM }, 0 }, 3689 }, 3690 /* EVEX_W_0F3835_P_2 */ 3691 { 3692 { "vpmovzxdq", { XM, EXxmmq }, 0 }, 3693 }, 3694 /* EVEX_W_0F3837_P_2 */ 3695 { 3696 { Bad_Opcode }, 3697 { "vpcmpgtq", { XMask, Vex, EXx }, 0 }, 3698 }, 3699 /* EVEX_W_0F3838_P_1 */ 3700 { 3701 { "vpmovm2d", { XM, MaskR }, 0 }, 3702 { "vpmovm2q", { XM, MaskR }, 0 }, 3703 }, 3704 /* EVEX_W_0F3839_P_1 */ 3705 { 3706 { "vpmovd2m", { XMask, EXx }, 0 }, 3707 { "vpmovq2m", { XMask, EXx }, 0 }, 3708 }, 3709 /* EVEX_W_0F383A_P_1 */ 3710 { 3711 { "vpbroadcastmw2d", { XM, MaskR }, 0 }, 3712 }, 3713 /* EVEX_W_0F3840_P_2 */ 3714 { 3715 { "vpmulld", { XM, Vex, EXx }, 0 }, 3716 { "vpmullq", { XM, Vex, EXx }, 0 }, 3717 }, 3718 /* EVEX_W_0F3854_P_2 */ 3719 { 3720 { "vpopcntb", { XM, EXx }, 0 }, 3721 { "vpopcntw", { XM, EXx }, 0 }, 3722 }, 3723 /* EVEX_W_0F3855_P_2 */ 3724 { 3725 { "vpopcntd", { XM, EXx }, 0 }, 3726 { "vpopcntq", { XM, EXx }, 0 }, 3727 }, 3728 /* EVEX_W_0F3858_P_2 */ 3729 { 3730 { "vpbroadcastd", { XM, EXxmm_md }, 0 }, 3731 }, 3732 /* EVEX_W_0F3859_P_2 */ 3733 { 3734 { "vbroadcasti32x2", { XM, EXxmm_mq }, 0 }, 3735 { "vpbroadcastq", { XM, EXxmm_mq }, 0 }, 3736 }, 3737 /* EVEX_W_0F385A_P_2 */ 3738 { 3739 { "vbroadcasti32x4", { XM, EXxmm }, 0 }, 3740 { "vbroadcasti64x2", { XM, EXxmm }, 0 }, 3741 }, 3742 /* EVEX_W_0F385B_P_2 */ 3743 { 3744 { "vbroadcasti32x8", { XM, EXxmmq }, 0 }, 3745 { "vbroadcasti64x4", { XM, EXymm }, 0 }, 3746 }, 3747 /* EVEX_W_0F3862_P_2 */ 3748 { 3749 { "vpexpandb", { XM, EXbScalar }, 0 }, 3750 { "vpexpandw", { XM, EXwScalar }, 0 }, 3751 }, 3752 /* EVEX_W_0F3863_P_2 */ 3753 { 3754 { "vpcompressb", { EXbScalar, XM }, 0 }, 3755 { "vpcompressw", { EXwScalar, XM }, 0 }, 3756 }, 3757 /* EVEX_W_0F3866_P_2 */ 3758 { 3759 { "vpblendmb", { XM, Vex, EXx }, 0 }, 3760 { "vpblendmw", { XM, Vex, EXx }, 0 }, 3761 }, 3762 /* EVEX_W_0F3870_P_2 */ 3763 { 3764 { Bad_Opcode }, 3765 { "vpshldvw", { XM, Vex, EXx }, 0 }, 3766 }, 3767 /* EVEX_W_0F3871_P_2 */ 3768 { 3769 { "vpshldvd", { XM, Vex, EXx }, 0 }, 3770 { "vpshldvq", { XM, Vex, EXx }, 0 }, 3771 }, 3772 /* EVEX_W_0F3872_P_2 */ 3773 { 3774 { Bad_Opcode }, 3775 { "vpshrdvw", { XM, Vex, EXx }, 0 }, 3776 }, 3777 /* EVEX_W_0F3873_P_2 */ 3778 { 3779 { "vpshrdvd", { XM, Vex, EXx }, 0 }, 3780 { "vpshrdvq", { XM, Vex, EXx }, 0 }, 3781 }, 3782 /* EVEX_W_0F3875_P_2 */ 3783 { 3784 { "vpermi2b", { XM, Vex, EXx }, 0 }, 3785 { "vpermi2w", { XM, Vex, EXx }, 0 }, 3786 }, 3787 /* EVEX_W_0F3878_P_2 */ 3788 { 3789 { "vpbroadcastb", { XM, EXxmm_mb }, 0 }, 3790 }, 3791 /* EVEX_W_0F3879_P_2 */ 3792 { 3793 { "vpbroadcastw", { XM, EXxmm_mw }, 0 }, 3794 }, 3795 /* EVEX_W_0F387A_P_2 */ 3796 { 3797 { "vpbroadcastb", { XM, Rd }, 0 }, 3798 }, 3799 /* EVEX_W_0F387B_P_2 */ 3800 { 3801 { "vpbroadcastw", { XM, Rd }, 0 }, 3802 }, 3803 /* EVEX_W_0F387D_P_2 */ 3804 { 3805 { "vpermt2b", { XM, Vex, EXx }, 0 }, 3806 { "vpermt2w", { XM, Vex, EXx }, 0 }, 3807 }, 3808 /* EVEX_W_0F3883_P_2 */ 3809 { 3810 { Bad_Opcode }, 3811 { "vpmultishiftqb", { XM, Vex, EXx }, 0 }, 3812 }, 3813 /* EVEX_W_0F388D_P_2 */ 3814 { 3815 { "vpermb", { XM, Vex, EXx }, 0 }, 3816 { "vpermw", { XM, Vex, EXx }, 0 }, 3817 }, 3818 /* EVEX_W_0F3891_P_2 */ 3819 { 3820 { "vpgatherqd", { XMxmmq, MVexVSIBQDWpX }, 0 }, 3821 { "vpgatherqq", { XM, MVexVSIBQWpX }, 0 }, 3822 }, 3823 /* EVEX_W_0F3893_P_2 */ 3824 { 3825 { "vgatherqps", { XMxmmq, MVexVSIBQDWpX }, 0 }, 3826 { "vgatherqpd", { XM, MVexVSIBQWpX }, 0 }, 3827 }, 3828 /* EVEX_W_0F38A1_P_2 */ 3829 { 3830 { "vpscatterqd", { MVexVSIBQDWpX, XMxmmq }, 0 }, 3831 { "vpscatterqq", { MVexVSIBQWpX, XM }, 0 }, 3832 }, 3833 /* EVEX_W_0F38A3_P_2 */ 3834 { 3835 { "vscatterqps", { MVexVSIBQDWpX, XMxmmq }, 0 }, 3836 { "vscatterqpd", { MVexVSIBQWpX, XM }, 0 }, 3837 }, 3838 /* EVEX_W_0F38C7_R_1_P_2 */ 3839 { 3840 { "vgatherpf0qps", { MVexVSIBDQWpX }, 0 }, 3841 { "vgatherpf0qpd", { MVexVSIBQWpX }, 0 }, 3842 }, 3843 /* EVEX_W_0F38C7_R_2_P_2 */ 3844 { 3845 { "vgatherpf1qps", { MVexVSIBDQWpX }, 0 }, 3846 { "vgatherpf1qpd", { MVexVSIBQWpX }, 0 }, 3847 }, 3848 /* EVEX_W_0F38C7_R_5_P_2 */ 3849 { 3850 { "vscatterpf0qps", { MVexVSIBDQWpX }, 0 }, 3851 { "vscatterpf0qpd", { MVexVSIBQWpX }, 0 }, 3852 }, 3853 /* EVEX_W_0F38C7_R_6_P_2 */ 3854 { 3855 { "vscatterpf1qps", { MVexVSIBDQWpX }, 0 }, 3856 { "vscatterpf1qpd", { MVexVSIBQWpX }, 0 }, 3857 }, 3858 /* EVEX_W_0F3A00_P_2 */ 3859 { 3860 { Bad_Opcode }, 3861 { "vpermq", { XM, EXx, Ib }, 0 }, 3862 }, 3863 /* EVEX_W_0F3A01_P_2 */ 3864 { 3865 { Bad_Opcode }, 3866 { "vpermpd", { XM, EXx, Ib }, 0 }, 3867 }, 3868 /* EVEX_W_0F3A04_P_2 */ 3869 { 3870 { "vpermilps", { XM, EXx, Ib }, 0 }, 3871 }, 3872 /* EVEX_W_0F3A05_P_2 */ 3873 { 3874 { Bad_Opcode }, 3875 { "vpermilpd", { XM, EXx, Ib }, 0 }, 3876 }, 3877 /* EVEX_W_0F3A08_P_2 */ 3878 { 3879 { "vrndscaleps", { XM, EXx, EXxEVexS, Ib }, 0 }, 3880 }, 3881 /* EVEX_W_0F3A09_P_2 */ 3882 { 3883 { Bad_Opcode }, 3884 { "vrndscalepd", { XM, EXx, EXxEVexS, Ib }, 0 }, 3885 }, 3886 /* EVEX_W_0F3A0A_P_2 */ 3887 { 3888 { "vrndscaless", { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 }, 3889 }, 3890 /* EVEX_W_0F3A0B_P_2 */ 3891 { 3892 { Bad_Opcode }, 3893 { "vrndscalesd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 }, 3894 }, 3895 /* EVEX_W_0F3A16_P_2 */ 3896 { 3897 { "vpextrd", { Edqd, XM, Ib }, 0 }, 3898 { "vpextrq", { Eq, XM, Ib }, 0 }, 3899 }, 3900 /* EVEX_W_0F3A18_P_2 */ 3901 { 3902 { "vinsertf32x4", { XM, Vex, EXxmm, Ib }, 0 }, 3903 { "vinsertf64x2", { XM, Vex, EXxmm, Ib }, 0 }, 3904 }, 3905 /* EVEX_W_0F3A19_P_2 */ 3906 { 3907 { "vextractf32x4", { EXxmm, XM, Ib }, 0 }, 3908 { "vextractf64x2", { EXxmm, XM, Ib }, 0 }, 3909 }, 3910 /* EVEX_W_0F3A1A_P_2 */ 3911 { 3912 { "vinsertf32x8", { XM, Vex, EXxmmq, Ib }, 0 }, 3913 { "vinsertf64x4", { XM, Vex, EXxmmq, Ib }, 0 }, 3914 }, 3915 /* EVEX_W_0F3A1B_P_2 */ 3916 { 3917 { "vextractf32x8", { EXxmmq, XM, Ib }, 0 }, 3918 { "vextractf64x4", { EXxmmq, XM, Ib }, 0 }, 3919 }, 3920 /* EVEX_W_0F3A1D_P_2 */ 3921 { 3922 { "vcvtps2ph", { EXxmmq, XM, EXxEVexS, Ib }, 0 }, 3923 }, 3924 /* EVEX_W_0F3A21_P_2 */ 3925 { 3926 { "vinsertps", { XMM, Vex, EXxmm_md, Ib }, 0 }, 3927 }, 3928 /* EVEX_W_0F3A22_P_2 */ 3929 { 3930 { "vpinsrd", { XM, Vex128, Edqd, Ib }, 0 }, 3931 { "vpinsrq", { XM, Vex128, Eq, Ib }, 0 }, 3932 }, 3933 /* EVEX_W_0F3A23_P_2 */ 3934 { 3935 { "vshuff32x4", { XM, Vex, EXx, Ib }, 0 }, 3936 { "vshuff64x2", { XM, Vex, EXx, Ib }, 0 }, 3937 }, 3938 /* EVEX_W_0F3A38_P_2 */ 3939 { 3940 { "vinserti32x4", { XM, Vex, EXxmm, Ib }, 0 }, 3941 { "vinserti64x2", { XM, Vex, EXxmm, Ib }, 0 }, 3942 }, 3943 /* EVEX_W_0F3A39_P_2 */ 3944 { 3945 { "vextracti32x4", { EXxmm, XM, Ib }, 0 }, 3946 { "vextracti64x2", { EXxmm, XM, Ib }, 0 }, 3947 }, 3948 /* EVEX_W_0F3A3A_P_2 */ 3949 { 3950 { "vinserti32x8", { XM, Vex, EXxmmq, Ib }, 0 }, 3951 { "vinserti64x4", { XM, Vex, EXxmmq, Ib }, 0 }, 3952 }, 3953 /* EVEX_W_0F3A3B_P_2 */ 3954 { 3955 { "vextracti32x8", { EXxmmq, XM, Ib }, 0 }, 3956 { "vextracti64x4", { EXxmmq, XM, Ib }, 0 }, 3957 }, 3958 /* EVEX_W_0F3A3E_P_2 */ 3959 { 3960 { "vpcmpub", { XMask, Vex, EXx, VPCMP }, 0 }, 3961 { "vpcmpuw", { XMask, Vex, EXx, VPCMP }, 0 }, 3962 }, 3963 /* EVEX_W_0F3A3F_P_2 */ 3964 { 3965 { "vpcmpb", { XMask, Vex, EXx, VPCMP }, 0 }, 3966 { "vpcmpw", { XMask, Vex, EXx, VPCMP }, 0 }, 3967 }, 3968 /* EVEX_W_0F3A42_P_2 */ 3969 { 3970 { "vdbpsadbw", { XM, Vex, EXx, Ib }, 0 }, 3971 }, 3972 /* EVEX_W_0F3A43_P_2 */ 3973 { 3974 { "vshufi32x4", { XM, Vex, EXx, Ib }, 0 }, 3975 { "vshufi64x2", { XM, Vex, EXx, Ib }, 0 }, 3976 }, 3977 /* EVEX_W_0F3A50_P_2 */ 3978 { 3979 { "vrangeps", { XM, Vex, EXx, EXxEVexS, Ib }, 0 }, 3980 { "vrangepd", { XM, Vex, EXx, EXxEVexS, Ib }, 0 }, 3981 }, 3982 /* EVEX_W_0F3A51_P_2 */ 3983 { 3984 { "vrangess", { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 }, 3985 { "vrangesd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 }, 3986 }, 3987 /* EVEX_W_0F3A56_P_2 */ 3988 { 3989 { "vreduceps", { XM, EXx, EXxEVexS, Ib }, 0 }, 3990 { "vreducepd", { XM, EXx, EXxEVexS, Ib }, 0 }, 3991 }, 3992 /* EVEX_W_0F3A57_P_2 */ 3993 { 3994 { "vreducess", { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 }, 3995 { "vreducesd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 }, 3996 }, 3997 /* EVEX_W_0F3A66_P_2 */ 3998 { 3999 { "vfpclassps%XZ", { XMask, EXx, Ib }, 0 }, 4000 { "vfpclasspd%XZ", { XMask, EXx, Ib }, 0 }, 4001 }, 4002 /* EVEX_W_0F3A67_P_2 */ 4003 { 4004 { "vfpclassss", { XMask, EXxmm_md, Ib }, 0 }, 4005 { "vfpclasssd", { XMask, EXxmm_mq, Ib }, 0 }, 4006 }, 4007 /* EVEX_W_0F3A70_P_2 */ 4008 { 4009 { Bad_Opcode }, 4010 { "vpshldw", { XM, Vex, EXx, Ib }, 0 }, 4011 }, 4012 /* EVEX_W_0F3A71_P_2 */ 4013 { 4014 { "vpshldd", { XM, Vex, EXx, Ib }, 0 }, 4015 { "vpshldq", { XM, Vex, EXx, Ib }, 0 }, 4016 }, 4017 /* EVEX_W_0F3A72_P_2 */ 4018 { 4019 { Bad_Opcode }, 4020 { "vpshrdw", { XM, Vex, EXx, Ib }, 0 }, 4021 }, 4022 /* EVEX_W_0F3A73_P_2 */ 4023 { 4024 { "vpshrdd", { XM, Vex, EXx, Ib }, 0 }, 4025 { "vpshrdq", { XM, Vex, EXx, Ib }, 0 }, 4026 }, 4027 /* EVEX_W_0F3ACE_P_2 */ 4028 { 4029 { Bad_Opcode }, 4030 { "vgf2p8affineqb", { XM, Vex, EXx, Ib }, 0 }, 4031 }, 4032 /* EVEX_W_0F3ACF_P_2 */ 4033 { 4034 { Bad_Opcode }, 4035 { "vgf2p8affineinvqb", { XM, Vex, EXx, Ib }, 0 }, 4036 }, 4037 #endif /* NEED_VEX_W_TABLE */ 4038 #ifdef NEED_MOD_TABLE 4039 { 4040 /* MOD_EVEX_0F10_PREFIX_1 */ 4041 { VEX_W_TABLE (EVEX_W_0F10_P_1_M_0) }, 4042 { VEX_W_TABLE (EVEX_W_0F10_P_1_M_1) }, 4043 }, 4044 { 4045 /* MOD_EVEX_0F10_PREFIX_3 */ 4046 { VEX_W_TABLE (EVEX_W_0F10_P_3_M_0) }, 4047 { VEX_W_TABLE (EVEX_W_0F10_P_3_M_1) }, 4048 }, 4049 { 4050 /* MOD_EVEX_0F11_PREFIX_1 */ 4051 { VEX_W_TABLE (EVEX_W_0F11_P_1_M_0) }, 4052 { VEX_W_TABLE (EVEX_W_0F11_P_1_M_1) }, 4053 }, 4054 { 4055 /* MOD_EVEX_0F11_PREFIX_3 */ 4056 { VEX_W_TABLE (EVEX_W_0F11_P_3_M_0) }, 4057 { VEX_W_TABLE (EVEX_W_0F11_P_3_M_1) }, 4058 }, 4059 { 4060 /* MOD_EVEX_0F12_PREFIX_0 */ 4061 { VEX_W_TABLE (EVEX_W_0F12_P_0_M_0) }, 4062 { VEX_W_TABLE (EVEX_W_0F12_P_0_M_1) }, 4063 }, 4064 { 4065 /* MOD_EVEX_0F16_PREFIX_0 */ 4066 { VEX_W_TABLE (EVEX_W_0F16_P_0_M_0) }, 4067 { VEX_W_TABLE (EVEX_W_0F16_P_0_M_1) }, 4068 }, 4069 { 4070 /* MOD_EVEX_0F38C6_REG_1 */ 4071 { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) }, 4072 }, 4073 { 4074 /* MOD_EVEX_0F38C6_REG_2 */ 4075 { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_2) }, 4076 }, 4077 { 4078 /* MOD_EVEX_0F38C6_REG_5 */ 4079 { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_5) }, 4080 }, 4081 { 4082 /* MOD_EVEX_0F38C6_REG_6 */ 4083 { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_6) }, 4084 }, 4085 { 4086 /* MOD_EVEX_0F38C7_REG_1 */ 4087 { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_1) }, 4088 }, 4089 { 4090 /* MOD_EVEX_0F38C7_REG_2 */ 4091 { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_2) }, 4092 }, 4093 { 4094 /* MOD_EVEX_0F38C7_REG_5 */ 4095 { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_5) }, 4096 }, 4097 { 4098 /* MOD_EVEX_0F38C7_REG_6 */ 4099 { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) }, 4100 }, 4101 #endif /* NEED_MOD_TABLE */ 4102 4103