xref: /netbsd-src/external/gpl3/gdb.old/dist/opcodes/i386-dis-evex-len.h (revision 7d62b00eb9ad855ffcd7da46b41e23feb5476fac)
1 static const struct dis386 evex_len_table[][3] = {
2   /* EVEX_LEN_0F6E */
3   {
4     { "vmovK",	{ XMScalar, Edq }, PREFIX_DATA },
5   },
6 
7   /* EVEX_LEN_0F7E_P_1 */
8   {
9     { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
10   },
11 
12   /* EVEX_LEN_0F7E_P_2 */
13   {
14     { "vmovK",	{ Edq, XMScalar }, 0 },
15   },
16 
17   /* EVEX_LEN_0FC4 */
18   {
19     { "vpinsrw",	{ XM, Vex, Edqw, Ib }, PREFIX_DATA },
20   },
21 
22   /* EVEX_LEN_0FC5 */
23   {
24     { "vpextrw",	{ Gdq, XS, Ib }, PREFIX_DATA },
25   },
26 
27   /* EVEX_LEN_0FD6 */
28   {
29     { VEX_W_TABLE (EVEX_W_0FD6_L_0) },
30   },
31 
32   /* EVEX_LEN_0F3816 */
33   {
34     { Bad_Opcode },
35     { "vpermp%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
36     { "vpermp%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
37   },
38 
39   /* EVEX_LEN_0F3819_W_0 */
40   {
41     { Bad_Opcode },
42     { "vbroadcastf32x2",	{ XM, EXxmm_mq }, PREFIX_DATA },
43     { "vbroadcastf32x2",	{ XM, EXxmm_mq }, PREFIX_DATA },
44   },
45 
46   /* EVEX_LEN_0F3819_W_1 */
47   {
48     { Bad_Opcode },
49     { "vbroadcastsd",	{ XM, EXxmm_mq }, PREFIX_DATA },
50     { "vbroadcastsd",	{ XM, EXxmm_mq }, PREFIX_DATA },
51   },
52 
53   /* EVEX_LEN_0F381A_W_0_M_0 */
54   {
55     { Bad_Opcode },
56     { "vbroadcastf32x4",	{ XM, EXxmm }, PREFIX_DATA },
57     { "vbroadcastf32x4",	{ XM, EXxmm }, PREFIX_DATA },
58   },
59 
60   /* EVEX_LEN_0F381A_W_1_M_0 */
61   {
62     { Bad_Opcode },
63     { "vbroadcastf64x2",	{ XM, EXxmm }, PREFIX_DATA },
64     { "vbroadcastf64x2",	{ XM, EXxmm }, PREFIX_DATA },
65   },
66 
67   /* EVEX_LEN_0F381B_W_0_M_0 */
68   {
69     { Bad_Opcode },
70     { Bad_Opcode },
71     { "vbroadcastf32x8",	{ XM, EXymm }, PREFIX_DATA },
72   },
73 
74   /* EVEX_LEN_0F381B_P_2_W_1_M_0 */
75   {
76     { Bad_Opcode },
77     { Bad_Opcode },
78     { "vbroadcastf64x4",	{ XM, EXymm }, 0 },
79   },
80 
81   /* EVEX_LEN_0F3836 */
82   {
83     { Bad_Opcode },
84     { "vperm%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
85     { "vperm%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
86   },
87 
88   /* EVEX_LEN_0F385A_W_0_M_0 */
89   {
90     { Bad_Opcode },
91     { "vbroadcasti32x4",	{ XM, EXxmm }, PREFIX_DATA },
92     { "vbroadcasti32x4",	{ XM, EXxmm }, PREFIX_DATA },
93   },
94 
95   /* EVEX_LEN_0F385A_W_1_M_0 */
96   {
97     { Bad_Opcode },
98     { "vbroadcasti64x2",	{ XM, EXxmm }, PREFIX_DATA },
99     { "vbroadcasti64x2",	{ XM, EXxmm }, PREFIX_DATA },
100   },
101 
102   /* EVEX_LEN_0F385B_W_0_M_0 */
103   {
104     { Bad_Opcode },
105     { Bad_Opcode },
106     { "vbroadcasti32x8",	{ XM, EXymm }, PREFIX_DATA },
107   },
108 
109   /* EVEX_LEN_0F385B_W_1_M_0 */
110   {
111     { Bad_Opcode },
112     { Bad_Opcode },
113     { "vbroadcasti64x4",	{ XM, EXymm }, PREFIX_DATA },
114   },
115 
116   /* EVEX_LEN_0F38C6_R_1_M_0 */
117   {
118     { Bad_Opcode },
119     { Bad_Opcode },
120     { "vgatherpf0dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
121   },
122 
123   /* EVEX_LEN_0F38C6_R_2_M_0 */
124   {
125     { Bad_Opcode },
126     { Bad_Opcode },
127     { "vgatherpf1dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
128   },
129 
130   /* EVEX_LEN_0F38C6_R_5_M_0 */
131   {
132     { Bad_Opcode },
133     { Bad_Opcode },
134     { "vscatterpf0dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
135   },
136 
137   /* EVEX_LEN_0F38C6_R_6_M_0 */
138   {
139     { Bad_Opcode },
140     { Bad_Opcode },
141     { "vscatterpf1dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
142   },
143 
144   /* EVEX_LEN_0F38C7_R_1_M_0_W_0 */
145   {
146     { Bad_Opcode },
147     { Bad_Opcode },
148     { "vgatherpf0qps",  { MVexVSIBDQWpX }, PREFIX_DATA },
149   },
150 
151   /* EVEX_LEN_0F38C7_R_1_M_0_W_1 */
152   {
153     { Bad_Opcode },
154     { Bad_Opcode },
155     { "vgatherpf0qpd",  { MVexVSIBQWpX }, PREFIX_DATA },
156   },
157 
158   /* EVEX_LEN_0F38C7_R_2_M_0_W_0 */
159   {
160     { Bad_Opcode },
161     { Bad_Opcode },
162     { "vgatherpf1qps",  { MVexVSIBDQWpX }, PREFIX_DATA },
163   },
164 
165   /* EVEX_LEN_0F38C7_R_2_M_0_W_1 */
166   {
167     { Bad_Opcode },
168     { Bad_Opcode },
169     { "vgatherpf1qpd",  { MVexVSIBQWpX }, PREFIX_DATA },
170   },
171 
172   /* EVEX_LEN_0F38C7_R_5_M_0_W_0 */
173   {
174     { Bad_Opcode },
175     { Bad_Opcode },
176     { "vscatterpf0qps",  { MVexVSIBDQWpX }, PREFIX_DATA },
177   },
178 
179   /* EVEX_LEN_0F38C7_R_5_M_0_W_1 */
180   {
181     { Bad_Opcode },
182     { Bad_Opcode },
183     { "vscatterpf0qpd",  { MVexVSIBQWpX }, PREFIX_DATA },
184   },
185 
186   /* EVEX_LEN_0F38C7_R_6_M_0_W_0 */
187   {
188     { Bad_Opcode },
189     { Bad_Opcode },
190     { "vscatterpf1qps",  { MVexVSIBDQWpX }, PREFIX_DATA },
191   },
192 
193   /* EVEX_LEN_0F38C7_R_6_M_0_W_1 */
194   {
195     { Bad_Opcode },
196     { Bad_Opcode },
197     { "vscatterpf1qpd",  { MVexVSIBQWpX }, PREFIX_DATA },
198   },
199 
200   /* EVEX_LEN_0F3A00_W_1 */
201   {
202     { Bad_Opcode },
203     { "vpermq",	{ XM, EXx, Ib }, PREFIX_DATA },
204     { "vpermq",	{ XM, EXx, Ib }, PREFIX_DATA },
205   },
206 
207   /* EVEX_LEN_0F3A01_W_1 */
208   {
209     { Bad_Opcode },
210     { "vpermpd",	{ XM, EXx, Ib }, PREFIX_DATA },
211     { "vpermpd",	{ XM, EXx, Ib }, PREFIX_DATA },
212   },
213 
214   /* EVEX_LEN_0F3A14 */
215   {
216     { "vpextrb",	{ Edqb, XM, Ib }, PREFIX_DATA },
217   },
218 
219   /* EVEX_LEN_0F3A15 */
220   {
221     { "vpextrw",	{ Edqw, XM, Ib }, PREFIX_DATA },
222   },
223 
224   /* EVEX_LEN_0F3A16 */
225   {
226     { "vpextrK",	{ Edq, XM, Ib }, PREFIX_DATA },
227   },
228 
229   /* EVEX_LEN_0F3A17 */
230   {
231     { "vextractps",	{ Edqd, XMM, Ib }, PREFIX_DATA },
232   },
233 
234   /* EVEX_LEN_0F3A18_W_0 */
235   {
236     { Bad_Opcode },
237     { "vinsertf32x4",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
238     { "vinsertf32x4",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
239   },
240 
241   /* EVEX_LEN_0F3A18_W_1 */
242   {
243     { Bad_Opcode },
244     { "vinsertf64x2",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
245     { "vinsertf64x2",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
246   },
247 
248   /* EVEX_LEN_0F3A19_W_0 */
249   {
250     { Bad_Opcode },
251     { "vextractf32x4",	{ EXxmm, XM, Ib }, PREFIX_DATA },
252     { "vextractf32x4",	{ EXxmm, XM, Ib }, PREFIX_DATA },
253   },
254 
255   /* EVEX_LEN_0F3A19_W_1 */
256   {
257     { Bad_Opcode },
258     { "vextractf64x2",	{ EXxmm, XM, Ib }, PREFIX_DATA },
259     { "vextractf64x2",	{ EXxmm, XM, Ib }, PREFIX_DATA },
260   },
261 
262   /* EVEX_LEN_0F3A1A_W_0 */
263   {
264     { Bad_Opcode },
265     { Bad_Opcode },
266     { "vinsertf32x8",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
267   },
268 
269   /* EVEX_LEN_0F3A1A_W_1 */
270   {
271     { Bad_Opcode },
272     { Bad_Opcode },
273     { "vinsertf64x4",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
274   },
275 
276   /* EVEX_LEN_0F3A1B_W_0 */
277   {
278     { Bad_Opcode },
279     { Bad_Opcode },
280     { "vextractf32x8",	{ EXymm, XM, Ib }, PREFIX_DATA },
281   },
282 
283   /* EVEX_LEN_0F3A1B_W_1 */
284   {
285     { Bad_Opcode },
286     { Bad_Opcode },
287     { "vextractf64x4",	{ EXymm, XM, Ib }, PREFIX_DATA },
288   },
289 
290   /* EVEX_LEN_0F3A20 */
291   {
292     { "vpinsrb",	{ XM, Vex, Edqb, Ib }, PREFIX_DATA },
293   },
294 
295   /* EVEX_LEN_0F3A21_W_0 */
296   {
297     { "vinsertps",	{ XMM, Vex, EXxmm_md, Ib }, PREFIX_DATA },
298   },
299 
300   /* EVEX_LEN_0F3A22 */
301   {
302     { "vpinsrK",	{ XM, Vex, Edq, Ib }, PREFIX_DATA },
303   },
304 
305   /* EVEX_LEN_0F3A23_W_0 */
306   {
307     { Bad_Opcode },
308     { "vshuff32x4",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
309     { "vshuff32x4",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
310   },
311 
312   /* EVEX_LEN_0F3A23_W_1 */
313   {
314     { Bad_Opcode },
315     { "vshuff64x2",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
316     { "vshuff64x2",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
317   },
318 
319   /* EVEX_LEN_0F3A38_W_0 */
320   {
321     { Bad_Opcode },
322     { "vinserti32x4",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
323     { "vinserti32x4",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
324   },
325 
326   /* EVEX_LEN_0F3A38_W_1 */
327   {
328     { Bad_Opcode },
329     { "vinserti64x2",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
330     { "vinserti64x2",	{ XM, Vex, EXxmm, Ib }, PREFIX_DATA },
331   },
332 
333   /* EVEX_LEN_0F3A39_W_0 */
334   {
335     { Bad_Opcode },
336     { "vextracti32x4",	{ EXxmm, XM, Ib }, PREFIX_DATA },
337     { "vextracti32x4",	{ EXxmm, XM, Ib }, PREFIX_DATA },
338   },
339 
340   /* EVEX_LEN_0F3A39_W_1 */
341   {
342     { Bad_Opcode },
343     { "vextracti64x2",	{ EXxmm, XM, Ib }, PREFIX_DATA },
344     { "vextracti64x2",	{ EXxmm, XM, Ib }, PREFIX_DATA },
345   },
346 
347   /* EVEX_LEN_0F3A3A_W_0 */
348   {
349     { Bad_Opcode },
350     { Bad_Opcode },
351     { "vinserti32x8",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
352   },
353 
354   /* EVEX_LEN_0F3A3A_W_1 */
355   {
356     { Bad_Opcode },
357     { Bad_Opcode },
358     { "vinserti64x4",	{ XM, Vex, EXymm, Ib }, PREFIX_DATA },
359   },
360 
361   /* EVEX_LEN_0F3A3B_W_0 */
362   {
363     { Bad_Opcode },
364     { Bad_Opcode },
365     { "vextracti32x8",	{ EXymm, XM, Ib }, PREFIX_DATA },
366   },
367 
368   /* EVEX_LEN_0F3A3B_W_1 */
369   {
370     { Bad_Opcode },
371     { Bad_Opcode },
372     { "vextracti64x4",	{ EXymm, XM, Ib }, PREFIX_DATA },
373   },
374 
375   /* EVEX_LEN_0F3A43_W_0 */
376   {
377     { Bad_Opcode },
378     { "vshufi32x4",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
379     { "vshufi32x4",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
380   },
381 
382   /* EVEX_LEN_0F3A43_W_1 */
383   {
384     { Bad_Opcode },
385     { "vshufi64x2",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
386     { "vshufi64x2",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
387   },
388 };
389