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