]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - opcodes/i386-dis-evex-w.h
2.41 Release sources
[thirdparty/binutils-gdb.git] / opcodes / i386-dis-evex-w.h
CommitLineData
ad692897
L
1 /* EVEX_W_0F5B_P_0 */
2 {
f7cfcddd 3 { "%XEvcvtdq2ps", { XM, EXx, EXxEVexR }, 0 },
ad692897
L
4 { "vcvtqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
5 },
fedfb81e 6 /* EVEX_W_0F62 */
ad692897 7 {
f7cfcddd 8 { "%XEvpunpckldq", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 9 },
7531c613 10 /* EVEX_W_0F66 */
ad692897 11 {
d0579d4d 12 { "vpcmpgtd", { MaskG, Vex, EXx }, PREFIX_DATA },
ad692897 13 },
fedfb81e 14 /* EVEX_W_0F6A */
ad692897 15 {
f7cfcddd 16 { "%XEvpunpckhdq", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 17 },
fedfb81e 18 /* EVEX_W_0F6B */
ad692897 19 {
f7cfcddd 20 { "%XEvpackssdw", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 21 },
fedfb81e 22 /* EVEX_W_0F6C */
ad692897
L
23 {
24 { Bad_Opcode },
f7cfcddd 25 { "%XEvpunpcklqdq", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 26 },
fedfb81e 27 /* EVEX_W_0F6D */
ad692897
L
28 {
29 { Bad_Opcode },
f7cfcddd 30 { "%XEvpunpckhqdq", { XM, Vex, EXx }, PREFIX_DATA },
ad692897
L
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 {
f7cfcddd 49 { "%XEvpshufd", { XM, EXx, Ib }, 0 },
ad692897 50 },
7531c613 51 /* EVEX_W_0F72_R_2 */
ad692897 52 {
f7cfcddd 53 { "%XEvpsrld", { Vex, EXx, Ib }, PREFIX_DATA },
ad692897 54 },
7531c613 55 /* EVEX_W_0F72_R_6 */
ad692897 56 {
f7cfcddd 57 { "%XEvpslld", { Vex, EXx, Ib }, PREFIX_DATA },
ad692897 58 },
7531c613 59 /* EVEX_W_0F73_R_2 */
ad692897
L
60 {
61 { Bad_Opcode },
f7cfcddd 62 { "%XEvpsrlq", { Vex, EXx, Ib }, PREFIX_DATA },
ad692897 63 },
7531c613 64 /* EVEX_W_0F73_R_6 */
ad692897
L
65 {
66 { Bad_Opcode },
f7cfcddd 67 { "%XEvpsllq", { Vex, EXx, Ib }, PREFIX_DATA },
ad692897 68 },
7531c613 69 /* EVEX_W_0F76 */
ad692897 70 {
d0579d4d 71 { "vpcmpeqd", { MaskG, Vex, EXx }, PREFIX_DATA },
ad692897
L
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 },
ad692897
L
108 /* EVEX_W_0F7B_P_2 */
109 {
110 { "vcvtps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
111 { "vcvtpd2qq", { XM, EXx, EXxEVexR }, 0 },
112 },
ad692897
L
113 /* EVEX_W_0F7E_P_1 */
114 {
115 { Bad_Opcode },
85ba7507 116 { VEX_LEN_TABLE (VEX_LEN_0F7E_P_1) },
ad692897
L
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 },
fedfb81e 133 /* EVEX_W_0FD2 */
ad692897 134 {
f7cfcddd 135 { "%XEvpsrld", { XM, Vex, EXxmm }, PREFIX_DATA },
ad692897 136 },
fedfb81e 137 /* EVEX_W_0FD3 */
ad692897
L
138 {
139 { Bad_Opcode },
f7cfcddd 140 { "%XEvpsrlq", { XM, Vex, EXxmm }, PREFIX_DATA },
ad692897 141 },
fedfb81e 142 /* EVEX_W_0FD4 */
ad692897
L
143 {
144 { Bad_Opcode },
f7cfcddd 145 { "%XEvpaddq", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 146 },
85ba7507 147 /* EVEX_W_0FD6 */
ad692897
L
148 {
149 { Bad_Opcode },
85ba7507 150 { VEX_LEN_TABLE (VEX_LEN_0FD6) },
ad692897
L
151 },
152 /* EVEX_W_0FE6_P_1 */
153 {
f7cfcddd 154 { "%XEvcvtdq2pd", { XM, EXEvexHalfBcstXmmq }, 0 },
ad692897
L
155 { "vcvtqq2pd", { XM, EXx, EXxEVexR }, 0 },
156 },
7531c613 157 /* EVEX_W_0FE7 */
ad692897 158 {
675b9d61 159 { "%XEvmovntdq", { EXEvexXNoBcst, XM }, PREFIX_DATA },
ad692897 160 },
fedfb81e 161 /* EVEX_W_0FF2 */
ad692897 162 {
f7cfcddd 163 { "%XEvpslld", { XM, Vex, EXxmm }, PREFIX_DATA },
ad692897 164 },
fedfb81e 165 /* EVEX_W_0FF3 */
ad692897
L
166 {
167 { Bad_Opcode },
f7cfcddd 168 { "%XEvpsllq", { XM, Vex, EXxmm }, PREFIX_DATA },
ad692897 169 },
fedfb81e 170 /* EVEX_W_0FF4 */
ad692897
L
171 {
172 { Bad_Opcode },
f7cfcddd 173 { "%XEvpmuludq", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 174 },
fedfb81e 175 /* EVEX_W_0FFA */
ad692897 176 {
f7cfcddd 177 { "%XEvpsubd", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 178 },
fedfb81e 179 /* EVEX_W_0FFB */
ad692897
L
180 {
181 { Bad_Opcode },
f7cfcddd 182 { "%XEvpsubq", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 183 },
fedfb81e 184 /* EVEX_W_0FFE */
ad692897 185 {
f7cfcddd 186 { "%XEvpaddd", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 187 },
ad692897
L
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 },
ad692897
L
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 },
fc681dd6 227 /* EVEX_W_0F3819_L_n */
ad692897 228 {
c1d66d5f 229 { "vbroadcastf32x2", { XM, EXq }, PREFIX_DATA },
f7cfcddd 230 { "%XEvbroadcastsd", { XM, EXq }, PREFIX_DATA },
ad692897 231 },
675b9d61 232 /* EVEX_W_0F381A_M_0_L_n */
ad692897 233 {
675b9d61
NC
234 { "vbroadcastf32x4", { XM, EXxmm }, PREFIX_DATA },
235 { "vbroadcastf64x2", { XM, EXxmm }, PREFIX_DATA },
ad692897 236 },
675b9d61 237 /* EVEX_W_0F381B_M_0_L_2 */
ad692897 238 {
675b9d61
NC
239 { "vbroadcastf32x8", { XM, EXymm }, PREFIX_DATA },
240 { "vbroadcastf64x4", { XM, EXymm }, PREFIX_DATA },
ad692897 241 },
7531c613 242 /* EVEX_W_0F381E */
ad692897 243 {
f7cfcddd 244 { "%XEvpabsd", { XM, EXx }, PREFIX_DATA },
ad692897 245 },
7531c613 246 /* EVEX_W_0F381F */
ad692897
L
247 {
248 { Bad_Opcode },
7531c613 249 { "vpabsq", { XM, EXx }, PREFIX_DATA },
ad692897
L
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 {
f7cfcddd 277 { "%XEvpmovsxdq", { XM, EXxmmq }, 0 },
ad692897 278 },
ad692897
L
279 /* EVEX_W_0F3828_P_2 */
280 {
281 { Bad_Opcode },
f7cfcddd 282 { "%XEvpmuldq", { XM, Vex, EXx }, 0 },
ad692897 283 },
ad692897
L
284 /* EVEX_W_0F3829_P_2 */
285 {
286 { Bad_Opcode },
d0579d4d 287 { "vpcmpeqq", { MaskG, Vex, EXx }, 0 },
ad692897
L
288 },
289 /* EVEX_W_0F382A_P_1 */
290 {
291 { Bad_Opcode },
675b9d61 292 { MOD_TABLE (MOD_EVEX_0F382A_P_1_W_1) },
ad692897
L
293 },
294 /* EVEX_W_0F382A_P_2 */
295 {
675b9d61 296 { "%XEvmovntdqa", { XM, EXEvexXNoBcst }, 0 },
ad692897 297 },
fedfb81e 298 /* EVEX_W_0F382B */
ad692897 299 {
f7cfcddd 300 { "%XEvpackusdw", { XM, Vex, EXx }, PREFIX_DATA },
ad692897
L
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 {
f7cfcddd 328 { "%XEvpmovzxdq", { XM, EXxmmq }, 0 },
ad692897 329 },
7531c613 330 /* EVEX_W_0F3837 */
ad692897
L
331 {
332 { Bad_Opcode },
d0579d4d 333 { "vpcmpgtq", { MaskG, Vex, EXx }, PREFIX_DATA },
ad692897 334 },
ad692897
L
335 /* EVEX_W_0F383A_P_1 */
336 {
675b9d61 337 { MOD_TABLE (MOD_EVEX_0F383A_P_1_W_0) },
ad692897 338 },
7531c613 339 /* EVEX_W_0F3859 */
ad692897 340 {
c1d66d5f 341 { "vbroadcasti32x2", { XM, EXq }, PREFIX_DATA },
f7cfcddd 342 { "%XEvpbroadcastq", { XM, EXq }, PREFIX_DATA },
ad692897 343 },
675b9d61 344 /* EVEX_W_0F385A_M_0_L_n */
ad692897 345 {
675b9d61
NC
346 { "vbroadcasti32x4", { XM, EXxmm }, PREFIX_DATA },
347 { "vbroadcasti64x2", { XM, EXxmm }, PREFIX_DATA },
ad692897 348 },
675b9d61 349 /* EVEX_W_0F385B_M_0_L_2 */
ad692897 350 {
675b9d61
NC
351 { "vbroadcasti32x8", { XM, EXymm }, PREFIX_DATA },
352 { "vbroadcasti64x4", { XM, EXymm }, PREFIX_DATA },
ad692897 353 },
7531c613 354 /* EVEX_W_0F3870 */
ad692897
L
355 {
356 { Bad_Opcode },
7531c613 357 { "vpshldvw", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 358 },
ad692897
L
359 /* EVEX_W_0F3872_P_2 */
360 {
361 { Bad_Opcode },
362 { "vpshrdvw", { XM, Vex, EXx }, 0 },
363 },
7531c613 364 /* EVEX_W_0F387A */
ad692897 365 {
675b9d61 366 { MOD_TABLE (MOD_EVEX_0F387A_W_0) },
ad692897 367 },
7531c613 368 /* EVEX_W_0F387B */
ad692897 369 {
675b9d61 370 { MOD_TABLE (MOD_EVEX_0F387B_W_0) },
ad692897 371 },
7531c613 372 /* EVEX_W_0F3883 */
ad692897
L
373 {
374 { Bad_Opcode },
7531c613 375 { "vpmultishiftqb", { XM, Vex, EXx }, PREFIX_DATA },
ad692897 376 },
fc681dd6 377 /* EVEX_W_0F3A18_L_n */
ad692897 378 {
fc681dd6
JB
379 { "vinsertf32x4", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
380 { "vinsertf64x2", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
ad692897 381 },
fc681dd6 382 /* EVEX_W_0F3A19_L_n */
ad692897 383 {
fc681dd6
JB
384 { "vextractf32x4", { EXxmm, XM, Ib }, PREFIX_DATA },
385 { "vextractf64x2", { EXxmm, XM, Ib }, PREFIX_DATA },
ad692897 386 },
fc681dd6 387 /* EVEX_W_0F3A1A_L_2 */
ad692897 388 {
fc681dd6
JB
389 { "vinsertf32x8", { XM, Vex, EXymm, Ib }, PREFIX_DATA },
390 { "vinsertf64x4", { XM, Vex, EXymm, Ib }, PREFIX_DATA },
ad692897 391 },
fc681dd6 392 /* EVEX_W_0F3A1B_L_2 */
ad692897 393 {
fc681dd6
JB
394 { "vextractf32x8", { EXymm, XM, Ib }, PREFIX_DATA },
395 { "vextractf64x4", { EXymm, XM, Ib }, PREFIX_DATA },
ad692897 396 },
7531c613 397 /* EVEX_W_0F3A21 */
ad692897 398 {
85ba7507 399 { VEX_LEN_TABLE (VEX_LEN_0F3A21) },
ad692897 400 },
fc681dd6 401 /* EVEX_W_0F3A23_L_n */
ad692897 402 {
fc681dd6
JB
403 { "vshuff32x4", { XM, Vex, EXx, Ib }, PREFIX_DATA },
404 { "vshuff64x2", { XM, Vex, EXx, Ib }, PREFIX_DATA },
ad692897 405 },
fc681dd6 406 /* EVEX_W_0F3A38_L_n */
ad692897 407 {
fc681dd6
JB
408 { "vinserti32x4", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
409 { "vinserti64x2", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
ad692897 410 },
fc681dd6 411 /* EVEX_W_0F3A39_L_n */
ad692897 412 {
fc681dd6
JB
413 { "vextracti32x4", { EXxmm, XM, Ib }, PREFIX_DATA },
414 { "vextracti64x2", { EXxmm, XM, Ib }, PREFIX_DATA },
ad692897 415 },
fc681dd6 416 /* EVEX_W_0F3A3A_L_2 */
ad692897 417 {
fc681dd6
JB
418 { "vinserti32x8", { XM, Vex, EXymm, Ib }, PREFIX_DATA },
419 { "vinserti64x4", { XM, Vex, EXymm, Ib }, PREFIX_DATA },
ad692897 420 },
fc681dd6 421 /* EVEX_W_0F3A3B_L_2 */
ad692897 422 {
fc681dd6
JB
423 { "vextracti32x8", { EXymm, XM, Ib }, PREFIX_DATA },
424 { "vextracti64x4", { EXymm, XM, Ib }, PREFIX_DATA },
ad692897 425 },
7531c613 426 /* EVEX_W_0F3A42 */
ad692897
L
427 {
428 { "vdbpsadbw", { XM, Vex, EXx, Ib }, 0 },
429 },
fc681dd6 430 /* EVEX_W_0F3A43_L_n */
ad692897 431 {
fc681dd6
JB
432 { "vshufi32x4", { XM, Vex, EXx, Ib }, PREFIX_DATA },
433 { "vshufi64x2", { XM, Vex, EXx, Ib }, PREFIX_DATA },
ad692897 434 },
7531c613 435 /* EVEX_W_0F3A70 */
ad692897
L
436 {
437 { Bad_Opcode },
438 { "vpshldw", { XM, Vex, EXx, Ib }, 0 },
439 },
7531c613 440 /* EVEX_W_0F3A72 */
ad692897
L
441 {
442 { Bad_Opcode },
443 { "vpshrdw", { XM, Vex, EXx, Ib }, 0 },
444 },
2235ecb8 445 /* EVEX_W_MAP5_5B_P_0 */
0cc78721 446 {
2235ecb8
JB
447 { "vcvtdq2ph%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
448 { "vcvtqq2ph%XZ", { XMM, EXx, EXxEVexR }, 0 },
0cc78721
CL
449 },
450 /* EVEX_W_MAP5_7A_P_3 */
451 {
452 { "vcvtudq2ph%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
453 { "vcvtuqq2ph%XZ", { XMM, EXx, EXxEVexR }, 0 },
454 },