i386-dis-evex-w.h revision 1.1.1.4 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