]>
git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - opcodes/i386-dis-evex-len.h
1 static const struct dis386 evex_len_table
[][3] = {
4 { "vmovK", { XMScalar
, Edq
}, PREFIX_DATA
},
7 /* EVEX_LEN_0F7E_P_1 */
9 { VEX_W_TABLE (EVEX_W_0F7E_P_1
) },
12 /* EVEX_LEN_0F7E_P_2 */
14 { "vmovK", { Edq
, XMScalar
}, 0 },
19 { "vpinsrw", { XM
, Vex
, Edqw
, Ib
}, PREFIX_DATA
},
24 { "vpextrw", { Gdq
, XS
, Ib
}, PREFIX_DATA
},
29 { VEX_W_TABLE (EVEX_W_0FD6_L_0
) },
35 { "vpermp%XW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
36 { "vpermp%XW", { XM
, Vex
, EXx
}, PREFIX_DATA
},
39 /* EVEX_LEN_0F3819_W_0 */
42 { "vbroadcastf32x2", { XM
, EXxmm_mq
}, PREFIX_DATA
},
43 { "vbroadcastf32x2", { XM
, EXxmm_mq
}, PREFIX_DATA
},
46 /* EVEX_LEN_0F3819_W_1 */
49 { "vbroadcastsd", { XM
, EXxmm_mq
}, PREFIX_DATA
},
50 { "vbroadcastsd", { XM
, EXxmm_mq
}, PREFIX_DATA
},
53 /* EVEX_LEN_0F381A_W_0_M_0 */
56 { "vbroadcastf32x4", { XM
, EXxmm
}, PREFIX_DATA
},
57 { "vbroadcastf32x4", { XM
, EXxmm
}, PREFIX_DATA
},
60 /* EVEX_LEN_0F381A_W_1_M_0 */
63 { "vbroadcastf64x2", { XM
, EXxmm
}, PREFIX_DATA
},
64 { "vbroadcastf64x2", { XM
, EXxmm
}, PREFIX_DATA
},
67 /* EVEX_LEN_0F381B_W_0_M_0 */
71 { "vbroadcastf32x8", { XM
, EXymm
}, PREFIX_DATA
},
74 /* EVEX_LEN_0F381B_P_2_W_1_M_0 */
78 { "vbroadcastf64x4", { XM
, EXymm
}, 0 },
84 { "vperm%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
85 { "vperm%DQ", { XM
, Vex
, EXx
}, PREFIX_DATA
},
88 /* EVEX_LEN_0F385A_W_0_M_0 */
91 { "vbroadcasti32x4", { XM
, EXxmm
}, PREFIX_DATA
},
92 { "vbroadcasti32x4", { XM
, EXxmm
}, PREFIX_DATA
},
95 /* EVEX_LEN_0F385A_W_1_M_0 */
98 { "vbroadcasti64x2", { XM
, EXxmm
}, PREFIX_DATA
},
99 { "vbroadcasti64x2", { XM
, EXxmm
}, PREFIX_DATA
},
102 /* EVEX_LEN_0F385B_W_0_M_0 */
106 { "vbroadcasti32x8", { XM
, EXymm
}, PREFIX_DATA
},
109 /* EVEX_LEN_0F385B_W_1_M_0 */
113 { "vbroadcasti64x4", { XM
, EXymm
}, PREFIX_DATA
},
116 /* EVEX_LEN_0F38C6_R_1_M_0 */
120 { "vgatherpf0dp%XW", { MVexVSIBDWpX
}, PREFIX_DATA
},
123 /* EVEX_LEN_0F38C6_R_2_M_0 */
127 { "vgatherpf1dp%XW", { MVexVSIBDWpX
}, PREFIX_DATA
},
130 /* EVEX_LEN_0F38C6_R_5_M_0 */
134 { "vscatterpf0dp%XW", { MVexVSIBDWpX
}, PREFIX_DATA
},
137 /* EVEX_LEN_0F38C6_R_6_M_0 */
141 { "vscatterpf1dp%XW", { MVexVSIBDWpX
}, PREFIX_DATA
},
144 /* EVEX_LEN_0F38C7_R_1_M_0_W_0 */
148 { "vgatherpf0qps", { MVexVSIBDQWpX
}, PREFIX_DATA
},
151 /* EVEX_LEN_0F38C7_R_1_M_0_W_1 */
155 { "vgatherpf0qpd", { MVexVSIBQWpX
}, PREFIX_DATA
},
158 /* EVEX_LEN_0F38C7_R_2_M_0_W_0 */
162 { "vgatherpf1qps", { MVexVSIBDQWpX
}, PREFIX_DATA
},
165 /* EVEX_LEN_0F38C7_R_2_M_0_W_1 */
169 { "vgatherpf1qpd", { MVexVSIBQWpX
}, PREFIX_DATA
},
172 /* EVEX_LEN_0F38C7_R_5_M_0_W_0 */
176 { "vscatterpf0qps", { MVexVSIBDQWpX
}, PREFIX_DATA
},
179 /* EVEX_LEN_0F38C7_R_5_M_0_W_1 */
183 { "vscatterpf0qpd", { MVexVSIBQWpX
}, PREFIX_DATA
},
186 /* EVEX_LEN_0F38C7_R_6_M_0_W_0 */
190 { "vscatterpf1qps", { MVexVSIBDQWpX
}, PREFIX_DATA
},
193 /* EVEX_LEN_0F38C7_R_6_M_0_W_1 */
197 { "vscatterpf1qpd", { MVexVSIBQWpX
}, PREFIX_DATA
},
200 /* EVEX_LEN_0F3A00_W_1 */
203 { "vpermq", { XM
, EXx
, Ib
}, PREFIX_DATA
},
204 { "vpermq", { XM
, EXx
, Ib
}, PREFIX_DATA
},
207 /* EVEX_LEN_0F3A01_W_1 */
210 { "vpermpd", { XM
, EXx
, Ib
}, PREFIX_DATA
},
211 { "vpermpd", { XM
, EXx
, Ib
}, PREFIX_DATA
},
214 /* EVEX_LEN_0F3A14 */
216 { "vpextrb", { Edqb
, XM
, Ib
}, PREFIX_DATA
},
219 /* EVEX_LEN_0F3A15 */
221 { "vpextrw", { Edqw
, XM
, Ib
}, PREFIX_DATA
},
224 /* EVEX_LEN_0F3A16 */
226 { "vpextrK", { Edq
, XM
, Ib
}, PREFIX_DATA
},
229 /* EVEX_LEN_0F3A17 */
231 { "vextractps", { Edqd
, XMM
, Ib
}, PREFIX_DATA
},
234 /* EVEX_LEN_0F3A18_W_0 */
237 { "vinsertf32x4", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
238 { "vinsertf32x4", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
241 /* EVEX_LEN_0F3A18_W_1 */
244 { "vinsertf64x2", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
245 { "vinsertf64x2", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
248 /* EVEX_LEN_0F3A19_W_0 */
251 { "vextractf32x4", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
252 { "vextractf32x4", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
255 /* EVEX_LEN_0F3A19_W_1 */
258 { "vextractf64x2", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
259 { "vextractf64x2", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
262 /* EVEX_LEN_0F3A1A_W_0 */
266 { "vinsertf32x8", { XM
, Vex
, EXymm
, Ib
}, PREFIX_DATA
},
269 /* EVEX_LEN_0F3A1A_W_1 */
273 { "vinsertf64x4", { XM
, Vex
, EXymm
, Ib
}, PREFIX_DATA
},
276 /* EVEX_LEN_0F3A1B_W_0 */
280 { "vextractf32x8", { EXymm
, XM
, Ib
}, PREFIX_DATA
},
283 /* EVEX_LEN_0F3A1B_W_1 */
287 { "vextractf64x4", { EXymm
, XM
, Ib
}, PREFIX_DATA
},
290 /* EVEX_LEN_0F3A20 */
292 { "vpinsrb", { XM
, Vex
, Edqb
, Ib
}, PREFIX_DATA
},
295 /* EVEX_LEN_0F3A21_W_0 */
297 { "vinsertps", { XMM
, Vex
, EXxmm_md
, Ib
}, PREFIX_DATA
},
300 /* EVEX_LEN_0F3A22 */
302 { "vpinsrK", { XM
, Vex
, Edq
, Ib
}, PREFIX_DATA
},
305 /* EVEX_LEN_0F3A23_W_0 */
308 { "vshuff32x4", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
309 { "vshuff32x4", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
312 /* EVEX_LEN_0F3A23_W_1 */
315 { "vshuff64x2", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
316 { "vshuff64x2", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
319 /* EVEX_LEN_0F3A38_W_0 */
322 { "vinserti32x4", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
323 { "vinserti32x4", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
326 /* EVEX_LEN_0F3A38_W_1 */
329 { "vinserti64x2", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
330 { "vinserti64x2", { XM
, Vex
, EXxmm
, Ib
}, PREFIX_DATA
},
333 /* EVEX_LEN_0F3A39_W_0 */
336 { "vextracti32x4", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
337 { "vextracti32x4", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
340 /* EVEX_LEN_0F3A39_W_1 */
343 { "vextracti64x2", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
344 { "vextracti64x2", { EXxmm
, XM
, Ib
}, PREFIX_DATA
},
347 /* EVEX_LEN_0F3A3A_W_0 */
351 { "vinserti32x8", { XM
, Vex
, EXymm
, Ib
}, PREFIX_DATA
},
354 /* EVEX_LEN_0F3A3A_W_1 */
358 { "vinserti64x4", { XM
, Vex
, EXymm
, Ib
}, PREFIX_DATA
},
361 /* EVEX_LEN_0F3A3B_W_0 */
365 { "vextracti32x8", { EXymm
, XM
, Ib
}, PREFIX_DATA
},
368 /* EVEX_LEN_0F3A3B_W_1 */
372 { "vextracti64x4", { EXymm
, XM
, Ib
}, PREFIX_DATA
},
375 /* EVEX_LEN_0F3A43_W_0 */
378 { "vshufi32x4", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
379 { "vshufi32x4", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
382 /* EVEX_LEN_0F3A43_W_1 */
385 { "vshufi64x2", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},
386 { "vshufi64x2", { XM
, Vex
, EXx
, Ib
}, PREFIX_DATA
},