1 /* EVEX_W_0F5B_P_0 */ 2 { 3 { "%XEvcvtdq2ps", { XM, EXx, EXxEVexR }, 0 }, 4 { "vcvtqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 5 }, 6 /* EVEX_W_0F62 */ 7 { 8 { "%XEvpunpckldq", { XM, Vex, EXx }, PREFIX_DATA }, 9 }, 10 /* EVEX_W_0F66 */ 11 { 12 { "vpcmpgtd", { MaskG, Vex, EXx }, PREFIX_DATA }, 13 }, 14 /* EVEX_W_0F6A */ 15 { 16 { "%XEvpunpckhdq", { XM, Vex, EXx }, PREFIX_DATA }, 17 }, 18 /* EVEX_W_0F6B */ 19 { 20 { "%XEvpackssdw", { XM, Vex, EXx }, PREFIX_DATA }, 21 }, 22 /* EVEX_W_0F6C */ 23 { 24 { Bad_Opcode }, 25 { "%XEvpunpcklqdq", { XM, Vex, EXx }, PREFIX_DATA }, 26 }, 27 /* EVEX_W_0F6D */ 28 { 29 { Bad_Opcode }, 30 { "%XEvpunpckhqdq", { XM, Vex, EXx }, PREFIX_DATA }, 31 }, 32 /* EVEX_W_0F6F_P_1 */ 33 { 34 { "vmovdqu32", { XM, EXEvexXNoBcst }, 0 }, 35 { "vmovdqu64", { XM, EXEvexXNoBcst }, 0 }, 36 }, 37 /* EVEX_W_0F6F_P_2 */ 38 { 39 { "vmovdqa32", { XM, EXEvexXNoBcst }, 0 }, 40 { "vmovdqa64", { XM, EXEvexXNoBcst }, 0 }, 41 }, 42 /* EVEX_W_0F6F_P_3 */ 43 { 44 { "vmovdqu8", { XM, EXx }, 0 }, 45 { "vmovdqu16", { XM, EXx }, 0 }, 46 }, 47 /* EVEX_W_0F70_P_2 */ 48 { 49 { "%XEvpshufd", { XM, EXx, Ib }, 0 }, 50 }, 51 /* EVEX_W_0F72_R_2 */ 52 { 53 { "%MEvpsrld", { Vex, EXx, Ib }, PREFIX_DATA }, 54 }, 55 /* EVEX_W_0F72_R_4 */ 56 { 57 { "%MEvpsrad", { Vex, EXx, Ib }, PREFIX_DATA }, 58 { "vpsraq", { Vex, EXx, Ib }, PREFIX_DATA }, 59 }, 60 /* EVEX_W_0F72_R_6 */ 61 { 62 { "%MEvpslld", { Vex, EXx, Ib }, PREFIX_DATA }, 63 }, 64 /* EVEX_W_0F73_R_2 */ 65 { 66 { Bad_Opcode }, 67 { "%MEvpsrlq", { Vex, EXx, Ib }, PREFIX_DATA }, 68 }, 69 /* EVEX_W_0F73_R_6 */ 70 { 71 { Bad_Opcode }, 72 { "%MEvpsllq", { Vex, EXx, Ib }, PREFIX_DATA }, 73 }, 74 /* EVEX_W_0F76 */ 75 { 76 { "vpcmpeqd", { MaskG, Vex, EXx }, PREFIX_DATA }, 77 }, 78 /* EVEX_W_0F78_P_0 */ 79 { 80 { "vcvttps2udq", { XM, EXx, EXxEVexS }, 0 }, 81 { "vcvttpd2udq%XY", { XMxmmq, EXx, EXxEVexS }, 0 }, 82 }, 83 /* EVEX_W_0F78_P_2 */ 84 { 85 { "vcvttps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, 86 { "vcvttpd2uqq", { XM, EXx, EXxEVexS }, 0 }, 87 }, 88 /* EVEX_W_0F79_P_0 */ 89 { 90 { "vcvtps2udq", { XM, EXx, EXxEVexR }, 0 }, 91 { "vcvtpd2udq%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 92 }, 93 /* EVEX_W_0F79_P_2 */ 94 { 95 { "vcvtps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 }, 96 { "vcvtpd2uqq", { XM, EXx, EXxEVexR }, 0 }, 97 }, 98 /* EVEX_W_0F7A_P_1 */ 99 { 100 { "vcvtudq2pd", { XM, EXEvexHalfBcstXmmq }, 0 }, 101 { "vcvtuqq2pd", { XM, EXx, EXxEVexR }, 0 }, 102 }, 103 /* EVEX_W_0F7A_P_2 */ 104 { 105 { "vcvttps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, 106 { "vcvttpd2qq", { XM, EXx, EXxEVexS }, 0 }, 107 }, 108 /* EVEX_W_0F7A_P_3 */ 109 { 110 { "vcvtudq2ps", { XM, EXx, EXxEVexR }, 0 }, 111 { "vcvtuqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 112 }, 113 /* EVEX_W_0F7B_P_2 */ 114 { 115 { "vcvtps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 }, 116 { "vcvtpd2qq", { XM, EXx, EXxEVexR }, 0 }, 117 }, 118 /* EVEX_W_0F7E_P_1 */ 119 { 120 { EVEX_LEN_TABLE (EVEX_LEN_0F7E_P_1_W_0) }, 121 { VEX_LEN_TABLE (VEX_LEN_0F7E_P_1) }, 122 }, 123 /* EVEX_W_0F7F_P_1 */ 124 { 125 { "vmovdqu32", { EXxS, XM }, 0 }, 126 { "vmovdqu64", { EXxS, XM }, 0 }, 127 }, 128 /* EVEX_W_0F7F_P_2 */ 129 { 130 { "vmovdqa32", { EXxS, XM }, 0 }, 131 { "vmovdqa64", { EXxS, XM }, 0 }, 132 }, 133 /* EVEX_W_0F7F_P_3 */ 134 { 135 { "vmovdqu8", { EXxS, XM }, 0 }, 136 { "vmovdqu16", { EXxS, XM }, 0 }, 137 }, 138 /* EVEX_W_0FD2 */ 139 { 140 { "%XEvpsrld", { XM, Vex, EXxmm }, PREFIX_DATA }, 141 }, 142 /* EVEX_W_0FD3 */ 143 { 144 { Bad_Opcode }, 145 { "%XEvpsrlq", { XM, Vex, EXxmm }, PREFIX_DATA }, 146 }, 147 /* EVEX_W_0FD4 */ 148 { 149 { Bad_Opcode }, 150 { "%XEvpaddq", { XM, Vex, EXx }, PREFIX_DATA }, 151 }, 152 /* EVEX_W_0FD6 */ 153 { 154 { EVEX_LEN_TABLE (EVEX_LEN_0FD6_P_2_W_0) }, 155 { VEX_LEN_TABLE (VEX_LEN_0FD6) }, 156 }, 157 /* EVEX_W_0FE2 */ 158 { 159 { "%XEvpsrad", { XM, Vex, EXxmm }, PREFIX_DATA }, 160 { "vpsraq", { XM, Vex, EXxmm }, PREFIX_DATA }, 161 }, 162 /* EVEX_W_0FE6_P_1 */ 163 { 164 { "%XEvcvtdq2pd", { XM, EXEvexHalfBcstXmmq }, 0 }, 165 { "vcvtqq2pd", { XM, EXx, EXxEVexR }, 0 }, 166 }, 167 /* EVEX_W_0FE7 */ 168 { 169 { "%XEvmovntdq", { Mx, XM }, PREFIX_DATA }, 170 }, 171 /* EVEX_W_0FF2 */ 172 { 173 { "%XEvpslld", { XM, Vex, EXxmm }, PREFIX_DATA }, 174 }, 175 /* EVEX_W_0FF3 */ 176 { 177 { Bad_Opcode }, 178 { "%XEvpsllq", { XM, Vex, EXxmm }, PREFIX_DATA }, 179 }, 180 /* EVEX_W_0FF4 */ 181 { 182 { Bad_Opcode }, 183 { "%XEvpmuludq", { XM, Vex, EXx }, PREFIX_DATA }, 184 }, 185 /* EVEX_W_0FFA */ 186 { 187 { "%XEvpsubd", { XM, Vex, EXx }, PREFIX_DATA }, 188 }, 189 /* EVEX_W_0FFB */ 190 { 191 { Bad_Opcode }, 192 { "%XEvpsubq", { XM, Vex, EXx }, PREFIX_DATA }, 193 }, 194 /* EVEX_W_0FFE */ 195 { 196 { "%XEvpaddd", { XM, Vex, EXx }, PREFIX_DATA }, 197 }, 198 /* EVEX_W_0F3810_P_1 */ 199 { 200 { "vpmovuswb", { EXxmmq, XM }, 0 }, 201 }, 202 /* EVEX_W_0F3810_P_2 */ 203 { 204 { Bad_Opcode }, 205 { "vpsrlvw", { XM, Vex, EXx }, 0 }, 206 }, 207 /* EVEX_W_0F3811_P_1 */ 208 { 209 { "vpmovusdb", { EXxmmqd, XM }, 0 }, 210 }, 211 /* EVEX_W_0F3811_P_2 */ 212 { 213 { Bad_Opcode }, 214 { "vpsravw", { XM, Vex, EXx }, 0 }, 215 }, 216 /* EVEX_W_0F3812_P_1 */ 217 { 218 { "vpmovusqb", { EXxmmdw, XM }, 0 }, 219 }, 220 /* EVEX_W_0F3812_P_2 */ 221 { 222 { Bad_Opcode }, 223 { "vpsllvw", { XM, Vex, EXx }, 0 }, 224 }, 225 /* EVEX_W_0F3813_P_1 */ 226 { 227 { "vpmovusdw", { EXxmmq, XM }, 0 }, 228 }, 229 /* EVEX_W_0F3814_P_1 */ 230 { 231 { "vpmovusqw", { EXxmmqd, XM }, 0 }, 232 }, 233 /* EVEX_W_0F3815_P_1 */ 234 { 235 { "vpmovusqd", { EXxmmq, XM }, 0 }, 236 }, 237 /* EVEX_W_0F3819_L_n */ 238 { 239 { "vbroadcastf32x2", { XM, EXq }, PREFIX_DATA }, 240 { "%XEvbroadcastsd", { XM, EXq }, PREFIX_DATA }, 241 }, 242 /* EVEX_W_0F381A_L_n */ 243 { 244 { "vbroadcastf32x4", { XM, Mxmm }, PREFIX_DATA }, 245 { "vbroadcastf64x2", { XM, Mxmm }, PREFIX_DATA }, 246 }, 247 /* EVEX_W_0F381B_L_2 */ 248 { 249 { "vbroadcastf32x8", { XM, Mymm }, PREFIX_DATA }, 250 { "vbroadcastf64x4", { XM, Mymm }, PREFIX_DATA }, 251 }, 252 /* EVEX_W_0F381E */ 253 { 254 { "%XEvpabsd", { XM, EXx }, PREFIX_DATA }, 255 }, 256 /* EVEX_W_0F381F */ 257 { 258 { Bad_Opcode }, 259 { "vpabsq", { XM, EXx }, PREFIX_DATA }, 260 }, 261 /* EVEX_W_0F3820_P_1 */ 262 { 263 { "vpmovswb", { EXxmmq, XM }, 0 }, 264 }, 265 /* EVEX_W_0F3821_P_1 */ 266 { 267 { "vpmovsdb", { EXxmmqd, XM }, 0 }, 268 }, 269 /* EVEX_W_0F3822_P_1 */ 270 { 271 { "vpmovsqb", { EXxmmdw, XM }, 0 }, 272 }, 273 /* EVEX_W_0F3823_P_1 */ 274 { 275 { "vpmovsdw", { EXxmmq, XM }, 0 }, 276 }, 277 /* EVEX_W_0F3824_P_1 */ 278 { 279 { "vpmovsqw", { EXxmmqd, XM }, 0 }, 280 }, 281 /* EVEX_W_0F3825_P_1 */ 282 { 283 { "vpmovsqd", { EXxmmq, XM }, 0 }, 284 }, 285 /* EVEX_W_0F3825_P_2 */ 286 { 287 { "%XEvpmovsxdq", { XM, EXxmmq }, 0 }, 288 }, 289 /* EVEX_W_0F3828_P_2 */ 290 { 291 { Bad_Opcode }, 292 { "%XEvpmuldq", { XM, Vex, EXx }, 0 }, 293 }, 294 /* EVEX_W_0F3829_P_2 */ 295 { 296 { Bad_Opcode }, 297 { "vpcmpeqq", { MaskG, Vex, EXx }, 0 }, 298 }, 299 /* EVEX_W_0F382A_P_1 */ 300 { 301 { Bad_Opcode }, 302 { "vpbroadcastmb2qY", { XM, MaskR }, 0 }, 303 }, 304 /* EVEX_W_0F382A_P_2 */ 305 { 306 { "%XEvmovntdqaY", { XM, Mx }, 0 }, 307 }, 308 /* EVEX_W_0F382B */ 309 { 310 { "%XEvpackusdw", { XM, Vex, EXx }, PREFIX_DATA }, 311 }, 312 /* EVEX_W_0F3830_P_1 */ 313 { 314 { "vpmovwb", { EXxmmq, XM }, 0 }, 315 }, 316 /* EVEX_W_0F3831_P_1 */ 317 { 318 { "vpmovdb", { EXxmmqd, XM }, 0 }, 319 }, 320 /* EVEX_W_0F3832_P_1 */ 321 { 322 { "vpmovqb", { EXxmmdw, XM }, 0 }, 323 }, 324 /* EVEX_W_0F3833_P_1 */ 325 { 326 { "vpmovdw", { EXxmmq, XM }, 0 }, 327 }, 328 /* EVEX_W_0F3834_P_1 */ 329 { 330 { "vpmovqw", { EXxmmqd, XM }, 0 }, 331 }, 332 /* EVEX_W_0F3835_P_1 */ 333 { 334 { "vpmovqd", { EXxmmq, XM }, 0 }, 335 }, 336 /* EVEX_W_0F3835_P_2 */ 337 { 338 { "%XEvpmovzxdq", { XM, EXxmmq }, 0 }, 339 }, 340 /* EVEX_W_0F3837 */ 341 { 342 { Bad_Opcode }, 343 { "vpcmpgtq", { MaskG, Vex, EXx }, PREFIX_DATA }, 344 }, 345 /* EVEX_W_0F383A_P_1 */ 346 { 347 { "vpbroadcastmw2dY", { XM, MaskR }, 0 }, 348 }, 349 /* EVEX_W_0F3859 */ 350 { 351 { "vbroadcasti32x2", { XM, EXq }, PREFIX_DATA }, 352 { "%XEvpbroadcastq", { XM, EXq }, PREFIX_DATA }, 353 }, 354 /* EVEX_W_0F385A_L_n */ 355 { 356 { "vbroadcasti32x4", { XM, Mxmm }, PREFIX_DATA }, 357 { "vbroadcasti64x2", { XM, Mxmm }, PREFIX_DATA }, 358 }, 359 /* EVEX_W_0F385B_L_2 */ 360 { 361 { "vbroadcasti32x8", { XM, Mymm }, PREFIX_DATA }, 362 { "vbroadcasti64x4", { XM, Mymm }, PREFIX_DATA }, 363 }, 364 /* EVEX_W_0F3870 */ 365 { 366 { Bad_Opcode }, 367 { "vpshldvw", { XM, Vex, EXx }, PREFIX_DATA }, 368 }, 369 /* EVEX_W_0F3872_P_2 */ 370 { 371 { Bad_Opcode }, 372 { "vpshrdvw", { XM, Vex, EXx }, 0 }, 373 }, 374 /* EVEX_W_0F387A */ 375 { 376 { "vpbroadcastb", { XM, Rd }, PREFIX_DATA }, 377 }, 378 /* EVEX_W_0F387B */ 379 { 380 { "vpbroadcastw", { XM, Rd }, PREFIX_DATA }, 381 }, 382 /* EVEX_W_0F3883 */ 383 { 384 { Bad_Opcode }, 385 { "vpmultishiftqb", { XM, Vex, EXx }, PREFIX_DATA }, 386 }, 387 /* EVEX_W_0F3A18_L_n */ 388 { 389 { "vinsertf32x4", { XM, Vex, EXxmm, Ib }, PREFIX_DATA }, 390 { "vinsertf64x2", { XM, Vex, EXxmm, Ib }, PREFIX_DATA }, 391 }, 392 /* EVEX_W_0F3A19_L_n */ 393 { 394 { "vextractf32x4", { EXxmm, XM, Ib }, PREFIX_DATA }, 395 { "vextractf64x2", { EXxmm, XM, Ib }, PREFIX_DATA }, 396 }, 397 /* EVEX_W_0F3A1A_L_2 */ 398 { 399 { "vinsertf32x8", { XM, Vex, EXymm, Ib }, PREFIX_DATA }, 400 { "vinsertf64x4", { XM, Vex, EXymm, Ib }, PREFIX_DATA }, 401 }, 402 /* EVEX_W_0F3A1B_L_2 */ 403 { 404 { "vextractf32x8", { EXymm, XM, Ib }, PREFIX_DATA }, 405 { "vextractf64x4", { EXymm, XM, Ib }, PREFIX_DATA }, 406 }, 407 /* EVEX_W_0F3A21 */ 408 { 409 { VEX_LEN_TABLE (VEX_LEN_0F3A21) }, 410 }, 411 /* EVEX_W_0F3A23_L_n */ 412 { 413 { "vshuff32x4", { XM, Vex, EXx, Ib }, PREFIX_DATA }, 414 { "vshuff64x2", { XM, Vex, EXx, Ib }, PREFIX_DATA }, 415 }, 416 /* EVEX_W_0F3A38_L_n */ 417 { 418 { "vinserti32x4", { XM, Vex, EXxmm, Ib }, PREFIX_DATA }, 419 { "vinserti64x2", { XM, Vex, EXxmm, Ib }, PREFIX_DATA }, 420 }, 421 /* EVEX_W_0F3A39_L_n */ 422 { 423 { "vextracti32x4", { EXxmm, XM, Ib }, PREFIX_DATA }, 424 { "vextracti64x2", { EXxmm, XM, Ib }, PREFIX_DATA }, 425 }, 426 /* EVEX_W_0F3A3A_L_2 */ 427 { 428 { "vinserti32x8", { XM, Vex, EXymm, Ib }, PREFIX_DATA }, 429 { "vinserti64x4", { XM, Vex, EXymm, Ib }, PREFIX_DATA }, 430 }, 431 /* EVEX_W_0F3A3B_L_2 */ 432 { 433 { "vextracti32x8", { EXymm, XM, Ib }, PREFIX_DATA }, 434 { "vextracti64x4", { EXymm, XM, Ib }, PREFIX_DATA }, 435 }, 436 /* EVEX_W_0F3A42 */ 437 { 438 { PREFIX_TABLE (PREFIX_EVEX_0F3A42_W_0) }, 439 }, 440 /* EVEX_W_0F3A43_L_n */ 441 { 442 { "vshufi32x4", { XM, Vex, EXx, Ib }, PREFIX_DATA }, 443 { "vshufi64x2", { XM, Vex, EXx, Ib }, PREFIX_DATA }, 444 }, 445 /* EVEX_W_0F3A70 */ 446 { 447 { Bad_Opcode }, 448 { "vpshldw", { XM, Vex, EXx, Ib }, 0 }, 449 }, 450 /* EVEX_W_0F3A72 */ 451 { 452 { Bad_Opcode }, 453 { "vpshrdw", { XM, Vex, EXx, Ib }, 0 }, 454 }, 455 /* EVEX_W_MAP4_8F_R_0 */ 456 { 457 { "pop2", { { PUSH2_POP2_Fixup, q_mode}, Eq }, NO_PREFIX }, 458 { "pop2p", { { PUSH2_POP2_Fixup, q_mode}, Eq }, NO_PREFIX }, 459 }, 460 /* EVEX_W_MAP4_F8_P1_M_1 */ 461 { 462 { "uwrmsr", { Gq, Eq }, 0 }, 463 }, 464 /* EVEX_W_MAP4_F8_P3_M_1 */ 465 { 466 { "urdmsr", { Eq, Gq }, 0 }, 467 }, 468 /* EVEX_W_MAP4_FF_R_6 */ 469 { 470 { "push2", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 }, 471 { "push2p", { { PUSH2_POP2_Fixup, q_mode}, Eq }, 0 }, 472 }, 473 /* EVEX_W_MAP5_5B_P_0 */ 474 { 475 { "vcvtdq2ph%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 476 { "vcvtqq2ph%XZ", { XMM, EXx, EXxEVexR }, 0 }, 477 }, 478 /* EVEX_W_MAP5_6C_P_0 */ 479 { 480 { "vcvttps2udqs", { XM, EXx, EXxEVexS }, 0 }, 481 { "vcvttpd2udqs%XY", { XMxmmq, EXx, EXxEVexS }, 0 }, 482 }, 483 /* EVEX_W_MAP5_6C_P_2 */ 484 { 485 { "vcvttps2uqqs", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, 486 { "vcvttpd2uqqs", { XM, EXx, EXxEVexS }, 0 }, 487 }, 488 /* EVEX_W_MAP5_6D_P_0 */ 489 { 490 { "vcvttps2dqs", { XM, EXx, EXxEVexS }, 0 }, 491 { "vcvttpd2dqs%XY", { XMxmmq, EXx, EXxEVexS }, 0 }, 492 }, 493 /* EVEX_W_MAP5_6D_P_2 */ 494 { 495 { "vcvttps2qqs", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 }, 496 { "vcvttpd2qqs", { XM, EXx, EXxEVexS }, 0 }, 497 }, 498 /* EVEX_W_MAP5_6E_P_1 */ 499 { 500 { "vmovw", { XMScalar, EXw }, 0 }, 501 }, 502 /* EVEX_W_MAP5_7A_P_3 */ 503 { 504 { "vcvtudq2ph%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, 505 { "vcvtuqq2ph%XZ", { XMM, EXx, EXxEVexR }, 0 }, 506 }, 507 /* EVEX_W_MAP5_7E_P_1 */ 508 { 509 { "vmovw", { EXwS, XMScalar }, 0 }, 510 }, 511