]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - opcodes/i386-dis-evex-w.h
b828277d4137fc57aeaa795eea1ce01cb8c76694
[thirdparty/binutils-gdb.git] / opcodes / i386-dis-evex-w.h
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 { "%XEvpsrld", { Vex, EXx, Ib }, PREFIX_DATA },
54 },
55 /* EVEX_W_0F72_R_6 */
56 {
57 { "%XEvpslld", { Vex, EXx, Ib }, PREFIX_DATA },
58 },
59 /* EVEX_W_0F73_R_2 */
60 {
61 { Bad_Opcode },
62 { "%XEvpsrlq", { Vex, EXx, Ib }, PREFIX_DATA },
63 },
64 /* EVEX_W_0F73_R_6 */
65 {
66 { Bad_Opcode },
67 { "%XEvpsllq", { Vex, EXx, Ib }, PREFIX_DATA },
68 },
69 /* EVEX_W_0F76 */
70 {
71 { "vpcmpeqd", { MaskG, Vex, EXx }, PREFIX_DATA },
72 },
73 /* EVEX_W_0F78_P_0 */
74 {
75 { "vcvttps2udq", { XM, EXx, EXxEVexS }, 0 },
76 { "vcvttpd2udq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
77 },
78 /* EVEX_W_0F78_P_2 */
79 {
80 { "vcvttps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
81 { "vcvttpd2uqq", { XM, EXx, EXxEVexS }, 0 },
82 },
83 /* EVEX_W_0F79_P_0 */
84 {
85 { "vcvtps2udq", { XM, EXx, EXxEVexR }, 0 },
86 { "vcvtpd2udq%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
87 },
88 /* EVEX_W_0F79_P_2 */
89 {
90 { "vcvtps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
91 { "vcvtpd2uqq", { XM, EXx, EXxEVexR }, 0 },
92 },
93 /* EVEX_W_0F7A_P_1 */
94 {
95 { "vcvtudq2pd", { XM, EXEvexHalfBcstXmmq }, 0 },
96 { "vcvtuqq2pd", { XM, EXx, EXxEVexR }, 0 },
97 },
98 /* EVEX_W_0F7A_P_2 */
99 {
100 { "vcvttps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
101 { "vcvttpd2qq", { XM, EXx, EXxEVexS }, 0 },
102 },
103 /* EVEX_W_0F7A_P_3 */
104 {
105 { "vcvtudq2ps", { XM, EXx, EXxEVexR }, 0 },
106 { "vcvtuqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
107 },
108 /* EVEX_W_0F7B_P_2 */
109 {
110 { "vcvtps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
111 { "vcvtpd2qq", { XM, EXx, EXxEVexR }, 0 },
112 },
113 /* EVEX_W_0F7E_P_1 */
114 {
115 { Bad_Opcode },
116 { VEX_LEN_TABLE (VEX_LEN_0F7E_P_1) },
117 },
118 /* EVEX_W_0F7F_P_1 */
119 {
120 { "vmovdqu32", { EXxS, XM }, 0 },
121 { "vmovdqu64", { EXxS, XM }, 0 },
122 },
123 /* EVEX_W_0F7F_P_2 */
124 {
125 { "vmovdqa32", { EXxS, XM }, 0 },
126 { "vmovdqa64", { EXxS, XM }, 0 },
127 },
128 /* EVEX_W_0F7F_P_3 */
129 {
130 { "vmovdqu8", { EXxS, XM }, 0 },
131 { "vmovdqu16", { EXxS, XM }, 0 },
132 },
133 /* EVEX_W_0FD2 */
134 {
135 { "%XEvpsrld", { XM, Vex, EXxmm }, PREFIX_DATA },
136 },
137 /* EVEX_W_0FD3 */
138 {
139 { Bad_Opcode },
140 { "%XEvpsrlq", { XM, Vex, EXxmm }, PREFIX_DATA },
141 },
142 /* EVEX_W_0FD4 */
143 {
144 { Bad_Opcode },
145 { "%XEvpaddq", { XM, Vex, EXx }, PREFIX_DATA },
146 },
147 /* EVEX_W_0FD6 */
148 {
149 { Bad_Opcode },
150 { VEX_LEN_TABLE (VEX_LEN_0FD6) },
151 },
152 /* EVEX_W_0FE6_P_1 */
153 {
154 { "%XEvcvtdq2pd", { XM, EXEvexHalfBcstXmmq }, 0 },
155 { "vcvtqq2pd", { XM, EXx, EXxEVexR }, 0 },
156 },
157 /* EVEX_W_0FE7 */
158 {
159 { "%XEvmovntdq", { Mx, XM }, PREFIX_DATA },
160 },
161 /* EVEX_W_0FF2 */
162 {
163 { "%XEvpslld", { XM, Vex, EXxmm }, PREFIX_DATA },
164 },
165 /* EVEX_W_0FF3 */
166 {
167 { Bad_Opcode },
168 { "%XEvpsllq", { XM, Vex, EXxmm }, PREFIX_DATA },
169 },
170 /* EVEX_W_0FF4 */
171 {
172 { Bad_Opcode },
173 { "%XEvpmuludq", { XM, Vex, EXx }, PREFIX_DATA },
174 },
175 /* EVEX_W_0FFA */
176 {
177 { "%XEvpsubd", { XM, Vex, EXx }, PREFIX_DATA },
178 },
179 /* EVEX_W_0FFB */
180 {
181 { Bad_Opcode },
182 { "%XEvpsubq", { XM, Vex, EXx }, PREFIX_DATA },
183 },
184 /* EVEX_W_0FFE */
185 {
186 { "%XEvpaddd", { XM, Vex, EXx }, PREFIX_DATA },
187 },
188 /* EVEX_W_0F3810_P_1 */
189 {
190 { "vpmovuswb", { EXxmmq, XM }, 0 },
191 },
192 /* EVEX_W_0F3810_P_2 */
193 {
194 { Bad_Opcode },
195 { "vpsrlvw", { XM, Vex, EXx }, 0 },
196 },
197 /* EVEX_W_0F3811_P_1 */
198 {
199 { "vpmovusdb", { EXxmmqd, XM }, 0 },
200 },
201 /* EVEX_W_0F3811_P_2 */
202 {
203 { Bad_Opcode },
204 { "vpsravw", { XM, Vex, EXx }, 0 },
205 },
206 /* EVEX_W_0F3812_P_1 */
207 {
208 { "vpmovusqb", { EXxmmdw, XM }, 0 },
209 },
210 /* EVEX_W_0F3812_P_2 */
211 {
212 { Bad_Opcode },
213 { "vpsllvw", { XM, Vex, EXx }, 0 },
214 },
215 /* EVEX_W_0F3813_P_1 */
216 {
217 { "vpmovusdw", { EXxmmq, XM }, 0 },
218 },
219 /* EVEX_W_0F3814_P_1 */
220 {
221 { "vpmovusqw", { EXxmmqd, XM }, 0 },
222 },
223 /* EVEX_W_0F3815_P_1 */
224 {
225 { "vpmovusqd", { EXxmmq, XM }, 0 },
226 },
227 /* EVEX_W_0F3819_L_n */
228 {
229 { "vbroadcastf32x2", { XM, EXq }, PREFIX_DATA },
230 { "%XEvbroadcastsd", { XM, EXq }, PREFIX_DATA },
231 },
232 /* EVEX_W_0F381A_L_n */
233 {
234 { "vbroadcastf32x4", { XM, Mxmm }, PREFIX_DATA },
235 { "vbroadcastf64x2", { XM, Mxmm }, PREFIX_DATA },
236 },
237 /* EVEX_W_0F381B_L_2 */
238 {
239 { "vbroadcastf32x8", { XM, Mymm }, PREFIX_DATA },
240 { "vbroadcastf64x4", { XM, Mymm }, PREFIX_DATA },
241 },
242 /* EVEX_W_0F381E */
243 {
244 { "%XEvpabsd", { XM, EXx }, PREFIX_DATA },
245 },
246 /* EVEX_W_0F381F */
247 {
248 { Bad_Opcode },
249 { "vpabsq", { XM, EXx }, PREFIX_DATA },
250 },
251 /* EVEX_W_0F3820_P_1 */
252 {
253 { "vpmovswb", { EXxmmq, XM }, 0 },
254 },
255 /* EVEX_W_0F3821_P_1 */
256 {
257 { "vpmovsdb", { EXxmmqd, XM }, 0 },
258 },
259 /* EVEX_W_0F3822_P_1 */
260 {
261 { "vpmovsqb", { EXxmmdw, XM }, 0 },
262 },
263 /* EVEX_W_0F3823_P_1 */
264 {
265 { "vpmovsdw", { EXxmmq, XM }, 0 },
266 },
267 /* EVEX_W_0F3824_P_1 */
268 {
269 { "vpmovsqw", { EXxmmqd, XM }, 0 },
270 },
271 /* EVEX_W_0F3825_P_1 */
272 {
273 { "vpmovsqd", { EXxmmq, XM }, 0 },
274 },
275 /* EVEX_W_0F3825_P_2 */
276 {
277 { "%XEvpmovsxdq", { XM, EXxmmq }, 0 },
278 },
279 /* EVEX_W_0F3828_P_2 */
280 {
281 { Bad_Opcode },
282 { "%XEvpmuldq", { XM, Vex, EXx }, 0 },
283 },
284 /* EVEX_W_0F3829_P_2 */
285 {
286 { Bad_Opcode },
287 { "vpcmpeqq", { MaskG, Vex, EXx }, 0 },
288 },
289 /* EVEX_W_0F382A_P_1 */
290 {
291 { Bad_Opcode },
292 { "vpbroadcastmb2qY", { XM, MaskR }, 0 },
293 },
294 /* EVEX_W_0F382A_P_2 */
295 {
296 { "%XEvmovntdqaY", { XM, Mx }, 0 },
297 },
298 /* EVEX_W_0F382B */
299 {
300 { "%XEvpackusdw", { XM, Vex, EXx }, PREFIX_DATA },
301 },
302 /* EVEX_W_0F3830_P_1 */
303 {
304 { "vpmovwb", { EXxmmq, XM }, 0 },
305 },
306 /* EVEX_W_0F3831_P_1 */
307 {
308 { "vpmovdb", { EXxmmqd, XM }, 0 },
309 },
310 /* EVEX_W_0F3832_P_1 */
311 {
312 { "vpmovqb", { EXxmmdw, XM }, 0 },
313 },
314 /* EVEX_W_0F3833_P_1 */
315 {
316 { "vpmovdw", { EXxmmq, XM }, 0 },
317 },
318 /* EVEX_W_0F3834_P_1 */
319 {
320 { "vpmovqw", { EXxmmqd, XM }, 0 },
321 },
322 /* EVEX_W_0F3835_P_1 */
323 {
324 { "vpmovqd", { EXxmmq, XM }, 0 },
325 },
326 /* EVEX_W_0F3835_P_2 */
327 {
328 { "%XEvpmovzxdq", { XM, EXxmmq }, 0 },
329 },
330 /* EVEX_W_0F3837 */
331 {
332 { Bad_Opcode },
333 { "vpcmpgtq", { MaskG, Vex, EXx }, PREFIX_DATA },
334 },
335 /* EVEX_W_0F383A_P_1 */
336 {
337 { "vpbroadcastmw2dY", { XM, MaskR }, 0 },
338 },
339 /* EVEX_W_0F3859 */
340 {
341 { "vbroadcasti32x2", { XM, EXq }, PREFIX_DATA },
342 { "%XEvpbroadcastq", { XM, EXq }, PREFIX_DATA },
343 },
344 /* EVEX_W_0F385A_L_n */
345 {
346 { "vbroadcasti32x4", { XM, Mxmm }, PREFIX_DATA },
347 { "vbroadcasti64x2", { XM, Mxmm }, PREFIX_DATA },
348 },
349 /* EVEX_W_0F385B_L_2 */
350 {
351 { "vbroadcasti32x8", { XM, Mymm }, PREFIX_DATA },
352 { "vbroadcasti64x4", { XM, Mymm }, PREFIX_DATA },
353 },
354 /* EVEX_W_0F3870 */
355 {
356 { Bad_Opcode },
357 { "vpshldvw", { XM, Vex, EXx }, PREFIX_DATA },
358 },
359 /* EVEX_W_0F3872_P_2 */
360 {
361 { Bad_Opcode },
362 { "vpshrdvw", { XM, Vex, EXx }, 0 },
363 },
364 /* EVEX_W_0F387A */
365 {
366 { "vpbroadcastb", { XM, Rd }, PREFIX_DATA },
367 },
368 /* EVEX_W_0F387B */
369 {
370 { "vpbroadcastw", { XM, Rd }, PREFIX_DATA },
371 },
372 /* EVEX_W_0F3883 */
373 {
374 { Bad_Opcode },
375 { "vpmultishiftqb", { XM, Vex, EXx }, PREFIX_DATA },
376 },
377 /* EVEX_W_0F3A18_L_n */
378 {
379 { "vinsertf32x4", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
380 { "vinsertf64x2", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
381 },
382 /* EVEX_W_0F3A19_L_n */
383 {
384 { "vextractf32x4", { EXxmm, XM, Ib }, PREFIX_DATA },
385 { "vextractf64x2", { EXxmm, XM, Ib }, PREFIX_DATA },
386 },
387 /* EVEX_W_0F3A1A_L_2 */
388 {
389 { "vinsertf32x8", { XM, Vex, EXymm, Ib }, PREFIX_DATA },
390 { "vinsertf64x4", { XM, Vex, EXymm, Ib }, PREFIX_DATA },
391 },
392 /* EVEX_W_0F3A1B_L_2 */
393 {
394 { "vextractf32x8", { EXymm, XM, Ib }, PREFIX_DATA },
395 { "vextractf64x4", { EXymm, XM, Ib }, PREFIX_DATA },
396 },
397 /* EVEX_W_0F3A21 */
398 {
399 { VEX_LEN_TABLE (VEX_LEN_0F3A21) },
400 },
401 /* EVEX_W_0F3A23_L_n */
402 {
403 { "vshuff32x4", { XM, Vex, EXx, Ib }, PREFIX_DATA },
404 { "vshuff64x2", { XM, Vex, EXx, Ib }, PREFIX_DATA },
405 },
406 /* EVEX_W_0F3A38_L_n */
407 {
408 { "vinserti32x4", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
409 { "vinserti64x2", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
410 },
411 /* EVEX_W_0F3A39_L_n */
412 {
413 { "vextracti32x4", { EXxmm, XM, Ib }, PREFIX_DATA },
414 { "vextracti64x2", { EXxmm, XM, Ib }, PREFIX_DATA },
415 },
416 /* EVEX_W_0F3A3A_L_2 */
417 {
418 { "vinserti32x8", { XM, Vex, EXymm, Ib }, PREFIX_DATA },
419 { "vinserti64x4", { XM, Vex, EXymm, Ib }, PREFIX_DATA },
420 },
421 /* EVEX_W_0F3A3B_L_2 */
422 {
423 { "vextracti32x8", { EXymm, XM, Ib }, PREFIX_DATA },
424 { "vextracti64x4", { EXymm, XM, Ib }, PREFIX_DATA },
425 },
426 /* EVEX_W_0F3A42 */
427 {
428 { "vdbpsadbw", { XM, Vex, EXx, Ib }, 0 },
429 },
430 /* EVEX_W_0F3A43_L_n */
431 {
432 { "vshufi32x4", { XM, Vex, EXx, Ib }, PREFIX_DATA },
433 { "vshufi64x2", { XM, Vex, EXx, Ib }, PREFIX_DATA },
434 },
435 /* EVEX_W_0F3A70 */
436 {
437 { Bad_Opcode },
438 { "vpshldw", { XM, Vex, EXx, Ib }, 0 },
439 },
440 /* EVEX_W_0F3A72 */
441 {
442 { Bad_Opcode },
443 { "vpshrdw", { XM, Vex, EXx, Ib }, 0 },
444 },
445 /* EVEX_W_MAP5_5B_P_0 */
446 {
447 { "vcvtdq2ph%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
448 { "vcvtqq2ph%XZ", { XMM, EXx, EXxEVexR }, 0 },
449 },
450 /* EVEX_W_MAP5_7A_P_3 */
451 {
452 { "vcvtudq2ph%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
453 { "vcvtuqq2ph%XZ", { XMM, EXx, EXxEVexR }, 0 },
454 },