i386-dis-evex.h revision 1.4 1 1.1 christos #ifdef NEED_OPCODE_TABLE
2 1.1 christos
3 1.1 christos static const struct dis386 evex_table[][256] = {
4 1.1 christos /* EVEX_0F */
5 1.1 christos {
6 1.1 christos /* 00 */
7 1.1 christos { Bad_Opcode },
8 1.1 christos { Bad_Opcode },
9 1.1 christos { Bad_Opcode },
10 1.1 christos { Bad_Opcode },
11 1.1 christos { Bad_Opcode },
12 1.1 christos { Bad_Opcode },
13 1.1 christos { Bad_Opcode },
14 1.1 christos { Bad_Opcode },
15 1.1 christos /* 08 */
16 1.1 christos { Bad_Opcode },
17 1.1 christos { Bad_Opcode },
18 1.1 christos { Bad_Opcode },
19 1.1 christos { Bad_Opcode },
20 1.1 christos { Bad_Opcode },
21 1.1 christos { Bad_Opcode },
22 1.1 christos { Bad_Opcode },
23 1.1 christos { Bad_Opcode },
24 1.1 christos /* 10 */
25 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F10) },
26 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F11) },
27 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F12) },
28 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F13) },
29 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F14) },
30 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F15) },
31 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F16) },
32 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F17) },
33 1.1 christos /* 18 */
34 1.1 christos { Bad_Opcode },
35 1.1 christos { Bad_Opcode },
36 1.1 christos { Bad_Opcode },
37 1.1 christos { Bad_Opcode },
38 1.1 christos { Bad_Opcode },
39 1.1 christos { Bad_Opcode },
40 1.1 christos { Bad_Opcode },
41 1.1 christos { Bad_Opcode },
42 1.1 christos /* 20 */
43 1.1 christos { Bad_Opcode },
44 1.1 christos { Bad_Opcode },
45 1.1 christos { Bad_Opcode },
46 1.1 christos { Bad_Opcode },
47 1.1 christos { Bad_Opcode },
48 1.1 christos { Bad_Opcode },
49 1.1 christos { Bad_Opcode },
50 1.1 christos { Bad_Opcode },
51 1.1 christos /* 28 */
52 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F28) },
53 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F29) },
54 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F2A) },
55 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F2B) },
56 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F2C) },
57 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F2D) },
58 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F2E) },
59 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F2F) },
60 1.1 christos /* 30 */
61 1.1 christos { Bad_Opcode },
62 1.1 christos { Bad_Opcode },
63 1.1 christos { Bad_Opcode },
64 1.1 christos { Bad_Opcode },
65 1.1 christos { Bad_Opcode },
66 1.1 christos { Bad_Opcode },
67 1.1 christos { Bad_Opcode },
68 1.1 christos { Bad_Opcode },
69 1.1 christos /* 38 */
70 1.1 christos { Bad_Opcode },
71 1.1 christos { Bad_Opcode },
72 1.1 christos { Bad_Opcode },
73 1.1 christos { Bad_Opcode },
74 1.1 christos { Bad_Opcode },
75 1.1 christos { Bad_Opcode },
76 1.1 christos { Bad_Opcode },
77 1.1 christos { Bad_Opcode },
78 1.1 christos /* 40 */
79 1.1 christos { Bad_Opcode },
80 1.1 christos { Bad_Opcode },
81 1.1 christos { Bad_Opcode },
82 1.1 christos { Bad_Opcode },
83 1.1 christos { Bad_Opcode },
84 1.1 christos { Bad_Opcode },
85 1.1 christos { Bad_Opcode },
86 1.1 christos { Bad_Opcode },
87 1.1 christos /* 48 */
88 1.1 christos { Bad_Opcode },
89 1.1 christos { Bad_Opcode },
90 1.1 christos { Bad_Opcode },
91 1.1 christos { Bad_Opcode },
92 1.1 christos { Bad_Opcode },
93 1.1 christos { Bad_Opcode },
94 1.1 christos { Bad_Opcode },
95 1.1 christos { Bad_Opcode },
96 1.1 christos /* 50 */
97 1.1 christos { Bad_Opcode },
98 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F51) },
99 1.1 christos { Bad_Opcode },
100 1.1 christos { Bad_Opcode },
101 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F54) },
102 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F55) },
103 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F56) },
104 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F57) },
105 1.1 christos /* 58 */
106 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F58) },
107 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F59) },
108 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F5A) },
109 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
110 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F5C) },
111 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F5D) },
112 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F5E) },
113 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F5F) },
114 1.1 christos /* 60 */
115 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F60) },
116 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F61) },
117 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F62) },
118 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F63) },
119 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F64) },
120 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F65) },
121 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F66) },
122 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F67) },
123 1.1 christos /* 68 */
124 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F68) },
125 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F69) },
126 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F6A) },
127 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F6B) },
128 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F6C) },
129 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F6D) },
130 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F6E) },
131 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F6F) },
132 1.1 christos /* 70 */
133 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F70) },
134 1.1 christos { REG_TABLE (REG_EVEX_0F71) },
135 1.1 christos { REG_TABLE (REG_EVEX_0F72) },
136 1.1 christos { REG_TABLE (REG_EVEX_0F73) },
137 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F74) },
138 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F75) },
139 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F76) },
140 1.1 christos { Bad_Opcode },
141 1.1 christos /* 78 */
142 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F78) },
143 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F79) },
144 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F7A) },
145 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F7B) },
146 1.1 christos { Bad_Opcode },
147 1.1 christos { Bad_Opcode },
148 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F7E) },
149 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F7F) },
150 1.1 christos /* 80 */
151 1.1 christos { Bad_Opcode },
152 1.1 christos { Bad_Opcode },
153 1.1 christos { Bad_Opcode },
154 1.1 christos { Bad_Opcode },
155 1.1 christos { Bad_Opcode },
156 1.1 christos { Bad_Opcode },
157 1.1 christos { Bad_Opcode },
158 1.1 christos { Bad_Opcode },
159 1.1 christos /* 88 */
160 1.1 christos { Bad_Opcode },
161 1.1 christos { Bad_Opcode },
162 1.1 christos { Bad_Opcode },
163 1.1 christos { Bad_Opcode },
164 1.1 christos { Bad_Opcode },
165 1.1 christos { Bad_Opcode },
166 1.1 christos { Bad_Opcode },
167 1.1 christos { Bad_Opcode },
168 1.1 christos /* 90 */
169 1.1 christos { Bad_Opcode },
170 1.1 christos { Bad_Opcode },
171 1.1 christos { Bad_Opcode },
172 1.1 christos { Bad_Opcode },
173 1.1 christos { Bad_Opcode },
174 1.1 christos { Bad_Opcode },
175 1.1 christos { Bad_Opcode },
176 1.1 christos { Bad_Opcode },
177 1.1 christos /* 98 */
178 1.1 christos { Bad_Opcode },
179 1.1 christos { Bad_Opcode },
180 1.1 christos { Bad_Opcode },
181 1.1 christos { Bad_Opcode },
182 1.1 christos { Bad_Opcode },
183 1.1 christos { Bad_Opcode },
184 1.1 christos { Bad_Opcode },
185 1.1 christos { Bad_Opcode },
186 1.1 christos /* A0 */
187 1.1 christos { Bad_Opcode },
188 1.1 christos { Bad_Opcode },
189 1.1 christos { Bad_Opcode },
190 1.1 christos { Bad_Opcode },
191 1.1 christos { Bad_Opcode },
192 1.1 christos { Bad_Opcode },
193 1.1 christos { Bad_Opcode },
194 1.1 christos { Bad_Opcode },
195 1.1 christos /* A8 */
196 1.1 christos { Bad_Opcode },
197 1.1 christos { Bad_Opcode },
198 1.1 christos { Bad_Opcode },
199 1.1 christos { Bad_Opcode },
200 1.1 christos { Bad_Opcode },
201 1.1 christos { Bad_Opcode },
202 1.1 christos { Bad_Opcode },
203 1.1 christos { Bad_Opcode },
204 1.1 christos /* B0 */
205 1.1 christos { Bad_Opcode },
206 1.1 christos { Bad_Opcode },
207 1.1 christos { Bad_Opcode },
208 1.1 christos { Bad_Opcode },
209 1.1 christos { Bad_Opcode },
210 1.1 christos { Bad_Opcode },
211 1.1 christos { Bad_Opcode },
212 1.1 christos { Bad_Opcode },
213 1.1 christos /* B8 */
214 1.1 christos { Bad_Opcode },
215 1.1 christos { Bad_Opcode },
216 1.1 christos { Bad_Opcode },
217 1.1 christos { Bad_Opcode },
218 1.1 christos { Bad_Opcode },
219 1.1 christos { Bad_Opcode },
220 1.1 christos { Bad_Opcode },
221 1.1 christos { Bad_Opcode },
222 1.1 christos /* C0 */
223 1.1 christos { Bad_Opcode },
224 1.1 christos { Bad_Opcode },
225 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
226 1.1 christos { Bad_Opcode },
227 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FC4) },
228 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FC5) },
229 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FC6) },
230 1.1 christos { Bad_Opcode },
231 1.1 christos /* C8 */
232 1.1 christos { Bad_Opcode },
233 1.1 christos { Bad_Opcode },
234 1.1 christos { Bad_Opcode },
235 1.1 christos { Bad_Opcode },
236 1.1 christos { Bad_Opcode },
237 1.1 christos { Bad_Opcode },
238 1.1 christos { Bad_Opcode },
239 1.1 christos { Bad_Opcode },
240 1.1 christos /* D0 */
241 1.1 christos { Bad_Opcode },
242 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD1) },
243 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD2) },
244 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD3) },
245 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD4) },
246 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD5) },
247 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD6) },
248 1.1 christos { Bad_Opcode },
249 1.1 christos /* D8 */
250 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD8) },
251 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD9) },
252 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FDA) },
253 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FDB) },
254 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FDC) },
255 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FDD) },
256 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FDE) },
257 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FDF) },
258 1.1 christos /* E0 */
259 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE0) },
260 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE1) },
261 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE2) },
262 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE3) },
263 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE4) },
264 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE5) },
265 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
266 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE7) },
267 1.1 christos /* E8 */
268 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE8) },
269 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE9) },
270 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FEA) },
271 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FEB) },
272 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FEC) },
273 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FED) },
274 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FEE) },
275 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FEF) },
276 1.1 christos /* F0 */
277 1.1 christos { Bad_Opcode },
278 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FF1) },
279 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FF2) },
280 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FF3) },
281 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FF4) },
282 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FF5) },
283 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FF6) },
284 1.1 christos { Bad_Opcode },
285 1.1 christos /* F8 */
286 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FF8) },
287 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FF9) },
288 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FFA) },
289 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FFB) },
290 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FFC) },
291 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FFD) },
292 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FFE) },
293 1.1 christos { Bad_Opcode },
294 1.1 christos },
295 1.1 christos /* EVEX_0F38 */
296 1.1 christos {
297 1.1 christos /* 00 */
298 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3800) },
299 1.1 christos { Bad_Opcode },
300 1.1 christos { Bad_Opcode },
301 1.1 christos { Bad_Opcode },
302 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3804) },
303 1.1 christos { Bad_Opcode },
304 1.1 christos { Bad_Opcode },
305 1.1 christos { Bad_Opcode },
306 1.1 christos /* 08 */
307 1.1 christos { Bad_Opcode },
308 1.1 christos { Bad_Opcode },
309 1.1 christos { Bad_Opcode },
310 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F380B) },
311 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F380C) },
312 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F380D) },
313 1.1 christos { Bad_Opcode },
314 1.1 christos { Bad_Opcode },
315 1.1 christos /* 10 */
316 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3810) },
317 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3811) },
318 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3812) },
319 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3813) },
320 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3814) },
321 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3815) },
322 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3816) },
323 1.1 christos { Bad_Opcode },
324 1.1 christos /* 18 */
325 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3818) },
326 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3819) },
327 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F381A) },
328 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F381B) },
329 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F381C) },
330 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F381D) },
331 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F381E) },
332 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F381F) },
333 1.1 christos /* 20 */
334 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3820) },
335 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3821) },
336 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3822) },
337 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3823) },
338 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3824) },
339 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3825) },
340 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3826) },
341 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3827) },
342 1.1 christos /* 28 */
343 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3828) },
344 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3829) },
345 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F382A) },
346 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F382B) },
347 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F382C) },
348 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F382D) },
349 1.1 christos { Bad_Opcode },
350 1.1 christos { Bad_Opcode },
351 1.1 christos /* 30 */
352 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3830) },
353 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3831) },
354 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3832) },
355 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3833) },
356 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3834) },
357 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3835) },
358 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3836) },
359 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3837) },
360 1.1 christos /* 38 */
361 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3838) },
362 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
363 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
364 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F383B) },
365 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F383C) },
366 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F383D) },
367 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F383E) },
368 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F383F) },
369 1.1 christos /* 40 */
370 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3840) },
371 1.1 christos { Bad_Opcode },
372 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3842) },
373 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3843) },
374 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3844) },
375 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3845) },
376 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3846) },
377 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3847) },
378 1.1 christos /* 48 */
379 1.1 christos { Bad_Opcode },
380 1.1 christos { Bad_Opcode },
381 1.1 christos { Bad_Opcode },
382 1.1 christos { Bad_Opcode },
383 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F384C) },
384 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F384D) },
385 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F384E) },
386 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F384F) },
387 1.1 christos /* 50 */
388 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3850) },
389 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3851) },
390 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
391 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
392 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3854) },
393 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3855) },
394 1.1 christos { Bad_Opcode },
395 1.1 christos { Bad_Opcode },
396 1.1 christos /* 58 */
397 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3858) },
398 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3859) },
399 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F385A) },
400 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F385B) },
401 1.1 christos { Bad_Opcode },
402 1.1 christos { Bad_Opcode },
403 1.1 christos { Bad_Opcode },
404 1.1 christos { Bad_Opcode },
405 1.1 christos /* 60 */
406 1.1 christos { Bad_Opcode },
407 1.1 christos { Bad_Opcode },
408 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3862) },
409 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3863) },
410 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3864) },
411 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3865) },
412 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3866) },
413 1.1 christos { Bad_Opcode },
414 1.1 christos /* 68 */
415 1.1 christos { Bad_Opcode },
416 1.1 christos { Bad_Opcode },
417 1.1 christos { Bad_Opcode },
418 1.1 christos { Bad_Opcode },
419 1.1 christos { Bad_Opcode },
420 1.1 christos { Bad_Opcode },
421 1.1 christos { Bad_Opcode },
422 1.1 christos { Bad_Opcode },
423 1.1 christos /* 70 */
424 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3870) },
425 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3871) },
426 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
427 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3873) },
428 1.1 christos { Bad_Opcode },
429 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3875) },
430 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3876) },
431 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3877) },
432 1.1 christos /* 78 */
433 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3878) },
434 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3879) },
435 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F387A) },
436 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F387B) },
437 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F387C) },
438 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F387D) },
439 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F387E) },
440 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F387F) },
441 1.1 christos /* 80 */
442 1.1 christos { Bad_Opcode },
443 1.1 christos { Bad_Opcode },
444 1.1 christos { Bad_Opcode },
445 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3883) },
446 1.1 christos { Bad_Opcode },
447 1.1 christos { Bad_Opcode },
448 1.1 christos { Bad_Opcode },
449 1.1 christos { Bad_Opcode },
450 1.1 christos /* 88 */
451 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3888) },
452 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3889) },
453 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F388A) },
454 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F388B) },
455 1.1 christos { Bad_Opcode },
456 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F388D) },
457 1.1 christos { Bad_Opcode },
458 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F388F) },
459 1.1 christos /* 90 */
460 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3890) },
461 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3891) },
462 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3892) },
463 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3893) },
464 1.1 christos { Bad_Opcode },
465 1.1 christos { Bad_Opcode },
466 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3896) },
467 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3897) },
468 1.1 christos /* 98 */
469 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3898) },
470 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3899) },
471 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
472 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
473 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F389C) },
474 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F389D) },
475 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F389E) },
476 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F389F) },
477 1.1 christos /* A0 */
478 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38A0) },
479 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38A1) },
480 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38A2) },
481 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38A3) },
482 1.1 christos { Bad_Opcode },
483 1.1 christos { Bad_Opcode },
484 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38A6) },
485 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38A7) },
486 1.1 christos /* A8 */
487 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38A8) },
488 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38A9) },
489 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
490 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
491 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38AC) },
492 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38AD) },
493 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38AE) },
494 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38AF) },
495 1.1 christos /* B0 */
496 1.1 christos { Bad_Opcode },
497 1.1 christos { Bad_Opcode },
498 1.1 christos { Bad_Opcode },
499 1.1 christos { Bad_Opcode },
500 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38B4) },
501 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38B5) },
502 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38B6) },
503 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38B7) },
504 1.1 christos /* B8 */
505 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38B8) },
506 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38B9) },
507 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38BA) },
508 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38BB) },
509 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38BC) },
510 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38BD) },
511 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38BE) },
512 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38BF) },
513 1.1 christos /* C0 */
514 1.1 christos { Bad_Opcode },
515 1.1 christos { Bad_Opcode },
516 1.1 christos { Bad_Opcode },
517 1.1 christos { Bad_Opcode },
518 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C4) },
519 1.1 christos { Bad_Opcode },
520 1.1 christos { REG_TABLE (REG_EVEX_0F38C6) },
521 1.1 christos { REG_TABLE (REG_EVEX_0F38C7) },
522 1.1 christos /* C8 */
523 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C8) },
524 1.1 christos { Bad_Opcode },
525 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38CA) },
526 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38CB) },
527 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38CC) },
528 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38CD) },
529 1.1 christos { Bad_Opcode },
530 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F38CF) },
531 1.1 christos /* D0 */
532 1.1 christos { Bad_Opcode },
533 1.1 christos { Bad_Opcode },
534 1.1 christos { Bad_Opcode },
535 1.1 christos { Bad_Opcode },
536 1.1 christos { Bad_Opcode },
537 1.1 christos { Bad_Opcode },
538 1.1 christos { Bad_Opcode },
539 1.1 christos { Bad_Opcode },
540 1.1 christos /* D8 */
541 1.1 christos { Bad_Opcode },
542 1.1 christos { Bad_Opcode },
543 1.1 christos { Bad_Opcode },
544 1.1 christos { Bad_Opcode },
545 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F38DC) },
546 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F38DD) },
547 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F38DE) },
548 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F38DF) },
549 1.1 christos /* E0 */
550 1.1 christos { Bad_Opcode },
551 1.1 christos { Bad_Opcode },
552 1.1 christos { Bad_Opcode },
553 1.1 christos { Bad_Opcode },
554 1.1 christos { Bad_Opcode },
555 1.1 christos { Bad_Opcode },
556 1.1 christos { Bad_Opcode },
557 1.1 christos { Bad_Opcode },
558 1.1 christos /* E8 */
559 1.1 christos { Bad_Opcode },
560 1.1 christos { Bad_Opcode },
561 1.1 christos { Bad_Opcode },
562 1.1 christos { Bad_Opcode },
563 1.1 christos { Bad_Opcode },
564 1.1 christos { Bad_Opcode },
565 1.1 christos { Bad_Opcode },
566 1.1 christos { Bad_Opcode },
567 1.1 christos /* F0 */
568 1.1 christos { Bad_Opcode },
569 1.1 christos { Bad_Opcode },
570 1.1 christos { Bad_Opcode },
571 1.1 christos { Bad_Opcode },
572 1.1 christos { Bad_Opcode },
573 1.1 christos { Bad_Opcode },
574 1.1 christos { Bad_Opcode },
575 1.1 christos { Bad_Opcode },
576 1.1 christos /* F8 */
577 1.1 christos { Bad_Opcode },
578 1.1 christos { Bad_Opcode },
579 1.1 christos { Bad_Opcode },
580 1.1 christos { Bad_Opcode },
581 1.1 christos { Bad_Opcode },
582 1.1 christos { Bad_Opcode },
583 1.1 christos { Bad_Opcode },
584 1.1 christos { Bad_Opcode },
585 1.1 christos },
586 1.1 christos /* EVEX_0F3A */
587 1.1 christos {
588 1.1 christos /* 00 */
589 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A00) },
590 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A01) },
591 1.1 christos { Bad_Opcode },
592 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A03) },
593 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A04) },
594 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A05) },
595 1.1 christos { Bad_Opcode },
596 1.1 christos { Bad_Opcode },
597 1.1 christos /* 08 */
598 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A08) },
599 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A09) },
600 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) },
601 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A0B) },
602 1.1 christos { Bad_Opcode },
603 1.1 christos { Bad_Opcode },
604 1.1 christos { Bad_Opcode },
605 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A0F) },
606 1.1 christos /* 10 */
607 1.1 christos { Bad_Opcode },
608 1.1 christos { Bad_Opcode },
609 1.1 christos { Bad_Opcode },
610 1.1 christos { Bad_Opcode },
611 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A14) },
612 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A15) },
613 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A16) },
614 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A17) },
615 1.1 christos /* 18 */
616 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A18) },
617 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A19) },
618 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A1A) },
619 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A1B) },
620 1.1 christos { Bad_Opcode },
621 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A1D) },
622 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A1E) },
623 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A1F) },
624 1.1 christos /* 20 */
625 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A20) },
626 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A21) },
627 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A22) },
628 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A23) },
629 1.1 christos { Bad_Opcode },
630 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A25) },
631 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A26) },
632 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A27) },
633 1.1 christos /* 28 */
634 1.1 christos { Bad_Opcode },
635 1.1 christos { Bad_Opcode },
636 1.1 christos { Bad_Opcode },
637 1.1 christos { Bad_Opcode },
638 1.1 christos { Bad_Opcode },
639 1.1 christos { Bad_Opcode },
640 1.1 christos { Bad_Opcode },
641 1.1 christos { Bad_Opcode },
642 1.1 christos /* 30 */
643 1.1 christos { Bad_Opcode },
644 1.1 christos { Bad_Opcode },
645 1.1 christos { Bad_Opcode },
646 1.1 christos { Bad_Opcode },
647 1.1 christos { Bad_Opcode },
648 1.1 christos { Bad_Opcode },
649 1.1 christos { Bad_Opcode },
650 1.1 christos { Bad_Opcode },
651 1.1 christos /* 38 */
652 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A38) },
653 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A39) },
654 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A3A) },
655 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A3B) },
656 1.1 christos { Bad_Opcode },
657 1.1 christos { Bad_Opcode },
658 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A3E) },
659 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A3F) },
660 1.1 christos /* 40 */
661 1.1 christos { Bad_Opcode },
662 1.1 christos { Bad_Opcode },
663 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A42) },
664 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
665 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A44) },
666 1.1 christos { Bad_Opcode },
667 1.1 christos { Bad_Opcode },
668 1.1 christos { Bad_Opcode },
669 1.1 christos /* 48 */
670 1.1 christos { Bad_Opcode },
671 1.1 christos { Bad_Opcode },
672 1.1 christos { Bad_Opcode },
673 1.1 christos { Bad_Opcode },
674 1.1 christos { Bad_Opcode },
675 1.1 christos { Bad_Opcode },
676 1.1 christos { Bad_Opcode },
677 1.1 christos { Bad_Opcode },
678 1.1 christos /* 50 */
679 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A50) },
680 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A51) },
681 1.1 christos { Bad_Opcode },
682 1.1 christos { Bad_Opcode },
683 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A54) },
684 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A55) },
685 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A56) },
686 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A57) },
687 1.1 christos /* 58 */
688 1.1 christos { Bad_Opcode },
689 1.1 christos { Bad_Opcode },
690 1.1 christos { Bad_Opcode },
691 1.1 christos { Bad_Opcode },
692 1.1 christos { Bad_Opcode },
693 1.1 christos { Bad_Opcode },
694 1.1 christos { Bad_Opcode },
695 1.1 christos { Bad_Opcode },
696 1.1 christos /* 60 */
697 1.1 christos { Bad_Opcode },
698 1.1 christos { Bad_Opcode },
699 1.1 christos { Bad_Opcode },
700 1.1 christos { Bad_Opcode },
701 1.1 christos { Bad_Opcode },
702 1.1 christos { Bad_Opcode },
703 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A66) },
704 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A67) },
705 1.1 christos /* 68 */
706 1.1 christos { Bad_Opcode },
707 1.1 christos { Bad_Opcode },
708 1.1 christos { Bad_Opcode },
709 1.1 christos { Bad_Opcode },
710 1.1 christos { Bad_Opcode },
711 1.1 christos { Bad_Opcode },
712 1.1 christos { Bad_Opcode },
713 1.1 christos { Bad_Opcode },
714 1.1 christos /* 70 */
715 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A70) },
716 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A71) },
717 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A72) },
718 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A73) },
719 1.1 christos { Bad_Opcode },
720 1.1 christos { Bad_Opcode },
721 1.1 christos { Bad_Opcode },
722 1.1 christos { Bad_Opcode },
723 1.1 christos /* 78 */
724 1.1 christos { Bad_Opcode },
725 1.1 christos { Bad_Opcode },
726 1.1 christos { Bad_Opcode },
727 1.1 christos { Bad_Opcode },
728 1.1 christos { Bad_Opcode },
729 1.1 christos { Bad_Opcode },
730 1.1 christos { Bad_Opcode },
731 1.1 christos { Bad_Opcode },
732 1.1 christos /* 80 */
733 1.1 christos { Bad_Opcode },
734 1.1 christos { Bad_Opcode },
735 1.1 christos { Bad_Opcode },
736 1.1 christos { Bad_Opcode },
737 1.1 christos { Bad_Opcode },
738 1.1 christos { Bad_Opcode },
739 1.1 christos { Bad_Opcode },
740 1.1 christos { Bad_Opcode },
741 1.1 christos /* 88 */
742 1.1 christos { Bad_Opcode },
743 1.1 christos { Bad_Opcode },
744 1.1 christos { Bad_Opcode },
745 1.1 christos { Bad_Opcode },
746 1.1 christos { Bad_Opcode },
747 1.1 christos { Bad_Opcode },
748 1.1 christos { Bad_Opcode },
749 1.1 christos { Bad_Opcode },
750 1.1 christos /* 90 */
751 1.1 christos { Bad_Opcode },
752 1.1 christos { Bad_Opcode },
753 1.1 christos { Bad_Opcode },
754 1.1 christos { Bad_Opcode },
755 1.1 christos { Bad_Opcode },
756 1.1 christos { Bad_Opcode },
757 1.1 christos { Bad_Opcode },
758 1.1 christos { Bad_Opcode },
759 1.1 christos /* 98 */
760 1.1 christos { Bad_Opcode },
761 1.1 christos { Bad_Opcode },
762 1.1 christos { Bad_Opcode },
763 1.1 christos { Bad_Opcode },
764 1.1 christos { Bad_Opcode },
765 1.1 christos { Bad_Opcode },
766 1.1 christos { Bad_Opcode },
767 1.1 christos { Bad_Opcode },
768 1.1 christos /* A0 */
769 1.1 christos { Bad_Opcode },
770 1.1 christos { Bad_Opcode },
771 1.1 christos { Bad_Opcode },
772 1.1 christos { Bad_Opcode },
773 1.1 christos { Bad_Opcode },
774 1.1 christos { Bad_Opcode },
775 1.1 christos { Bad_Opcode },
776 1.1 christos { Bad_Opcode },
777 1.1 christos /* A8 */
778 1.1 christos { Bad_Opcode },
779 1.1 christos { Bad_Opcode },
780 1.1 christos { Bad_Opcode },
781 1.1 christos { Bad_Opcode },
782 1.1 christos { Bad_Opcode },
783 1.1 christos { Bad_Opcode },
784 1.1 christos { Bad_Opcode },
785 1.1 christos { Bad_Opcode },
786 1.1 christos /* B0 */
787 1.1 christos { Bad_Opcode },
788 1.1 christos { Bad_Opcode },
789 1.1 christos { Bad_Opcode },
790 1.1 christos { Bad_Opcode },
791 1.1 christos { Bad_Opcode },
792 1.1 christos { Bad_Opcode },
793 1.1 christos { Bad_Opcode },
794 1.1 christos { Bad_Opcode },
795 1.1 christos /* B8 */
796 1.1 christos { Bad_Opcode },
797 1.1 christos { Bad_Opcode },
798 1.1 christos { Bad_Opcode },
799 1.1 christos { Bad_Opcode },
800 1.1 christos { Bad_Opcode },
801 1.1 christos { Bad_Opcode },
802 1.1 christos { Bad_Opcode },
803 1.1 christos { Bad_Opcode },
804 1.1 christos /* C0 */
805 1.1 christos { Bad_Opcode },
806 1.1 christos { Bad_Opcode },
807 1.1 christos { Bad_Opcode },
808 1.1 christos { Bad_Opcode },
809 1.1 christos { Bad_Opcode },
810 1.1 christos { Bad_Opcode },
811 1.1 christos { Bad_Opcode },
812 1.1 christos { Bad_Opcode },
813 1.1 christos /* C8 */
814 1.1 christos { Bad_Opcode },
815 1.1 christos { Bad_Opcode },
816 1.1 christos { Bad_Opcode },
817 1.1 christos { Bad_Opcode },
818 1.1 christos { Bad_Opcode },
819 1.1 christos { Bad_Opcode },
820 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3ACE) },
821 1.4 christos { PREFIX_TABLE (PREFIX_EVEX_0F3ACF) },
822 1.1 christos /* D0 */
823 1.1 christos { Bad_Opcode },
824 1.1 christos { Bad_Opcode },
825 1.1 christos { Bad_Opcode },
826 1.1 christos { Bad_Opcode },
827 1.1 christos { Bad_Opcode },
828 1.1 christos { Bad_Opcode },
829 1.1 christos { Bad_Opcode },
830 1.1 christos { Bad_Opcode },
831 1.1 christos /* D8 */
832 1.1 christos { Bad_Opcode },
833 1.1 christos { Bad_Opcode },
834 1.1 christos { Bad_Opcode },
835 1.1 christos { Bad_Opcode },
836 1.1 christos { Bad_Opcode },
837 1.1 christos { Bad_Opcode },
838 1.1 christos { Bad_Opcode },
839 1.1 christos { Bad_Opcode },
840 1.1 christos /* E0 */
841 1.1 christos { Bad_Opcode },
842 1.1 christos { Bad_Opcode },
843 1.1 christos { Bad_Opcode },
844 1.1 christos { Bad_Opcode },
845 1.1 christos { Bad_Opcode },
846 1.1 christos { Bad_Opcode },
847 1.1 christos { Bad_Opcode },
848 1.1 christos { Bad_Opcode },
849 1.1 christos /* E8 */
850 1.1 christos { Bad_Opcode },
851 1.1 christos { Bad_Opcode },
852 1.1 christos { Bad_Opcode },
853 1.1 christos { Bad_Opcode },
854 1.1 christos { Bad_Opcode },
855 1.1 christos { Bad_Opcode },
856 1.1 christos { Bad_Opcode },
857 1.1 christos { Bad_Opcode },
858 1.1 christos /* F0 */
859 1.1 christos { Bad_Opcode },
860 1.1 christos { Bad_Opcode },
861 1.1 christos { Bad_Opcode },
862 1.1 christos { Bad_Opcode },
863 1.1 christos { Bad_Opcode },
864 1.1 christos { Bad_Opcode },
865 1.1 christos { Bad_Opcode },
866 1.1 christos { Bad_Opcode },
867 1.1 christos /* F8 */
868 1.1 christos { Bad_Opcode },
869 1.1 christos { Bad_Opcode },
870 1.1 christos { Bad_Opcode },
871 1.1 christos { Bad_Opcode },
872 1.1 christos { Bad_Opcode },
873 1.1 christos { Bad_Opcode },
874 1.1 christos { Bad_Opcode },
875 1.1 christos { Bad_Opcode },
876 1.1 christos },
877 1.1 christos };
878 1.1 christos #endif /* NEED_OPCODE_TABLE */
879 1.1 christos
880 1.1 christos #ifdef NEED_REG_TABLE
881 1.1 christos /* REG_EVEX_0F71 */
882 1.1 christos {
883 1.1 christos { Bad_Opcode },
884 1.1 christos { Bad_Opcode },
885 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_2) },
886 1.1 christos { Bad_Opcode },
887 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_4) },
888 1.1 christos { Bad_Opcode },
889 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_6) },
890 1.1 christos },
891 1.1 christos /* REG_EVEX_0F72 */
892 1.1 christos {
893 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_0) },
894 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_1) },
895 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_2) },
896 1.1 christos { Bad_Opcode },
897 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_4) },
898 1.1 christos { Bad_Opcode },
899 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_6) },
900 1.1 christos },
901 1.1 christos /* REG_EVEX_0F73 */
902 1.1 christos {
903 1.1 christos { Bad_Opcode },
904 1.1 christos { Bad_Opcode },
905 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_2) },
906 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_3) },
907 1.1 christos { Bad_Opcode },
908 1.1 christos { Bad_Opcode },
909 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_6) },
910 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_7) },
911 1.1 christos },
912 1.1 christos /* REG_EVEX_0F38C6 */
913 1.1 christos {
914 1.1 christos { Bad_Opcode },
915 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C6_REG_1) },
916 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C6_REG_2) },
917 1.1 christos { Bad_Opcode },
918 1.1 christos { Bad_Opcode },
919 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C6_REG_5) },
920 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C6_REG_6) },
921 1.1 christos },
922 1.1 christos /* REG_EVEX_0F38C7 */
923 1.1 christos {
924 1.1 christos { Bad_Opcode },
925 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C7_REG_1) },
926 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C7_REG_2) },
927 1.1 christos { Bad_Opcode },
928 1.1 christos { Bad_Opcode },
929 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C7_REG_5) },
930 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C7_REG_6) },
931 1.1 christos },
932 1.1 christos #endif /* NEED_REG_TABLE */
933 1.1 christos
934 1.1 christos #ifdef NEED_PREFIX_TABLE
935 1.1 christos /* PREFIX_EVEX_0F10 */
936 1.1 christos {
937 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_0) },
938 1.1 christos { MOD_TABLE (MOD_EVEX_0F10_PREFIX_1) },
939 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_2) },
940 1.1 christos { MOD_TABLE (MOD_EVEX_0F10_PREFIX_3) },
941 1.1 christos },
942 1.1 christos /* PREFIX_EVEX_0F11 */
943 1.1 christos {
944 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_0) },
945 1.1 christos { MOD_TABLE (MOD_EVEX_0F11_PREFIX_1) },
946 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_2) },
947 1.1 christos { MOD_TABLE (MOD_EVEX_0F11_PREFIX_3) },
948 1.1 christos },
949 1.1 christos /* PREFIX_EVEX_0F12 */
950 1.1 christos {
951 1.1 christos { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) },
952 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_1) },
953 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_2) },
954 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_3) },
955 1.1 christos },
956 1.1 christos /* PREFIX_EVEX_0F13 */
957 1.1 christos {
958 1.1 christos { VEX_W_TABLE (EVEX_W_0F13_P_0) },
959 1.1 christos { Bad_Opcode },
960 1.1 christos { VEX_W_TABLE (EVEX_W_0F13_P_2) },
961 1.1 christos },
962 1.1 christos /* PREFIX_EVEX_0F14 */
963 1.1 christos {
964 1.1 christos { VEX_W_TABLE (EVEX_W_0F14_P_0) },
965 1.1 christos { Bad_Opcode },
966 1.1 christos { VEX_W_TABLE (EVEX_W_0F14_P_2) },
967 1.1 christos },
968 1.1 christos /* PREFIX_EVEX_0F15 */
969 1.1 christos {
970 1.1 christos { VEX_W_TABLE (EVEX_W_0F15_P_0) },
971 1.1 christos { Bad_Opcode },
972 1.1 christos { VEX_W_TABLE (EVEX_W_0F15_P_2) },
973 1.1 christos },
974 1.1 christos /* PREFIX_EVEX_0F16 */
975 1.1 christos {
976 1.1 christos { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) },
977 1.1 christos { VEX_W_TABLE (EVEX_W_0F16_P_1) },
978 1.1 christos { VEX_W_TABLE (EVEX_W_0F16_P_2) },
979 1.1 christos },
980 1.1 christos /* PREFIX_EVEX_0F17 */
981 1.1 christos {
982 1.1 christos { VEX_W_TABLE (EVEX_W_0F17_P_0) },
983 1.1 christos { Bad_Opcode },
984 1.1 christos { VEX_W_TABLE (EVEX_W_0F17_P_2) },
985 1.1 christos },
986 1.1 christos /* PREFIX_EVEX_0F28 */
987 1.1 christos {
988 1.1 christos { VEX_W_TABLE (EVEX_W_0F28_P_0) },
989 1.1 christos { Bad_Opcode },
990 1.1 christos { VEX_W_TABLE (EVEX_W_0F28_P_2) },
991 1.1 christos },
992 1.1 christos /* PREFIX_EVEX_0F29 */
993 1.1 christos {
994 1.1 christos { VEX_W_TABLE (EVEX_W_0F29_P_0) },
995 1.1 christos { Bad_Opcode },
996 1.1 christos { VEX_W_TABLE (EVEX_W_0F29_P_2) },
997 1.1 christos },
998 1.1 christos /* PREFIX_EVEX_0F2A */
999 1.1 christos {
1000 1.1 christos { Bad_Opcode },
1001 1.1 christos { VEX_W_TABLE (EVEX_W_0F2A_P_1) },
1002 1.1 christos { Bad_Opcode },
1003 1.1 christos { VEX_W_TABLE (EVEX_W_0F2A_P_3) },
1004 1.1 christos },
1005 1.1 christos /* PREFIX_EVEX_0F2B */
1006 1.1 christos {
1007 1.1 christos { VEX_W_TABLE (EVEX_W_0F2B_P_0) },
1008 1.1 christos { Bad_Opcode },
1009 1.1 christos { VEX_W_TABLE (EVEX_W_0F2B_P_2) },
1010 1.1 christos },
1011 1.1 christos /* PREFIX_EVEX_0F2C */
1012 1.1 christos {
1013 1.1 christos { Bad_Opcode },
1014 1.1 christos { "vcvttss2si", { Gdq, EXxmm_md, EXxEVexS }, 0 },
1015 1.1 christos { Bad_Opcode },
1016 1.1 christos { "vcvttsd2si", { Gdq, EXxmm_mq, EXxEVexS }, 0 },
1017 1.1 christos },
1018 1.1 christos /* PREFIX_EVEX_0F2D */
1019 1.1 christos {
1020 1.1 christos { Bad_Opcode },
1021 1.1 christos { "vcvtss2si", { Gdq, EXxmm_md, EXxEVexR }, 0 },
1022 1.1 christos { Bad_Opcode },
1023 1.1 christos { "vcvtsd2si", { Gdq, EXxmm_mq, EXxEVexR }, 0 },
1024 1.1 christos },
1025 1.1 christos /* PREFIX_EVEX_0F2E */
1026 1.1 christos {
1027 1.1 christos { VEX_W_TABLE (EVEX_W_0F2E_P_0) },
1028 1.1 christos { Bad_Opcode },
1029 1.1 christos { VEX_W_TABLE (EVEX_W_0F2E_P_2) },
1030 1.1 christos },
1031 1.1 christos /* PREFIX_EVEX_0F2F */
1032 1.1 christos {
1033 1.1 christos { VEX_W_TABLE (EVEX_W_0F2F_P_0) },
1034 1.1 christos { Bad_Opcode },
1035 1.1 christos { VEX_W_TABLE (EVEX_W_0F2F_P_2) },
1036 1.1 christos },
1037 1.1 christos /* PREFIX_EVEX_0F51 */
1038 1.1 christos {
1039 1.1 christos { VEX_W_TABLE (EVEX_W_0F51_P_0) },
1040 1.1 christos { VEX_W_TABLE (EVEX_W_0F51_P_1) },
1041 1.1 christos { VEX_W_TABLE (EVEX_W_0F51_P_2) },
1042 1.1 christos { VEX_W_TABLE (EVEX_W_0F51_P_3) },
1043 1.1 christos },
1044 1.1 christos /* PREFIX_EVEX_0F54 */
1045 1.1 christos {
1046 1.1 christos { VEX_W_TABLE (EVEX_W_0F54_P_0) },
1047 1.1 christos { Bad_Opcode },
1048 1.1 christos { VEX_W_TABLE (EVEX_W_0F54_P_2) },
1049 1.1 christos },
1050 1.1 christos /* PREFIX_EVEX_0F55 */
1051 1.1 christos {
1052 1.1 christos { VEX_W_TABLE (EVEX_W_0F55_P_0) },
1053 1.1 christos { Bad_Opcode },
1054 1.1 christos { VEX_W_TABLE (EVEX_W_0F55_P_2) },
1055 1.1 christos },
1056 1.1 christos /* PREFIX_EVEX_0F56 */
1057 1.1 christos {
1058 1.1 christos { VEX_W_TABLE (EVEX_W_0F56_P_0) },
1059 1.1 christos { Bad_Opcode },
1060 1.1 christos { VEX_W_TABLE (EVEX_W_0F56_P_2) },
1061 1.1 christos },
1062 1.1 christos /* PREFIX_EVEX_0F57 */
1063 1.1 christos {
1064 1.1 christos { VEX_W_TABLE (EVEX_W_0F57_P_0) },
1065 1.1 christos { Bad_Opcode },
1066 1.1 christos { VEX_W_TABLE (EVEX_W_0F57_P_2) },
1067 1.1 christos },
1068 1.1 christos /* PREFIX_EVEX_0F58 */
1069 1.1 christos {
1070 1.1 christos { VEX_W_TABLE (EVEX_W_0F58_P_0) },
1071 1.1 christos { VEX_W_TABLE (EVEX_W_0F58_P_1) },
1072 1.1 christos { VEX_W_TABLE (EVEX_W_0F58_P_2) },
1073 1.1 christos { VEX_W_TABLE (EVEX_W_0F58_P_3) },
1074 1.1 christos },
1075 1.1 christos /* PREFIX_EVEX_0F59 */
1076 1.1 christos {
1077 1.1 christos { VEX_W_TABLE (EVEX_W_0F59_P_0) },
1078 1.1 christos { VEX_W_TABLE (EVEX_W_0F59_P_1) },
1079 1.1 christos { VEX_W_TABLE (EVEX_W_0F59_P_2) },
1080 1.1 christos { VEX_W_TABLE (EVEX_W_0F59_P_3) },
1081 1.1 christos },
1082 1.1 christos /* PREFIX_EVEX_0F5A */
1083 1.1 christos {
1084 1.1 christos { VEX_W_TABLE (EVEX_W_0F5A_P_0) },
1085 1.1 christos { VEX_W_TABLE (EVEX_W_0F5A_P_1) },
1086 1.1 christos { VEX_W_TABLE (EVEX_W_0F5A_P_2) },
1087 1.1 christos { VEX_W_TABLE (EVEX_W_0F5A_P_3) },
1088 1.1 christos },
1089 1.1 christos /* PREFIX_EVEX_0F5B */
1090 1.1 christos {
1091 1.1 christos { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
1092 1.1 christos { VEX_W_TABLE (EVEX_W_0F5B_P_1) },
1093 1.1 christos { VEX_W_TABLE (EVEX_W_0F5B_P_2) },
1094 1.1 christos },
1095 1.1 christos /* PREFIX_EVEX_0F5C */
1096 1.1 christos {
1097 1.1 christos { VEX_W_TABLE (EVEX_W_0F5C_P_0) },
1098 1.1 christos { VEX_W_TABLE (EVEX_W_0F5C_P_1) },
1099 1.1 christos { VEX_W_TABLE (EVEX_W_0F5C_P_2) },
1100 1.1 christos { VEX_W_TABLE (EVEX_W_0F5C_P_3) },
1101 1.1 christos },
1102 1.1 christos /* PREFIX_EVEX_0F5D */
1103 1.1 christos {
1104 1.1 christos { VEX_W_TABLE (EVEX_W_0F5D_P_0) },
1105 1.1 christos { VEX_W_TABLE (EVEX_W_0F5D_P_1) },
1106 1.1 christos { VEX_W_TABLE (EVEX_W_0F5D_P_2) },
1107 1.1 christos { VEX_W_TABLE (EVEX_W_0F5D_P_3) },
1108 1.1 christos },
1109 1.1 christos /* PREFIX_EVEX_0F5E */
1110 1.1 christos {
1111 1.1 christos { VEX_W_TABLE (EVEX_W_0F5E_P_0) },
1112 1.1 christos { VEX_W_TABLE (EVEX_W_0F5E_P_1) },
1113 1.1 christos { VEX_W_TABLE (EVEX_W_0F5E_P_2) },
1114 1.1 christos { VEX_W_TABLE (EVEX_W_0F5E_P_3) },
1115 1.1 christos },
1116 1.1 christos /* PREFIX_EVEX_0F5F */
1117 1.1 christos {
1118 1.1 christos { VEX_W_TABLE (EVEX_W_0F5F_P_0) },
1119 1.1 christos { VEX_W_TABLE (EVEX_W_0F5F_P_1) },
1120 1.1 christos { VEX_W_TABLE (EVEX_W_0F5F_P_2) },
1121 1.1 christos { VEX_W_TABLE (EVEX_W_0F5F_P_3) },
1122 1.1 christos },
1123 1.1 christos /* PREFIX_EVEX_0F60 */
1124 1.1 christos {
1125 1.1 christos { Bad_Opcode },
1126 1.1 christos { Bad_Opcode },
1127 1.1 christos { "vpunpcklbw", { XM, Vex, EXx }, 0 },
1128 1.1 christos },
1129 1.1 christos /* PREFIX_EVEX_0F61 */
1130 1.1 christos {
1131 1.1 christos { Bad_Opcode },
1132 1.1 christos { Bad_Opcode },
1133 1.1 christos { "vpunpcklwd", { XM, Vex, EXx }, 0 },
1134 1.1 christos },
1135 1.1 christos /* PREFIX_EVEX_0F62 */
1136 1.1 christos {
1137 1.1 christos { Bad_Opcode },
1138 1.1 christos { Bad_Opcode },
1139 1.1 christos { VEX_W_TABLE (EVEX_W_0F62_P_2) },
1140 1.1 christos },
1141 1.1 christos /* PREFIX_EVEX_0F63 */
1142 1.1 christos {
1143 1.1 christos { Bad_Opcode },
1144 1.1 christos { Bad_Opcode },
1145 1.1 christos { "vpacksswb", { XM, Vex, EXx }, 0 },
1146 1.1 christos },
1147 1.1 christos /* PREFIX_EVEX_0F64 */
1148 1.1 christos {
1149 1.1 christos { Bad_Opcode },
1150 1.1 christos { Bad_Opcode },
1151 1.1 christos { "vpcmpgtb", { XMask, Vex, EXx }, 0 },
1152 1.1 christos },
1153 1.1 christos /* PREFIX_EVEX_0F65 */
1154 1.1 christos {
1155 1.1 christos { Bad_Opcode },
1156 1.1 christos { Bad_Opcode },
1157 1.1 christos { "vpcmpgtw", { XMask, Vex, EXx }, 0 },
1158 1.1 christos },
1159 1.1 christos /* PREFIX_EVEX_0F66 */
1160 1.1 christos {
1161 1.1 christos { Bad_Opcode },
1162 1.1 christos { Bad_Opcode },
1163 1.1 christos { VEX_W_TABLE (EVEX_W_0F66_P_2) },
1164 1.1 christos },
1165 1.1 christos /* PREFIX_EVEX_0F67 */
1166 1.1 christos {
1167 1.1 christos { Bad_Opcode },
1168 1.1 christos { Bad_Opcode },
1169 1.1 christos { "vpackuswb", { XM, Vex, EXx }, 0 },
1170 1.1 christos },
1171 1.1 christos /* PREFIX_EVEX_0F68 */
1172 1.1 christos {
1173 1.1 christos { Bad_Opcode },
1174 1.1 christos { Bad_Opcode },
1175 1.1 christos { "vpunpckhbw", { XM, Vex, EXx }, 0 },
1176 1.1 christos },
1177 1.1 christos /* PREFIX_EVEX_0F69 */
1178 1.1 christos {
1179 1.1 christos { Bad_Opcode },
1180 1.1 christos { Bad_Opcode },
1181 1.1 christos { "vpunpckhwd", { XM, Vex, EXx }, 0 },
1182 1.1 christos },
1183 1.1 christos /* PREFIX_EVEX_0F6A */
1184 1.1 christos {
1185 1.1 christos { Bad_Opcode },
1186 1.1 christos { Bad_Opcode },
1187 1.1 christos { VEX_W_TABLE (EVEX_W_0F6A_P_2) },
1188 1.1 christos },
1189 1.1 christos /* PREFIX_EVEX_0F6B */
1190 1.1 christos {
1191 1.1 christos { Bad_Opcode },
1192 1.1 christos { Bad_Opcode },
1193 1.1 christos { VEX_W_TABLE (EVEX_W_0F6B_P_2) },
1194 1.1 christos },
1195 1.1 christos /* PREFIX_EVEX_0F6C */
1196 1.1 christos {
1197 1.1 christos { Bad_Opcode },
1198 1.1 christos { Bad_Opcode },
1199 1.1 christos { VEX_W_TABLE (EVEX_W_0F6C_P_2) },
1200 1.1 christos },
1201 1.1 christos /* PREFIX_EVEX_0F6D */
1202 1.1 christos {
1203 1.1 christos { Bad_Opcode },
1204 1.1 christos { Bad_Opcode },
1205 1.1 christos { VEX_W_TABLE (EVEX_W_0F6D_P_2) },
1206 1.1 christos },
1207 1.1 christos /* PREFIX_EVEX_0F6E */
1208 1.1 christos {
1209 1.1 christos { Bad_Opcode },
1210 1.1 christos { Bad_Opcode },
1211 1.1 christos { VEX_W_TABLE (EVEX_W_0F6E_P_2) },
1212 1.1 christos },
1213 1.1 christos /* PREFIX_EVEX_0F6F */
1214 1.1 christos {
1215 1.1 christos { Bad_Opcode },
1216 1.1 christos { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
1217 1.1 christos { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
1218 1.1 christos { VEX_W_TABLE (EVEX_W_0F6F_P_3) },
1219 1.1 christos },
1220 1.1 christos /* PREFIX_EVEX_0F70 */
1221 1.1 christos {
1222 1.1 christos { Bad_Opcode },
1223 1.1 christos { "vpshufhw", { XM, EXx, Ib }, 0 },
1224 1.1 christos { VEX_W_TABLE (EVEX_W_0F70_P_2) },
1225 1.1 christos { "vpshuflw", { XM, EXx, Ib }, 0 },
1226 1.1 christos },
1227 1.1 christos /* PREFIX_EVEX_0F71_REG_2 */
1228 1.1 christos {
1229 1.1 christos { Bad_Opcode },
1230 1.1 christos { Bad_Opcode },
1231 1.1 christos { "vpsrlw", { Vex, EXx, Ib }, 0 },
1232 1.1 christos },
1233 1.1 christos /* PREFIX_EVEX_0F71_REG_4 */
1234 1.1 christos {
1235 1.1 christos { Bad_Opcode },
1236 1.1 christos { Bad_Opcode },
1237 1.1 christos { "vpsraw", { Vex, EXx, Ib }, 0 },
1238 1.1 christos },
1239 1.1 christos /* PREFIX_EVEX_0F71_REG_6 */
1240 1.1 christos {
1241 1.1 christos { Bad_Opcode },
1242 1.1 christos { Bad_Opcode },
1243 1.1 christos { "vpsllw", { Vex, EXx, Ib }, 0 },
1244 1.1 christos },
1245 1.1 christos /* PREFIX_EVEX_0F72_REG_0 */
1246 1.1 christos {
1247 1.1 christos { Bad_Opcode },
1248 1.1 christos { Bad_Opcode },
1249 1.1 christos { "vpror%LW", { Vex, EXx, Ib }, 0 },
1250 1.1 christos },
1251 1.1 christos /* PREFIX_EVEX_0F72_REG_1 */
1252 1.1 christos {
1253 1.1 christos { Bad_Opcode },
1254 1.1 christos { Bad_Opcode },
1255 1.1 christos { "vprol%LW", { Vex, EXx, Ib }, 0 },
1256 1.1 christos },
1257 1.1 christos /* PREFIX_EVEX_0F72_REG_2 */
1258 1.1 christos {
1259 1.1 christos { Bad_Opcode },
1260 1.1 christos { Bad_Opcode },
1261 1.1 christos { VEX_W_TABLE (EVEX_W_0F72_R_2_P_2) },
1262 1.1 christos },
1263 1.1 christos /* PREFIX_EVEX_0F72_REG_4 */
1264 1.1 christos {
1265 1.1 christos { Bad_Opcode },
1266 1.1 christos { Bad_Opcode },
1267 1.1 christos { "vpsra%LW", { Vex, EXx, Ib }, 0 },
1268 1.1 christos },
1269 1.1 christos /* PREFIX_EVEX_0F72_REG_6 */
1270 1.1 christos {
1271 1.1 christos { Bad_Opcode },
1272 1.1 christos { Bad_Opcode },
1273 1.1 christos { VEX_W_TABLE (EVEX_W_0F72_R_6_P_2) },
1274 1.1 christos },
1275 1.1 christos /* PREFIX_EVEX_0F73_REG_2 */
1276 1.1 christos {
1277 1.1 christos { Bad_Opcode },
1278 1.1 christos { Bad_Opcode },
1279 1.1 christos { VEX_W_TABLE (EVEX_W_0F73_R_2_P_2) },
1280 1.1 christos },
1281 1.1 christos /* PREFIX_EVEX_0F73_REG_3 */
1282 1.1 christos {
1283 1.1 christos { Bad_Opcode },
1284 1.1 christos { Bad_Opcode },
1285 1.1 christos { "vpsrldq", { Vex, EXx, Ib }, 0 },
1286 1.1 christos },
1287 1.1 christos /* PREFIX_EVEX_0F73_REG_6 */
1288 1.1 christos {
1289 1.1 christos { Bad_Opcode },
1290 1.1 christos { Bad_Opcode },
1291 1.1 christos { VEX_W_TABLE (EVEX_W_0F73_R_6_P_2) },
1292 1.1 christos },
1293 1.1 christos /* PREFIX_EVEX_0F73_REG_7 */
1294 1.1 christos {
1295 1.1 christos { Bad_Opcode },
1296 1.1 christos { Bad_Opcode },
1297 1.1 christos { "vpslldq", { Vex, EXx, Ib }, 0 },
1298 1.1 christos },
1299 1.1 christos /* PREFIX_EVEX_0F74 */
1300 1.1 christos {
1301 1.1 christos { Bad_Opcode },
1302 1.1 christos { Bad_Opcode },
1303 1.1 christos { "vpcmpeqb", { XMask, Vex, EXx }, 0 },
1304 1.1 christos },
1305 1.1 christos /* PREFIX_EVEX_0F75 */
1306 1.1 christos {
1307 1.1 christos { Bad_Opcode },
1308 1.1 christos { Bad_Opcode },
1309 1.1 christos { "vpcmpeqw", { XMask, Vex, EXx }, 0 },
1310 1.1 christos },
1311 1.1 christos /* PREFIX_EVEX_0F76 */
1312 1.1 christos {
1313 1.1 christos { Bad_Opcode },
1314 1.1 christos { Bad_Opcode },
1315 1.1 christos { VEX_W_TABLE (EVEX_W_0F76_P_2) },
1316 1.1 christos },
1317 1.1 christos /* PREFIX_EVEX_0F78 */
1318 1.1 christos {
1319 1.1 christos { VEX_W_TABLE (EVEX_W_0F78_P_0) },
1320 1.1 christos { "vcvttss2usi", { Gdq, EXxmm_md, EXxEVexS }, 0 },
1321 1.1 christos { VEX_W_TABLE (EVEX_W_0F78_P_2) },
1322 1.1 christos { "vcvttsd2usi", { Gdq, EXxmm_mq, EXxEVexS }, 0 },
1323 1.1 christos },
1324 1.1 christos /* PREFIX_EVEX_0F79 */
1325 1.1 christos {
1326 1.1 christos { VEX_W_TABLE (EVEX_W_0F79_P_0) },
1327 1.1 christos { "vcvtss2usi", { Gdq, EXxmm_md, EXxEVexR }, 0 },
1328 1.1 christos { VEX_W_TABLE (EVEX_W_0F79_P_2) },
1329 1.1 christos { "vcvtsd2usi", { Gdq, EXxmm_mq, EXxEVexR }, 0 },
1330 1.1 christos },
1331 1.1 christos /* PREFIX_EVEX_0F7A */
1332 1.1 christos {
1333 1.1 christos { Bad_Opcode },
1334 1.1 christos { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
1335 1.1 christos { VEX_W_TABLE (EVEX_W_0F7A_P_2) },
1336 1.1 christos { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
1337 1.1 christos },
1338 1.1 christos /* PREFIX_EVEX_0F7B */
1339 1.1 christos {
1340 1.1 christos { Bad_Opcode },
1341 1.1 christos { VEX_W_TABLE (EVEX_W_0F7B_P_1) },
1342 1.1 christos { VEX_W_TABLE (EVEX_W_0F7B_P_2) },
1343 1.1 christos { VEX_W_TABLE (EVEX_W_0F7B_P_3) },
1344 1.1 christos },
1345 1.1 christos /* PREFIX_EVEX_0F7E */
1346 1.1 christos {
1347 1.1 christos { Bad_Opcode },
1348 1.1 christos { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
1349 1.1 christos { VEX_W_TABLE (EVEX_W_0F7E_P_2) },
1350 1.1 christos },
1351 1.1 christos /* PREFIX_EVEX_0F7F */
1352 1.1 christos {
1353 1.1 christos { Bad_Opcode },
1354 1.1 christos { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
1355 1.1 christos { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
1356 1.1 christos { VEX_W_TABLE (EVEX_W_0F7F_P_3) },
1357 1.1 christos },
1358 1.1 christos /* PREFIX_EVEX_0FC2 */
1359 1.1 christos {
1360 1.1 christos { VEX_W_TABLE (EVEX_W_0FC2_P_0) },
1361 1.1 christos { VEX_W_TABLE (EVEX_W_0FC2_P_1) },
1362 1.1 christos { VEX_W_TABLE (EVEX_W_0FC2_P_2) },
1363 1.1 christos { VEX_W_TABLE (EVEX_W_0FC2_P_3) },
1364 1.1 christos },
1365 1.1 christos /* PREFIX_EVEX_0FC4 */
1366 1.1 christos {
1367 1.1 christos { Bad_Opcode },
1368 1.1 christos { Bad_Opcode },
1369 1.1 christos { "vpinsrw", { XM, Vex128, Edw, Ib }, 0 },
1370 1.1 christos },
1371 1.1 christos /* PREFIX_EVEX_0FC5 */
1372 1.1 christos {
1373 1.1 christos { Bad_Opcode },
1374 1.1 christos { Bad_Opcode },
1375 1.1 christos { "vpextrw", { Gdq, XS, Ib }, 0 },
1376 1.1 christos },
1377 1.1 christos /* PREFIX_EVEX_0FC6 */
1378 1.1 christos {
1379 1.1 christos { VEX_W_TABLE (EVEX_W_0FC6_P_0) },
1380 1.1 christos { Bad_Opcode },
1381 1.1 christos { VEX_W_TABLE (EVEX_W_0FC6_P_2) },
1382 1.1 christos },
1383 1.1 christos /* PREFIX_EVEX_0FD1 */
1384 1.1 christos {
1385 1.1 christos { Bad_Opcode },
1386 1.1 christos { Bad_Opcode },
1387 1.1 christos { "vpsrlw", { XM, Vex, EXxmm }, 0 },
1388 1.1 christos },
1389 1.1 christos /* PREFIX_EVEX_0FD2 */
1390 1.1 christos {
1391 1.1 christos { Bad_Opcode },
1392 1.1 christos { Bad_Opcode },
1393 1.1 christos { VEX_W_TABLE (EVEX_W_0FD2_P_2) },
1394 1.1 christos },
1395 1.1 christos /* PREFIX_EVEX_0FD3 */
1396 1.1 christos {
1397 1.1 christos { Bad_Opcode },
1398 1.1 christos { Bad_Opcode },
1399 1.1 christos { VEX_W_TABLE (EVEX_W_0FD3_P_2) },
1400 1.1 christos },
1401 1.1 christos /* PREFIX_EVEX_0FD4 */
1402 1.1 christos {
1403 1.1 christos { Bad_Opcode },
1404 1.1 christos { Bad_Opcode },
1405 1.1 christos { VEX_W_TABLE (EVEX_W_0FD4_P_2) },
1406 1.1 christos },
1407 1.1 christos /* PREFIX_EVEX_0FD5 */
1408 1.1 christos {
1409 1.1 christos { Bad_Opcode },
1410 1.1 christos { Bad_Opcode },
1411 1.1 christos { "vpmullw", { XM, Vex, EXx }, 0 },
1412 1.1 christos },
1413 1.1 christos /* PREFIX_EVEX_0FD6 */
1414 1.1 christos {
1415 1.1 christos { Bad_Opcode },
1416 1.1 christos { Bad_Opcode },
1417 1.1 christos { VEX_W_TABLE (EVEX_W_0FD6_P_2) },
1418 1.1 christos },
1419 1.1 christos /* PREFIX_EVEX_0FD8 */
1420 1.1 christos {
1421 1.1 christos { Bad_Opcode },
1422 1.1 christos { Bad_Opcode },
1423 1.1 christos { "vpsubusb", { XM, Vex, EXx }, 0 },
1424 1.1 christos },
1425 1.1 christos /* PREFIX_EVEX_0FD9 */
1426 1.1 christos {
1427 1.1 christos { Bad_Opcode },
1428 1.1 christos { Bad_Opcode },
1429 1.1 christos { "vpsubusw", { XM, Vex, EXx }, 0 },
1430 1.1 christos },
1431 1.1 christos /* PREFIX_EVEX_0FDA */
1432 1.1 christos {
1433 1.1 christos { Bad_Opcode },
1434 1.1 christos { Bad_Opcode },
1435 1.1 christos { "vpminub", { XM, Vex, EXx }, 0 },
1436 1.1 christos },
1437 1.1 christos /* PREFIX_EVEX_0FDB */
1438 1.1 christos {
1439 1.1 christos { Bad_Opcode },
1440 1.1 christos { Bad_Opcode },
1441 1.1 christos { "vpand%LW", { XM, Vex, EXx }, 0 },
1442 1.1 christos },
1443 1.1 christos /* PREFIX_EVEX_0FDC */
1444 1.1 christos {
1445 1.1 christos { Bad_Opcode },
1446 1.1 christos { Bad_Opcode },
1447 1.1 christos { "vpaddusb", { XM, Vex, EXx }, 0 },
1448 1.1 christos },
1449 1.1 christos /* PREFIX_EVEX_0FDD */
1450 1.1 christos {
1451 1.1 christos { Bad_Opcode },
1452 1.1 christos { Bad_Opcode },
1453 1.1 christos { "vpaddusw", { XM, Vex, EXx }, 0 },
1454 1.1 christos },
1455 1.1 christos /* PREFIX_EVEX_0FDE */
1456 1.1 christos {
1457 1.1 christos { Bad_Opcode },
1458 1.1 christos { Bad_Opcode },
1459 1.1 christos { "vpmaxub", { XM, Vex, EXx }, 0 },
1460 1.1 christos },
1461 1.1 christos /* PREFIX_EVEX_0FDF */
1462 1.1 christos {
1463 1.1 christos { Bad_Opcode },
1464 1.1 christos { Bad_Opcode },
1465 1.1 christos { "vpandn%LW", { XM, Vex, EXx }, 0 },
1466 1.1 christos },
1467 1.1 christos /* PREFIX_EVEX_0FE0 */
1468 1.1 christos {
1469 1.1 christos { Bad_Opcode },
1470 1.1 christos { Bad_Opcode },
1471 1.1 christos { "vpavgb", { XM, Vex, EXx }, 0 },
1472 1.1 christos },
1473 1.1 christos /* PREFIX_EVEX_0FE1 */
1474 1.1 christos {
1475 1.1 christos { Bad_Opcode },
1476 1.1 christos { Bad_Opcode },
1477 1.1 christos { "vpsraw", { XM, Vex, EXxmm }, 0 },
1478 1.1 christos },
1479 1.1 christos /* PREFIX_EVEX_0FE2 */
1480 1.1 christos {
1481 1.1 christos { Bad_Opcode },
1482 1.1 christos { Bad_Opcode },
1483 1.1 christos { "vpsra%LW", { XM, Vex, EXxmm }, 0 },
1484 1.1 christos },
1485 1.1 christos /* PREFIX_EVEX_0FE3 */
1486 1.1 christos {
1487 1.1 christos { Bad_Opcode },
1488 1.1 christos { Bad_Opcode },
1489 1.1 christos { "vpavgw", { XM, Vex, EXx }, 0 },
1490 1.1 christos },
1491 1.1 christos /* PREFIX_EVEX_0FE4 */
1492 1.1 christos {
1493 1.1 christos { Bad_Opcode },
1494 1.1 christos { Bad_Opcode },
1495 1.1 christos { "vpmulhuw", { XM, Vex, EXx }, 0 },
1496 1.1 christos },
1497 1.1 christos /* PREFIX_EVEX_0FE5 */
1498 1.1 christos {
1499 1.1 christos { Bad_Opcode },
1500 1.1 christos { Bad_Opcode },
1501 1.1 christos { "vpmulhw", { XM, Vex, EXx }, 0 },
1502 1.1 christos },
1503 1.1 christos /* PREFIX_EVEX_0FE6 */
1504 1.1 christos {
1505 1.1 christos { Bad_Opcode },
1506 1.1 christos { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
1507 1.1 christos { VEX_W_TABLE (EVEX_W_0FE6_P_2) },
1508 1.1 christos { VEX_W_TABLE (EVEX_W_0FE6_P_3) },
1509 1.1 christos },
1510 1.1 christos /* PREFIX_EVEX_0FE7 */
1511 1.1 christos {
1512 1.1 christos { Bad_Opcode },
1513 1.1 christos { Bad_Opcode },
1514 1.1 christos { VEX_W_TABLE (EVEX_W_0FE7_P_2) },
1515 1.1 christos },
1516 1.1 christos /* PREFIX_EVEX_0FE8 */
1517 1.1 christos {
1518 1.1 christos { Bad_Opcode },
1519 1.1 christos { Bad_Opcode },
1520 1.1 christos { "vpsubsb", { XM, Vex, EXx }, 0 },
1521 1.1 christos },
1522 1.1 christos /* PREFIX_EVEX_0FE9 */
1523 1.1 christos {
1524 1.1 christos { Bad_Opcode },
1525 1.1 christos { Bad_Opcode },
1526 1.1 christos { "vpsubsw", { XM, Vex, EXx }, 0 },
1527 1.1 christos },
1528 1.1 christos /* PREFIX_EVEX_0FEA */
1529 1.1 christos {
1530 1.1 christos { Bad_Opcode },
1531 1.1 christos { Bad_Opcode },
1532 1.1 christos { "vpminsw", { XM, Vex, EXx }, 0 },
1533 1.1 christos },
1534 1.1 christos /* PREFIX_EVEX_0FEB */
1535 1.1 christos {
1536 1.1 christos { Bad_Opcode },
1537 1.1 christos { Bad_Opcode },
1538 1.1 christos { "vpor%LW", { XM, Vex, EXx }, 0 },
1539 1.1 christos },
1540 1.1 christos /* PREFIX_EVEX_0FEC */
1541 1.1 christos {
1542 1.1 christos { Bad_Opcode },
1543 1.1 christos { Bad_Opcode },
1544 1.1 christos { "vpaddsb", { XM, Vex, EXx }, 0 },
1545 1.1 christos },
1546 1.1 christos /* PREFIX_EVEX_0FED */
1547 1.1 christos {
1548 1.1 christos { Bad_Opcode },
1549 1.1 christos { Bad_Opcode },
1550 1.1 christos { "vpaddsw", { XM, Vex, EXx }, 0 },
1551 1.1 christos },
1552 1.1 christos /* PREFIX_EVEX_0FEE */
1553 1.1 christos {
1554 1.1 christos { Bad_Opcode },
1555 1.1 christos { Bad_Opcode },
1556 1.1 christos { "vpmaxsw", { XM, Vex, EXx }, 0 },
1557 1.1 christos },
1558 1.1 christos /* PREFIX_EVEX_0FEF */
1559 1.1 christos {
1560 1.1 christos { Bad_Opcode },
1561 1.1 christos { Bad_Opcode },
1562 1.1 christos { "vpxor%LW", { XM, Vex, EXx }, 0 },
1563 1.1 christos },
1564 1.1 christos /* PREFIX_EVEX_0FF1 */
1565 1.1 christos {
1566 1.1 christos { Bad_Opcode },
1567 1.1 christos { Bad_Opcode },
1568 1.1 christos { "vpsllw", { XM, Vex, EXxmm }, 0 },
1569 1.1 christos },
1570 1.1 christos /* PREFIX_EVEX_0FF2 */
1571 1.1 christos {
1572 1.1 christos { Bad_Opcode },
1573 1.1 christos { Bad_Opcode },
1574 1.1 christos { VEX_W_TABLE (EVEX_W_0FF2_P_2) },
1575 1.1 christos },
1576 1.1 christos /* PREFIX_EVEX_0FF3 */
1577 1.1 christos {
1578 1.1 christos { Bad_Opcode },
1579 1.1 christos { Bad_Opcode },
1580 1.1 christos { VEX_W_TABLE (EVEX_W_0FF3_P_2) },
1581 1.1 christos },
1582 1.1 christos /* PREFIX_EVEX_0FF4 */
1583 1.1 christos {
1584 1.1 christos { Bad_Opcode },
1585 1.1 christos { Bad_Opcode },
1586 1.1 christos { VEX_W_TABLE (EVEX_W_0FF4_P_2) },
1587 1.1 christos },
1588 1.1 christos /* PREFIX_EVEX_0FF5 */
1589 1.1 christos {
1590 1.1 christos { Bad_Opcode },
1591 1.1 christos { Bad_Opcode },
1592 1.1 christos { "vpmaddwd", { XM, Vex, EXx }, 0 },
1593 1.1 christos },
1594 1.1 christos /* PREFIX_EVEX_0FF6 */
1595 1.1 christos {
1596 1.1 christos { Bad_Opcode },
1597 1.1 christos { Bad_Opcode },
1598 1.1 christos { "vpsadbw", { XM, Vex, EXx }, 0 },
1599 1.1 christos },
1600 1.1 christos /* PREFIX_EVEX_0FF8 */
1601 1.1 christos {
1602 1.1 christos { Bad_Opcode },
1603 1.1 christos { Bad_Opcode },
1604 1.1 christos { "vpsubb", { XM, Vex, EXx }, 0 },
1605 1.1 christos },
1606 1.1 christos /* PREFIX_EVEX_0FF9 */
1607 1.1 christos {
1608 1.1 christos { Bad_Opcode },
1609 1.1 christos { Bad_Opcode },
1610 1.1 christos { "vpsubw", { XM, Vex, EXx }, 0 },
1611 1.1 christos },
1612 1.1 christos /* PREFIX_EVEX_0FFA */
1613 1.1 christos {
1614 1.1 christos { Bad_Opcode },
1615 1.1 christos { Bad_Opcode },
1616 1.1 christos { VEX_W_TABLE (EVEX_W_0FFA_P_2) },
1617 1.1 christos },
1618 1.1 christos /* PREFIX_EVEX_0FFB */
1619 1.1 christos {
1620 1.1 christos { Bad_Opcode },
1621 1.1 christos { Bad_Opcode },
1622 1.1 christos { VEX_W_TABLE (EVEX_W_0FFB_P_2) },
1623 1.1 christos },
1624 1.1 christos /* PREFIX_EVEX_0FFC */
1625 1.1 christos {
1626 1.1 christos { Bad_Opcode },
1627 1.1 christos { Bad_Opcode },
1628 1.1 christos { "vpaddb", { XM, Vex, EXx }, 0 },
1629 1.1 christos },
1630 1.1 christos /* PREFIX_EVEX_0FFD */
1631 1.1 christos {
1632 1.1 christos { Bad_Opcode },
1633 1.1 christos { Bad_Opcode },
1634 1.1 christos { "vpaddw", { XM, Vex, EXx }, 0 },
1635 1.1 christos },
1636 1.1 christos /* PREFIX_EVEX_0FFE */
1637 1.1 christos {
1638 1.1 christos { Bad_Opcode },
1639 1.1 christos { Bad_Opcode },
1640 1.1 christos { VEX_W_TABLE (EVEX_W_0FFE_P_2) },
1641 1.1 christos },
1642 1.1 christos /* PREFIX_EVEX_0F3800 */
1643 1.1 christos {
1644 1.1 christos { Bad_Opcode },
1645 1.1 christos { Bad_Opcode },
1646 1.1 christos { "vpshufb", { XM, Vex, EXx }, 0 },
1647 1.1 christos },
1648 1.1 christos /* PREFIX_EVEX_0F3804 */
1649 1.1 christos {
1650 1.1 christos { Bad_Opcode },
1651 1.1 christos { Bad_Opcode },
1652 1.1 christos { "vpmaddubsw", { XM, Vex, EXx }, 0 },
1653 1.1 christos },
1654 1.1 christos /* PREFIX_EVEX_0F380B */
1655 1.1 christos {
1656 1.1 christos { Bad_Opcode },
1657 1.1 christos { Bad_Opcode },
1658 1.1 christos { "vpmulhrsw", { XM, Vex, EXx }, 0 },
1659 1.1 christos },
1660 1.1 christos /* PREFIX_EVEX_0F380C */
1661 1.1 christos {
1662 1.1 christos { Bad_Opcode },
1663 1.1 christos { Bad_Opcode },
1664 1.1 christos { VEX_W_TABLE (EVEX_W_0F380C_P_2) },
1665 1.1 christos },
1666 1.1 christos /* PREFIX_EVEX_0F380D */
1667 1.1 christos {
1668 1.1 christos { Bad_Opcode },
1669 1.1 christos { Bad_Opcode },
1670 1.1 christos { VEX_W_TABLE (EVEX_W_0F380D_P_2) },
1671 1.1 christos },
1672 1.1 christos /* PREFIX_EVEX_0F3810 */
1673 1.1 christos {
1674 1.1 christos { Bad_Opcode },
1675 1.1 christos { VEX_W_TABLE (EVEX_W_0F3810_P_1) },
1676 1.1 christos { VEX_W_TABLE (EVEX_W_0F3810_P_2) },
1677 1.1 christos },
1678 1.1 christos /* PREFIX_EVEX_0F3811 */
1679 1.1 christos {
1680 1.1 christos { Bad_Opcode },
1681 1.1 christos { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
1682 1.1 christos { VEX_W_TABLE (EVEX_W_0F3811_P_2) },
1683 1.1 christos },
1684 1.1 christos /* PREFIX_EVEX_0F3812 */
1685 1.1 christos {
1686 1.1 christos { Bad_Opcode },
1687 1.1 christos { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
1688 1.1 christos { VEX_W_TABLE (EVEX_W_0F3812_P_2) },
1689 1.1 christos },
1690 1.1 christos /* PREFIX_EVEX_0F3813 */
1691 1.1 christos {
1692 1.1 christos { Bad_Opcode },
1693 1.1 christos { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
1694 1.1 christos { VEX_W_TABLE (EVEX_W_0F3813_P_2) },
1695 1.1 christos },
1696 1.1 christos /* PREFIX_EVEX_0F3814 */
1697 1.1 christos {
1698 1.1 christos { Bad_Opcode },
1699 1.1 christos { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
1700 1.1 christos { "vprorv%LW", { XM, Vex, EXx }, 0 },
1701 1.1 christos },
1702 1.1 christos /* PREFIX_EVEX_0F3815 */
1703 1.1 christos {
1704 1.1 christos { Bad_Opcode },
1705 1.1 christos { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
1706 1.1 christos { "vprolv%LW", { XM, Vex, EXx }, 0 },
1707 1.1 christos },
1708 1.1 christos /* PREFIX_EVEX_0F3816 */
1709 1.1 christos {
1710 1.1 christos { Bad_Opcode },
1711 1.1 christos { Bad_Opcode },
1712 1.1 christos { "vpermp%XW", { XM, Vex, EXx }, 0 },
1713 1.1 christos },
1714 1.1 christos /* PREFIX_EVEX_0F3818 */
1715 1.1 christos {
1716 1.1 christos { Bad_Opcode },
1717 1.1 christos { Bad_Opcode },
1718 1.1 christos { VEX_W_TABLE (EVEX_W_0F3818_P_2) },
1719 1.1 christos },
1720 1.1 christos /* PREFIX_EVEX_0F3819 */
1721 1.1 christos {
1722 1.1 christos { Bad_Opcode },
1723 1.1 christos { Bad_Opcode },
1724 1.1 christos { VEX_W_TABLE (EVEX_W_0F3819_P_2) },
1725 1.1 christos },
1726 1.1 christos /* PREFIX_EVEX_0F381A */
1727 1.1 christos {
1728 1.1 christos { Bad_Opcode },
1729 1.1 christos { Bad_Opcode },
1730 1.1 christos { VEX_W_TABLE (EVEX_W_0F381A_P_2) },
1731 1.1 christos },
1732 1.1 christos /* PREFIX_EVEX_0F381B */
1733 1.1 christos {
1734 1.1 christos { Bad_Opcode },
1735 1.1 christos { Bad_Opcode },
1736 1.1 christos { VEX_W_TABLE (EVEX_W_0F381B_P_2) },
1737 1.1 christos },
1738 1.1 christos /* PREFIX_EVEX_0F381C */
1739 1.1 christos {
1740 1.1 christos { Bad_Opcode },
1741 1.1 christos { Bad_Opcode },
1742 1.1 christos { "vpabsb", { XM, EXx }, 0 },
1743 1.1 christos },
1744 1.1 christos /* PREFIX_EVEX_0F381D */
1745 1.1 christos {
1746 1.1 christos { Bad_Opcode },
1747 1.1 christos { Bad_Opcode },
1748 1.1 christos { "vpabsw", { XM, EXx }, 0 },
1749 1.1 christos },
1750 1.1 christos /* PREFIX_EVEX_0F381E */
1751 1.1 christos {
1752 1.1 christos { Bad_Opcode },
1753 1.1 christos { Bad_Opcode },
1754 1.1 christos { VEX_W_TABLE (EVEX_W_0F381E_P_2) },
1755 1.1 christos },
1756 1.1 christos /* PREFIX_EVEX_0F381F */
1757 1.1 christos {
1758 1.1 christos { Bad_Opcode },
1759 1.1 christos { Bad_Opcode },
1760 1.1 christos { VEX_W_TABLE (EVEX_W_0F381F_P_2) },
1761 1.1 christos },
1762 1.1 christos /* PREFIX_EVEX_0F3820 */
1763 1.1 christos {
1764 1.1 christos { Bad_Opcode },
1765 1.1 christos { VEX_W_TABLE (EVEX_W_0F3820_P_1) },
1766 1.1 christos { "vpmovsxbw", { XM, EXxmmq }, 0 },
1767 1.1 christos },
1768 1.1 christos /* PREFIX_EVEX_0F3821 */
1769 1.1 christos {
1770 1.1 christos { Bad_Opcode },
1771 1.1 christos { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
1772 1.1 christos { "vpmovsxbd", { XM, EXxmmqd }, 0 },
1773 1.1 christos },
1774 1.1 christos /* PREFIX_EVEX_0F3822 */
1775 1.1 christos {
1776 1.1 christos { Bad_Opcode },
1777 1.1 christos { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
1778 1.1 christos { "vpmovsxbq", { XM, EXxmmdw }, 0 },
1779 1.1 christos },
1780 1.1 christos /* PREFIX_EVEX_0F3823 */
1781 1.1 christos {
1782 1.1 christos { Bad_Opcode },
1783 1.1 christos { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
1784 1.1 christos { "vpmovsxwd", { XM, EXxmmq }, 0 },
1785 1.1 christos },
1786 1.1 christos /* PREFIX_EVEX_0F3824 */
1787 1.1 christos {
1788 1.1 christos { Bad_Opcode },
1789 1.1 christos { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
1790 1.1 christos { "vpmovsxwq", { XM, EXxmmqd }, 0 },
1791 1.1 christos },
1792 1.1 christos /* PREFIX_EVEX_0F3825 */
1793 1.1 christos {
1794 1.1 christos { Bad_Opcode },
1795 1.1 christos { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
1796 1.1 christos { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
1797 1.1 christos },
1798 1.1 christos /* PREFIX_EVEX_0F3826 */
1799 1.1 christos {
1800 1.1 christos { Bad_Opcode },
1801 1.1 christos { VEX_W_TABLE (EVEX_W_0F3826_P_1) },
1802 1.1 christos { VEX_W_TABLE (EVEX_W_0F3826_P_2) },
1803 1.1 christos },
1804 1.1 christos /* PREFIX_EVEX_0F3827 */
1805 1.1 christos {
1806 1.1 christos { Bad_Opcode },
1807 1.1 christos { "vptestnm%LW", { XMask, Vex, EXx }, 0 },
1808 1.1 christos { "vptestm%LW", { XMask, Vex, EXx }, 0 },
1809 1.1 christos },
1810 1.1 christos /* PREFIX_EVEX_0F3828 */
1811 1.1 christos {
1812 1.1 christos { Bad_Opcode },
1813 1.1 christos { VEX_W_TABLE (EVEX_W_0F3828_P_1) },
1814 1.1 christos { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
1815 1.1 christos },
1816 1.1 christos /* PREFIX_EVEX_0F3829 */
1817 1.1 christos {
1818 1.1 christos { Bad_Opcode },
1819 1.1 christos { VEX_W_TABLE (EVEX_W_0F3829_P_1) },
1820 1.1 christos { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
1821 1.1 christos },
1822 1.1 christos /* PREFIX_EVEX_0F382A */
1823 1.1 christos {
1824 1.1 christos { Bad_Opcode },
1825 1.1 christos { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
1826 1.1 christos { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
1827 1.1 christos },
1828 1.1 christos /* PREFIX_EVEX_0F382B */
1829 1.1 christos {
1830 1.1 christos { Bad_Opcode },
1831 1.1 christos { Bad_Opcode },
1832 1.1 christos { VEX_W_TABLE (EVEX_W_0F382B_P_2) },
1833 1.1 christos },
1834 1.1 christos /* PREFIX_EVEX_0F382C */
1835 1.1 christos {
1836 1.1 christos { Bad_Opcode },
1837 1.1 christos { Bad_Opcode },
1838 1.1 christos { "vscalefp%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
1839 1.1 christos },
1840 1.1 christos /* PREFIX_EVEX_0F382D */
1841 1.1 christos {
1842 1.1 christos { Bad_Opcode },
1843 1.1 christos { Bad_Opcode },
1844 1.1 christos { "vscalefs%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
1845 1.1 christos },
1846 1.1 christos /* PREFIX_EVEX_0F3830 */
1847 1.1 christos {
1848 1.1 christos { Bad_Opcode },
1849 1.1 christos { VEX_W_TABLE (EVEX_W_0F3830_P_1) },
1850 1.1 christos { "vpmovzxbw", { XM, EXxmmq }, 0 },
1851 1.1 christos },
1852 1.1 christos /* PREFIX_EVEX_0F3831 */
1853 1.1 christos {
1854 1.1 christos { Bad_Opcode },
1855 1.1 christos { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
1856 1.1 christos { "vpmovzxbd", { XM, EXxmmqd }, 0 },
1857 1.1 christos },
1858 1.1 christos /* PREFIX_EVEX_0F3832 */
1859 1.1 christos {
1860 1.1 christos { Bad_Opcode },
1861 1.1 christos { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
1862 1.1 christos { "vpmovzxbq", { XM, EXxmmdw }, 0 },
1863 1.1 christos },
1864 1.1 christos /* PREFIX_EVEX_0F3833 */
1865 1.1 christos {
1866 1.1 christos { Bad_Opcode },
1867 1.1 christos { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
1868 1.1 christos { "vpmovzxwd", { XM, EXxmmq }, 0 },
1869 1.1 christos },
1870 1.1 christos /* PREFIX_EVEX_0F3834 */
1871 1.1 christos {
1872 1.1 christos { Bad_Opcode },
1873 1.1 christos { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
1874 1.1 christos { "vpmovzxwq", { XM, EXxmmqd }, 0 },
1875 1.1 christos },
1876 1.1 christos /* PREFIX_EVEX_0F3835 */
1877 1.1 christos {
1878 1.1 christos { Bad_Opcode },
1879 1.1 christos { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
1880 1.1 christos { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
1881 1.1 christos },
1882 1.1 christos /* PREFIX_EVEX_0F3836 */
1883 1.1 christos {
1884 1.1 christos { Bad_Opcode },
1885 1.1 christos { Bad_Opcode },
1886 1.1 christos { "vperm%LW", { XM, Vex, EXx }, 0 },
1887 1.1 christos },
1888 1.1 christos /* PREFIX_EVEX_0F3837 */
1889 1.1 christos {
1890 1.1 christos { Bad_Opcode },
1891 1.1 christos { Bad_Opcode },
1892 1.1 christos { VEX_W_TABLE (EVEX_W_0F3837_P_2) },
1893 1.1 christos },
1894 1.1 christos /* PREFIX_EVEX_0F3838 */
1895 1.1 christos {
1896 1.1 christos { Bad_Opcode },
1897 1.1 christos { VEX_W_TABLE (EVEX_W_0F3838_P_1) },
1898 1.1 christos { "vpminsb", { XM, Vex, EXx }, 0 },
1899 1.1 christos },
1900 1.1 christos /* PREFIX_EVEX_0F3839 */
1901 1.1 christos {
1902 1.1 christos { Bad_Opcode },
1903 1.1 christos { VEX_W_TABLE (EVEX_W_0F3839_P_1) },
1904 1.1 christos { "vpmins%LW", { XM, Vex, EXx }, 0 },
1905 1.1 christos },
1906 1.1 christos /* PREFIX_EVEX_0F383A */
1907 1.1 christos {
1908 1.1 christos { Bad_Opcode },
1909 1.1 christos { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
1910 1.1 christos { "vpminuw", { XM, Vex, EXx }, 0 },
1911 1.1 christos },
1912 1.1 christos /* PREFIX_EVEX_0F383B */
1913 1.1 christos {
1914 1.1 christos { Bad_Opcode },
1915 1.1 christos { Bad_Opcode },
1916 1.1 christos { "vpminu%LW", { XM, Vex, EXx }, 0 },
1917 1.1 christos },
1918 1.1 christos /* PREFIX_EVEX_0F383C */
1919 1.1 christos {
1920 1.1 christos { Bad_Opcode },
1921 1.1 christos { Bad_Opcode },
1922 1.1 christos { "vpmaxsb", { XM, Vex, EXx }, 0 },
1923 1.1 christos },
1924 1.1 christos /* PREFIX_EVEX_0F383D */
1925 1.1 christos {
1926 1.1 christos { Bad_Opcode },
1927 1.1 christos { Bad_Opcode },
1928 1.1 christos { "vpmaxs%LW", { XM, Vex, EXx }, 0 },
1929 1.1 christos },
1930 1.1 christos /* PREFIX_EVEX_0F383E */
1931 1.1 christos {
1932 1.1 christos { Bad_Opcode },
1933 1.1 christos { Bad_Opcode },
1934 1.1 christos { "vpmaxuw", { XM, Vex, EXx }, 0 },
1935 1.1 christos },
1936 1.1 christos /* PREFIX_EVEX_0F383F */
1937 1.1 christos {
1938 1.1 christos { Bad_Opcode },
1939 1.1 christos { Bad_Opcode },
1940 1.1 christos { "vpmaxu%LW", { XM, Vex, EXx }, 0 },
1941 1.1 christos },
1942 1.1 christos /* PREFIX_EVEX_0F3840 */
1943 1.1 christos {
1944 1.1 christos { Bad_Opcode },
1945 1.1 christos { Bad_Opcode },
1946 1.1 christos { VEX_W_TABLE (EVEX_W_0F3840_P_2) },
1947 1.1 christos },
1948 1.1 christos /* PREFIX_EVEX_0F3842 */
1949 1.1 christos {
1950 1.1 christos { Bad_Opcode },
1951 1.1 christos { Bad_Opcode },
1952 1.1 christos { "vgetexpp%XW", { XM, EXx, EXxEVexS }, 0 },
1953 1.1 christos },
1954 1.1 christos /* PREFIX_EVEX_0F3843 */
1955 1.1 christos {
1956 1.1 christos { Bad_Opcode },
1957 1.1 christos { Bad_Opcode },
1958 1.1 christos { "vgetexps%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
1959 1.1 christos },
1960 1.1 christos /* PREFIX_EVEX_0F3844 */
1961 1.1 christos {
1962 1.1 christos { Bad_Opcode },
1963 1.1 christos { Bad_Opcode },
1964 1.1 christos { "vplzcnt%LW", { XM, EXx }, 0 },
1965 1.1 christos },
1966 1.1 christos /* PREFIX_EVEX_0F3845 */
1967 1.1 christos {
1968 1.1 christos { Bad_Opcode },
1969 1.1 christos { Bad_Opcode },
1970 1.1 christos { "vpsrlv%LW", { XM, Vex, EXx }, 0 },
1971 1.1 christos },
1972 1.1 christos /* PREFIX_EVEX_0F3846 */
1973 1.1 christos {
1974 1.1 christos { Bad_Opcode },
1975 1.1 christos { Bad_Opcode },
1976 1.1 christos { "vpsrav%LW", { XM, Vex, EXx }, 0 },
1977 1.1 christos },
1978 1.1 christos /* PREFIX_EVEX_0F3847 */
1979 1.1 christos {
1980 1.1 christos { Bad_Opcode },
1981 1.1 christos { Bad_Opcode },
1982 1.1 christos { "vpsllv%LW", { XM, Vex, EXx }, 0 },
1983 1.1 christos },
1984 1.1 christos /* PREFIX_EVEX_0F384C */
1985 1.1 christos {
1986 1.1 christos { Bad_Opcode },
1987 1.1 christos { Bad_Opcode },
1988 1.1 christos { "vrcp14p%XW", { XM, EXx }, 0 },
1989 1.1 christos },
1990 1.1 christos /* PREFIX_EVEX_0F384D */
1991 1.1 christos {
1992 1.1 christos { Bad_Opcode },
1993 1.1 christos { Bad_Opcode },
1994 1.1 christos { "vrcp14s%XW", { XMScalar, VexScalar, EXxmm_mdq }, 0 },
1995 1.1 christos },
1996 1.1 christos /* PREFIX_EVEX_0F384E */
1997 1.1 christos {
1998 1.1 christos { Bad_Opcode },
1999 1.1 christos { Bad_Opcode },
2000 1.1 christos { "vrsqrt14p%XW", { XM, EXx }, 0 },
2001 1.1 christos },
2002 1.1 christos /* PREFIX_EVEX_0F384F */
2003 1.1 christos {
2004 1.1 christos { Bad_Opcode },
2005 1.1 christos { Bad_Opcode },
2006 1.1 christos { "vrsqrt14s%XW", { XMScalar, VexScalar, EXxmm_mdq }, 0 },
2007 1.1 christos },
2008 1.4 christos /* PREFIX_EVEX_0F3850 */
2009 1.4 christos {
2010 1.4 christos { Bad_Opcode },
2011 1.4 christos { Bad_Opcode },
2012 1.4 christos { "vpdpbusd", { XM, Vex, EXx }, 0 },
2013 1.4 christos },
2014 1.4 christos /* PREFIX_EVEX_0F3851 */
2015 1.4 christos {
2016 1.4 christos { Bad_Opcode },
2017 1.4 christos { Bad_Opcode },
2018 1.4 christos { "vpdpbusds", { XM, Vex, EXx }, 0 },
2019 1.4 christos },
2020 1.4 christos /* PREFIX_EVEX_0F3852 */
2021 1.4 christos {
2022 1.4 christos { Bad_Opcode },
2023 1.4 christos { Bad_Opcode },
2024 1.4 christos { "vpdpwssd", { XM, Vex, EXx }, 0 },
2025 1.4 christos { "vp4dpwssd", { XM, Vex, EXxmm }, 0 },
2026 1.4 christos },
2027 1.4 christos /* PREFIX_EVEX_0F3853 */
2028 1.4 christos {
2029 1.4 christos { Bad_Opcode },
2030 1.4 christos { Bad_Opcode },
2031 1.4 christos { "vpdpwssds", { XM, Vex, EXx }, 0 },
2032 1.4 christos { "vp4dpwssds", { XM, Vex, EXxmm }, 0 },
2033 1.4 christos },
2034 1.4 christos /* PREFIX_EVEX_0F3854 */
2035 1.4 christos {
2036 1.4 christos { Bad_Opcode },
2037 1.4 christos { Bad_Opcode },
2038 1.4 christos { VEX_W_TABLE (EVEX_W_0F3854_P_2) },
2039 1.4 christos },
2040 1.4 christos /* PREFIX_EVEX_0F3855 */
2041 1.4 christos {
2042 1.4 christos { Bad_Opcode },
2043 1.4 christos { Bad_Opcode },
2044 1.4 christos { VEX_W_TABLE (EVEX_W_0F3855_P_2) },
2045 1.4 christos },
2046 1.1 christos /* PREFIX_EVEX_0F3858 */
2047 1.1 christos {
2048 1.1 christos { Bad_Opcode },
2049 1.1 christos { Bad_Opcode },
2050 1.1 christos { VEX_W_TABLE (EVEX_W_0F3858_P_2) },
2051 1.1 christos },
2052 1.1 christos /* PREFIX_EVEX_0F3859 */
2053 1.1 christos {
2054 1.1 christos { Bad_Opcode },
2055 1.1 christos { Bad_Opcode },
2056 1.1 christos { VEX_W_TABLE (EVEX_W_0F3859_P_2) },
2057 1.1 christos },
2058 1.1 christos /* PREFIX_EVEX_0F385A */
2059 1.1 christos {
2060 1.1 christos { Bad_Opcode },
2061 1.1 christos { Bad_Opcode },
2062 1.1 christos { VEX_W_TABLE (EVEX_W_0F385A_P_2) },
2063 1.1 christos },
2064 1.1 christos /* PREFIX_EVEX_0F385B */
2065 1.1 christos {
2066 1.1 christos { Bad_Opcode },
2067 1.1 christos { Bad_Opcode },
2068 1.1 christos { VEX_W_TABLE (EVEX_W_0F385B_P_2) },
2069 1.1 christos },
2070 1.4 christos /* PREFIX_EVEX_0F3862 */
2071 1.4 christos {
2072 1.4 christos { Bad_Opcode },
2073 1.4 christos { Bad_Opcode },
2074 1.4 christos { VEX_W_TABLE (EVEX_W_0F3862_P_2) },
2075 1.4 christos },
2076 1.4 christos /* PREFIX_EVEX_0F3863 */
2077 1.4 christos {
2078 1.4 christos { Bad_Opcode },
2079 1.4 christos { Bad_Opcode },
2080 1.4 christos { VEX_W_TABLE (EVEX_W_0F3863_P_2) },
2081 1.4 christos },
2082 1.1 christos /* PREFIX_EVEX_0F3864 */
2083 1.1 christos {
2084 1.1 christos { Bad_Opcode },
2085 1.1 christos { Bad_Opcode },
2086 1.1 christos { "vpblendm%LW", { XM, Vex, EXx }, 0 },
2087 1.1 christos },
2088 1.1 christos /* PREFIX_EVEX_0F3865 */
2089 1.1 christos {
2090 1.1 christos { Bad_Opcode },
2091 1.1 christos { Bad_Opcode },
2092 1.1 christos { "vblendmp%XW", { XM, Vex, EXx }, 0 },
2093 1.1 christos },
2094 1.1 christos /* PREFIX_EVEX_0F3866 */
2095 1.1 christos {
2096 1.1 christos { Bad_Opcode },
2097 1.1 christos { Bad_Opcode },
2098 1.1 christos { VEX_W_TABLE (EVEX_W_0F3866_P_2) },
2099 1.1 christos },
2100 1.4 christos /* PREFIX_EVEX_0F3870 */
2101 1.4 christos {
2102 1.4 christos { Bad_Opcode },
2103 1.4 christos { Bad_Opcode },
2104 1.4 christos { VEX_W_TABLE (EVEX_W_0F3870_P_2) },
2105 1.4 christos },
2106 1.4 christos /* PREFIX_EVEX_0F3871 */
2107 1.4 christos {
2108 1.4 christos { Bad_Opcode },
2109 1.4 christos { Bad_Opcode },
2110 1.4 christos { VEX_W_TABLE (EVEX_W_0F3871_P_2) },
2111 1.4 christos },
2112 1.4 christos /* PREFIX_EVEX_0F3872 */
2113 1.4 christos {
2114 1.4 christos { Bad_Opcode },
2115 1.4 christos { Bad_Opcode },
2116 1.4 christos { VEX_W_TABLE (EVEX_W_0F3872_P_2) },
2117 1.4 christos },
2118 1.4 christos /* PREFIX_EVEX_0F3873 */
2119 1.4 christos {
2120 1.4 christos { Bad_Opcode },
2121 1.4 christos { Bad_Opcode },
2122 1.4 christos { VEX_W_TABLE (EVEX_W_0F3873_P_2) },
2123 1.4 christos },
2124 1.1 christos /* PREFIX_EVEX_0F3875 */
2125 1.1 christos {
2126 1.1 christos { Bad_Opcode },
2127 1.1 christos { Bad_Opcode },
2128 1.1 christos { VEX_W_TABLE (EVEX_W_0F3875_P_2) },
2129 1.1 christos },
2130 1.1 christos /* PREFIX_EVEX_0F3876 */
2131 1.1 christos {
2132 1.1 christos { Bad_Opcode },
2133 1.1 christos { Bad_Opcode },
2134 1.1 christos { "vpermi2%LW", { XM, Vex, EXx }, 0 },
2135 1.1 christos },
2136 1.1 christos /* PREFIX_EVEX_0F3877 */
2137 1.1 christos {
2138 1.1 christos { Bad_Opcode },
2139 1.1 christos { Bad_Opcode },
2140 1.1 christos { "vpermi2p%XW", { XM, Vex, EXx }, 0 },
2141 1.1 christos },
2142 1.1 christos /* PREFIX_EVEX_0F3878 */
2143 1.1 christos {
2144 1.1 christos { Bad_Opcode },
2145 1.1 christos { Bad_Opcode },
2146 1.1 christos { VEX_W_TABLE (EVEX_W_0F3878_P_2) },
2147 1.1 christos },
2148 1.1 christos /* PREFIX_EVEX_0F3879 */
2149 1.1 christos {
2150 1.1 christos { Bad_Opcode },
2151 1.1 christos { Bad_Opcode },
2152 1.1 christos { VEX_W_TABLE (EVEX_W_0F3879_P_2) },
2153 1.1 christos },
2154 1.1 christos /* PREFIX_EVEX_0F387A */
2155 1.1 christos {
2156 1.1 christos { Bad_Opcode },
2157 1.1 christos { Bad_Opcode },
2158 1.1 christos { VEX_W_TABLE (EVEX_W_0F387A_P_2) },
2159 1.1 christos },
2160 1.1 christos /* PREFIX_EVEX_0F387B */
2161 1.1 christos {
2162 1.1 christos { Bad_Opcode },
2163 1.1 christos { Bad_Opcode },
2164 1.1 christos { VEX_W_TABLE (EVEX_W_0F387B_P_2) },
2165 1.1 christos },
2166 1.1 christos /* PREFIX_EVEX_0F387C */
2167 1.1 christos {
2168 1.1 christos { Bad_Opcode },
2169 1.1 christos { Bad_Opcode },
2170 1.1 christos { "vpbroadcast%LW", { XM, Rdq }, 0 },
2171 1.1 christos },
2172 1.1 christos /* PREFIX_EVEX_0F387D */
2173 1.1 christos {
2174 1.1 christos { Bad_Opcode },
2175 1.1 christos { Bad_Opcode },
2176 1.1 christos { VEX_W_TABLE (EVEX_W_0F387D_P_2) },
2177 1.1 christos },
2178 1.1 christos /* PREFIX_EVEX_0F387E */
2179 1.1 christos {
2180 1.1 christos { Bad_Opcode },
2181 1.1 christos { Bad_Opcode },
2182 1.1 christos { "vpermt2%LW", { XM, Vex, EXx }, 0 },
2183 1.1 christos },
2184 1.1 christos /* PREFIX_EVEX_0F387F */
2185 1.1 christos {
2186 1.1 christos { Bad_Opcode },
2187 1.1 christos { Bad_Opcode },
2188 1.1 christos { "vpermt2p%XW", { XM, Vex, EXx }, 0 },
2189 1.1 christos },
2190 1.1 christos /* PREFIX_EVEX_0F3883 */
2191 1.1 christos {
2192 1.1 christos { Bad_Opcode },
2193 1.1 christos { Bad_Opcode },
2194 1.1 christos { VEX_W_TABLE (EVEX_W_0F3883_P_2) },
2195 1.1 christos },
2196 1.1 christos /* PREFIX_EVEX_0F3888 */
2197 1.1 christos {
2198 1.1 christos { Bad_Opcode },
2199 1.1 christos { Bad_Opcode },
2200 1.1 christos { "vexpandp%XW", { XM, EXEvexXGscat }, 0 },
2201 1.1 christos },
2202 1.1 christos /* PREFIX_EVEX_0F3889 */
2203 1.1 christos {
2204 1.1 christos { Bad_Opcode },
2205 1.1 christos { Bad_Opcode },
2206 1.1 christos { "vpexpand%LW", { XM, EXEvexXGscat }, 0 },
2207 1.1 christos },
2208 1.1 christos /* PREFIX_EVEX_0F388A */
2209 1.1 christos {
2210 1.1 christos { Bad_Opcode },
2211 1.1 christos { Bad_Opcode },
2212 1.1 christos { "vcompressp%XW", { EXEvexXGscat, XM }, 0 },
2213 1.1 christos },
2214 1.1 christos /* PREFIX_EVEX_0F388B */
2215 1.1 christos {
2216 1.1 christos { Bad_Opcode },
2217 1.1 christos { Bad_Opcode },
2218 1.1 christos { "vpcompress%LW", { EXEvexXGscat, XM }, 0 },
2219 1.1 christos },
2220 1.1 christos /* PREFIX_EVEX_0F388D */
2221 1.1 christos {
2222 1.1 christos { Bad_Opcode },
2223 1.1 christos { Bad_Opcode },
2224 1.1 christos { VEX_W_TABLE (EVEX_W_0F388D_P_2) },
2225 1.1 christos },
2226 1.4 christos /* PREFIX_EVEX_0F388F */
2227 1.4 christos {
2228 1.4 christos { Bad_Opcode },
2229 1.4 christos { Bad_Opcode },
2230 1.4 christos { "vpshufbitqmb", { XMask, Vex, EXx }, 0 },
2231 1.4 christos },
2232 1.1 christos /* PREFIX_EVEX_0F3890 */
2233 1.1 christos {
2234 1.1 christos { Bad_Opcode },
2235 1.1 christos { Bad_Opcode },
2236 1.1 christos { "vpgatherd%LW", { XM, MVexVSIBDWpX }, 0 },
2237 1.1 christos },
2238 1.1 christos /* PREFIX_EVEX_0F3891 */
2239 1.1 christos {
2240 1.1 christos { Bad_Opcode },
2241 1.1 christos { Bad_Opcode },
2242 1.1 christos { VEX_W_TABLE (EVEX_W_0F3891_P_2) },
2243 1.1 christos },
2244 1.1 christos /* PREFIX_EVEX_0F3892 */
2245 1.1 christos {
2246 1.1 christos { Bad_Opcode },
2247 1.1 christos { Bad_Opcode },
2248 1.1 christos { "vgatherdp%XW", { XM, MVexVSIBDWpX}, 0 },
2249 1.1 christos },
2250 1.1 christos /* PREFIX_EVEX_0F3893 */
2251 1.1 christos {
2252 1.1 christos { Bad_Opcode },
2253 1.1 christos { Bad_Opcode },
2254 1.1 christos { VEX_W_TABLE (EVEX_W_0F3893_P_2) },
2255 1.1 christos },
2256 1.1 christos /* PREFIX_EVEX_0F3896 */
2257 1.1 christos {
2258 1.1 christos { Bad_Opcode },
2259 1.1 christos { Bad_Opcode },
2260 1.1 christos { "vfmaddsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2261 1.1 christos },
2262 1.1 christos /* PREFIX_EVEX_0F3897 */
2263 1.1 christos {
2264 1.1 christos { Bad_Opcode },
2265 1.1 christos { Bad_Opcode },
2266 1.1 christos { "vfmsubadd132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2267 1.1 christos },
2268 1.1 christos /* PREFIX_EVEX_0F3898 */
2269 1.1 christos {
2270 1.1 christos { Bad_Opcode },
2271 1.1 christos { Bad_Opcode },
2272 1.1 christos { "vfmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2273 1.1 christos },
2274 1.1 christos /* PREFIX_EVEX_0F3899 */
2275 1.1 christos {
2276 1.1 christos { Bad_Opcode },
2277 1.1 christos { Bad_Opcode },
2278 1.1 christos { "vfmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2279 1.1 christos },
2280 1.1 christos /* PREFIX_EVEX_0F389A */
2281 1.1 christos {
2282 1.1 christos { Bad_Opcode },
2283 1.1 christos { Bad_Opcode },
2284 1.1 christos { "vfmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2285 1.4 christos { "v4fmaddps", { XM, Vex, Mxmm }, 0 },
2286 1.1 christos },
2287 1.1 christos /* PREFIX_EVEX_0F389B */
2288 1.1 christos {
2289 1.1 christos { Bad_Opcode },
2290 1.1 christos { Bad_Opcode },
2291 1.1 christos { "vfmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2292 1.4 christos { "v4fmaddss", { XMScalar, VexScalar, Mxmm }, 0 },
2293 1.1 christos },
2294 1.1 christos /* PREFIX_EVEX_0F389C */
2295 1.1 christos {
2296 1.1 christos { Bad_Opcode },
2297 1.1 christos { Bad_Opcode },
2298 1.1 christos { "vfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2299 1.1 christos },
2300 1.1 christos /* PREFIX_EVEX_0F389D */
2301 1.1 christos {
2302 1.1 christos { Bad_Opcode },
2303 1.1 christos { Bad_Opcode },
2304 1.1 christos { "vfnmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2305 1.1 christos },
2306 1.1 christos /* PREFIX_EVEX_0F389E */
2307 1.1 christos {
2308 1.1 christos { Bad_Opcode },
2309 1.1 christos { Bad_Opcode },
2310 1.1 christos { "vfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2311 1.1 christos },
2312 1.1 christos /* PREFIX_EVEX_0F389F */
2313 1.1 christos {
2314 1.1 christos { Bad_Opcode },
2315 1.1 christos { Bad_Opcode },
2316 1.1 christos { "vfnmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2317 1.1 christos },
2318 1.1 christos /* PREFIX_EVEX_0F38A0 */
2319 1.1 christos {
2320 1.1 christos { Bad_Opcode },
2321 1.1 christos { Bad_Opcode },
2322 1.1 christos { "vpscatterd%LW", { MVexVSIBDWpX, XM }, 0 },
2323 1.1 christos },
2324 1.1 christos /* PREFIX_EVEX_0F38A1 */
2325 1.1 christos {
2326 1.1 christos { Bad_Opcode },
2327 1.1 christos { Bad_Opcode },
2328 1.1 christos { VEX_W_TABLE (EVEX_W_0F38A1_P_2) },
2329 1.1 christos },
2330 1.1 christos /* PREFIX_EVEX_0F38A2 */
2331 1.1 christos {
2332 1.1 christos { Bad_Opcode },
2333 1.1 christos { Bad_Opcode },
2334 1.1 christos { "vscatterdp%XW", { MVexVSIBDWpX, XM }, 0 },
2335 1.1 christos },
2336 1.1 christos /* PREFIX_EVEX_0F38A3 */
2337 1.1 christos {
2338 1.1 christos { Bad_Opcode },
2339 1.1 christos { Bad_Opcode },
2340 1.1 christos { VEX_W_TABLE (EVEX_W_0F38A3_P_2) },
2341 1.1 christos },
2342 1.1 christos /* PREFIX_EVEX_0F38A6 */
2343 1.1 christos {
2344 1.1 christos { Bad_Opcode },
2345 1.1 christos { Bad_Opcode },
2346 1.1 christos { "vfmaddsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2347 1.1 christos },
2348 1.1 christos /* PREFIX_EVEX_0F38A7 */
2349 1.1 christos {
2350 1.1 christos { Bad_Opcode },
2351 1.1 christos { Bad_Opcode },
2352 1.1 christos { "vfmsubadd213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2353 1.1 christos },
2354 1.1 christos /* PREFIX_EVEX_0F38A8 */
2355 1.1 christos {
2356 1.1 christos { Bad_Opcode },
2357 1.1 christos { Bad_Opcode },
2358 1.1 christos { "vfmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2359 1.1 christos },
2360 1.1 christos /* PREFIX_EVEX_0F38A9 */
2361 1.1 christos {
2362 1.1 christos { Bad_Opcode },
2363 1.1 christos { Bad_Opcode },
2364 1.1 christos { "vfmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2365 1.1 christos },
2366 1.1 christos /* PREFIX_EVEX_0F38AA */
2367 1.1 christos {
2368 1.1 christos { Bad_Opcode },
2369 1.1 christos { Bad_Opcode },
2370 1.1 christos { "vfmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2371 1.4 christos { "v4fnmaddps", { XM, Vex, Mxmm }, 0 },
2372 1.1 christos },
2373 1.1 christos /* PREFIX_EVEX_0F38AB */
2374 1.1 christos {
2375 1.1 christos { Bad_Opcode },
2376 1.1 christos { Bad_Opcode },
2377 1.1 christos { "vfmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2378 1.4 christos { "v4fnmaddss", { XMScalar, VexScalar, Mxmm }, 0 },
2379 1.1 christos },
2380 1.1 christos /* PREFIX_EVEX_0F38AC */
2381 1.1 christos {
2382 1.1 christos { Bad_Opcode },
2383 1.1 christos { Bad_Opcode },
2384 1.1 christos { "vfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2385 1.1 christos },
2386 1.1 christos /* PREFIX_EVEX_0F38AD */
2387 1.1 christos {
2388 1.1 christos { Bad_Opcode },
2389 1.1 christos { Bad_Opcode },
2390 1.1 christos { "vfnmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2391 1.1 christos },
2392 1.1 christos /* PREFIX_EVEX_0F38AE */
2393 1.1 christos {
2394 1.1 christos { Bad_Opcode },
2395 1.1 christos { Bad_Opcode },
2396 1.1 christos { "vfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2397 1.1 christos },
2398 1.1 christos /* PREFIX_EVEX_0F38AF */
2399 1.1 christos {
2400 1.1 christos { Bad_Opcode },
2401 1.1 christos { Bad_Opcode },
2402 1.1 christos { "vfnmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2403 1.1 christos },
2404 1.1 christos /* PREFIX_EVEX_0F38B4 */
2405 1.1 christos {
2406 1.1 christos { Bad_Opcode },
2407 1.1 christos { Bad_Opcode },
2408 1.1 christos { "vpmadd52luq", { XM, Vex, EXx }, 0 },
2409 1.1 christos },
2410 1.1 christos /* PREFIX_EVEX_0F38B5 */
2411 1.1 christos {
2412 1.1 christos { Bad_Opcode },
2413 1.1 christos { Bad_Opcode },
2414 1.1 christos { "vpmadd52huq", { XM, Vex, EXx }, 0 },
2415 1.1 christos },
2416 1.1 christos /* PREFIX_EVEX_0F38B6 */
2417 1.1 christos {
2418 1.1 christos { Bad_Opcode },
2419 1.1 christos { Bad_Opcode },
2420 1.1 christos { "vfmaddsub231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2421 1.1 christos },
2422 1.1 christos /* PREFIX_EVEX_0F38B7 */
2423 1.1 christos {
2424 1.1 christos { Bad_Opcode },
2425 1.1 christos { Bad_Opcode },
2426 1.1 christos { "vfmsubadd231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2427 1.1 christos },
2428 1.1 christos /* PREFIX_EVEX_0F38B8 */
2429 1.1 christos {
2430 1.1 christos { Bad_Opcode },
2431 1.1 christos { Bad_Opcode },
2432 1.1 christos { "vfmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2433 1.1 christos },
2434 1.1 christos /* PREFIX_EVEX_0F38B9 */
2435 1.1 christos {
2436 1.1 christos { Bad_Opcode },
2437 1.1 christos { Bad_Opcode },
2438 1.1 christos { "vfmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2439 1.1 christos },
2440 1.1 christos /* PREFIX_EVEX_0F38BA */
2441 1.1 christos {
2442 1.1 christos { Bad_Opcode },
2443 1.1 christos { Bad_Opcode },
2444 1.1 christos { "vfmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2445 1.1 christos },
2446 1.1 christos /* PREFIX_EVEX_0F38BB */
2447 1.1 christos {
2448 1.1 christos { Bad_Opcode },
2449 1.1 christos { Bad_Opcode },
2450 1.1 christos { "vfmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2451 1.1 christos },
2452 1.1 christos /* PREFIX_EVEX_0F38BC */
2453 1.1 christos {
2454 1.1 christos { Bad_Opcode },
2455 1.1 christos { Bad_Opcode },
2456 1.1 christos { "vfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2457 1.1 christos },
2458 1.1 christos /* PREFIX_EVEX_0F38BD */
2459 1.1 christos {
2460 1.1 christos { Bad_Opcode },
2461 1.1 christos { Bad_Opcode },
2462 1.1 christos { "vfnmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2463 1.1 christos },
2464 1.1 christos /* PREFIX_EVEX_0F38BE */
2465 1.1 christos {
2466 1.1 christos { Bad_Opcode },
2467 1.1 christos { Bad_Opcode },
2468 1.1 christos { "vfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
2469 1.1 christos },
2470 1.1 christos /* PREFIX_EVEX_0F38BF */
2471 1.1 christos {
2472 1.1 christos { Bad_Opcode },
2473 1.1 christos { Bad_Opcode },
2474 1.1 christos { "vfnmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
2475 1.1 christos },
2476 1.1 christos /* PREFIX_EVEX_0F38C4 */
2477 1.1 christos {
2478 1.1 christos { Bad_Opcode },
2479 1.1 christos { Bad_Opcode },
2480 1.1 christos { "vpconflict%LW", { XM, EXx }, 0 },
2481 1.1 christos },
2482 1.1 christos /* PREFIX_EVEX_0F38C6_REG_1 */
2483 1.1 christos {
2484 1.1 christos { Bad_Opcode },
2485 1.1 christos { Bad_Opcode },
2486 1.1 christos { "vgatherpf0dp%XW", { MVexVSIBDWpX }, 0 },
2487 1.1 christos },
2488 1.1 christos /* PREFIX_EVEX_0F38C6_REG_2 */
2489 1.1 christos {
2490 1.1 christos { Bad_Opcode },
2491 1.1 christos { Bad_Opcode },
2492 1.1 christos { "vgatherpf1dp%XW", { MVexVSIBDWpX }, 0 },
2493 1.1 christos },
2494 1.1 christos /* PREFIX_EVEX_0F38C6_REG_5 */
2495 1.1 christos {
2496 1.1 christos { Bad_Opcode },
2497 1.1 christos { Bad_Opcode },
2498 1.1 christos { "vscatterpf0dp%XW", { MVexVSIBDWpX }, 0 },
2499 1.1 christos },
2500 1.1 christos /* PREFIX_EVEX_0F38C6_REG_6 */
2501 1.1 christos {
2502 1.1 christos { Bad_Opcode },
2503 1.1 christos { Bad_Opcode },
2504 1.1 christos { "vscatterpf1dp%XW", { MVexVSIBDWpX }, 0 },
2505 1.1 christos },
2506 1.1 christos /* PREFIX_EVEX_0F38C7_REG_1 */
2507 1.1 christos {
2508 1.1 christos { Bad_Opcode },
2509 1.1 christos { Bad_Opcode },
2510 1.1 christos { VEX_W_TABLE (EVEX_W_0F38C7_R_1_P_2) },
2511 1.1 christos },
2512 1.1 christos /* PREFIX_EVEX_0F38C7_REG_2 */
2513 1.1 christos {
2514 1.1 christos { Bad_Opcode },
2515 1.1 christos { Bad_Opcode },
2516 1.1 christos { VEX_W_TABLE (EVEX_W_0F38C7_R_2_P_2) },
2517 1.1 christos },
2518 1.1 christos /* PREFIX_EVEX_0F38C7_REG_5 */
2519 1.1 christos {
2520 1.1 christos { Bad_Opcode },
2521 1.1 christos { Bad_Opcode },
2522 1.1 christos { VEX_W_TABLE (EVEX_W_0F38C7_R_5_P_2) },
2523 1.1 christos },
2524 1.1 christos /* PREFIX_EVEX_0F38C7_REG_6 */
2525 1.1 christos {
2526 1.1 christos { Bad_Opcode },
2527 1.1 christos { Bad_Opcode },
2528 1.1 christos { VEX_W_TABLE (EVEX_W_0F38C7_R_6_P_2) },
2529 1.1 christos },
2530 1.1 christos /* PREFIX_EVEX_0F38C8 */
2531 1.1 christos {
2532 1.1 christos { Bad_Opcode },
2533 1.1 christos { Bad_Opcode },
2534 1.1 christos { "vexp2p%XW", { XM, EXx, EXxEVexS }, 0 },
2535 1.1 christos },
2536 1.1 christos /* PREFIX_EVEX_0F38CA */
2537 1.1 christos {
2538 1.1 christos { Bad_Opcode },
2539 1.1 christos { Bad_Opcode },
2540 1.1 christos { "vrcp28p%XW", { XM, EXx, EXxEVexS }, 0 },
2541 1.1 christos },
2542 1.1 christos /* PREFIX_EVEX_0F38CB */
2543 1.1 christos {
2544 1.1 christos { Bad_Opcode },
2545 1.1 christos { Bad_Opcode },
2546 1.1 christos { "vrcp28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
2547 1.1 christos },
2548 1.1 christos /* PREFIX_EVEX_0F38CC */
2549 1.1 christos {
2550 1.1 christos { Bad_Opcode },
2551 1.1 christos { Bad_Opcode },
2552 1.1 christos { "vrsqrt28p%XW", { XM, EXx, EXxEVexS }, 0 },
2553 1.1 christos },
2554 1.1 christos /* PREFIX_EVEX_0F38CD */
2555 1.1 christos {
2556 1.1 christos { Bad_Opcode },
2557 1.1 christos { Bad_Opcode },
2558 1.1 christos { "vrsqrt28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
2559 1.1 christos },
2560 1.4 christos /* PREFIX_EVEX_0F38CF */
2561 1.4 christos {
2562 1.4 christos { Bad_Opcode },
2563 1.4 christos { Bad_Opcode },
2564 1.4 christos { "vgf2p8mulb", { XM, Vex, EXx }, 0 },
2565 1.4 christos },
2566 1.4 christos /* PREFIX_EVEX_0F38DC */
2567 1.4 christos {
2568 1.4 christos { Bad_Opcode },
2569 1.4 christos { Bad_Opcode },
2570 1.4 christos { "vaesenc", { XM, Vex, EXx }, 0 },
2571 1.4 christos },
2572 1.4 christos /* PREFIX_EVEX_0F38DD */
2573 1.4 christos {
2574 1.4 christos { Bad_Opcode },
2575 1.4 christos { Bad_Opcode },
2576 1.4 christos { "vaesenclast", { XM, Vex, EXx }, 0 },
2577 1.4 christos },
2578 1.4 christos /* PREFIX_EVEX_0F38DE */
2579 1.4 christos {
2580 1.4 christos { Bad_Opcode },
2581 1.4 christos { Bad_Opcode },
2582 1.4 christos { "vaesdec", { XM, Vex, EXx }, 0 },
2583 1.4 christos },
2584 1.4 christos /* PREFIX_EVEX_0F38DF */
2585 1.4 christos {
2586 1.4 christos { Bad_Opcode },
2587 1.4 christos { Bad_Opcode },
2588 1.4 christos { "vaesdeclast", { XM, Vex, EXx }, 0 },
2589 1.4 christos },
2590 1.1 christos /* PREFIX_EVEX_0F3A00 */
2591 1.1 christos {
2592 1.1 christos { Bad_Opcode },
2593 1.1 christos { Bad_Opcode },
2594 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A00_P_2) },
2595 1.1 christos },
2596 1.1 christos /* PREFIX_EVEX_0F3A01 */
2597 1.1 christos {
2598 1.1 christos { Bad_Opcode },
2599 1.1 christos { Bad_Opcode },
2600 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A01_P_2) },
2601 1.1 christos },
2602 1.1 christos /* PREFIX_EVEX_0F3A03 */
2603 1.1 christos {
2604 1.1 christos { Bad_Opcode },
2605 1.1 christos { Bad_Opcode },
2606 1.1 christos { "valign%LW", { XM, Vex, EXx, Ib }, 0 },
2607 1.1 christos },
2608 1.1 christos /* PREFIX_EVEX_0F3A04 */
2609 1.1 christos {
2610 1.1 christos { Bad_Opcode },
2611 1.1 christos { Bad_Opcode },
2612 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A04_P_2) },
2613 1.1 christos },
2614 1.1 christos /* PREFIX_EVEX_0F3A05 */
2615 1.1 christos {
2616 1.1 christos { Bad_Opcode },
2617 1.1 christos { Bad_Opcode },
2618 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A05_P_2) },
2619 1.1 christos },
2620 1.1 christos /* PREFIX_EVEX_0F3A08 */
2621 1.1 christos {
2622 1.1 christos { Bad_Opcode },
2623 1.1 christos { Bad_Opcode },
2624 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A08_P_2) },
2625 1.1 christos },
2626 1.1 christos /* PREFIX_EVEX_0F3A09 */
2627 1.1 christos {
2628 1.1 christos { Bad_Opcode },
2629 1.1 christos { Bad_Opcode },
2630 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A09_P_2) },
2631 1.1 christos },
2632 1.1 christos /* PREFIX_EVEX_0F3A0A */
2633 1.1 christos {
2634 1.1 christos { Bad_Opcode },
2635 1.1 christos { Bad_Opcode },
2636 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A0A_P_2) },
2637 1.1 christos },
2638 1.1 christos /* PREFIX_EVEX_0F3A0B */
2639 1.1 christos {
2640 1.1 christos { Bad_Opcode },
2641 1.1 christos { Bad_Opcode },
2642 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A0B_P_2) },
2643 1.1 christos },
2644 1.1 christos /* PREFIX_EVEX_0F3A0F */
2645 1.1 christos {
2646 1.1 christos { Bad_Opcode },
2647 1.1 christos { Bad_Opcode },
2648 1.1 christos { "vpalignr", { XM, Vex, EXx, Ib }, 0 },
2649 1.1 christos },
2650 1.1 christos /* PREFIX_EVEX_0F3A14 */
2651 1.1 christos {
2652 1.1 christos { Bad_Opcode },
2653 1.1 christos { Bad_Opcode },
2654 1.1 christos { "vpextrb", { Edqb, XM, Ib }, 0 },
2655 1.1 christos },
2656 1.1 christos /* PREFIX_EVEX_0F3A15 */
2657 1.1 christos {
2658 1.1 christos { Bad_Opcode },
2659 1.1 christos { Bad_Opcode },
2660 1.4 christos { "vpextrw", { Edqw, XM, Ib }, 0 },
2661 1.1 christos },
2662 1.1 christos /* PREFIX_EVEX_0F3A16 */
2663 1.1 christos {
2664 1.1 christos { Bad_Opcode },
2665 1.1 christos { Bad_Opcode },
2666 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A16_P_2) },
2667 1.1 christos },
2668 1.1 christos /* PREFIX_EVEX_0F3A17 */
2669 1.1 christos {
2670 1.1 christos { Bad_Opcode },
2671 1.1 christos { Bad_Opcode },
2672 1.1 christos { "vextractps", { Edqd, XMM, Ib }, 0 },
2673 1.1 christos },
2674 1.1 christos /* PREFIX_EVEX_0F3A18 */
2675 1.1 christos {
2676 1.1 christos { Bad_Opcode },
2677 1.1 christos { Bad_Opcode },
2678 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A18_P_2) },
2679 1.1 christos },
2680 1.1 christos /* PREFIX_EVEX_0F3A19 */
2681 1.1 christos {
2682 1.1 christos { Bad_Opcode },
2683 1.1 christos { Bad_Opcode },
2684 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A19_P_2) },
2685 1.1 christos },
2686 1.1 christos /* PREFIX_EVEX_0F3A1A */
2687 1.1 christos {
2688 1.1 christos { Bad_Opcode },
2689 1.1 christos { Bad_Opcode },
2690 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A1A_P_2) },
2691 1.1 christos },
2692 1.1 christos /* PREFIX_EVEX_0F3A1B */
2693 1.1 christos {
2694 1.1 christos { Bad_Opcode },
2695 1.1 christos { Bad_Opcode },
2696 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A1B_P_2) },
2697 1.1 christos },
2698 1.1 christos /* PREFIX_EVEX_0F3A1D */
2699 1.1 christos {
2700 1.1 christos { Bad_Opcode },
2701 1.1 christos { Bad_Opcode },
2702 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A1D_P_2) },
2703 1.1 christos },
2704 1.1 christos /* PREFIX_EVEX_0F3A1E */
2705 1.1 christos {
2706 1.1 christos { Bad_Opcode },
2707 1.1 christos { Bad_Opcode },
2708 1.1 christos { "vpcmpu%LW", { XMask, Vex, EXx, VPCMP }, 0 },
2709 1.1 christos },
2710 1.1 christos /* PREFIX_EVEX_0F3A1F */
2711 1.1 christos {
2712 1.1 christos { Bad_Opcode },
2713 1.1 christos { Bad_Opcode },
2714 1.1 christos { "vpcmp%LW", { XMask, Vex, EXx, VPCMP }, 0 },
2715 1.1 christos },
2716 1.1 christos /* PREFIX_EVEX_0F3A20 */
2717 1.1 christos {
2718 1.1 christos { Bad_Opcode },
2719 1.1 christos { Bad_Opcode },
2720 1.1 christos { "vpinsrb", { XM, Vex128, Edb, Ib }, 0 },
2721 1.1 christos },
2722 1.1 christos /* PREFIX_EVEX_0F3A21 */
2723 1.1 christos {
2724 1.1 christos { Bad_Opcode },
2725 1.1 christos { Bad_Opcode },
2726 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A21_P_2) },
2727 1.1 christos },
2728 1.1 christos /* PREFIX_EVEX_0F3A22 */
2729 1.1 christos {
2730 1.1 christos { Bad_Opcode },
2731 1.1 christos { Bad_Opcode },
2732 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A22_P_2) },
2733 1.1 christos },
2734 1.1 christos /* PREFIX_EVEX_0F3A23 */
2735 1.1 christos {
2736 1.1 christos { Bad_Opcode },
2737 1.1 christos { Bad_Opcode },
2738 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A23_P_2) },
2739 1.1 christos },
2740 1.1 christos /* PREFIX_EVEX_0F3A25 */
2741 1.1 christos {
2742 1.1 christos { Bad_Opcode },
2743 1.1 christos { Bad_Opcode },
2744 1.1 christos { "vpternlog%LW", { XM, Vex, EXx, Ib }, 0 },
2745 1.1 christos },
2746 1.1 christos /* PREFIX_EVEX_0F3A26 */
2747 1.1 christos {
2748 1.1 christos { Bad_Opcode },
2749 1.1 christos { Bad_Opcode },
2750 1.1 christos { "vgetmantp%XW", { XM, EXx, EXxEVexS, Ib }, 0 },
2751 1.1 christos },
2752 1.1 christos /* PREFIX_EVEX_0F3A27 */
2753 1.1 christos {
2754 1.1 christos { Bad_Opcode },
2755 1.1 christos { Bad_Opcode },
2756 1.1 christos { "vgetmants%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 },
2757 1.1 christos },
2758 1.1 christos /* PREFIX_EVEX_0F3A38 */
2759 1.1 christos {
2760 1.1 christos { Bad_Opcode },
2761 1.1 christos { Bad_Opcode },
2762 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A38_P_2) },
2763 1.1 christos },
2764 1.1 christos /* PREFIX_EVEX_0F3A39 */
2765 1.1 christos {
2766 1.1 christos { Bad_Opcode },
2767 1.1 christos { Bad_Opcode },
2768 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A39_P_2) },
2769 1.1 christos },
2770 1.1 christos /* PREFIX_EVEX_0F3A3A */
2771 1.1 christos {
2772 1.1 christos { Bad_Opcode },
2773 1.1 christos { Bad_Opcode },
2774 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A3A_P_2) },
2775 1.1 christos },
2776 1.1 christos /* PREFIX_EVEX_0F3A3B */
2777 1.1 christos {
2778 1.1 christos { Bad_Opcode },
2779 1.1 christos { Bad_Opcode },
2780 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A3B_P_2) },
2781 1.1 christos },
2782 1.1 christos /* PREFIX_EVEX_0F3A3E */
2783 1.1 christos {
2784 1.1 christos { Bad_Opcode },
2785 1.1 christos { Bad_Opcode },
2786 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A3E_P_2) },
2787 1.1 christos },
2788 1.1 christos /* PREFIX_EVEX_0F3A3F */
2789 1.1 christos {
2790 1.1 christos { Bad_Opcode },
2791 1.1 christos { Bad_Opcode },
2792 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A3F_P_2) },
2793 1.1 christos },
2794 1.1 christos /* PREFIX_EVEX_0F3A42 */
2795 1.1 christos {
2796 1.1 christos { Bad_Opcode },
2797 1.1 christos { Bad_Opcode },
2798 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A42_P_2) },
2799 1.1 christos },
2800 1.1 christos /* PREFIX_EVEX_0F3A43 */
2801 1.1 christos {
2802 1.1 christos { Bad_Opcode },
2803 1.1 christos { Bad_Opcode },
2804 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
2805 1.1 christos },
2806 1.4 christos /* PREFIX_EVEX_0F3A44 */
2807 1.4 christos {
2808 1.4 christos { Bad_Opcode },
2809 1.4 christos { Bad_Opcode },
2810 1.4 christos { "vpclmulqdq", { XM, Vex, EXx, Ib }, 0 },
2811 1.4 christos },
2812 1.1 christos /* PREFIX_EVEX_0F3A50 */
2813 1.1 christos {
2814 1.1 christos { Bad_Opcode },
2815 1.1 christos { Bad_Opcode },
2816 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A50_P_2) },
2817 1.1 christos },
2818 1.1 christos /* PREFIX_EVEX_0F3A51 */
2819 1.1 christos {
2820 1.1 christos { Bad_Opcode },
2821 1.1 christos { Bad_Opcode },
2822 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A51_P_2) },
2823 1.1 christos },
2824 1.1 christos /* PREFIX_EVEX_0F3A54 */
2825 1.1 christos {
2826 1.1 christos { Bad_Opcode },
2827 1.1 christos { Bad_Opcode },
2828 1.1 christos { "vfixupimmp%XW", { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
2829 1.1 christos },
2830 1.1 christos /* PREFIX_EVEX_0F3A55 */
2831 1.1 christos {
2832 1.1 christos { Bad_Opcode },
2833 1.1 christos { Bad_Opcode },
2834 1.1 christos { "vfixupimms%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 },
2835 1.1 christos },
2836 1.1 christos /* PREFIX_EVEX_0F3A56 */
2837 1.1 christos {
2838 1.1 christos { Bad_Opcode },
2839 1.1 christos { Bad_Opcode },
2840 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A56_P_2) },
2841 1.1 christos },
2842 1.1 christos /* PREFIX_EVEX_0F3A57 */
2843 1.1 christos {
2844 1.1 christos { Bad_Opcode },
2845 1.1 christos { Bad_Opcode },
2846 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A57_P_2) },
2847 1.1 christos },
2848 1.1 christos /* PREFIX_EVEX_0F3A66 */
2849 1.1 christos {
2850 1.1 christos { Bad_Opcode },
2851 1.1 christos { Bad_Opcode },
2852 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A66_P_2) },
2853 1.1 christos },
2854 1.1 christos /* PREFIX_EVEX_0F3A67 */
2855 1.1 christos {
2856 1.1 christos { Bad_Opcode },
2857 1.1 christos { Bad_Opcode },
2858 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A67_P_2) },
2859 1.1 christos },
2860 1.4 christos /* PREFIX_EVEX_0F3A70 */
2861 1.4 christos {
2862 1.4 christos { Bad_Opcode },
2863 1.4 christos { Bad_Opcode },
2864 1.4 christos { VEX_W_TABLE (EVEX_W_0F3A70_P_2) },
2865 1.4 christos },
2866 1.4 christos /* PREFIX_EVEX_0F3A71 */
2867 1.4 christos {
2868 1.4 christos { Bad_Opcode },
2869 1.4 christos { Bad_Opcode },
2870 1.4 christos { VEX_W_TABLE (EVEX_W_0F3A71_P_2) },
2871 1.4 christos },
2872 1.4 christos /* PREFIX_EVEX_0F3A72 */
2873 1.4 christos {
2874 1.4 christos { Bad_Opcode },
2875 1.4 christos { Bad_Opcode },
2876 1.4 christos { VEX_W_TABLE (EVEX_W_0F3A72_P_2) },
2877 1.4 christos },
2878 1.4 christos /* PREFIX_EVEX_0F3A73 */
2879 1.4 christos {
2880 1.4 christos { Bad_Opcode },
2881 1.4 christos { Bad_Opcode },
2882 1.4 christos { VEX_W_TABLE (EVEX_W_0F3A73_P_2) },
2883 1.4 christos },
2884 1.4 christos /* PREFIX_EVEX_0F3ACE */
2885 1.4 christos {
2886 1.4 christos { Bad_Opcode },
2887 1.4 christos { Bad_Opcode },
2888 1.4 christos { VEX_W_TABLE (EVEX_W_0F3ACE_P_2) },
2889 1.4 christos },
2890 1.4 christos /* PREFIX_EVEX_0F3ACF */
2891 1.4 christos {
2892 1.4 christos { Bad_Opcode },
2893 1.4 christos { Bad_Opcode },
2894 1.4 christos { VEX_W_TABLE (EVEX_W_0F3ACF_P_2) },
2895 1.4 christos },
2896 1.1 christos #endif /* NEED_PREFIX_TABLE */
2897 1.1 christos
2898 1.1 christos #ifdef NEED_VEX_W_TABLE
2899 1.1 christos /* EVEX_W_0F10_P_0 */
2900 1.1 christos {
2901 1.1 christos { "vmovups", { XM, EXEvexXNoBcst }, 0 },
2902 1.1 christos },
2903 1.1 christos /* EVEX_W_0F10_P_1_M_0 */
2904 1.1 christos {
2905 1.1 christos { "vmovss", { XMScalar, EXdScalar }, 0 },
2906 1.1 christos },
2907 1.1 christos /* EVEX_W_0F10_P_1_M_1 */
2908 1.1 christos {
2909 1.1 christos { "vmovss", { XMScalar, VexScalar, EXxmm_md }, 0 },
2910 1.1 christos },
2911 1.1 christos /* EVEX_W_0F10_P_2 */
2912 1.1 christos {
2913 1.1 christos { Bad_Opcode },
2914 1.1 christos { "vmovupd", { XM, EXEvexXNoBcst }, 0 },
2915 1.1 christos },
2916 1.1 christos /* EVEX_W_0F10_P_3_M_0 */
2917 1.1 christos {
2918 1.1 christos { Bad_Opcode },
2919 1.1 christos { "vmovsd", { XMScalar, EXqScalar }, 0 },
2920 1.1 christos },
2921 1.1 christos /* EVEX_W_0F10_P_3_M_1 */
2922 1.1 christos {
2923 1.1 christos { Bad_Opcode },
2924 1.1 christos { "vmovsd", { XMScalar, VexScalar, EXxmm_mq }, 0 },
2925 1.1 christos },
2926 1.1 christos /* EVEX_W_0F11_P_0 */
2927 1.1 christos {
2928 1.1 christos { "vmovups", { EXxS, XM }, 0 },
2929 1.1 christos },
2930 1.1 christos /* EVEX_W_0F11_P_1_M_0 */
2931 1.1 christos {
2932 1.1 christos { "vmovss", { EXdScalarS, XMScalar }, 0 },
2933 1.1 christos },
2934 1.1 christos /* EVEX_W_0F11_P_1_M_1 */
2935 1.1 christos {
2936 1.1 christos { "vmovss", { EXxS, Vex, XMScalar }, 0 },
2937 1.1 christos },
2938 1.1 christos /* EVEX_W_0F11_P_2 */
2939 1.1 christos {
2940 1.1 christos { Bad_Opcode },
2941 1.1 christos { "vmovupd", { EXxS, XM }, 0 },
2942 1.1 christos },
2943 1.1 christos /* EVEX_W_0F11_P_3_M_0 */
2944 1.1 christos {
2945 1.1 christos { Bad_Opcode },
2946 1.1 christos { "vmovsd", { EXqScalarS, XMScalar }, 0 },
2947 1.1 christos },
2948 1.1 christos /* EVEX_W_0F11_P_3_M_1 */
2949 1.1 christos {
2950 1.1 christos { Bad_Opcode },
2951 1.1 christos { "vmovsd", { EXxS, Vex, XMScalar }, 0 },
2952 1.1 christos },
2953 1.1 christos /* EVEX_W_0F12_P_0_M_0 */
2954 1.1 christos {
2955 1.1 christos { "vmovlps", { XMM, Vex, EXxmm_mq }, 0 },
2956 1.1 christos },
2957 1.1 christos /* EVEX_W_0F12_P_0_M_1 */
2958 1.1 christos {
2959 1.1 christos { "vmovhlps", { XMM, Vex, EXxmm_mq }, 0 },
2960 1.1 christos },
2961 1.1 christos /* EVEX_W_0F12_P_1 */
2962 1.1 christos {
2963 1.1 christos { "vmovsldup", { XM, EXEvexXNoBcst }, 0 },
2964 1.1 christos },
2965 1.1 christos /* EVEX_W_0F12_P_2 */
2966 1.1 christos {
2967 1.1 christos { Bad_Opcode },
2968 1.1 christos { "vmovlpd", { XMM, Vex, EXxmm_mq }, 0 },
2969 1.1 christos },
2970 1.1 christos /* EVEX_W_0F12_P_3 */
2971 1.1 christos {
2972 1.1 christos { Bad_Opcode },
2973 1.1 christos { "vmovddup", { XM, EXymmq }, 0 },
2974 1.1 christos },
2975 1.1 christos /* EVEX_W_0F13_P_0 */
2976 1.1 christos {
2977 1.1 christos { "vmovlps", { EXxmm_mq, XMM }, 0 },
2978 1.1 christos },
2979 1.1 christos /* EVEX_W_0F13_P_2 */
2980 1.1 christos {
2981 1.1 christos { Bad_Opcode },
2982 1.1 christos { "vmovlpd", { EXxmm_mq, XMM }, 0 },
2983 1.1 christos },
2984 1.1 christos /* EVEX_W_0F14_P_0 */
2985 1.1 christos {
2986 1.1 christos { "vunpcklps", { XM, Vex, EXx }, 0 },
2987 1.1 christos },
2988 1.1 christos /* EVEX_W_0F14_P_2 */
2989 1.1 christos {
2990 1.1 christos { Bad_Opcode },
2991 1.1 christos { "vunpcklpd", { XM, Vex, EXx }, 0 },
2992 1.1 christos },
2993 1.1 christos /* EVEX_W_0F15_P_0 */
2994 1.1 christos {
2995 1.1 christos { "vunpckhps", { XM, Vex, EXx }, 0 },
2996 1.1 christos },
2997 1.1 christos /* EVEX_W_0F15_P_2 */
2998 1.1 christos {
2999 1.1 christos { Bad_Opcode },
3000 1.1 christos { "vunpckhpd", { XM, Vex, EXx }, 0 },
3001 1.1 christos },
3002 1.1 christos /* EVEX_W_0F16_P_0_M_0 */
3003 1.1 christos {
3004 1.1 christos { "vmovhps", { XMM, Vex, EXxmm_mq }, 0 },
3005 1.1 christos },
3006 1.1 christos /* EVEX_W_0F16_P_0_M_1 */
3007 1.1 christos {
3008 1.1 christos { "vmovlhps", { XMM, Vex, EXx }, 0 },
3009 1.1 christos },
3010 1.1 christos /* EVEX_W_0F16_P_1 */
3011 1.1 christos {
3012 1.1 christos { "vmovshdup", { XM, EXx }, 0 },
3013 1.1 christos },
3014 1.1 christos /* EVEX_W_0F16_P_2 */
3015 1.1 christos {
3016 1.1 christos { Bad_Opcode },
3017 1.1 christos { "vmovhpd", { XMM, Vex, EXxmm_mq }, 0 },
3018 1.1 christos },
3019 1.1 christos /* EVEX_W_0F17_P_0 */
3020 1.1 christos {
3021 1.1 christos { "vmovhps", { EXxmm_mq, XMM }, 0 },
3022 1.1 christos },
3023 1.1 christos /* EVEX_W_0F17_P_2 */
3024 1.1 christos {
3025 1.1 christos { Bad_Opcode },
3026 1.1 christos { "vmovhpd", { EXxmm_mq, XMM }, 0 },
3027 1.1 christos },
3028 1.1 christos /* EVEX_W_0F28_P_0 */
3029 1.1 christos {
3030 1.1 christos { "vmovaps", { XM, EXx }, 0 },
3031 1.1 christos },
3032 1.1 christos /* EVEX_W_0F28_P_2 */
3033 1.1 christos {
3034 1.1 christos { Bad_Opcode },
3035 1.1 christos { "vmovapd", { XM, EXx }, 0 },
3036 1.1 christos },
3037 1.1 christos /* EVEX_W_0F29_P_0 */
3038 1.1 christos {
3039 1.1 christos { "vmovaps", { EXxS, XM }, 0 },
3040 1.1 christos },
3041 1.1 christos /* EVEX_W_0F29_P_2 */
3042 1.1 christos {
3043 1.1 christos { Bad_Opcode },
3044 1.1 christos { "vmovapd", { EXxS, XM }, 0 },
3045 1.1 christos },
3046 1.1 christos /* EVEX_W_0F2A_P_1 */
3047 1.1 christos {
3048 1.1 christos { "vcvtsi2ss", { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
3049 1.1 christos { "vcvtsi2ss", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
3050 1.1 christos },
3051 1.1 christos /* EVEX_W_0F2A_P_3 */
3052 1.1 christos {
3053 1.1 christos { "vcvtsi2sd", { XMScalar, VexScalar, Ed }, 0 },
3054 1.1 christos { "vcvtsi2sd", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
3055 1.1 christos },
3056 1.1 christos /* EVEX_W_0F2B_P_0 */
3057 1.1 christos {
3058 1.1 christos { "vmovntps", { EXx, XM }, 0 },
3059 1.1 christos },
3060 1.1 christos /* EVEX_W_0F2B_P_2 */
3061 1.1 christos {
3062 1.1 christos { Bad_Opcode },
3063 1.1 christos { "vmovntpd", { EXx, XM }, 0 },
3064 1.1 christos },
3065 1.1 christos /* EVEX_W_0F2E_P_0 */
3066 1.1 christos {
3067 1.1 christos { "vucomiss", { XMScalar, EXxmm_md, EXxEVexS }, 0 },
3068 1.1 christos },
3069 1.1 christos /* EVEX_W_0F2E_P_2 */
3070 1.1 christos {
3071 1.1 christos { Bad_Opcode },
3072 1.1 christos { "vucomisd", { XMScalar, EXxmm_mq, EXxEVexS }, 0 },
3073 1.1 christos },
3074 1.1 christos /* EVEX_W_0F2F_P_0 */
3075 1.1 christos {
3076 1.1 christos { "vcomiss", { XMScalar, EXxmm_md, EXxEVexS }, 0 },
3077 1.1 christos },
3078 1.1 christos /* EVEX_W_0F2F_P_2 */
3079 1.1 christos {
3080 1.1 christos { Bad_Opcode },
3081 1.1 christos { "vcomisd", { XMScalar, EXxmm_mq, EXxEVexS }, 0 },
3082 1.1 christos },
3083 1.1 christos /* EVEX_W_0F51_P_0 */
3084 1.1 christos {
3085 1.1 christos { "vsqrtps", { XM, EXx, EXxEVexR }, 0 },
3086 1.1 christos },
3087 1.1 christos /* EVEX_W_0F51_P_1 */
3088 1.1 christos {
3089 1.1 christos { "vsqrtss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3090 1.1 christos },
3091 1.1 christos /* EVEX_W_0F51_P_2 */
3092 1.1 christos {
3093 1.1 christos { Bad_Opcode },
3094 1.1 christos { "vsqrtpd", { XM, EXx, EXxEVexR }, 0 },
3095 1.1 christos },
3096 1.1 christos /* EVEX_W_0F51_P_3 */
3097 1.1 christos {
3098 1.1 christos { Bad_Opcode },
3099 1.1 christos { "vsqrtsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3100 1.1 christos },
3101 1.1 christos /* EVEX_W_0F54_P_0 */
3102 1.1 christos {
3103 1.1 christos { "vandps", { XM, Vex, EXx }, 0 },
3104 1.1 christos },
3105 1.1 christos /* EVEX_W_0F54_P_2 */
3106 1.1 christos {
3107 1.1 christos { Bad_Opcode },
3108 1.1 christos { "vandpd", { XM, Vex, EXx }, 0 },
3109 1.1 christos },
3110 1.1 christos /* EVEX_W_0F55_P_0 */
3111 1.1 christos {
3112 1.1 christos { "vandnps", { XM, Vex, EXx }, 0 },
3113 1.1 christos },
3114 1.1 christos /* EVEX_W_0F55_P_2 */
3115 1.1 christos {
3116 1.1 christos { Bad_Opcode },
3117 1.1 christos { "vandnpd", { XM, Vex, EXx }, 0 },
3118 1.1 christos },
3119 1.1 christos /* EVEX_W_0F56_P_0 */
3120 1.1 christos {
3121 1.1 christos { "vorps", { XM, Vex, EXx }, 0 },
3122 1.1 christos },
3123 1.1 christos /* EVEX_W_0F56_P_2 */
3124 1.1 christos {
3125 1.1 christos { Bad_Opcode },
3126 1.1 christos { "vorpd", { XM, Vex, EXx }, 0 },
3127 1.1 christos },
3128 1.1 christos /* EVEX_W_0F57_P_0 */
3129 1.1 christos {
3130 1.1 christos { "vxorps", { XM, Vex, EXx }, 0 },
3131 1.1 christos },
3132 1.1 christos /* EVEX_W_0F57_P_2 */
3133 1.1 christos {
3134 1.1 christos { Bad_Opcode },
3135 1.1 christos { "vxorpd", { XM, Vex, EXx }, 0 },
3136 1.1 christos },
3137 1.1 christos /* EVEX_W_0F58_P_0 */
3138 1.1 christos {
3139 1.1 christos { "vaddps", { XM, Vex, EXx, EXxEVexR }, 0 },
3140 1.1 christos },
3141 1.1 christos /* EVEX_W_0F58_P_1 */
3142 1.1 christos {
3143 1.1 christos { "vaddss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3144 1.1 christos },
3145 1.1 christos /* EVEX_W_0F58_P_2 */
3146 1.1 christos {
3147 1.1 christos { Bad_Opcode },
3148 1.1 christos { "vaddpd", { XM, Vex, EXx, EXxEVexR }, 0 },
3149 1.1 christos },
3150 1.1 christos /* EVEX_W_0F58_P_3 */
3151 1.1 christos {
3152 1.1 christos { Bad_Opcode },
3153 1.1 christos { "vaddsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3154 1.1 christos },
3155 1.1 christos /* EVEX_W_0F59_P_0 */
3156 1.1 christos {
3157 1.1 christos { "vmulps", { XM, Vex, EXx, EXxEVexR }, 0 },
3158 1.1 christos },
3159 1.1 christos /* EVEX_W_0F59_P_1 */
3160 1.1 christos {
3161 1.1 christos { "vmulss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3162 1.1 christos },
3163 1.1 christos /* EVEX_W_0F59_P_2 */
3164 1.1 christos {
3165 1.1 christos { Bad_Opcode },
3166 1.1 christos { "vmulpd", { XM, Vex, EXx, EXxEVexR }, 0 },
3167 1.1 christos },
3168 1.1 christos /* EVEX_W_0F59_P_3 */
3169 1.1 christos {
3170 1.1 christos { Bad_Opcode },
3171 1.1 christos { "vmulsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3172 1.1 christos },
3173 1.1 christos /* EVEX_W_0F5A_P_0 */
3174 1.1 christos {
3175 1.1 christos { "vcvtps2pd", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
3176 1.1 christos },
3177 1.1 christos /* EVEX_W_0F5A_P_1 */
3178 1.1 christos {
3179 1.1 christos { "vcvtss2sd", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
3180 1.1 christos },
3181 1.1 christos /* EVEX_W_0F5A_P_2 */
3182 1.1 christos {
3183 1.1 christos { Bad_Opcode },
3184 1.1 christos { "vcvtpd2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
3185 1.1 christos },
3186 1.1 christos /* EVEX_W_0F5A_P_3 */
3187 1.1 christos {
3188 1.1 christos { Bad_Opcode },
3189 1.1 christos { "vcvtsd2ss", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3190 1.1 christos },
3191 1.1 christos /* EVEX_W_0F5B_P_0 */
3192 1.1 christos {
3193 1.1 christos { "vcvtdq2ps", { XM, EXx, EXxEVexR }, 0 },
3194 1.1 christos { "vcvtqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
3195 1.1 christos },
3196 1.1 christos /* EVEX_W_0F5B_P_1 */
3197 1.1 christos {
3198 1.1 christos { "vcvttps2dq", { XM, EXx, EXxEVexS }, 0 },
3199 1.1 christos },
3200 1.1 christos /* EVEX_W_0F5B_P_2 */
3201 1.1 christos {
3202 1.1 christos { "vcvtps2dq", { XM, EXx, EXxEVexR }, 0 },
3203 1.1 christos },
3204 1.1 christos /* EVEX_W_0F5C_P_0 */
3205 1.1 christos {
3206 1.1 christos { "vsubps", { XM, Vex, EXx, EXxEVexR }, 0 },
3207 1.1 christos },
3208 1.1 christos /* EVEX_W_0F5C_P_1 */
3209 1.1 christos {
3210 1.1 christos { "vsubss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3211 1.1 christos },
3212 1.1 christos /* EVEX_W_0F5C_P_2 */
3213 1.1 christos {
3214 1.1 christos { Bad_Opcode },
3215 1.1 christos { "vsubpd", { XM, Vex, EXx, EXxEVexR }, 0 },
3216 1.1 christos },
3217 1.1 christos /* EVEX_W_0F5C_P_3 */
3218 1.1 christos {
3219 1.1 christos { Bad_Opcode },
3220 1.1 christos { "vsubsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3221 1.1 christos },
3222 1.1 christos /* EVEX_W_0F5D_P_0 */
3223 1.1 christos {
3224 1.1 christos { "vminps", { XM, Vex, EXx, EXxEVexS }, 0 },
3225 1.1 christos },
3226 1.1 christos /* EVEX_W_0F5D_P_1 */
3227 1.1 christos {
3228 1.1 christos { "vminss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
3229 1.1 christos },
3230 1.1 christos /* EVEX_W_0F5D_P_2 */
3231 1.1 christos {
3232 1.1 christos { Bad_Opcode },
3233 1.1 christos { "vminpd", { XM, Vex, EXx, EXxEVexS }, 0 },
3234 1.1 christos },
3235 1.1 christos /* EVEX_W_0F5D_P_3 */
3236 1.1 christos {
3237 1.1 christos { Bad_Opcode },
3238 1.1 christos { "vminsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 },
3239 1.1 christos },
3240 1.1 christos /* EVEX_W_0F5E_P_0 */
3241 1.1 christos {
3242 1.1 christos { "vdivps", { XM, Vex, EXx, EXxEVexR }, 0 },
3243 1.1 christos },
3244 1.1 christos /* EVEX_W_0F5E_P_1 */
3245 1.1 christos {
3246 1.1 christos { "vdivss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
3247 1.1 christos },
3248 1.1 christos /* EVEX_W_0F5E_P_2 */
3249 1.1 christos {
3250 1.1 christos { Bad_Opcode },
3251 1.1 christos { "vdivpd", { XM, Vex, EXx, EXxEVexR }, 0 },
3252 1.1 christos },
3253 1.1 christos /* EVEX_W_0F5E_P_3 */
3254 1.1 christos {
3255 1.1 christos { Bad_Opcode },
3256 1.1 christos { "vdivsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
3257 1.1 christos },
3258 1.1 christos /* EVEX_W_0F5F_P_0 */
3259 1.1 christos {
3260 1.1 christos { "vmaxps", { XM, Vex, EXx, EXxEVexS }, 0 },
3261 1.1 christos },
3262 1.1 christos /* EVEX_W_0F5F_P_1 */
3263 1.1 christos {
3264 1.1 christos { "vmaxss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
3265 1.1 christos },
3266 1.1 christos /* EVEX_W_0F5F_P_2 */
3267 1.1 christos {
3268 1.1 christos { Bad_Opcode },
3269 1.1 christos { "vmaxpd", { XM, Vex, EXx, EXxEVexS }, 0 },
3270 1.1 christos },
3271 1.1 christos /* EVEX_W_0F5F_P_3 */
3272 1.1 christos {
3273 1.1 christos { Bad_Opcode },
3274 1.1 christos { "vmaxsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 },
3275 1.1 christos },
3276 1.1 christos /* EVEX_W_0F62_P_2 */
3277 1.1 christos {
3278 1.1 christos { "vpunpckldq", { XM, Vex, EXx }, 0 },
3279 1.1 christos },
3280 1.1 christos /* EVEX_W_0F66_P_2 */
3281 1.1 christos {
3282 1.1 christos { "vpcmpgtd", { XMask, Vex, EXx }, 0 },
3283 1.1 christos },
3284 1.1 christos /* EVEX_W_0F6A_P_2 */
3285 1.1 christos {
3286 1.1 christos { "vpunpckhdq", { XM, Vex, EXx }, 0 },
3287 1.1 christos },
3288 1.1 christos /* EVEX_W_0F6B_P_2 */
3289 1.1 christos {
3290 1.1 christos { "vpackssdw", { XM, Vex, EXx }, 0 },
3291 1.1 christos },
3292 1.1 christos /* EVEX_W_0F6C_P_2 */
3293 1.1 christos {
3294 1.1 christos { Bad_Opcode },
3295 1.1 christos { "vpunpcklqdq", { XM, Vex, EXx }, 0 },
3296 1.1 christos },
3297 1.1 christos /* EVEX_W_0F6D_P_2 */
3298 1.1 christos {
3299 1.1 christos { Bad_Opcode },
3300 1.1 christos { "vpunpckhqdq", { XM, Vex, EXx }, 0 },
3301 1.1 christos },
3302 1.1 christos /* EVEX_W_0F6E_P_2 */
3303 1.1 christos {
3304 1.1 christos { "vmovd", { XMScalar, Ed }, 0 },
3305 1.1 christos { "vmovq", { XMScalar, Eq }, 0 },
3306 1.1 christos },
3307 1.1 christos /* EVEX_W_0F6F_P_1 */
3308 1.1 christos {
3309 1.1 christos { "vmovdqu32", { XM, EXEvexXNoBcst }, 0 },
3310 1.1 christos { "vmovdqu64", { XM, EXEvexXNoBcst }, 0 },
3311 1.1 christos },
3312 1.1 christos /* EVEX_W_0F6F_P_2 */
3313 1.1 christos {
3314 1.1 christos { "vmovdqa32", { XM, EXEvexXNoBcst }, 0 },
3315 1.1 christos { "vmovdqa64", { XM, EXEvexXNoBcst }, 0 },
3316 1.1 christos },
3317 1.1 christos /* EVEX_W_0F6F_P_3 */
3318 1.1 christos {
3319 1.1 christos { "vmovdqu8", { XM, EXx }, 0 },
3320 1.1 christos { "vmovdqu16", { XM, EXx }, 0 },
3321 1.1 christos },
3322 1.1 christos /* EVEX_W_0F70_P_2 */
3323 1.1 christos {
3324 1.1 christos { "vpshufd", { XM, EXx, Ib }, 0 },
3325 1.1 christos },
3326 1.1 christos /* EVEX_W_0F72_R_2_P_2 */
3327 1.1 christos {
3328 1.1 christos { "vpsrld", { Vex, EXx, Ib }, 0 },
3329 1.1 christos },
3330 1.1 christos /* EVEX_W_0F72_R_6_P_2 */
3331 1.1 christos {
3332 1.1 christos { "vpslld", { Vex, EXx, Ib }, 0 },
3333 1.1 christos },
3334 1.1 christos /* EVEX_W_0F73_R_2_P_2 */
3335 1.1 christos {
3336 1.1 christos { Bad_Opcode },
3337 1.1 christos { "vpsrlq", { Vex, EXx, Ib }, 0 },
3338 1.1 christos },
3339 1.1 christos /* EVEX_W_0F73_R_6_P_2 */
3340 1.1 christos {
3341 1.1 christos { Bad_Opcode },
3342 1.1 christos { "vpsllq", { Vex, EXx, Ib }, 0 },
3343 1.1 christos },
3344 1.1 christos /* EVEX_W_0F76_P_2 */
3345 1.1 christos {
3346 1.1 christos { "vpcmpeqd", { XMask, Vex, EXx }, 0 },
3347 1.1 christos },
3348 1.1 christos /* EVEX_W_0F78_P_0 */
3349 1.1 christos {
3350 1.1 christos { "vcvttps2udq", { XM, EXx, EXxEVexS }, 0 },
3351 1.1 christos { "vcvttpd2udq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
3352 1.1 christos },
3353 1.1 christos /* EVEX_W_0F78_P_2 */
3354 1.1 christos {
3355 1.1 christos { "vcvttps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
3356 1.1 christos { "vcvttpd2uqq", { XM, EXx, EXxEVexS }, 0 },
3357 1.1 christos },
3358 1.1 christos /* EVEX_W_0F79_P_0 */
3359 1.1 christos {
3360 1.1 christos { "vcvtps2udq", { XM, EXx, EXxEVexR }, 0 },
3361 1.1 christos { "vcvtpd2udq%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
3362 1.1 christos },
3363 1.1 christos /* EVEX_W_0F79_P_2 */
3364 1.1 christos {
3365 1.1 christos { "vcvtps2uqq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
3366 1.1 christos { "vcvtpd2uqq", { XM, EXx, EXxEVexR }, 0 },
3367 1.1 christos },
3368 1.1 christos /* EVEX_W_0F7A_P_1 */
3369 1.1 christos {
3370 1.1 christos { "vcvtudq2pd", { XM, EXEvexHalfBcstXmmq }, 0 },
3371 1.1 christos { "vcvtuqq2pd", { XM, EXx, EXxEVexR }, 0 },
3372 1.1 christos },
3373 1.1 christos /* EVEX_W_0F7A_P_2 */
3374 1.1 christos {
3375 1.1 christos { "vcvttps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
3376 1.1 christos { "vcvttpd2qq", { XM, EXx, EXxEVexS }, 0 },
3377 1.1 christos },
3378 1.1 christos /* EVEX_W_0F7A_P_3 */
3379 1.1 christos {
3380 1.1 christos { "vcvtudq2ps", { XM, EXx, EXxEVexR }, 0 },
3381 1.1 christos { "vcvtuqq2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
3382 1.1 christos },
3383 1.1 christos /* EVEX_W_0F7B_P_1 */
3384 1.1 christos {
3385 1.1 christos { "vcvtusi2ss", { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
3386 1.1 christos { "vcvtusi2ss", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
3387 1.1 christos },
3388 1.1 christos /* EVEX_W_0F7B_P_2 */
3389 1.1 christos {
3390 1.1 christos { "vcvtps2qq", { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
3391 1.1 christos { "vcvtpd2qq", { XM, EXx, EXxEVexR }, 0 },
3392 1.1 christos },
3393 1.1 christos /* EVEX_W_0F7B_P_3 */
3394 1.1 christos {
3395 1.1 christos { "vcvtusi2sd", { XMScalar, VexScalar, Ed }, 0 },
3396 1.1 christos { "vcvtusi2sd", { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
3397 1.1 christos },
3398 1.1 christos /* EVEX_W_0F7E_P_1 */
3399 1.1 christos {
3400 1.1 christos { Bad_Opcode },
3401 1.1 christos { "vmovq", { XMScalar, EXxmm_mq }, 0 },
3402 1.1 christos },
3403 1.1 christos /* EVEX_W_0F7E_P_2 */
3404 1.1 christos {
3405 1.1 christos { "vmovd", { Ed, XMScalar }, 0 },
3406 1.1 christos { "vmovq", { Eq, XMScalar }, 0 },
3407 1.1 christos },
3408 1.1 christos /* EVEX_W_0F7F_P_1 */
3409 1.1 christos {
3410 1.1 christos { "vmovdqu32", { EXxS, XM }, 0 },
3411 1.1 christos { "vmovdqu64", { EXxS, XM }, 0 },
3412 1.1 christos },
3413 1.1 christos /* EVEX_W_0F7F_P_2 */
3414 1.1 christos {
3415 1.1 christos { "vmovdqa32", { EXxS, XM }, 0 },
3416 1.1 christos { "vmovdqa64", { EXxS, XM }, 0 },
3417 1.1 christos },
3418 1.1 christos /* EVEX_W_0F7F_P_3 */
3419 1.1 christos {
3420 1.1 christos { "vmovdqu8", { EXxS, XM }, 0 },
3421 1.1 christos { "vmovdqu16", { EXxS, XM }, 0 },
3422 1.1 christos },
3423 1.1 christos /* EVEX_W_0FC2_P_0 */
3424 1.1 christos {
3425 1.1 christos { "vcmpps", { XMask, Vex, EXx, EXxEVexS, VCMP }, 0 },
3426 1.1 christos },
3427 1.1 christos /* EVEX_W_0FC2_P_1 */
3428 1.1 christos {
3429 1.1 christos { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, VCMP }, 0 },
3430 1.1 christos },
3431 1.1 christos /* EVEX_W_0FC2_P_2 */
3432 1.1 christos {
3433 1.1 christos { Bad_Opcode },
3434 1.1 christos { "vcmppd", { XMask, Vex, EXx, EXxEVexS, VCMP }, 0 },
3435 1.1 christos },
3436 1.1 christos /* EVEX_W_0FC2_P_3 */
3437 1.1 christos {
3438 1.1 christos { Bad_Opcode },
3439 1.1 christos { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, VCMP }, 0 },
3440 1.1 christos },
3441 1.1 christos /* EVEX_W_0FC6_P_0 */
3442 1.1 christos {
3443 1.1 christos { "vshufps", { XM, Vex, EXx, Ib }, 0 },
3444 1.1 christos },
3445 1.1 christos /* EVEX_W_0FC6_P_2 */
3446 1.1 christos {
3447 1.1 christos { Bad_Opcode },
3448 1.1 christos { "vshufpd", { XM, Vex, EXx, Ib }, 0 },
3449 1.1 christos },
3450 1.1 christos /* EVEX_W_0FD2_P_2 */
3451 1.1 christos {
3452 1.1 christos { "vpsrld", { XM, Vex, EXxmm }, 0 },
3453 1.1 christos },
3454 1.1 christos /* EVEX_W_0FD3_P_2 */
3455 1.1 christos {
3456 1.1 christos { Bad_Opcode },
3457 1.1 christos { "vpsrlq", { XM, Vex, EXxmm }, 0 },
3458 1.1 christos },
3459 1.1 christos /* EVEX_W_0FD4_P_2 */
3460 1.1 christos {
3461 1.1 christos { Bad_Opcode },
3462 1.1 christos { "vpaddq", { XM, Vex, EXx }, 0 },
3463 1.1 christos },
3464 1.1 christos /* EVEX_W_0FD6_P_2 */
3465 1.1 christos {
3466 1.1 christos { Bad_Opcode },
3467 1.1 christos { "vmovq", { EXxmm_mq, XMScalar }, 0 },
3468 1.1 christos },
3469 1.1 christos /* EVEX_W_0FE6_P_1 */
3470 1.1 christos {
3471 1.1 christos { "vcvtdq2pd", { XM, EXEvexHalfBcstXmmq }, 0 },
3472 1.1 christos { "vcvtqq2pd", { XM, EXx, EXxEVexR }, 0 },
3473 1.1 christos },
3474 1.1 christos /* EVEX_W_0FE6_P_2 */
3475 1.1 christos {
3476 1.1 christos { Bad_Opcode },
3477 1.1 christos { "vcvttpd2dq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
3478 1.1 christos },
3479 1.1 christos /* EVEX_W_0FE6_P_3 */
3480 1.1 christos {
3481 1.1 christos { Bad_Opcode },
3482 1.1 christos { "vcvtpd2dq%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
3483 1.1 christos },
3484 1.1 christos /* EVEX_W_0FE7_P_2 */
3485 1.1 christos {
3486 1.1 christos { "vmovntdq", { EXEvexXNoBcst, XM }, 0 },
3487 1.1 christos },
3488 1.1 christos /* EVEX_W_0FF2_P_2 */
3489 1.1 christos {
3490 1.1 christos { "vpslld", { XM, Vex, EXxmm }, 0 },
3491 1.1 christos },
3492 1.1 christos /* EVEX_W_0FF3_P_2 */
3493 1.1 christos {
3494 1.1 christos { Bad_Opcode },
3495 1.1 christos { "vpsllq", { XM, Vex, EXxmm }, 0 },
3496 1.1 christos },
3497 1.1 christos /* EVEX_W_0FF4_P_2 */
3498 1.1 christos {
3499 1.1 christos { Bad_Opcode },
3500 1.1 christos { "vpmuludq", { XM, Vex, EXx }, 0 },
3501 1.1 christos },
3502 1.1 christos /* EVEX_W_0FFA_P_2 */
3503 1.1 christos {
3504 1.1 christos { "vpsubd", { XM, Vex, EXx }, 0 },
3505 1.1 christos },
3506 1.1 christos /* EVEX_W_0FFB_P_2 */
3507 1.1 christos {
3508 1.1 christos { Bad_Opcode },
3509 1.1 christos { "vpsubq", { XM, Vex, EXx }, 0 },
3510 1.1 christos },
3511 1.1 christos /* EVEX_W_0FFE_P_2 */
3512 1.1 christos {
3513 1.1 christos { "vpaddd", { XM, Vex, EXx }, 0 },
3514 1.1 christos },
3515 1.1 christos /* EVEX_W_0F380C_P_2 */
3516 1.1 christos {
3517 1.1 christos { "vpermilps", { XM, Vex, EXx }, 0 },
3518 1.1 christos },
3519 1.1 christos /* EVEX_W_0F380D_P_2 */
3520 1.1 christos {
3521 1.1 christos { Bad_Opcode },
3522 1.1 christos { "vpermilpd", { XM, Vex, EXx }, 0 },
3523 1.1 christos },
3524 1.1 christos /* EVEX_W_0F3810_P_1 */
3525 1.1 christos {
3526 1.1 christos { "vpmovuswb", { EXxmmq, XM }, 0 },
3527 1.1 christos },
3528 1.1 christos /* EVEX_W_0F3810_P_2 */
3529 1.1 christos {
3530 1.1 christos { Bad_Opcode },
3531 1.1 christos { "vpsrlvw", { XM, Vex, EXx }, 0 },
3532 1.1 christos },
3533 1.1 christos /* EVEX_W_0F3811_P_1 */
3534 1.1 christos {
3535 1.1 christos { "vpmovusdb", { EXxmmqd, XM }, 0 },
3536 1.1 christos },
3537 1.1 christos /* EVEX_W_0F3811_P_2 */
3538 1.1 christos {
3539 1.1 christos { Bad_Opcode },
3540 1.1 christos { "vpsravw", { XM, Vex, EXx }, 0 },
3541 1.1 christos },
3542 1.1 christos /* EVEX_W_0F3812_P_1 */
3543 1.1 christos {
3544 1.1 christos { "vpmovusqb", { EXxmmdw, XM }, 0 },
3545 1.1 christos },
3546 1.1 christos /* EVEX_W_0F3812_P_2 */
3547 1.1 christos {
3548 1.1 christos { Bad_Opcode },
3549 1.1 christos { "vpsllvw", { XM, Vex, EXx }, 0 },
3550 1.1 christos },
3551 1.1 christos /* EVEX_W_0F3813_P_1 */
3552 1.1 christos {
3553 1.1 christos { "vpmovusdw", { EXxmmq, XM }, 0 },
3554 1.1 christos },
3555 1.1 christos /* EVEX_W_0F3813_P_2 */
3556 1.1 christos {
3557 1.1 christos { "vcvtph2ps", { XM, EXxmmq, EXxEVexS }, 0 },
3558 1.1 christos },
3559 1.1 christos /* EVEX_W_0F3814_P_1 */
3560 1.1 christos {
3561 1.1 christos { "vpmovusqw", { EXxmmqd, XM }, 0 },
3562 1.1 christos },
3563 1.1 christos /* EVEX_W_0F3815_P_1 */
3564 1.1 christos {
3565 1.1 christos { "vpmovusqd", { EXxmmq, XM }, 0 },
3566 1.1 christos },
3567 1.1 christos /* EVEX_W_0F3818_P_2 */
3568 1.1 christos {
3569 1.1 christos { "vbroadcastss", { XM, EXxmm_md }, 0 },
3570 1.1 christos },
3571 1.1 christos /* EVEX_W_0F3819_P_2 */
3572 1.1 christos {
3573 1.1 christos { "vbroadcastf32x2", { XM, EXxmm_mq }, 0 },
3574 1.1 christos { "vbroadcastsd", { XM, EXxmm_mq }, 0 },
3575 1.1 christos },
3576 1.1 christos /* EVEX_W_0F381A_P_2 */
3577 1.1 christos {
3578 1.1 christos { "vbroadcastf32x4", { XM, EXxmm }, 0 },
3579 1.1 christos { "vbroadcastf64x2", { XM, EXxmm }, 0 },
3580 1.1 christos },
3581 1.1 christos /* EVEX_W_0F381B_P_2 */
3582 1.1 christos {
3583 1.1 christos { "vbroadcastf32x8", { XM, EXxmmq }, 0 },
3584 1.1 christos { "vbroadcastf64x4", { XM, EXymm }, 0 },
3585 1.1 christos },
3586 1.1 christos /* EVEX_W_0F381E_P_2 */
3587 1.1 christos {
3588 1.1 christos { "vpabsd", { XM, EXx }, 0 },
3589 1.1 christos },
3590 1.1 christos /* EVEX_W_0F381F_P_2 */
3591 1.1 christos {
3592 1.1 christos { Bad_Opcode },
3593 1.1 christos { "vpabsq", { XM, EXx }, 0 },
3594 1.1 christos },
3595 1.1 christos /* EVEX_W_0F3820_P_1 */
3596 1.1 christos {
3597 1.1 christos { "vpmovswb", { EXxmmq, XM }, 0 },
3598 1.1 christos },
3599 1.1 christos /* EVEX_W_0F3821_P_1 */
3600 1.1 christos {
3601 1.1 christos { "vpmovsdb", { EXxmmqd, XM }, 0 },
3602 1.1 christos },
3603 1.1 christos /* EVEX_W_0F3822_P_1 */
3604 1.1 christos {
3605 1.1 christos { "vpmovsqb", { EXxmmdw, XM }, 0 },
3606 1.1 christos },
3607 1.1 christos /* EVEX_W_0F3823_P_1 */
3608 1.1 christos {
3609 1.1 christos { "vpmovsdw", { EXxmmq, XM }, 0 },
3610 1.1 christos },
3611 1.1 christos /* EVEX_W_0F3824_P_1 */
3612 1.1 christos {
3613 1.1 christos { "vpmovsqw", { EXxmmqd, XM }, 0 },
3614 1.1 christos },
3615 1.1 christos /* EVEX_W_0F3825_P_1 */
3616 1.1 christos {
3617 1.1 christos { "vpmovsqd", { EXxmmq, XM }, 0 },
3618 1.1 christos },
3619 1.1 christos /* EVEX_W_0F3825_P_2 */
3620 1.1 christos {
3621 1.1 christos { "vpmovsxdq", { XM, EXxmmq }, 0 },
3622 1.1 christos },
3623 1.1 christos /* EVEX_W_0F3826_P_1 */
3624 1.1 christos {
3625 1.1 christos { "vptestnmb", { XMask, Vex, EXx }, 0 },
3626 1.1 christos { "vptestnmw", { XMask, Vex, EXx }, 0 },
3627 1.1 christos },
3628 1.1 christos /* EVEX_W_0F3826_P_2 */
3629 1.1 christos {
3630 1.1 christos { "vptestmb", { XMask, Vex, EXx }, 0 },
3631 1.1 christos { "vptestmw", { XMask, Vex, EXx }, 0 },
3632 1.1 christos },
3633 1.1 christos /* EVEX_W_0F3828_P_1 */
3634 1.1 christos {
3635 1.1 christos { "vpmovm2b", { XM, MaskR }, 0 },
3636 1.1 christos { "vpmovm2w", { XM, MaskR }, 0 },
3637 1.1 christos },
3638 1.1 christos /* EVEX_W_0F3828_P_2 */
3639 1.1 christos {
3640 1.1 christos { Bad_Opcode },
3641 1.1 christos { "vpmuldq", { XM, Vex, EXx }, 0 },
3642 1.1 christos },
3643 1.1 christos /* EVEX_W_0F3829_P_1 */
3644 1.1 christos {
3645 1.1 christos { "vpmovb2m", { XMask, EXx }, 0 },
3646 1.1 christos { "vpmovw2m", { XMask, EXx }, 0 },
3647 1.1 christos },
3648 1.1 christos /* EVEX_W_0F3829_P_2 */
3649 1.1 christos {
3650 1.1 christos { Bad_Opcode },
3651 1.1 christos { "vpcmpeqq", { XMask, Vex, EXx }, 0 },
3652 1.1 christos },
3653 1.1 christos /* EVEX_W_0F382A_P_1 */
3654 1.1 christos {
3655 1.1 christos { Bad_Opcode },
3656 1.1 christos { "vpbroadcastmb2q", { XM, MaskR }, 0 },
3657 1.1 christos },
3658 1.1 christos /* EVEX_W_0F382A_P_2 */
3659 1.1 christos {
3660 1.1 christos { "vmovntdqa", { XM, EXEvexXNoBcst }, 0 },
3661 1.1 christos },
3662 1.1 christos /* EVEX_W_0F382B_P_2 */
3663 1.1 christos {
3664 1.1 christos { "vpackusdw", { XM, Vex, EXx }, 0 },
3665 1.1 christos },
3666 1.1 christos /* EVEX_W_0F3830_P_1 */
3667 1.1 christos {
3668 1.1 christos { "vpmovwb", { EXxmmq, XM }, 0 },
3669 1.1 christos },
3670 1.1 christos /* EVEX_W_0F3831_P_1 */
3671 1.1 christos {
3672 1.1 christos { "vpmovdb", { EXxmmqd, XM }, 0 },
3673 1.1 christos },
3674 1.1 christos /* EVEX_W_0F3832_P_1 */
3675 1.1 christos {
3676 1.1 christos { "vpmovqb", { EXxmmdw, XM }, 0 },
3677 1.1 christos },
3678 1.1 christos /* EVEX_W_0F3833_P_1 */
3679 1.1 christos {
3680 1.1 christos { "vpmovdw", { EXxmmq, XM }, 0 },
3681 1.1 christos },
3682 1.1 christos /* EVEX_W_0F3834_P_1 */
3683 1.1 christos {
3684 1.1 christos { "vpmovqw", { EXxmmqd, XM }, 0 },
3685 1.1 christos },
3686 1.1 christos /* EVEX_W_0F3835_P_1 */
3687 1.1 christos {
3688 1.1 christos { "vpmovqd", { EXxmmq, XM }, 0 },
3689 1.1 christos },
3690 1.1 christos /* EVEX_W_0F3835_P_2 */
3691 1.1 christos {
3692 1.1 christos { "vpmovzxdq", { XM, EXxmmq }, 0 },
3693 1.1 christos },
3694 1.1 christos /* EVEX_W_0F3837_P_2 */
3695 1.1 christos {
3696 1.1 christos { Bad_Opcode },
3697 1.1 christos { "vpcmpgtq", { XMask, Vex, EXx }, 0 },
3698 1.1 christos },
3699 1.1 christos /* EVEX_W_0F3838_P_1 */
3700 1.1 christos {
3701 1.1 christos { "vpmovm2d", { XM, MaskR }, 0 },
3702 1.1 christos { "vpmovm2q", { XM, MaskR }, 0 },
3703 1.1 christos },
3704 1.1 christos /* EVEX_W_0F3839_P_1 */
3705 1.1 christos {
3706 1.1 christos { "vpmovd2m", { XMask, EXx }, 0 },
3707 1.1 christos { "vpmovq2m", { XMask, EXx }, 0 },
3708 1.1 christos },
3709 1.1 christos /* EVEX_W_0F383A_P_1 */
3710 1.1 christos {
3711 1.1 christos { "vpbroadcastmw2d", { XM, MaskR }, 0 },
3712 1.1 christos },
3713 1.1 christos /* EVEX_W_0F3840_P_2 */
3714 1.1 christos {
3715 1.1 christos { "vpmulld", { XM, Vex, EXx }, 0 },
3716 1.1 christos { "vpmullq", { XM, Vex, EXx }, 0 },
3717 1.1 christos },
3718 1.4 christos /* EVEX_W_0F3854_P_2 */
3719 1.4 christos {
3720 1.4 christos { "vpopcntb", { XM, EXx }, 0 },
3721 1.4 christos { "vpopcntw", { XM, EXx }, 0 },
3722 1.4 christos },
3723 1.4 christos /* EVEX_W_0F3855_P_2 */
3724 1.4 christos {
3725 1.4 christos { "vpopcntd", { XM, EXx }, 0 },
3726 1.4 christos { "vpopcntq", { XM, EXx }, 0 },
3727 1.4 christos },
3728 1.1 christos /* EVEX_W_0F3858_P_2 */
3729 1.1 christos {
3730 1.1 christos { "vpbroadcastd", { XM, EXxmm_md }, 0 },
3731 1.1 christos },
3732 1.1 christos /* EVEX_W_0F3859_P_2 */
3733 1.1 christos {
3734 1.1 christos { "vbroadcasti32x2", { XM, EXxmm_mq }, 0 },
3735 1.1 christos { "vpbroadcastq", { XM, EXxmm_mq }, 0 },
3736 1.1 christos },
3737 1.1 christos /* EVEX_W_0F385A_P_2 */
3738 1.1 christos {
3739 1.1 christos { "vbroadcasti32x4", { XM, EXxmm }, 0 },
3740 1.1 christos { "vbroadcasti64x2", { XM, EXxmm }, 0 },
3741 1.1 christos },
3742 1.1 christos /* EVEX_W_0F385B_P_2 */
3743 1.1 christos {
3744 1.1 christos { "vbroadcasti32x8", { XM, EXxmmq }, 0 },
3745 1.1 christos { "vbroadcasti64x4", { XM, EXymm }, 0 },
3746 1.1 christos },
3747 1.4 christos /* EVEX_W_0F3862_P_2 */
3748 1.4 christos {
3749 1.4 christos { "vpexpandb", { XM, EXbScalar }, 0 },
3750 1.4 christos { "vpexpandw", { XM, EXwScalar }, 0 },
3751 1.4 christos },
3752 1.4 christos /* EVEX_W_0F3863_P_2 */
3753 1.4 christos {
3754 1.4 christos { "vpcompressb", { EXbScalar, XM }, 0 },
3755 1.4 christos { "vpcompressw", { EXwScalar, XM }, 0 },
3756 1.4 christos },
3757 1.1 christos /* EVEX_W_0F3866_P_2 */
3758 1.1 christos {
3759 1.1 christos { "vpblendmb", { XM, Vex, EXx }, 0 },
3760 1.1 christos { "vpblendmw", { XM, Vex, EXx }, 0 },
3761 1.1 christos },
3762 1.4 christos /* EVEX_W_0F3870_P_2 */
3763 1.4 christos {
3764 1.4 christos { Bad_Opcode },
3765 1.4 christos { "vpshldvw", { XM, Vex, EXx }, 0 },
3766 1.4 christos },
3767 1.4 christos /* EVEX_W_0F3871_P_2 */
3768 1.4 christos {
3769 1.4 christos { "vpshldvd", { XM, Vex, EXx }, 0 },
3770 1.4 christos { "vpshldvq", { XM, Vex, EXx }, 0 },
3771 1.4 christos },
3772 1.4 christos /* EVEX_W_0F3872_P_2 */
3773 1.4 christos {
3774 1.4 christos { Bad_Opcode },
3775 1.4 christos { "vpshrdvw", { XM, Vex, EXx }, 0 },
3776 1.4 christos },
3777 1.4 christos /* EVEX_W_0F3873_P_2 */
3778 1.4 christos {
3779 1.4 christos { "vpshrdvd", { XM, Vex, EXx }, 0 },
3780 1.4 christos { "vpshrdvq", { XM, Vex, EXx }, 0 },
3781 1.4 christos },
3782 1.1 christos /* EVEX_W_0F3875_P_2 */
3783 1.1 christos {
3784 1.1 christos { "vpermi2b", { XM, Vex, EXx }, 0 },
3785 1.1 christos { "vpermi2w", { XM, Vex, EXx }, 0 },
3786 1.1 christos },
3787 1.1 christos /* EVEX_W_0F3878_P_2 */
3788 1.1 christos {
3789 1.1 christos { "vpbroadcastb", { XM, EXxmm_mb }, 0 },
3790 1.1 christos },
3791 1.1 christos /* EVEX_W_0F3879_P_2 */
3792 1.1 christos {
3793 1.1 christos { "vpbroadcastw", { XM, EXxmm_mw }, 0 },
3794 1.1 christos },
3795 1.1 christos /* EVEX_W_0F387A_P_2 */
3796 1.1 christos {
3797 1.1 christos { "vpbroadcastb", { XM, Rd }, 0 },
3798 1.1 christos },
3799 1.1 christos /* EVEX_W_0F387B_P_2 */
3800 1.1 christos {
3801 1.1 christos { "vpbroadcastw", { XM, Rd }, 0 },
3802 1.1 christos },
3803 1.1 christos /* EVEX_W_0F387D_P_2 */
3804 1.1 christos {
3805 1.1 christos { "vpermt2b", { XM, Vex, EXx }, 0 },
3806 1.1 christos { "vpermt2w", { XM, Vex, EXx }, 0 },
3807 1.1 christos },
3808 1.1 christos /* EVEX_W_0F3883_P_2 */
3809 1.1 christos {
3810 1.1 christos { Bad_Opcode },
3811 1.1 christos { "vpmultishiftqb", { XM, Vex, EXx }, 0 },
3812 1.1 christos },
3813 1.1 christos /* EVEX_W_0F388D_P_2 */
3814 1.1 christos {
3815 1.1 christos { "vpermb", { XM, Vex, EXx }, 0 },
3816 1.1 christos { "vpermw", { XM, Vex, EXx }, 0 },
3817 1.1 christos },
3818 1.1 christos /* EVEX_W_0F3891_P_2 */
3819 1.1 christos {
3820 1.1 christos { "vpgatherqd", { XMxmmq, MVexVSIBQDWpX }, 0 },
3821 1.1 christos { "vpgatherqq", { XM, MVexVSIBQWpX }, 0 },
3822 1.1 christos },
3823 1.1 christos /* EVEX_W_0F3893_P_2 */
3824 1.1 christos {
3825 1.1 christos { "vgatherqps", { XMxmmq, MVexVSIBQDWpX }, 0 },
3826 1.1 christos { "vgatherqpd", { XM, MVexVSIBQWpX }, 0 },
3827 1.1 christos },
3828 1.1 christos /* EVEX_W_0F38A1_P_2 */
3829 1.1 christos {
3830 1.1 christos { "vpscatterqd", { MVexVSIBQDWpX, XMxmmq }, 0 },
3831 1.1 christos { "vpscatterqq", { MVexVSIBQWpX, XM }, 0 },
3832 1.1 christos },
3833 1.1 christos /* EVEX_W_0F38A3_P_2 */
3834 1.1 christos {
3835 1.1 christos { "vscatterqps", { MVexVSIBQDWpX, XMxmmq }, 0 },
3836 1.1 christos { "vscatterqpd", { MVexVSIBQWpX, XM }, 0 },
3837 1.1 christos },
3838 1.1 christos /* EVEX_W_0F38C7_R_1_P_2 */
3839 1.1 christos {
3840 1.1 christos { "vgatherpf0qps", { MVexVSIBDQWpX }, 0 },
3841 1.1 christos { "vgatherpf0qpd", { MVexVSIBQWpX }, 0 },
3842 1.1 christos },
3843 1.1 christos /* EVEX_W_0F38C7_R_2_P_2 */
3844 1.1 christos {
3845 1.1 christos { "vgatherpf1qps", { MVexVSIBDQWpX }, 0 },
3846 1.1 christos { "vgatherpf1qpd", { MVexVSIBQWpX }, 0 },
3847 1.1 christos },
3848 1.1 christos /* EVEX_W_0F38C7_R_5_P_2 */
3849 1.1 christos {
3850 1.1 christos { "vscatterpf0qps", { MVexVSIBDQWpX }, 0 },
3851 1.1 christos { "vscatterpf0qpd", { MVexVSIBQWpX }, 0 },
3852 1.1 christos },
3853 1.1 christos /* EVEX_W_0F38C7_R_6_P_2 */
3854 1.1 christos {
3855 1.1 christos { "vscatterpf1qps", { MVexVSIBDQWpX }, 0 },
3856 1.1 christos { "vscatterpf1qpd", { MVexVSIBQWpX }, 0 },
3857 1.1 christos },
3858 1.1 christos /* EVEX_W_0F3A00_P_2 */
3859 1.1 christos {
3860 1.1 christos { Bad_Opcode },
3861 1.1 christos { "vpermq", { XM, EXx, Ib }, 0 },
3862 1.1 christos },
3863 1.1 christos /* EVEX_W_0F3A01_P_2 */
3864 1.1 christos {
3865 1.1 christos { Bad_Opcode },
3866 1.1 christos { "vpermpd", { XM, EXx, Ib }, 0 },
3867 1.1 christos },
3868 1.1 christos /* EVEX_W_0F3A04_P_2 */
3869 1.1 christos {
3870 1.1 christos { "vpermilps", { XM, EXx, Ib }, 0 },
3871 1.1 christos },
3872 1.1 christos /* EVEX_W_0F3A05_P_2 */
3873 1.1 christos {
3874 1.1 christos { Bad_Opcode },
3875 1.1 christos { "vpermilpd", { XM, EXx, Ib }, 0 },
3876 1.1 christos },
3877 1.1 christos /* EVEX_W_0F3A08_P_2 */
3878 1.1 christos {
3879 1.1 christos { "vrndscaleps", { XM, EXx, EXxEVexS, Ib }, 0 },
3880 1.1 christos },
3881 1.1 christos /* EVEX_W_0F3A09_P_2 */
3882 1.1 christos {
3883 1.1 christos { Bad_Opcode },
3884 1.1 christos { "vrndscalepd", { XM, EXx, EXxEVexS, Ib }, 0 },
3885 1.1 christos },
3886 1.1 christos /* EVEX_W_0F3A0A_P_2 */
3887 1.1 christos {
3888 1.1 christos { "vrndscaless", { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
3889 1.1 christos },
3890 1.1 christos /* EVEX_W_0F3A0B_P_2 */
3891 1.1 christos {
3892 1.1 christos { Bad_Opcode },
3893 1.1 christos { "vrndscalesd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
3894 1.1 christos },
3895 1.1 christos /* EVEX_W_0F3A16_P_2 */
3896 1.1 christos {
3897 1.1 christos { "vpextrd", { Edqd, XM, Ib }, 0 },
3898 1.1 christos { "vpextrq", { Eq, XM, Ib }, 0 },
3899 1.1 christos },
3900 1.1 christos /* EVEX_W_0F3A18_P_2 */
3901 1.1 christos {
3902 1.1 christos { "vinsertf32x4", { XM, Vex, EXxmm, Ib }, 0 },
3903 1.1 christos { "vinsertf64x2", { XM, Vex, EXxmm, Ib }, 0 },
3904 1.1 christos },
3905 1.1 christos /* EVEX_W_0F3A19_P_2 */
3906 1.1 christos {
3907 1.1 christos { "vextractf32x4", { EXxmm, XM, Ib }, 0 },
3908 1.1 christos { "vextractf64x2", { EXxmm, XM, Ib }, 0 },
3909 1.1 christos },
3910 1.1 christos /* EVEX_W_0F3A1A_P_2 */
3911 1.1 christos {
3912 1.1 christos { "vinsertf32x8", { XM, Vex, EXxmmq, Ib }, 0 },
3913 1.1 christos { "vinsertf64x4", { XM, Vex, EXxmmq, Ib }, 0 },
3914 1.1 christos },
3915 1.1 christos /* EVEX_W_0F3A1B_P_2 */
3916 1.1 christos {
3917 1.1 christos { "vextractf32x8", { EXxmmq, XM, Ib }, 0 },
3918 1.1 christos { "vextractf64x4", { EXxmmq, XM, Ib }, 0 },
3919 1.1 christos },
3920 1.1 christos /* EVEX_W_0F3A1D_P_2 */
3921 1.1 christos {
3922 1.1 christos { "vcvtps2ph", { EXxmmq, XM, EXxEVexS, Ib }, 0 },
3923 1.1 christos },
3924 1.1 christos /* EVEX_W_0F3A21_P_2 */
3925 1.1 christos {
3926 1.1 christos { "vinsertps", { XMM, Vex, EXxmm_md, Ib }, 0 },
3927 1.1 christos },
3928 1.1 christos /* EVEX_W_0F3A22_P_2 */
3929 1.1 christos {
3930 1.1 christos { "vpinsrd", { XM, Vex128, Edqd, Ib }, 0 },
3931 1.1 christos { "vpinsrq", { XM, Vex128, Eq, Ib }, 0 },
3932 1.1 christos },
3933 1.1 christos /* EVEX_W_0F3A23_P_2 */
3934 1.1 christos {
3935 1.1 christos { "vshuff32x4", { XM, Vex, EXx, Ib }, 0 },
3936 1.1 christos { "vshuff64x2", { XM, Vex, EXx, Ib }, 0 },
3937 1.1 christos },
3938 1.1 christos /* EVEX_W_0F3A38_P_2 */
3939 1.1 christos {
3940 1.1 christos { "vinserti32x4", { XM, Vex, EXxmm, Ib }, 0 },
3941 1.1 christos { "vinserti64x2", { XM, Vex, EXxmm, Ib }, 0 },
3942 1.1 christos },
3943 1.1 christos /* EVEX_W_0F3A39_P_2 */
3944 1.1 christos {
3945 1.1 christos { "vextracti32x4", { EXxmm, XM, Ib }, 0 },
3946 1.1 christos { "vextracti64x2", { EXxmm, XM, Ib }, 0 },
3947 1.1 christos },
3948 1.1 christos /* EVEX_W_0F3A3A_P_2 */
3949 1.1 christos {
3950 1.1 christos { "vinserti32x8", { XM, Vex, EXxmmq, Ib }, 0 },
3951 1.1 christos { "vinserti64x4", { XM, Vex, EXxmmq, Ib }, 0 },
3952 1.1 christos },
3953 1.1 christos /* EVEX_W_0F3A3B_P_2 */
3954 1.1 christos {
3955 1.1 christos { "vextracti32x8", { EXxmmq, XM, Ib }, 0 },
3956 1.1 christos { "vextracti64x4", { EXxmmq, XM, Ib }, 0 },
3957 1.1 christos },
3958 1.1 christos /* EVEX_W_0F3A3E_P_2 */
3959 1.1 christos {
3960 1.4 christos { "vpcmpub", { XMask, Vex, EXx, VPCMP }, 0 },
3961 1.4 christos { "vpcmpuw", { XMask, Vex, EXx, VPCMP }, 0 },
3962 1.1 christos },
3963 1.1 christos /* EVEX_W_0F3A3F_P_2 */
3964 1.1 christos {
3965 1.4 christos { "vpcmpb", { XMask, Vex, EXx, VPCMP }, 0 },
3966 1.4 christos { "vpcmpw", { XMask, Vex, EXx, VPCMP }, 0 },
3967 1.1 christos },
3968 1.1 christos /* EVEX_W_0F3A42_P_2 */
3969 1.1 christos {
3970 1.1 christos { "vdbpsadbw", { XM, Vex, EXx, Ib }, 0 },
3971 1.1 christos },
3972 1.1 christos /* EVEX_W_0F3A43_P_2 */
3973 1.1 christos {
3974 1.1 christos { "vshufi32x4", { XM, Vex, EXx, Ib }, 0 },
3975 1.1 christos { "vshufi64x2", { XM, Vex, EXx, Ib }, 0 },
3976 1.1 christos },
3977 1.1 christos /* EVEX_W_0F3A50_P_2 */
3978 1.1 christos {
3979 1.1 christos { "vrangeps", { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
3980 1.1 christos { "vrangepd", { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
3981 1.1 christos },
3982 1.1 christos /* EVEX_W_0F3A51_P_2 */
3983 1.1 christos {
3984 1.1 christos { "vrangess", { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
3985 1.1 christos { "vrangesd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
3986 1.1 christos },
3987 1.1 christos /* EVEX_W_0F3A56_P_2 */
3988 1.1 christos {
3989 1.1 christos { "vreduceps", { XM, EXx, EXxEVexS, Ib }, 0 },
3990 1.1 christos { "vreducepd", { XM, EXx, EXxEVexS, Ib }, 0 },
3991 1.1 christos },
3992 1.1 christos /* EVEX_W_0F3A57_P_2 */
3993 1.1 christos {
3994 1.1 christos { "vreducess", { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
3995 1.1 christos { "vreducesd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
3996 1.1 christos },
3997 1.1 christos /* EVEX_W_0F3A66_P_2 */
3998 1.1 christos {
3999 1.1 christos { "vfpclassps%XZ", { XMask, EXx, Ib }, 0 },
4000 1.1 christos { "vfpclasspd%XZ", { XMask, EXx, Ib }, 0 },
4001 1.1 christos },
4002 1.1 christos /* EVEX_W_0F3A67_P_2 */
4003 1.1 christos {
4004 1.1 christos { "vfpclassss", { XMask, EXxmm_md, Ib }, 0 },
4005 1.1 christos { "vfpclasssd", { XMask, EXxmm_mq, Ib }, 0 },
4006 1.1 christos },
4007 1.4 christos /* EVEX_W_0F3A70_P_2 */
4008 1.4 christos {
4009 1.4 christos { Bad_Opcode },
4010 1.4 christos { "vpshldw", { XM, Vex, EXx, Ib }, 0 },
4011 1.4 christos },
4012 1.4 christos /* EVEX_W_0F3A71_P_2 */
4013 1.4 christos {
4014 1.4 christos { "vpshldd", { XM, Vex, EXx, Ib }, 0 },
4015 1.4 christos { "vpshldq", { XM, Vex, EXx, Ib }, 0 },
4016 1.4 christos },
4017 1.4 christos /* EVEX_W_0F3A72_P_2 */
4018 1.4 christos {
4019 1.4 christos { Bad_Opcode },
4020 1.4 christos { "vpshrdw", { XM, Vex, EXx, Ib }, 0 },
4021 1.4 christos },
4022 1.4 christos /* EVEX_W_0F3A73_P_2 */
4023 1.4 christos {
4024 1.4 christos { "vpshrdd", { XM, Vex, EXx, Ib }, 0 },
4025 1.4 christos { "vpshrdq", { XM, Vex, EXx, Ib }, 0 },
4026 1.4 christos },
4027 1.4 christos /* EVEX_W_0F3ACE_P_2 */
4028 1.4 christos {
4029 1.4 christos { Bad_Opcode },
4030 1.4 christos { "vgf2p8affineqb", { XM, Vex, EXx, Ib }, 0 },
4031 1.4 christos },
4032 1.4 christos /* EVEX_W_0F3ACF_P_2 */
4033 1.4 christos {
4034 1.4 christos { Bad_Opcode },
4035 1.4 christos { "vgf2p8affineinvqb", { XM, Vex, EXx, Ib }, 0 },
4036 1.4 christos },
4037 1.1 christos #endif /* NEED_VEX_W_TABLE */
4038 1.1 christos #ifdef NEED_MOD_TABLE
4039 1.1 christos {
4040 1.1 christos /* MOD_EVEX_0F10_PREFIX_1 */
4041 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_1_M_0) },
4042 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_1_M_1) },
4043 1.1 christos },
4044 1.1 christos {
4045 1.1 christos /* MOD_EVEX_0F10_PREFIX_3 */
4046 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_3_M_0) },
4047 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_3_M_1) },
4048 1.1 christos },
4049 1.1 christos {
4050 1.1 christos /* MOD_EVEX_0F11_PREFIX_1 */
4051 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_1_M_0) },
4052 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_1_M_1) },
4053 1.1 christos },
4054 1.1 christos {
4055 1.1 christos /* MOD_EVEX_0F11_PREFIX_3 */
4056 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_3_M_0) },
4057 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_3_M_1) },
4058 1.1 christos },
4059 1.1 christos {
4060 1.1 christos /* MOD_EVEX_0F12_PREFIX_0 */
4061 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_0_M_0) },
4062 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_0_M_1) },
4063 1.1 christos },
4064 1.1 christos {
4065 1.1 christos /* MOD_EVEX_0F16_PREFIX_0 */
4066 1.1 christos { VEX_W_TABLE (EVEX_W_0F16_P_0_M_0) },
4067 1.1 christos { VEX_W_TABLE (EVEX_W_0F16_P_0_M_1) },
4068 1.1 christos },
4069 1.1 christos {
4070 1.1 christos /* MOD_EVEX_0F38C6_REG_1 */
4071 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) },
4072 1.1 christos },
4073 1.1 christos {
4074 1.1 christos /* MOD_EVEX_0F38C6_REG_2 */
4075 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_2) },
4076 1.1 christos },
4077 1.1 christos {
4078 1.1 christos /* MOD_EVEX_0F38C6_REG_5 */
4079 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_5) },
4080 1.1 christos },
4081 1.1 christos {
4082 1.1 christos /* MOD_EVEX_0F38C6_REG_6 */
4083 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_6) },
4084 1.1 christos },
4085 1.1 christos {
4086 1.1 christos /* MOD_EVEX_0F38C7_REG_1 */
4087 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_1) },
4088 1.1 christos },
4089 1.1 christos {
4090 1.1 christos /* MOD_EVEX_0F38C7_REG_2 */
4091 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_2) },
4092 1.1 christos },
4093 1.1 christos {
4094 1.1 christos /* MOD_EVEX_0F38C7_REG_5 */
4095 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_5) },
4096 1.1 christos },
4097 1.1 christos {
4098 1.1 christos /* MOD_EVEX_0F38C7_REG_6 */
4099 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
4100 1.1 christos },
4101 1.1 christos #endif /* NEED_MOD_TABLE */
4102 1.4 christos
4103