i386-dis-evex.h revision 1.1 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 { Bad_Opcode },
102 1.1 christos { Bad_Opcode },
103 1.1 christos { Bad_Opcode },
104 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
116 1.1 christos { Bad_Opcode },
117 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F62) },
118 1.1 christos { Bad_Opcode },
119 1.1 christos { Bad_Opcode },
120 1.1 christos { Bad_Opcode },
121 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F66) },
122 1.1 christos { Bad_Opcode },
123 1.1 christos /* 68 */
124 1.1 christos { Bad_Opcode },
125 1.1 christos { Bad_Opcode },
126 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F6A) },
127 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
135 1.1 christos { REG_TABLE (REG_EVEX_0F72) },
136 1.1 christos { REG_TABLE (REG_EVEX_0F73) },
137 1.1 christos { Bad_Opcode },
138 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
228 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
247 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FD6) },
248 1.1 christos { Bad_Opcode },
249 1.1 christos /* D8 */
250 1.1 christos { Bad_Opcode },
251 1.1 christos { Bad_Opcode },
252 1.1 christos { Bad_Opcode },
253 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FDB) },
254 1.1 christos { Bad_Opcode },
255 1.1 christos { Bad_Opcode },
256 1.1 christos { Bad_Opcode },
257 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FDF) },
258 1.1 christos /* E0 */
259 1.1 christos { Bad_Opcode },
260 1.1 christos { Bad_Opcode },
261 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FE2) },
262 1.1 christos { Bad_Opcode },
263 1.1 christos { Bad_Opcode },
264 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
269 1.1 christos { Bad_Opcode },
270 1.1 christos { Bad_Opcode },
271 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FEB) },
272 1.1 christos { Bad_Opcode },
273 1.1 christos { Bad_Opcode },
274 1.1 christos { Bad_Opcode },
275 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FEF) },
276 1.1 christos /* F0 */
277 1.1 christos { Bad_Opcode },
278 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
283 1.1 christos { Bad_Opcode },
284 1.1 christos { Bad_Opcode },
285 1.1 christos /* F8 */
286 1.1 christos { Bad_Opcode },
287 1.1 christos { Bad_Opcode },
288 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FFA) },
289 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0FFB) },
290 1.1 christos { Bad_Opcode },
291 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
299 1.1 christos { Bad_Opcode },
300 1.1 christos { Bad_Opcode },
301 1.1 christos { Bad_Opcode },
302 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
330 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
366 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F383D) },
367 1.1 christos { Bad_Opcode },
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.1 christos { Bad_Opcode },
389 1.1 christos { Bad_Opcode },
390 1.1 christos { Bad_Opcode },
391 1.1 christos { Bad_Opcode },
392 1.1 christos { Bad_Opcode },
393 1.1 christos { Bad_Opcode },
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.1 christos { Bad_Opcode },
409 1.1 christos { Bad_Opcode },
410 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3864) },
411 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3865) },
412 1.1 christos { Bad_Opcode },
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.1 christos { Bad_Opcode },
425 1.1 christos { Bad_Opcode },
426 1.1 christos { Bad_Opcode },
427 1.1 christos { Bad_Opcode },
428 1.1 christos { Bad_Opcode },
429 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
434 1.1 christos { Bad_Opcode },
435 1.1 christos { Bad_Opcode },
436 1.1 christos { Bad_Opcode },
437 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F387C) },
438 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
457 1.1 christos { Bad_Opcode },
458 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
501 1.1 christos { Bad_Opcode },
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.1 christos { Bad_Opcode },
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.1 christos { Bad_Opcode },
546 1.1 christos { Bad_Opcode },
547 1.1 christos { Bad_Opcode },
548 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
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 { Bad_Opcode },
612 1.1 christos { Bad_Opcode },
613 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
626 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A21) },
627 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
659 1.1 christos { Bad_Opcode },
660 1.1 christos /* 40 */
661 1.1 christos { Bad_Opcode },
662 1.1 christos { Bad_Opcode },
663 1.1 christos { Bad_Opcode },
664 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
665 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
680 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
686 1.1 christos { Bad_Opcode },
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 { Bad_Opcode },
704 1.1 christos { Bad_Opcode },
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.1 christos { Bad_Opcode },
716 1.1 christos { Bad_Opcode },
717 1.1 christos { Bad_Opcode },
718 1.1 christos { Bad_Opcode },
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.1 christos { Bad_Opcode },
821 1.1 christos { Bad_Opcode },
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_0F72 */
882 1.1 christos {
883 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_0) },
884 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_1) },
885 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_2) },
886 1.1 christos { Bad_Opcode },
887 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_4) },
888 1.1 christos { Bad_Opcode },
889 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_6) },
890 1.1 christos },
891 1.1 christos /* REG_EVEX_0F73 */
892 1.1 christos {
893 1.1 christos { Bad_Opcode },
894 1.1 christos { Bad_Opcode },
895 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_2) },
896 1.1 christos { Bad_Opcode },
897 1.1 christos { Bad_Opcode },
898 1.1 christos { Bad_Opcode },
899 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_6) },
900 1.1 christos },
901 1.1 christos /* REG_EVEX_0F38C6 */
902 1.1 christos {
903 1.1 christos { Bad_Opcode },
904 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C6_REG_1) },
905 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C6_REG_2) },
906 1.1 christos { Bad_Opcode },
907 1.1 christos { Bad_Opcode },
908 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C6_REG_5) },
909 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C6_REG_6) },
910 1.1 christos },
911 1.1 christos /* REG_EVEX_0F38C7 */
912 1.1 christos {
913 1.1 christos { Bad_Opcode },
914 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C7_REG_1) },
915 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C7_REG_2) },
916 1.1 christos { Bad_Opcode },
917 1.1 christos { Bad_Opcode },
918 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C7_REG_5) },
919 1.1 christos { MOD_TABLE (MOD_EVEX_0F38C7_REG_6) },
920 1.1 christos },
921 1.1 christos #endif /* NEED_REG_TABLE */
922 1.1 christos
923 1.1 christos #ifdef NEED_PREFIX_TABLE
924 1.1 christos /* PREFIX_EVEX_0F10 */
925 1.1 christos {
926 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_0) },
927 1.1 christos { MOD_TABLE (MOD_EVEX_0F10_PREFIX_1) },
928 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_2) },
929 1.1 christos { MOD_TABLE (MOD_EVEX_0F10_PREFIX_3) },
930 1.1 christos },
931 1.1 christos /* PREFIX_EVEX_0F11 */
932 1.1 christos {
933 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_0) },
934 1.1 christos { MOD_TABLE (MOD_EVEX_0F11_PREFIX_1) },
935 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_2) },
936 1.1 christos { MOD_TABLE (MOD_EVEX_0F11_PREFIX_3) },
937 1.1 christos },
938 1.1 christos /* PREFIX_EVEX_0F12 */
939 1.1 christos {
940 1.1 christos { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) },
941 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_1) },
942 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_2) },
943 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_3) },
944 1.1 christos },
945 1.1 christos /* PREFIX_EVEX_0F13 */
946 1.1 christos {
947 1.1 christos { VEX_W_TABLE (EVEX_W_0F13_P_0) },
948 1.1 christos { Bad_Opcode },
949 1.1 christos { VEX_W_TABLE (EVEX_W_0F13_P_2) },
950 1.1 christos },
951 1.1 christos /* PREFIX_EVEX_0F14 */
952 1.1 christos {
953 1.1 christos { VEX_W_TABLE (EVEX_W_0F14_P_0) },
954 1.1 christos { Bad_Opcode },
955 1.1 christos { VEX_W_TABLE (EVEX_W_0F14_P_2) },
956 1.1 christos },
957 1.1 christos /* PREFIX_EVEX_0F15 */
958 1.1 christos {
959 1.1 christos { VEX_W_TABLE (EVEX_W_0F15_P_0) },
960 1.1 christos { Bad_Opcode },
961 1.1 christos { VEX_W_TABLE (EVEX_W_0F15_P_2) },
962 1.1 christos },
963 1.1 christos /* PREFIX_EVEX_0F16 */
964 1.1 christos {
965 1.1 christos { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) },
966 1.1 christos { VEX_W_TABLE (EVEX_W_0F16_P_1) },
967 1.1 christos { VEX_W_TABLE (EVEX_W_0F16_P_2) },
968 1.1 christos },
969 1.1 christos /* PREFIX_EVEX_0F17 */
970 1.1 christos {
971 1.1 christos { VEX_W_TABLE (EVEX_W_0F17_P_0) },
972 1.1 christos { Bad_Opcode },
973 1.1 christos { VEX_W_TABLE (EVEX_W_0F17_P_2) },
974 1.1 christos },
975 1.1 christos /* PREFIX_EVEX_0F28 */
976 1.1 christos {
977 1.1 christos { VEX_W_TABLE (EVEX_W_0F28_P_0) },
978 1.1 christos { Bad_Opcode },
979 1.1 christos { VEX_W_TABLE (EVEX_W_0F28_P_2) },
980 1.1 christos },
981 1.1 christos /* PREFIX_EVEX_0F29 */
982 1.1 christos {
983 1.1 christos { VEX_W_TABLE (EVEX_W_0F29_P_0) },
984 1.1 christos { Bad_Opcode },
985 1.1 christos { VEX_W_TABLE (EVEX_W_0F29_P_2) },
986 1.1 christos },
987 1.1 christos /* PREFIX_EVEX_0F2A */
988 1.1 christos {
989 1.1 christos { Bad_Opcode },
990 1.1 christos { VEX_W_TABLE (EVEX_W_0F2A_P_1) },
991 1.1 christos { Bad_Opcode },
992 1.1 christos { VEX_W_TABLE (EVEX_W_0F2A_P_3) },
993 1.1 christos },
994 1.1 christos /* PREFIX_EVEX_0F2B */
995 1.1 christos {
996 1.1 christos { VEX_W_TABLE (EVEX_W_0F2B_P_0) },
997 1.1 christos { Bad_Opcode },
998 1.1 christos { VEX_W_TABLE (EVEX_W_0F2B_P_2) },
999 1.1 christos },
1000 1.1 christos /* PREFIX_EVEX_0F2C */
1001 1.1 christos {
1002 1.1 christos { Bad_Opcode },
1003 1.1 christos { "vcvttss2si", { Gdq, EXxmm_md, EXxEVexS } },
1004 1.1 christos { Bad_Opcode },
1005 1.1 christos { "vcvttsd2si", { Gdq, EXxmm_mq, EXxEVexS } },
1006 1.1 christos },
1007 1.1 christos /* PREFIX_EVEX_0F2D */
1008 1.1 christos {
1009 1.1 christos { Bad_Opcode },
1010 1.1 christos { "vcvtss2si", { Gdq, EXxmm_md, EXxEVexR } },
1011 1.1 christos { Bad_Opcode },
1012 1.1 christos { "vcvtsd2si", { Gdq, EXxmm_mq, EXxEVexR } },
1013 1.1 christos },
1014 1.1 christos /* PREFIX_EVEX_0F2E */
1015 1.1 christos {
1016 1.1 christos { VEX_W_TABLE (EVEX_W_0F2E_P_0) },
1017 1.1 christos { Bad_Opcode },
1018 1.1 christos { VEX_W_TABLE (EVEX_W_0F2E_P_2) },
1019 1.1 christos },
1020 1.1 christos /* PREFIX_EVEX_0F2F */
1021 1.1 christos {
1022 1.1 christos { VEX_W_TABLE (EVEX_W_0F2F_P_0) },
1023 1.1 christos { Bad_Opcode },
1024 1.1 christos { VEX_W_TABLE (EVEX_W_0F2F_P_2) },
1025 1.1 christos },
1026 1.1 christos /* PREFIX_EVEX_0F51 */
1027 1.1 christos {
1028 1.1 christos { VEX_W_TABLE (EVEX_W_0F51_P_0) },
1029 1.1 christos { VEX_W_TABLE (EVEX_W_0F51_P_1) },
1030 1.1 christos { VEX_W_TABLE (EVEX_W_0F51_P_2) },
1031 1.1 christos { VEX_W_TABLE (EVEX_W_0F51_P_3) },
1032 1.1 christos },
1033 1.1 christos /* PREFIX_EVEX_0F58 */
1034 1.1 christos {
1035 1.1 christos { VEX_W_TABLE (EVEX_W_0F58_P_0) },
1036 1.1 christos { VEX_W_TABLE (EVEX_W_0F58_P_1) },
1037 1.1 christos { VEX_W_TABLE (EVEX_W_0F58_P_2) },
1038 1.1 christos { VEX_W_TABLE (EVEX_W_0F58_P_3) },
1039 1.1 christos },
1040 1.1 christos /* PREFIX_EVEX_0F59 */
1041 1.1 christos {
1042 1.1 christos { VEX_W_TABLE (EVEX_W_0F59_P_0) },
1043 1.1 christos { VEX_W_TABLE (EVEX_W_0F59_P_1) },
1044 1.1 christos { VEX_W_TABLE (EVEX_W_0F59_P_2) },
1045 1.1 christos { VEX_W_TABLE (EVEX_W_0F59_P_3) },
1046 1.1 christos },
1047 1.1 christos /* PREFIX_EVEX_0F5A */
1048 1.1 christos {
1049 1.1 christos { VEX_W_TABLE (EVEX_W_0F5A_P_0) },
1050 1.1 christos { VEX_W_TABLE (EVEX_W_0F5A_P_1) },
1051 1.1 christos { VEX_W_TABLE (EVEX_W_0F5A_P_2) },
1052 1.1 christos { VEX_W_TABLE (EVEX_W_0F5A_P_3) },
1053 1.1 christos },
1054 1.1 christos /* PREFIX_EVEX_0F5B */
1055 1.1 christos {
1056 1.1 christos { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
1057 1.1 christos { VEX_W_TABLE (EVEX_W_0F5B_P_1) },
1058 1.1 christos { VEX_W_TABLE (EVEX_W_0F5B_P_2) },
1059 1.1 christos },
1060 1.1 christos /* PREFIX_EVEX_0F5C */
1061 1.1 christos {
1062 1.1 christos { VEX_W_TABLE (EVEX_W_0F5C_P_0) },
1063 1.1 christos { VEX_W_TABLE (EVEX_W_0F5C_P_1) },
1064 1.1 christos { VEX_W_TABLE (EVEX_W_0F5C_P_2) },
1065 1.1 christos { VEX_W_TABLE (EVEX_W_0F5C_P_3) },
1066 1.1 christos },
1067 1.1 christos /* PREFIX_EVEX_0F5D */
1068 1.1 christos {
1069 1.1 christos { VEX_W_TABLE (EVEX_W_0F5D_P_0) },
1070 1.1 christos { VEX_W_TABLE (EVEX_W_0F5D_P_1) },
1071 1.1 christos { VEX_W_TABLE (EVEX_W_0F5D_P_2) },
1072 1.1 christos { VEX_W_TABLE (EVEX_W_0F5D_P_3) },
1073 1.1 christos },
1074 1.1 christos /* PREFIX_EVEX_0F5E */
1075 1.1 christos {
1076 1.1 christos { VEX_W_TABLE (EVEX_W_0F5E_P_0) },
1077 1.1 christos { VEX_W_TABLE (EVEX_W_0F5E_P_1) },
1078 1.1 christos { VEX_W_TABLE (EVEX_W_0F5E_P_2) },
1079 1.1 christos { VEX_W_TABLE (EVEX_W_0F5E_P_3) },
1080 1.1 christos },
1081 1.1 christos /* PREFIX_EVEX_0F5F */
1082 1.1 christos {
1083 1.1 christos { VEX_W_TABLE (EVEX_W_0F5F_P_0) },
1084 1.1 christos { VEX_W_TABLE (EVEX_W_0F5F_P_1) },
1085 1.1 christos { VEX_W_TABLE (EVEX_W_0F5F_P_2) },
1086 1.1 christos { VEX_W_TABLE (EVEX_W_0F5F_P_3) },
1087 1.1 christos },
1088 1.1 christos /* PREFIX_EVEX_0F62 */
1089 1.1 christos {
1090 1.1 christos { Bad_Opcode },
1091 1.1 christos { Bad_Opcode },
1092 1.1 christos { VEX_W_TABLE (EVEX_W_0F62_P_2) },
1093 1.1 christos },
1094 1.1 christos /* PREFIX_EVEX_0F66 */
1095 1.1 christos {
1096 1.1 christos { Bad_Opcode },
1097 1.1 christos { Bad_Opcode },
1098 1.1 christos { VEX_W_TABLE (EVEX_W_0F66_P_2) },
1099 1.1 christos },
1100 1.1 christos /* PREFIX_EVEX_0F6A */
1101 1.1 christos {
1102 1.1 christos { Bad_Opcode },
1103 1.1 christos { Bad_Opcode },
1104 1.1 christos { VEX_W_TABLE (EVEX_W_0F6A_P_2) },
1105 1.1 christos },
1106 1.1 christos /* PREFIX_EVEX_0F6C */
1107 1.1 christos {
1108 1.1 christos { Bad_Opcode },
1109 1.1 christos { Bad_Opcode },
1110 1.1 christos { VEX_W_TABLE (EVEX_W_0F6C_P_2) },
1111 1.1 christos },
1112 1.1 christos /* PREFIX_EVEX_0F6D */
1113 1.1 christos {
1114 1.1 christos { Bad_Opcode },
1115 1.1 christos { Bad_Opcode },
1116 1.1 christos { VEX_W_TABLE (EVEX_W_0F6D_P_2) },
1117 1.1 christos },
1118 1.1 christos /* PREFIX_EVEX_0F6E */
1119 1.1 christos {
1120 1.1 christos { Bad_Opcode },
1121 1.1 christos { Bad_Opcode },
1122 1.1 christos { VEX_W_TABLE (EVEX_W_0F6E_P_2) },
1123 1.1 christos },
1124 1.1 christos /* PREFIX_EVEX_0F6F */
1125 1.1 christos {
1126 1.1 christos { Bad_Opcode },
1127 1.1 christos { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
1128 1.1 christos { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
1129 1.1 christos },
1130 1.1 christos /* PREFIX_EVEX_0F70 */
1131 1.1 christos {
1132 1.1 christos { Bad_Opcode },
1133 1.1 christos { Bad_Opcode },
1134 1.1 christos { VEX_W_TABLE (EVEX_W_0F70_P_2) },
1135 1.1 christos },
1136 1.1 christos /* PREFIX_EVEX_0F72_REG_0 */
1137 1.1 christos {
1138 1.1 christos { Bad_Opcode },
1139 1.1 christos { Bad_Opcode },
1140 1.1 christos { "vpror%LW", { Vex, EXx, Ib } },
1141 1.1 christos },
1142 1.1 christos /* PREFIX_EVEX_0F72_REG_1 */
1143 1.1 christos {
1144 1.1 christos { Bad_Opcode },
1145 1.1 christos { Bad_Opcode },
1146 1.1 christos { "vprol%LW", { Vex, EXx, Ib } },
1147 1.1 christos },
1148 1.1 christos /* PREFIX_EVEX_0F72_REG_2 */
1149 1.1 christos {
1150 1.1 christos { Bad_Opcode },
1151 1.1 christos { Bad_Opcode },
1152 1.1 christos { VEX_W_TABLE (EVEX_W_0F72_R_2_P_2) },
1153 1.1 christos },
1154 1.1 christos /* PREFIX_EVEX_0F72_REG_4 */
1155 1.1 christos {
1156 1.1 christos { Bad_Opcode },
1157 1.1 christos { Bad_Opcode },
1158 1.1 christos { "vpsra%LW", { Vex, EXx, Ib } },
1159 1.1 christos },
1160 1.1 christos /* PREFIX_EVEX_0F72_REG_6 */
1161 1.1 christos {
1162 1.1 christos { Bad_Opcode },
1163 1.1 christos { Bad_Opcode },
1164 1.1 christos { VEX_W_TABLE (EVEX_W_0F72_R_6_P_2) },
1165 1.1 christos },
1166 1.1 christos /* PREFIX_EVEX_0F73_REG_2 */
1167 1.1 christos {
1168 1.1 christos { Bad_Opcode },
1169 1.1 christos { Bad_Opcode },
1170 1.1 christos { VEX_W_TABLE (EVEX_W_0F73_R_2_P_2) },
1171 1.1 christos },
1172 1.1 christos /* PREFIX_EVEX_0F73_REG_6 */
1173 1.1 christos {
1174 1.1 christos { Bad_Opcode },
1175 1.1 christos { Bad_Opcode },
1176 1.1 christos { VEX_W_TABLE (EVEX_W_0F73_R_6_P_2) },
1177 1.1 christos },
1178 1.1 christos /* PREFIX_EVEX_0F76 */
1179 1.1 christos {
1180 1.1 christos { Bad_Opcode },
1181 1.1 christos { Bad_Opcode },
1182 1.1 christos { VEX_W_TABLE (EVEX_W_0F76_P_2) },
1183 1.1 christos },
1184 1.1 christos /* PREFIX_EVEX_0F78 */
1185 1.1 christos {
1186 1.1 christos { VEX_W_TABLE (EVEX_W_0F78_P_0) },
1187 1.1 christos { "vcvttss2usi", { Gdq, EXxmm_md, EXxEVexS } },
1188 1.1 christos { Bad_Opcode },
1189 1.1 christos { "vcvttsd2usi", { Gdq, EXxmm_mq, EXxEVexS } },
1190 1.1 christos },
1191 1.1 christos /* PREFIX_EVEX_0F79 */
1192 1.1 christos {
1193 1.1 christos { VEX_W_TABLE (EVEX_W_0F79_P_0) },
1194 1.1 christos { "vcvtss2usi", { Gdq, EXxmm_md, EXxEVexR } },
1195 1.1 christos { Bad_Opcode },
1196 1.1 christos { "vcvtsd2usi", { Gdq, EXxmm_mq, EXxEVexR } },
1197 1.1 christos },
1198 1.1 christos /* PREFIX_EVEX_0F7A */
1199 1.1 christos {
1200 1.1 christos { Bad_Opcode },
1201 1.1 christos { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
1202 1.1 christos { Bad_Opcode },
1203 1.1 christos { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
1204 1.1 christos },
1205 1.1 christos /* PREFIX_EVEX_0F7B */
1206 1.1 christos {
1207 1.1 christos { Bad_Opcode },
1208 1.1 christos { VEX_W_TABLE (EVEX_W_0F7B_P_1) },
1209 1.1 christos { Bad_Opcode },
1210 1.1 christos { VEX_W_TABLE (EVEX_W_0F7B_P_3) },
1211 1.1 christos },
1212 1.1 christos /* PREFIX_EVEX_0F7E */
1213 1.1 christos {
1214 1.1 christos { Bad_Opcode },
1215 1.1 christos { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
1216 1.1 christos { VEX_W_TABLE (EVEX_W_0F7E_P_2) },
1217 1.1 christos },
1218 1.1 christos /* PREFIX_EVEX_0F7F */
1219 1.1 christos {
1220 1.1 christos { Bad_Opcode },
1221 1.1 christos { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
1222 1.1 christos { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
1223 1.1 christos },
1224 1.1 christos
1225 1.1 christos /* PREFIX_EVEX_0FC2 */
1226 1.1 christos {
1227 1.1 christos { VEX_W_TABLE (EVEX_W_0FC2_P_0) },
1228 1.1 christos { VEX_W_TABLE (EVEX_W_0FC2_P_1) },
1229 1.1 christos { VEX_W_TABLE (EVEX_W_0FC2_P_2) },
1230 1.1 christos { VEX_W_TABLE (EVEX_W_0FC2_P_3) },
1231 1.1 christos },
1232 1.1 christos /* PREFIX_EVEX_0FC6 */
1233 1.1 christos {
1234 1.1 christos { VEX_W_TABLE (EVEX_W_0FC6_P_0) },
1235 1.1 christos { Bad_Opcode },
1236 1.1 christos { VEX_W_TABLE (EVEX_W_0FC6_P_2) },
1237 1.1 christos },
1238 1.1 christos /* PREFIX_EVEX_0FD2 */
1239 1.1 christos {
1240 1.1 christos { Bad_Opcode },
1241 1.1 christos { Bad_Opcode },
1242 1.1 christos { VEX_W_TABLE (EVEX_W_0FD2_P_2) },
1243 1.1 christos },
1244 1.1 christos /* PREFIX_EVEX_0FD3 */
1245 1.1 christos {
1246 1.1 christos { Bad_Opcode },
1247 1.1 christos { Bad_Opcode },
1248 1.1 christos { VEX_W_TABLE (EVEX_W_0FD3_P_2) },
1249 1.1 christos },
1250 1.1 christos /* PREFIX_EVEX_0FD4 */
1251 1.1 christos {
1252 1.1 christos { Bad_Opcode },
1253 1.1 christos { Bad_Opcode },
1254 1.1 christos { VEX_W_TABLE (EVEX_W_0FD4_P_2) },
1255 1.1 christos },
1256 1.1 christos /* PREFIX_EVEX_0FD6 */
1257 1.1 christos {
1258 1.1 christos { Bad_Opcode },
1259 1.1 christos { Bad_Opcode },
1260 1.1 christos { VEX_W_TABLE (EVEX_W_0FD6_P_2) },
1261 1.1 christos },
1262 1.1 christos /* PREFIX_EVEX_0FDB */
1263 1.1 christos {
1264 1.1 christos { Bad_Opcode },
1265 1.1 christos { Bad_Opcode },
1266 1.1 christos { "vpand%LW", { XM, Vex, EXx } },
1267 1.1 christos },
1268 1.1 christos /* PREFIX_EVEX_0FDF */
1269 1.1 christos {
1270 1.1 christos { Bad_Opcode },
1271 1.1 christos { Bad_Opcode },
1272 1.1 christos { "vpandn%LW", { XM, Vex, EXx } },
1273 1.1 christos },
1274 1.1 christos /* PREFIX_EVEX_0FE2 */
1275 1.1 christos {
1276 1.1 christos { Bad_Opcode },
1277 1.1 christos { Bad_Opcode },
1278 1.1 christos { "vpsra%LW", { XM, Vex, EXxmm } },
1279 1.1 christos },
1280 1.1 christos /* PREFIX_EVEX_0FE6 */
1281 1.1 christos {
1282 1.1 christos { Bad_Opcode },
1283 1.1 christos { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
1284 1.1 christos { VEX_W_TABLE (EVEX_W_0FE6_P_2) },
1285 1.1 christos { VEX_W_TABLE (EVEX_W_0FE6_P_3) },
1286 1.1 christos },
1287 1.1 christos /* PREFIX_EVEX_0FE7 */
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_0FE7_P_2) },
1292 1.1 christos },
1293 1.1 christos /* PREFIX_EVEX_0FEB */
1294 1.1 christos {
1295 1.1 christos { Bad_Opcode },
1296 1.1 christos { Bad_Opcode },
1297 1.1 christos { "vpor%LW", { XM, Vex, EXx } },
1298 1.1 christos },
1299 1.1 christos /* PREFIX_EVEX_0FEF */
1300 1.1 christos {
1301 1.1 christos { Bad_Opcode },
1302 1.1 christos { Bad_Opcode },
1303 1.1 christos { "vpxor%LW", { XM, Vex, EXx } },
1304 1.1 christos },
1305 1.1 christos /* PREFIX_EVEX_0FF2 */
1306 1.1 christos {
1307 1.1 christos { Bad_Opcode },
1308 1.1 christos { Bad_Opcode },
1309 1.1 christos { VEX_W_TABLE (EVEX_W_0FF2_P_2) },
1310 1.1 christos },
1311 1.1 christos /* PREFIX_EVEX_0FF3 */
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_0FF3_P_2) },
1316 1.1 christos },
1317 1.1 christos /* PREFIX_EVEX_0FF4 */
1318 1.1 christos {
1319 1.1 christos { Bad_Opcode },
1320 1.1 christos { Bad_Opcode },
1321 1.1 christos { VEX_W_TABLE (EVEX_W_0FF4_P_2) },
1322 1.1 christos },
1323 1.1 christos /* PREFIX_EVEX_0FFA */
1324 1.1 christos {
1325 1.1 christos { Bad_Opcode },
1326 1.1 christos { Bad_Opcode },
1327 1.1 christos { VEX_W_TABLE (EVEX_W_0FFA_P_2) },
1328 1.1 christos },
1329 1.1 christos /* PREFIX_EVEX_0FFB */
1330 1.1 christos {
1331 1.1 christos { Bad_Opcode },
1332 1.1 christos { Bad_Opcode },
1333 1.1 christos { VEX_W_TABLE (EVEX_W_0FFB_P_2) },
1334 1.1 christos },
1335 1.1 christos /* PREFIX_EVEX_0FFE */
1336 1.1 christos {
1337 1.1 christos { Bad_Opcode },
1338 1.1 christos { Bad_Opcode },
1339 1.1 christos { VEX_W_TABLE (EVEX_W_0FFE_P_2) },
1340 1.1 christos },
1341 1.1 christos
1342 1.1 christos /* PREFIX_EVEX_0F380C */
1343 1.1 christos {
1344 1.1 christos { Bad_Opcode },
1345 1.1 christos { Bad_Opcode },
1346 1.1 christos { VEX_W_TABLE (EVEX_W_0F380C_P_2) },
1347 1.1 christos },
1348 1.1 christos /* PREFIX_EVEX_0F380D */
1349 1.1 christos {
1350 1.1 christos { Bad_Opcode },
1351 1.1 christos { Bad_Opcode },
1352 1.1 christos { VEX_W_TABLE (EVEX_W_0F380D_P_2) },
1353 1.1 christos },
1354 1.1 christos /* PREFIX_EVEX_0F3811 */
1355 1.1 christos {
1356 1.1 christos { Bad_Opcode },
1357 1.1 christos { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
1358 1.1 christos },
1359 1.1 christos /* PREFIX_EVEX_0F3812 */
1360 1.1 christos {
1361 1.1 christos { Bad_Opcode },
1362 1.1 christos { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
1363 1.1 christos },
1364 1.1 christos /* PREFIX_EVEX_0F3813 */
1365 1.1 christos {
1366 1.1 christos { Bad_Opcode },
1367 1.1 christos { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
1368 1.1 christos { VEX_W_TABLE (EVEX_W_0F3813_P_2) },
1369 1.1 christos },
1370 1.1 christos /* PREFIX_EVEX_0F3814 */
1371 1.1 christos {
1372 1.1 christos { Bad_Opcode },
1373 1.1 christos { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
1374 1.1 christos { "vprorv%LW", { XM, Vex, EXx } },
1375 1.1 christos },
1376 1.1 christos /* PREFIX_EVEX_0F3815 */
1377 1.1 christos {
1378 1.1 christos { Bad_Opcode },
1379 1.1 christos { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
1380 1.1 christos { "vprolv%LW", { XM, Vex, EXx } },
1381 1.1 christos },
1382 1.1 christos /* PREFIX_EVEX_0F3816 */
1383 1.1 christos {
1384 1.1 christos { Bad_Opcode },
1385 1.1 christos { Bad_Opcode },
1386 1.1 christos { "vpermp%XW", { XM, Vex, EXx } },
1387 1.1 christos },
1388 1.1 christos /* PREFIX_EVEX_0F3818 */
1389 1.1 christos {
1390 1.1 christos { Bad_Opcode },
1391 1.1 christos { Bad_Opcode },
1392 1.1 christos { VEX_W_TABLE (EVEX_W_0F3818_P_2) },
1393 1.1 christos },
1394 1.1 christos /* PREFIX_EVEX_0F3819 */
1395 1.1 christos {
1396 1.1 christos { Bad_Opcode },
1397 1.1 christos { Bad_Opcode },
1398 1.1 christos { VEX_W_TABLE (EVEX_W_0F3819_P_2) },
1399 1.1 christos },
1400 1.1 christos /* PREFIX_EVEX_0F381A */
1401 1.1 christos {
1402 1.1 christos { Bad_Opcode },
1403 1.1 christos { Bad_Opcode },
1404 1.1 christos { VEX_W_TABLE (EVEX_W_0F381A_P_2) },
1405 1.1 christos },
1406 1.1 christos /* PREFIX_EVEX_0F381B */
1407 1.1 christos {
1408 1.1 christos { Bad_Opcode },
1409 1.1 christos { Bad_Opcode },
1410 1.1 christos { VEX_W_TABLE (EVEX_W_0F381B_P_2) },
1411 1.1 christos },
1412 1.1 christos /* PREFIX_EVEX_0F381E */
1413 1.1 christos {
1414 1.1 christos { Bad_Opcode },
1415 1.1 christos { Bad_Opcode },
1416 1.1 christos { VEX_W_TABLE (EVEX_W_0F381E_P_2) },
1417 1.1 christos },
1418 1.1 christos /* PREFIX_EVEX_0F381F */
1419 1.1 christos {
1420 1.1 christos { Bad_Opcode },
1421 1.1 christos { Bad_Opcode },
1422 1.1 christos { VEX_W_TABLE (EVEX_W_0F381F_P_2) },
1423 1.1 christos },
1424 1.1 christos /* PREFIX_EVEX_0F3821 */
1425 1.1 christos {
1426 1.1 christos { Bad_Opcode },
1427 1.1 christos { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
1428 1.1 christos { "vpmovsxbd", { XM, EXxmmqd } },
1429 1.1 christos },
1430 1.1 christos /* PREFIX_EVEX_0F3822 */
1431 1.1 christos {
1432 1.1 christos { Bad_Opcode },
1433 1.1 christos { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
1434 1.1 christos { "vpmovsxbq", { XM, EXxmmdw } },
1435 1.1 christos },
1436 1.1 christos /* PREFIX_EVEX_0F3823 */
1437 1.1 christos {
1438 1.1 christos { Bad_Opcode },
1439 1.1 christos { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
1440 1.1 christos { "vpmovsxwd", { XM, EXxmmq } },
1441 1.1 christos },
1442 1.1 christos /* PREFIX_EVEX_0F3824 */
1443 1.1 christos {
1444 1.1 christos { Bad_Opcode },
1445 1.1 christos { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
1446 1.1 christos { "vpmovsxwq", { XM, EXxmmqd } },
1447 1.1 christos },
1448 1.1 christos /* PREFIX_EVEX_0F3825 */
1449 1.1 christos {
1450 1.1 christos { Bad_Opcode },
1451 1.1 christos { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
1452 1.1 christos { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
1453 1.1 christos },
1454 1.1 christos /* PREFIX_EVEX_0F3827 */
1455 1.1 christos {
1456 1.1 christos { Bad_Opcode },
1457 1.1 christos { "vptestnm%LW", { XMask, Vex, EXx } },
1458 1.1 christos { "vptestm%LW", { XMask, Vex, EXx } },
1459 1.1 christos },
1460 1.1 christos /* PREFIX_EVEX_0F3828 */
1461 1.1 christos {
1462 1.1 christos { Bad_Opcode },
1463 1.1 christos { Bad_Opcode },
1464 1.1 christos { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
1465 1.1 christos },
1466 1.1 christos /* PREFIX_EVEX_0F3829 */
1467 1.1 christos {
1468 1.1 christos { Bad_Opcode },
1469 1.1 christos { Bad_Opcode },
1470 1.1 christos { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
1471 1.1 christos },
1472 1.1 christos /* PREFIX_EVEX_0F382A */
1473 1.1 christos {
1474 1.1 christos { Bad_Opcode },
1475 1.1 christos { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
1476 1.1 christos { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
1477 1.1 christos },
1478 1.1 christos /* PREFIX_EVEX_0F382C */
1479 1.1 christos {
1480 1.1 christos { Bad_Opcode },
1481 1.1 christos { Bad_Opcode },
1482 1.1 christos { "vscalefp%XW", { XM, Vex, EXx, EXxEVexR } },
1483 1.1 christos },
1484 1.1 christos /* PREFIX_EVEX_0F382D */
1485 1.1 christos {
1486 1.1 christos { Bad_Opcode },
1487 1.1 christos { Bad_Opcode },
1488 1.1 christos { "vscalefs%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1489 1.1 christos },
1490 1.1 christos /* PREFIX_EVEX_0F3831 */
1491 1.1 christos {
1492 1.1 christos { Bad_Opcode },
1493 1.1 christos { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
1494 1.1 christos { "vpmovzxbd", { XM, EXxmmqd } },
1495 1.1 christos },
1496 1.1 christos /* PREFIX_EVEX_0F3832 */
1497 1.1 christos {
1498 1.1 christos { Bad_Opcode },
1499 1.1 christos { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
1500 1.1 christos { "vpmovzxbq", { XM, EXxmmdw } },
1501 1.1 christos },
1502 1.1 christos /* PREFIX_EVEX_0F3833 */
1503 1.1 christos {
1504 1.1 christos { Bad_Opcode },
1505 1.1 christos { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
1506 1.1 christos { "vpmovzxwd", { XM, EXxmmq } },
1507 1.1 christos },
1508 1.1 christos /* PREFIX_EVEX_0F3834 */
1509 1.1 christos {
1510 1.1 christos { Bad_Opcode },
1511 1.1 christos { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
1512 1.1 christos { "vpmovzxwq", { XM, EXxmmqd } },
1513 1.1 christos },
1514 1.1 christos /* PREFIX_EVEX_0F3835 */
1515 1.1 christos {
1516 1.1 christos { Bad_Opcode },
1517 1.1 christos { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
1518 1.1 christos { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
1519 1.1 christos },
1520 1.1 christos /* PREFIX_EVEX_0F3836 */
1521 1.1 christos {
1522 1.1 christos { Bad_Opcode },
1523 1.1 christos { Bad_Opcode },
1524 1.1 christos { "vperm%LW", { XM, Vex, EXx } },
1525 1.1 christos },
1526 1.1 christos /* PREFIX_EVEX_0F3837 */
1527 1.1 christos {
1528 1.1 christos { Bad_Opcode },
1529 1.1 christos { Bad_Opcode },
1530 1.1 christos { VEX_W_TABLE (EVEX_W_0F3837_P_2) },
1531 1.1 christos },
1532 1.1 christos /* PREFIX_EVEX_0F3839 */
1533 1.1 christos {
1534 1.1 christos { Bad_Opcode },
1535 1.1 christos { Bad_Opcode },
1536 1.1 christos { "vpmins%LW", { XM, Vex, EXx } },
1537 1.1 christos },
1538 1.1 christos /* PREFIX_EVEX_0F383A */
1539 1.1 christos {
1540 1.1 christos { Bad_Opcode },
1541 1.1 christos { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
1542 1.1 christos },
1543 1.1 christos /* PREFIX_EVEX_0F383B */
1544 1.1 christos {
1545 1.1 christos { Bad_Opcode },
1546 1.1 christos { Bad_Opcode },
1547 1.1 christos { "vpminu%LW", { XM, Vex, EXx } },
1548 1.1 christos },
1549 1.1 christos /* PREFIX_EVEX_0F383D */
1550 1.1 christos {
1551 1.1 christos { Bad_Opcode },
1552 1.1 christos { Bad_Opcode },
1553 1.1 christos { "vpmaxs%LW", { XM, Vex, EXx } },
1554 1.1 christos },
1555 1.1 christos /* PREFIX_EVEX_0F383F */
1556 1.1 christos {
1557 1.1 christos { Bad_Opcode },
1558 1.1 christos { Bad_Opcode },
1559 1.1 christos { "vpmaxu%LW", { XM, Vex, EXx } },
1560 1.1 christos },
1561 1.1 christos /* PREFIX_EVEX_0F3840 */
1562 1.1 christos {
1563 1.1 christos { Bad_Opcode },
1564 1.1 christos { Bad_Opcode },
1565 1.1 christos { VEX_W_TABLE (EVEX_W_0F3840_P_2) },
1566 1.1 christos },
1567 1.1 christos /* PREFIX_EVEX_0F3842 */
1568 1.1 christos {
1569 1.1 christos { Bad_Opcode },
1570 1.1 christos { Bad_Opcode },
1571 1.1 christos { "vgetexpp%XW", { XM, EXx, EXxEVexS } },
1572 1.1 christos },
1573 1.1 christos /* PREFIX_EVEX_0F3843 */
1574 1.1 christos {
1575 1.1 christos { Bad_Opcode },
1576 1.1 christos { Bad_Opcode },
1577 1.1 christos { "vgetexps%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
1578 1.1 christos },
1579 1.1 christos /* PREFIX_EVEX_0F3844 */
1580 1.1 christos {
1581 1.1 christos { Bad_Opcode },
1582 1.1 christos { Bad_Opcode },
1583 1.1 christos { "vplzcnt%LW", { XM, EXx } },
1584 1.1 christos },
1585 1.1 christos /* PREFIX_EVEX_0F3845 */
1586 1.1 christos {
1587 1.1 christos { Bad_Opcode },
1588 1.1 christos { Bad_Opcode },
1589 1.1 christos { "vpsrlv%LW", { XM, Vex, EXx } },
1590 1.1 christos },
1591 1.1 christos /* PREFIX_EVEX_0F3846 */
1592 1.1 christos {
1593 1.1 christos { Bad_Opcode },
1594 1.1 christos { Bad_Opcode },
1595 1.1 christos { "vpsrav%LW", { XM, Vex, EXx } },
1596 1.1 christos },
1597 1.1 christos /* PREFIX_EVEX_0F3847 */
1598 1.1 christos {
1599 1.1 christos { Bad_Opcode },
1600 1.1 christos { Bad_Opcode },
1601 1.1 christos { "vpsllv%LW", { XM, Vex, EXx } },
1602 1.1 christos },
1603 1.1 christos /* PREFIX_EVEX_0F384C */
1604 1.1 christos {
1605 1.1 christos { Bad_Opcode },
1606 1.1 christos { Bad_Opcode },
1607 1.1 christos { "vrcp14p%XW", { XM, EXx } },
1608 1.1 christos },
1609 1.1 christos /* PREFIX_EVEX_0F384D */
1610 1.1 christos {
1611 1.1 christos { Bad_Opcode },
1612 1.1 christos { Bad_Opcode },
1613 1.1 christos { "vrcp14s%XW", { XMScalar, VexScalar, EXxmm_mdq } },
1614 1.1 christos },
1615 1.1 christos /* PREFIX_EVEX_0F384E */
1616 1.1 christos {
1617 1.1 christos { Bad_Opcode },
1618 1.1 christos { Bad_Opcode },
1619 1.1 christos { "vrsqrt14p%XW", { XM, EXx } },
1620 1.1 christos },
1621 1.1 christos /* PREFIX_EVEX_0F384F */
1622 1.1 christos {
1623 1.1 christos { Bad_Opcode },
1624 1.1 christos { Bad_Opcode },
1625 1.1 christos { "vrsqrt14s%XW", { XMScalar, VexScalar, EXxmm_mdq } },
1626 1.1 christos },
1627 1.1 christos /* PREFIX_EVEX_0F3858 */
1628 1.1 christos {
1629 1.1 christos { Bad_Opcode },
1630 1.1 christos { Bad_Opcode },
1631 1.1 christos { VEX_W_TABLE (EVEX_W_0F3858_P_2) },
1632 1.1 christos },
1633 1.1 christos /* PREFIX_EVEX_0F3859 */
1634 1.1 christos {
1635 1.1 christos { Bad_Opcode },
1636 1.1 christos { Bad_Opcode },
1637 1.1 christos { VEX_W_TABLE (EVEX_W_0F3859_P_2) },
1638 1.1 christos },
1639 1.1 christos /* PREFIX_EVEX_0F385A */
1640 1.1 christos {
1641 1.1 christos { Bad_Opcode },
1642 1.1 christos { Bad_Opcode },
1643 1.1 christos { VEX_W_TABLE (EVEX_W_0F385A_P_2) },
1644 1.1 christos },
1645 1.1 christos /* PREFIX_EVEX_0F385B */
1646 1.1 christos {
1647 1.1 christos { Bad_Opcode },
1648 1.1 christos { Bad_Opcode },
1649 1.1 christos { VEX_W_TABLE (EVEX_W_0F385B_P_2) },
1650 1.1 christos },
1651 1.1 christos /* PREFIX_EVEX_0F3864 */
1652 1.1 christos {
1653 1.1 christos { Bad_Opcode },
1654 1.1 christos { Bad_Opcode },
1655 1.1 christos { "vpblendm%LW", { XM, Vex, EXx } },
1656 1.1 christos },
1657 1.1 christos /* PREFIX_EVEX_0F3865 */
1658 1.1 christos {
1659 1.1 christos { Bad_Opcode },
1660 1.1 christos { Bad_Opcode },
1661 1.1 christos { "vblendmp%XW", { XM, Vex, EXx } },
1662 1.1 christos },
1663 1.1 christos /* PREFIX_EVEX_0F3876 */
1664 1.1 christos {
1665 1.1 christos { Bad_Opcode },
1666 1.1 christos { Bad_Opcode },
1667 1.1 christos { "vpermi2%LW", { XM, Vex, EXx } },
1668 1.1 christos },
1669 1.1 christos /* PREFIX_EVEX_0F3877 */
1670 1.1 christos {
1671 1.1 christos { Bad_Opcode },
1672 1.1 christos { Bad_Opcode },
1673 1.1 christos { "vpermi2p%XW", { XM, Vex, EXx } },
1674 1.1 christos },
1675 1.1 christos /* PREFIX_EVEX_0F387C */
1676 1.1 christos {
1677 1.1 christos { Bad_Opcode },
1678 1.1 christos { Bad_Opcode },
1679 1.1 christos { "vpbroadcast%LW", { XM, Rdq } },
1680 1.1 christos },
1681 1.1 christos /* PREFIX_EVEX_0F387E */
1682 1.1 christos {
1683 1.1 christos { Bad_Opcode },
1684 1.1 christos { Bad_Opcode },
1685 1.1 christos { "vpermt2%LW", { XM, Vex, EXx } },
1686 1.1 christos },
1687 1.1 christos /* PREFIX_EVEX_0F387F */
1688 1.1 christos {
1689 1.1 christos { Bad_Opcode },
1690 1.1 christos { Bad_Opcode },
1691 1.1 christos { "vpermt2p%XW", { XM, Vex, EXx } },
1692 1.1 christos },
1693 1.1 christos /* PREFIX_EVEX_0F3888 */
1694 1.1 christos {
1695 1.1 christos { Bad_Opcode },
1696 1.1 christos { Bad_Opcode },
1697 1.1 christos { "vexpandp%XW", { XM, EXEvexXGscat } },
1698 1.1 christos },
1699 1.1 christos /* PREFIX_EVEX_0F3889 */
1700 1.1 christos {
1701 1.1 christos { Bad_Opcode },
1702 1.1 christos { Bad_Opcode },
1703 1.1 christos { "vpexpand%LW", { XM, EXEvexXGscat } },
1704 1.1 christos },
1705 1.1 christos /* PREFIX_EVEX_0F388A */
1706 1.1 christos {
1707 1.1 christos { Bad_Opcode },
1708 1.1 christos { Bad_Opcode },
1709 1.1 christos { "vcompressp%XW", { EXEvexXGscat, XM } },
1710 1.1 christos },
1711 1.1 christos /* PREFIX_EVEX_0F388B */
1712 1.1 christos {
1713 1.1 christos { Bad_Opcode },
1714 1.1 christos { Bad_Opcode },
1715 1.1 christos { "vpcompress%LW", { EXEvexXGscat, XM } },
1716 1.1 christos },
1717 1.1 christos /* PREFIX_EVEX_0F3890 */
1718 1.1 christos {
1719 1.1 christos { Bad_Opcode },
1720 1.1 christos { Bad_Opcode },
1721 1.1 christos { "vpgatherd%LW", { XM, MVexVSIBDWpX } },
1722 1.1 christos },
1723 1.1 christos /* PREFIX_EVEX_0F3891 */
1724 1.1 christos {
1725 1.1 christos { Bad_Opcode },
1726 1.1 christos { Bad_Opcode },
1727 1.1 christos { VEX_W_TABLE (EVEX_W_0F3891_P_2) },
1728 1.1 christos },
1729 1.1 christos /* PREFIX_EVEX_0F3892 */
1730 1.1 christos {
1731 1.1 christos { Bad_Opcode },
1732 1.1 christos { Bad_Opcode },
1733 1.1 christos { "vgatherdp%XW", { XM, MVexVSIBDWpX} },
1734 1.1 christos },
1735 1.1 christos /* PREFIX_EVEX_0F3893 */
1736 1.1 christos {
1737 1.1 christos { Bad_Opcode },
1738 1.1 christos { Bad_Opcode },
1739 1.1 christos { VEX_W_TABLE (EVEX_W_0F3893_P_2) },
1740 1.1 christos },
1741 1.1 christos /* PREFIX_EVEX_0F3896 */
1742 1.1 christos {
1743 1.1 christos { Bad_Opcode },
1744 1.1 christos { Bad_Opcode },
1745 1.1 christos { "vfmaddsub132p%XW", { XM, Vex, EXx, EXxEVexR } },
1746 1.1 christos },
1747 1.1 christos /* PREFIX_EVEX_0F3897 */
1748 1.1 christos {
1749 1.1 christos { Bad_Opcode },
1750 1.1 christos { Bad_Opcode },
1751 1.1 christos { "vfmsubadd132p%XW", { XM, Vex, EXx, EXxEVexR } },
1752 1.1 christos },
1753 1.1 christos /* PREFIX_EVEX_0F3898 */
1754 1.1 christos {
1755 1.1 christos { Bad_Opcode },
1756 1.1 christos { Bad_Opcode },
1757 1.1 christos { "vfmadd132p%XW", { XM, Vex, EXx, EXxEVexR } },
1758 1.1 christos },
1759 1.1 christos /* PREFIX_EVEX_0F3899 */
1760 1.1 christos {
1761 1.1 christos { Bad_Opcode },
1762 1.1 christos { Bad_Opcode },
1763 1.1 christos { "vfmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1764 1.1 christos },
1765 1.1 christos /* PREFIX_EVEX_0F389A */
1766 1.1 christos {
1767 1.1 christos { Bad_Opcode },
1768 1.1 christos { Bad_Opcode },
1769 1.1 christos { "vfmsub132p%XW", { XM, Vex, EXx, EXxEVexR } },
1770 1.1 christos },
1771 1.1 christos /* PREFIX_EVEX_0F389B */
1772 1.1 christos {
1773 1.1 christos { Bad_Opcode },
1774 1.1 christos { Bad_Opcode },
1775 1.1 christos { "vfmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1776 1.1 christos },
1777 1.1 christos /* PREFIX_EVEX_0F389C */
1778 1.1 christos {
1779 1.1 christos { Bad_Opcode },
1780 1.1 christos { Bad_Opcode },
1781 1.1 christos { "vfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR } },
1782 1.1 christos },
1783 1.1 christos /* PREFIX_EVEX_0F389D */
1784 1.1 christos {
1785 1.1 christos { Bad_Opcode },
1786 1.1 christos { Bad_Opcode },
1787 1.1 christos { "vfnmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1788 1.1 christos },
1789 1.1 christos /* PREFIX_EVEX_0F389E */
1790 1.1 christos {
1791 1.1 christos { Bad_Opcode },
1792 1.1 christos { Bad_Opcode },
1793 1.1 christos { "vfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR } },
1794 1.1 christos },
1795 1.1 christos /* PREFIX_EVEX_0F389F */
1796 1.1 christos {
1797 1.1 christos { Bad_Opcode },
1798 1.1 christos { Bad_Opcode },
1799 1.1 christos { "vfnmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1800 1.1 christos },
1801 1.1 christos /* PREFIX_EVEX_0F38A0 */
1802 1.1 christos {
1803 1.1 christos { Bad_Opcode },
1804 1.1 christos { Bad_Opcode },
1805 1.1 christos { "vpscatterd%LW", { MVexVSIBDWpX, XM } },
1806 1.1 christos },
1807 1.1 christos /* PREFIX_EVEX_0F38A1 */
1808 1.1 christos {
1809 1.1 christos { Bad_Opcode },
1810 1.1 christos { Bad_Opcode },
1811 1.1 christos { VEX_W_TABLE (EVEX_W_0F38A1_P_2) },
1812 1.1 christos },
1813 1.1 christos /* PREFIX_EVEX_0F38A2 */
1814 1.1 christos {
1815 1.1 christos { Bad_Opcode },
1816 1.1 christos { Bad_Opcode },
1817 1.1 christos { "vscatterdp%XW", { MVexVSIBDWpX, XM } },
1818 1.1 christos },
1819 1.1 christos /* PREFIX_EVEX_0F38A3 */
1820 1.1 christos {
1821 1.1 christos { Bad_Opcode },
1822 1.1 christos { Bad_Opcode },
1823 1.1 christos { VEX_W_TABLE (EVEX_W_0F38A3_P_2) },
1824 1.1 christos },
1825 1.1 christos /* PREFIX_EVEX_0F38A6 */
1826 1.1 christos {
1827 1.1 christos { Bad_Opcode },
1828 1.1 christos { Bad_Opcode },
1829 1.1 christos { "vfmaddsub213p%XW", { XM, Vex, EXx, EXxEVexR } },
1830 1.1 christos },
1831 1.1 christos /* PREFIX_EVEX_0F38A7 */
1832 1.1 christos {
1833 1.1 christos { Bad_Opcode },
1834 1.1 christos { Bad_Opcode },
1835 1.1 christos { "vfmsubadd213p%XW", { XM, Vex, EXx, EXxEVexR } },
1836 1.1 christos },
1837 1.1 christos /* PREFIX_EVEX_0F38A8 */
1838 1.1 christos {
1839 1.1 christos { Bad_Opcode },
1840 1.1 christos { Bad_Opcode },
1841 1.1 christos { "vfmadd213p%XW", { XM, Vex, EXx, EXxEVexR } },
1842 1.1 christos },
1843 1.1 christos /* PREFIX_EVEX_0F38A9 */
1844 1.1 christos {
1845 1.1 christos { Bad_Opcode },
1846 1.1 christos { Bad_Opcode },
1847 1.1 christos { "vfmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1848 1.1 christos },
1849 1.1 christos /* PREFIX_EVEX_0F38AA */
1850 1.1 christos {
1851 1.1 christos { Bad_Opcode },
1852 1.1 christos { Bad_Opcode },
1853 1.1 christos { "vfmsub213p%XW", { XM, Vex, EXx, EXxEVexR } },
1854 1.1 christos },
1855 1.1 christos /* PREFIX_EVEX_0F38AB */
1856 1.1 christos {
1857 1.1 christos { Bad_Opcode },
1858 1.1 christos { Bad_Opcode },
1859 1.1 christos { "vfmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1860 1.1 christos },
1861 1.1 christos /* PREFIX_EVEX_0F38AC */
1862 1.1 christos {
1863 1.1 christos { Bad_Opcode },
1864 1.1 christos { Bad_Opcode },
1865 1.1 christos { "vfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR } },
1866 1.1 christos },
1867 1.1 christos /* PREFIX_EVEX_0F38AD */
1868 1.1 christos {
1869 1.1 christos { Bad_Opcode },
1870 1.1 christos { Bad_Opcode },
1871 1.1 christos { "vfnmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1872 1.1 christos },
1873 1.1 christos /* PREFIX_EVEX_0F38AE */
1874 1.1 christos {
1875 1.1 christos { Bad_Opcode },
1876 1.1 christos { Bad_Opcode },
1877 1.1 christos { "vfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR } },
1878 1.1 christos },
1879 1.1 christos /* PREFIX_EVEX_0F38AF */
1880 1.1 christos {
1881 1.1 christos { Bad_Opcode },
1882 1.1 christos { Bad_Opcode },
1883 1.1 christos { "vfnmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1884 1.1 christos },
1885 1.1 christos /* PREFIX_EVEX_0F38B6 */
1886 1.1 christos {
1887 1.1 christos { Bad_Opcode },
1888 1.1 christos { Bad_Opcode },
1889 1.1 christos { "vfmaddsub231p%XW", { XM, Vex, EXx, EXxEVexR } },
1890 1.1 christos },
1891 1.1 christos /* PREFIX_EVEX_0F38B7 */
1892 1.1 christos {
1893 1.1 christos { Bad_Opcode },
1894 1.1 christos { Bad_Opcode },
1895 1.1 christos { "vfmsubadd231p%XW", { XM, Vex, EXx, EXxEVexR } },
1896 1.1 christos },
1897 1.1 christos /* PREFIX_EVEX_0F38B8 */
1898 1.1 christos {
1899 1.1 christos { Bad_Opcode },
1900 1.1 christos { Bad_Opcode },
1901 1.1 christos { "vfmadd231p%XW", { XM, Vex, EXx, EXxEVexR } },
1902 1.1 christos },
1903 1.1 christos /* PREFIX_EVEX_0F38B9 */
1904 1.1 christos {
1905 1.1 christos { Bad_Opcode },
1906 1.1 christos { Bad_Opcode },
1907 1.1 christos { "vfmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1908 1.1 christos },
1909 1.1 christos /* PREFIX_EVEX_0F38BA */
1910 1.1 christos {
1911 1.1 christos { Bad_Opcode },
1912 1.1 christos { Bad_Opcode },
1913 1.1 christos { "vfmsub231p%XW", { XM, Vex, EXx, EXxEVexR } },
1914 1.1 christos },
1915 1.1 christos /* PREFIX_EVEX_0F38BB */
1916 1.1 christos {
1917 1.1 christos { Bad_Opcode },
1918 1.1 christos { Bad_Opcode },
1919 1.1 christos { "vfmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1920 1.1 christos },
1921 1.1 christos /* PREFIX_EVEX_0F38BC */
1922 1.1 christos {
1923 1.1 christos { Bad_Opcode },
1924 1.1 christos { Bad_Opcode },
1925 1.1 christos { "vfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR } },
1926 1.1 christos },
1927 1.1 christos /* PREFIX_EVEX_0F38BD */
1928 1.1 christos {
1929 1.1 christos { Bad_Opcode },
1930 1.1 christos { Bad_Opcode },
1931 1.1 christos { "vfnmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1932 1.1 christos },
1933 1.1 christos /* PREFIX_EVEX_0F38BE */
1934 1.1 christos {
1935 1.1 christos { Bad_Opcode },
1936 1.1 christos { Bad_Opcode },
1937 1.1 christos { "vfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR } },
1938 1.1 christos },
1939 1.1 christos /* PREFIX_EVEX_0F38BF */
1940 1.1 christos {
1941 1.1 christos { Bad_Opcode },
1942 1.1 christos { Bad_Opcode },
1943 1.1 christos { "vfnmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR } },
1944 1.1 christos },
1945 1.1 christos /* PREFIX_EVEX_0F38C4 */
1946 1.1 christos {
1947 1.1 christos { Bad_Opcode },
1948 1.1 christos { Bad_Opcode },
1949 1.1 christos { "vpconflict%LW", { XM, EXx } },
1950 1.1 christos },
1951 1.1 christos /* PREFIX_EVEX_0F38C6_REG_1 */
1952 1.1 christos {
1953 1.1 christos { Bad_Opcode },
1954 1.1 christos { Bad_Opcode },
1955 1.1 christos { "vgatherpf0dp%XW", { MVexVSIBDWpX } },
1956 1.1 christos },
1957 1.1 christos /* PREFIX_EVEX_0F38C6_REG_2 */
1958 1.1 christos {
1959 1.1 christos { Bad_Opcode },
1960 1.1 christos { Bad_Opcode },
1961 1.1 christos { "vgatherpf1dp%XW", { MVexVSIBDWpX } },
1962 1.1 christos },
1963 1.1 christos /* PREFIX_EVEX_0F38C6_REG_5 */
1964 1.1 christos {
1965 1.1 christos { Bad_Opcode },
1966 1.1 christos { Bad_Opcode },
1967 1.1 christos { "vscatterpf0dp%XW", { MVexVSIBDWpX } },
1968 1.1 christos },
1969 1.1 christos /* PREFIX_EVEX_0F38C6_REG_6 */
1970 1.1 christos {
1971 1.1 christos { Bad_Opcode },
1972 1.1 christos { Bad_Opcode },
1973 1.1 christos { "vscatterpf1dp%XW", { MVexVSIBDWpX } },
1974 1.1 christos },
1975 1.1 christos /* PREFIX_EVEX_0F38C7_REG_1 */
1976 1.1 christos {
1977 1.1 christos { Bad_Opcode },
1978 1.1 christos { Bad_Opcode },
1979 1.1 christos { VEX_W_TABLE (EVEX_W_0F38C7_R_1_P_2) },
1980 1.1 christos },
1981 1.1 christos /* PREFIX_EVEX_0F38C7_REG_2 */
1982 1.1 christos {
1983 1.1 christos { Bad_Opcode },
1984 1.1 christos { Bad_Opcode },
1985 1.1 christos { VEX_W_TABLE (EVEX_W_0F38C7_R_2_P_2) },
1986 1.1 christos },
1987 1.1 christos /* PREFIX_EVEX_0F38C7_REG_5 */
1988 1.1 christos {
1989 1.1 christos { Bad_Opcode },
1990 1.1 christos { Bad_Opcode },
1991 1.1 christos { VEX_W_TABLE (EVEX_W_0F38C7_R_5_P_2) },
1992 1.1 christos },
1993 1.1 christos /* PREFIX_EVEX_0F38C7_REG_6 */
1994 1.1 christos {
1995 1.1 christos { Bad_Opcode },
1996 1.1 christos { Bad_Opcode },
1997 1.1 christos { VEX_W_TABLE (EVEX_W_0F38C7_R_6_P_2) },
1998 1.1 christos },
1999 1.1 christos /* PREFIX_EVEX_0F38C8 */
2000 1.1 christos {
2001 1.1 christos { Bad_Opcode },
2002 1.1 christos { Bad_Opcode },
2003 1.1 christos { "vexp2p%XW", { XM, EXx, EXxEVexS } },
2004 1.1 christos },
2005 1.1 christos /* PREFIX_EVEX_0F38CA */
2006 1.1 christos {
2007 1.1 christos { Bad_Opcode },
2008 1.1 christos { Bad_Opcode },
2009 1.1 christos { "vrcp28p%XW", { XM, EXx, EXxEVexS } },
2010 1.1 christos },
2011 1.1 christos /* PREFIX_EVEX_0F38CB */
2012 1.1 christos {
2013 1.1 christos { Bad_Opcode },
2014 1.1 christos { Bad_Opcode },
2015 1.1 christos { "vrcp28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
2016 1.1 christos },
2017 1.1 christos /* PREFIX_EVEX_0F38CC */
2018 1.1 christos {
2019 1.1 christos { Bad_Opcode },
2020 1.1 christos { Bad_Opcode },
2021 1.1 christos { "vrsqrt28p%XW", { XM, EXx, EXxEVexS } },
2022 1.1 christos },
2023 1.1 christos /* PREFIX_EVEX_0F38CD */
2024 1.1 christos {
2025 1.1 christos { Bad_Opcode },
2026 1.1 christos { Bad_Opcode },
2027 1.1 christos { "vrsqrt28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS } },
2028 1.1 christos },
2029 1.1 christos /* PREFIX_EVEX_0F3A00 */
2030 1.1 christos {
2031 1.1 christos { Bad_Opcode },
2032 1.1 christos { Bad_Opcode },
2033 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A00_P_2) },
2034 1.1 christos },
2035 1.1 christos /* PREFIX_EVEX_0F3A01 */
2036 1.1 christos {
2037 1.1 christos { Bad_Opcode },
2038 1.1 christos { Bad_Opcode },
2039 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A01_P_2) },
2040 1.1 christos },
2041 1.1 christos /* PREFIX_EVEX_0F3A03 */
2042 1.1 christos {
2043 1.1 christos { Bad_Opcode },
2044 1.1 christos { Bad_Opcode },
2045 1.1 christos { "valign%LW", { XM, Vex, EXx, Ib } },
2046 1.1 christos },
2047 1.1 christos /* PREFIX_EVEX_0F3A04 */
2048 1.1 christos {
2049 1.1 christos { Bad_Opcode },
2050 1.1 christos { Bad_Opcode },
2051 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A04_P_2) },
2052 1.1 christos },
2053 1.1 christos /* PREFIX_EVEX_0F3A05 */
2054 1.1 christos {
2055 1.1 christos { Bad_Opcode },
2056 1.1 christos { Bad_Opcode },
2057 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A05_P_2) },
2058 1.1 christos },
2059 1.1 christos /* PREFIX_EVEX_0F3A08 */
2060 1.1 christos {
2061 1.1 christos { Bad_Opcode },
2062 1.1 christos { Bad_Opcode },
2063 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A08_P_2) },
2064 1.1 christos },
2065 1.1 christos /* PREFIX_EVEX_0F3A09 */
2066 1.1 christos {
2067 1.1 christos { Bad_Opcode },
2068 1.1 christos { Bad_Opcode },
2069 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A09_P_2) },
2070 1.1 christos },
2071 1.1 christos /* PREFIX_EVEX_0F3A0A */
2072 1.1 christos {
2073 1.1 christos { Bad_Opcode },
2074 1.1 christos { Bad_Opcode },
2075 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A0A_P_2) },
2076 1.1 christos },
2077 1.1 christos /* PREFIX_EVEX_0F3A0B */
2078 1.1 christos {
2079 1.1 christos { Bad_Opcode },
2080 1.1 christos { Bad_Opcode },
2081 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A0B_P_2) },
2082 1.1 christos },
2083 1.1 christos /* PREFIX_EVEX_0F3A17 */
2084 1.1 christos {
2085 1.1 christos { Bad_Opcode },
2086 1.1 christos { Bad_Opcode },
2087 1.1 christos { "vextractps", { Edqd, XMM, Ib } },
2088 1.1 christos },
2089 1.1 christos /* PREFIX_EVEX_0F3A18 */
2090 1.1 christos {
2091 1.1 christos { Bad_Opcode },
2092 1.1 christos { Bad_Opcode },
2093 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A18_P_2) },
2094 1.1 christos },
2095 1.1 christos /* PREFIX_EVEX_0F3A19 */
2096 1.1 christos {
2097 1.1 christos { Bad_Opcode },
2098 1.1 christos { Bad_Opcode },
2099 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A19_P_2) },
2100 1.1 christos },
2101 1.1 christos /* PREFIX_EVEX_0F3A1A */
2102 1.1 christos {
2103 1.1 christos { Bad_Opcode },
2104 1.1 christos { Bad_Opcode },
2105 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A1A_P_2) },
2106 1.1 christos },
2107 1.1 christos /* PREFIX_EVEX_0F3A1B */
2108 1.1 christos {
2109 1.1 christos { Bad_Opcode },
2110 1.1 christos { Bad_Opcode },
2111 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A1B_P_2) },
2112 1.1 christos },
2113 1.1 christos /* PREFIX_EVEX_0F3A1D */
2114 1.1 christos {
2115 1.1 christos { Bad_Opcode },
2116 1.1 christos { Bad_Opcode },
2117 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A1D_P_2) },
2118 1.1 christos },
2119 1.1 christos /* PREFIX_EVEX_0F3A1E */
2120 1.1 christos {
2121 1.1 christos { Bad_Opcode },
2122 1.1 christos { Bad_Opcode },
2123 1.1 christos { "vpcmpu%LW", { XMask, Vex, EXx, VPCMP } },
2124 1.1 christos },
2125 1.1 christos /* PREFIX_EVEX_0F3A1F */
2126 1.1 christos {
2127 1.1 christos { Bad_Opcode },
2128 1.1 christos { Bad_Opcode },
2129 1.1 christos { "vpcmp%LW", { XMask, Vex, EXx, VPCMP } },
2130 1.1 christos },
2131 1.1 christos /* PREFIX_EVEX_0F3A21 */
2132 1.1 christos {
2133 1.1 christos { Bad_Opcode },
2134 1.1 christos { Bad_Opcode },
2135 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A21_P_2) },
2136 1.1 christos },
2137 1.1 christos /* PREFIX_EVEX_0F3A23 */
2138 1.1 christos {
2139 1.1 christos { Bad_Opcode },
2140 1.1 christos { Bad_Opcode },
2141 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A23_P_2) },
2142 1.1 christos },
2143 1.1 christos /* PREFIX_EVEX_0F3A25 */
2144 1.1 christos {
2145 1.1 christos { Bad_Opcode },
2146 1.1 christos { Bad_Opcode },
2147 1.1 christos { "vpternlog%LW", { XM, Vex, EXx, Ib } },
2148 1.1 christos },
2149 1.1 christos /* PREFIX_EVEX_0F3A26 */
2150 1.1 christos {
2151 1.1 christos { Bad_Opcode },
2152 1.1 christos { Bad_Opcode },
2153 1.1 christos { "vgetmantp%XW", { XM, EXx, EXxEVexS, Ib } },
2154 1.1 christos },
2155 1.1 christos /* PREFIX_EVEX_0F3A27 */
2156 1.1 christos {
2157 1.1 christos { Bad_Opcode },
2158 1.1 christos { Bad_Opcode },
2159 1.1 christos { "vgetmants%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib } },
2160 1.1 christos },
2161 1.1 christos /* PREFIX_EVEX_0F3A38 */
2162 1.1 christos {
2163 1.1 christos { Bad_Opcode },
2164 1.1 christos { Bad_Opcode },
2165 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A38_P_2) },
2166 1.1 christos },
2167 1.1 christos /* PREFIX_EVEX_0F3A39 */
2168 1.1 christos {
2169 1.1 christos { Bad_Opcode },
2170 1.1 christos { Bad_Opcode },
2171 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A39_P_2) },
2172 1.1 christos },
2173 1.1 christos /* PREFIX_EVEX_0F3A3A */
2174 1.1 christos {
2175 1.1 christos { Bad_Opcode },
2176 1.1 christos { Bad_Opcode },
2177 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A3A_P_2) },
2178 1.1 christos },
2179 1.1 christos /* PREFIX_EVEX_0F3A3B */
2180 1.1 christos {
2181 1.1 christos { Bad_Opcode },
2182 1.1 christos { Bad_Opcode },
2183 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A3B_P_2) },
2184 1.1 christos },
2185 1.1 christos /* PREFIX_EVEX_0F3A43 */
2186 1.1 christos {
2187 1.1 christos { Bad_Opcode },
2188 1.1 christos { Bad_Opcode },
2189 1.1 christos { VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
2190 1.1 christos },
2191 1.1 christos /* PREFIX_EVEX_0F3A54 */
2192 1.1 christos {
2193 1.1 christos { Bad_Opcode },
2194 1.1 christos { Bad_Opcode },
2195 1.1 christos { "vfixupimmp%XW", { XM, Vex, EXx, EXxEVexS, Ib } },
2196 1.1 christos },
2197 1.1 christos /* PREFIX_EVEX_0F3A55 */
2198 1.1 christos {
2199 1.1 christos { Bad_Opcode },
2200 1.1 christos { Bad_Opcode },
2201 1.1 christos { "vfixupimms%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib } },
2202 1.1 christos },
2203 1.1 christos #endif /* NEED_PREFIX_TABLE */
2204 1.1 christos
2205 1.1 christos #ifdef NEED_VEX_W_TABLE
2206 1.1 christos /* EVEX_W_0F10_P_0 */
2207 1.1 christos {
2208 1.1 christos { "vmovups", { XM, EXEvexXNoBcst } },
2209 1.1 christos },
2210 1.1 christos /* EVEX_W_0F10_P_1_M_0 */
2211 1.1 christos {
2212 1.1 christos { "vmovss", { XMScalar, EXdScalar } },
2213 1.1 christos },
2214 1.1 christos /* EVEX_W_0F10_P_1_M_1 */
2215 1.1 christos {
2216 1.1 christos { "vmovss", { XMScalar, VexScalar, EXx } },
2217 1.1 christos },
2218 1.1 christos /* EVEX_W_0F10_P_2 */
2219 1.1 christos {
2220 1.1 christos { Bad_Opcode },
2221 1.1 christos { "vmovupd", { XM, EXEvexXNoBcst } },
2222 1.1 christos },
2223 1.1 christos /* EVEX_W_0F10_P_3_M_0 */
2224 1.1 christos {
2225 1.1 christos { Bad_Opcode },
2226 1.1 christos { "vmovsd", { XMScalar, EXqScalar } },
2227 1.1 christos },
2228 1.1 christos /* EVEX_W_0F10_P_3_M_1 */
2229 1.1 christos {
2230 1.1 christos { Bad_Opcode },
2231 1.1 christos { "vmovsd", { XMScalar, VexScalar, EXx } },
2232 1.1 christos },
2233 1.1 christos /* EVEX_W_0F11_P_0 */
2234 1.1 christos {
2235 1.1 christos { "vmovups", { EXxS, XM } },
2236 1.1 christos },
2237 1.1 christos /* EVEX_W_0F11_P_1_M_0 */
2238 1.1 christos {
2239 1.1 christos { "vmovss", { EXdScalarS, XMScalar } },
2240 1.1 christos },
2241 1.1 christos /* EVEX_W_0F11_P_1_M_1 */
2242 1.1 christos {
2243 1.1 christos { "vmovss", { EXxS, Vex, XMScalar } },
2244 1.1 christos },
2245 1.1 christos /* EVEX_W_0F11_P_2 */
2246 1.1 christos {
2247 1.1 christos { Bad_Opcode },
2248 1.1 christos { "vmovupd", { EXxS, XM } },
2249 1.1 christos },
2250 1.1 christos /* EVEX_W_0F11_P_3_M_0 */
2251 1.1 christos {
2252 1.1 christos { Bad_Opcode },
2253 1.1 christos { "vmovsd", { EXqScalarS, XMScalar } },
2254 1.1 christos },
2255 1.1 christos /* EVEX_W_0F11_P_3_M_1 */
2256 1.1 christos {
2257 1.1 christos { Bad_Opcode },
2258 1.1 christos { "vmovsd", { EXxS, Vex, XMScalar } },
2259 1.1 christos },
2260 1.1 christos /* EVEX_W_0F12_P_0_M_0 */
2261 1.1 christos {
2262 1.1 christos { "vmovlps", { XMM, Vex, EXxmm_mq } },
2263 1.1 christos },
2264 1.1 christos /* EVEX_W_0F12_P_0_M_1 */
2265 1.1 christos {
2266 1.1 christos { "vmovhlps", { XMM, Vex, EXxmm_mq } },
2267 1.1 christos },
2268 1.1 christos /* EVEX_W_0F12_P_1 */
2269 1.1 christos {
2270 1.1 christos { "vmovsldup", { XM, EXEvexXNoBcst } },
2271 1.1 christos },
2272 1.1 christos /* EVEX_W_0F12_P_2 */
2273 1.1 christos {
2274 1.1 christos { Bad_Opcode },
2275 1.1 christos { "vmovlpd", { XMM, Vex, EXxmm_mq } },
2276 1.1 christos },
2277 1.1 christos /* EVEX_W_0F12_P_3 */
2278 1.1 christos {
2279 1.1 christos { Bad_Opcode },
2280 1.1 christos { "vmovddup", { XM, EXymmq } },
2281 1.1 christos },
2282 1.1 christos /* EVEX_W_0F13_P_0 */
2283 1.1 christos {
2284 1.1 christos { "vmovlps", { EXxmm_mq, XMM } },
2285 1.1 christos },
2286 1.1 christos /* EVEX_W_0F13_P_2 */
2287 1.1 christos {
2288 1.1 christos { Bad_Opcode },
2289 1.1 christos { "vmovlpd", { EXxmm_mq, XMM } },
2290 1.1 christos },
2291 1.1 christos /* EVEX_W_0F14_P_0 */
2292 1.1 christos {
2293 1.1 christos { "vunpcklps", { XM, Vex, EXx } },
2294 1.1 christos },
2295 1.1 christos /* EVEX_W_0F14_P_2 */
2296 1.1 christos {
2297 1.1 christos { Bad_Opcode },
2298 1.1 christos { "vunpcklpd", { XM, Vex, EXx } },
2299 1.1 christos },
2300 1.1 christos /* EVEX_W_0F15_P_0 */
2301 1.1 christos {
2302 1.1 christos { "vunpckhps", { XM, Vex, EXx } },
2303 1.1 christos },
2304 1.1 christos /* EVEX_W_0F15_P_2 */
2305 1.1 christos {
2306 1.1 christos { Bad_Opcode },
2307 1.1 christos { "vunpckhpd", { XM, Vex, EXx } },
2308 1.1 christos },
2309 1.1 christos /* EVEX_W_0F16_P_0_M_0 */
2310 1.1 christos {
2311 1.1 christos { "vmovhps", { XMM, Vex, EXxmm_mq } },
2312 1.1 christos },
2313 1.1 christos /* EVEX_W_0F16_P_0_M_1 */
2314 1.1 christos {
2315 1.1 christos { "vmovlhps", { XMM, Vex, EXx } },
2316 1.1 christos },
2317 1.1 christos /* EVEX_W_0F16_P_1 */
2318 1.1 christos {
2319 1.1 christos { "vmovshdup", { XM, EXx } },
2320 1.1 christos },
2321 1.1 christos /* EVEX_W_0F16_P_2 */
2322 1.1 christos {
2323 1.1 christos { Bad_Opcode },
2324 1.1 christos { "vmovhpd", { XMM, Vex, EXxmm_mq } },
2325 1.1 christos },
2326 1.1 christos /* EVEX_W_0F17_P_0 */
2327 1.1 christos {
2328 1.1 christos { "vmovhps", { EXxmm_mq, XMM } },
2329 1.1 christos },
2330 1.1 christos /* EVEX_W_0F17_P_2 */
2331 1.1 christos {
2332 1.1 christos { Bad_Opcode },
2333 1.1 christos { "vmovhpd", { EXxmm_mq, XMM } },
2334 1.1 christos },
2335 1.1 christos /* EVEX_W_0F28_P_0 */
2336 1.1 christos {
2337 1.1 christos { "vmovaps", { XM, EXx } },
2338 1.1 christos },
2339 1.1 christos /* EVEX_W_0F28_P_2 */
2340 1.1 christos {
2341 1.1 christos { Bad_Opcode },
2342 1.1 christos { "vmovapd", { XM, EXx } },
2343 1.1 christos },
2344 1.1 christos /* EVEX_W_0F29_P_0 */
2345 1.1 christos {
2346 1.1 christos { "vmovaps", { EXxS, XM } },
2347 1.1 christos },
2348 1.1 christos /* EVEX_W_0F29_P_2 */
2349 1.1 christos {
2350 1.1 christos { Bad_Opcode },
2351 1.1 christos { "vmovapd", { EXxS, XM } },
2352 1.1 christos },
2353 1.1 christos /* EVEX_W_0F2A_P_1 */
2354 1.1 christos {
2355 1.1 christos { "vcvtsi2ss", { XMScalar, VexScalar, EXxEVexR, Ed } },
2356 1.1 christos { "vcvtsi2ss", { XMScalar, VexScalar, EXxEVexR, Eq } },
2357 1.1 christos },
2358 1.1 christos /* EVEX_W_0F2A_P_3 */
2359 1.1 christos {
2360 1.1 christos { "vcvtsi2sd", { XMScalar, VexScalar, Ed } },
2361 1.1 christos { "vcvtsi2sd", { XMScalar, VexScalar, EXxEVexR, Eq } },
2362 1.1 christos },
2363 1.1 christos /* EVEX_W_0F2B_P_0 */
2364 1.1 christos {
2365 1.1 christos { "vmovntps", { EXx, XM } },
2366 1.1 christos },
2367 1.1 christos /* EVEX_W_0F2B_P_2 */
2368 1.1 christos {
2369 1.1 christos { Bad_Opcode },
2370 1.1 christos { "vmovntpd", { EXx, XM } },
2371 1.1 christos },
2372 1.1 christos /* EVEX_W_0F2E_P_0 */
2373 1.1 christos {
2374 1.1 christos { "vucomiss", { XMScalar, EXxmm_md, EXxEVexS } },
2375 1.1 christos },
2376 1.1 christos /* EVEX_W_0F2E_P_2 */
2377 1.1 christos {
2378 1.1 christos { Bad_Opcode },
2379 1.1 christos { "vucomisd", { XMScalar, EXxmm_mq, EXxEVexS } },
2380 1.1 christos },
2381 1.1 christos /* EVEX_W_0F2F_P_0 */
2382 1.1 christos {
2383 1.1 christos { "vcomiss", { XMScalar, EXxmm_md, EXxEVexS } },
2384 1.1 christos },
2385 1.1 christos /* EVEX_W_0F2F_P_2 */
2386 1.1 christos {
2387 1.1 christos { Bad_Opcode },
2388 1.1 christos { "vcomisd", { XMScalar, EXxmm_mq, EXxEVexS } },
2389 1.1 christos },
2390 1.1 christos /* EVEX_W_0F51_P_0 */
2391 1.1 christos {
2392 1.1 christos { "vsqrtps", { XM, EXx, EXxEVexR } },
2393 1.1 christos },
2394 1.1 christos /* EVEX_W_0F51_P_1 */
2395 1.1 christos {
2396 1.1 christos { "vsqrtss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2397 1.1 christos },
2398 1.1 christos /* EVEX_W_0F51_P_2 */
2399 1.1 christos {
2400 1.1 christos { Bad_Opcode },
2401 1.1 christos { "vsqrtpd", { XM, EXx, EXxEVexR } },
2402 1.1 christos },
2403 1.1 christos /* EVEX_W_0F51_P_3 */
2404 1.1 christos {
2405 1.1 christos { Bad_Opcode },
2406 1.1 christos { "vsqrtsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2407 1.1 christos },
2408 1.1 christos /* EVEX_W_0F58_P_0 */
2409 1.1 christos {
2410 1.1 christos { "vaddps", { XM, Vex, EXx, EXxEVexR } },
2411 1.1 christos },
2412 1.1 christos /* EVEX_W_0F58_P_1 */
2413 1.1 christos {
2414 1.1 christos { "vaddss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2415 1.1 christos },
2416 1.1 christos /* EVEX_W_0F58_P_2 */
2417 1.1 christos {
2418 1.1 christos { Bad_Opcode },
2419 1.1 christos { "vaddpd", { XM, Vex, EXx, EXxEVexR } },
2420 1.1 christos },
2421 1.1 christos /* EVEX_W_0F58_P_3 */
2422 1.1 christos {
2423 1.1 christos { Bad_Opcode },
2424 1.1 christos { "vaddsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2425 1.1 christos },
2426 1.1 christos /* EVEX_W_0F59_P_0 */
2427 1.1 christos {
2428 1.1 christos { "vmulps", { XM, Vex, EXx, EXxEVexR } },
2429 1.1 christos },
2430 1.1 christos /* EVEX_W_0F59_P_1 */
2431 1.1 christos {
2432 1.1 christos { "vmulss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2433 1.1 christos },
2434 1.1 christos /* EVEX_W_0F59_P_2 */
2435 1.1 christos {
2436 1.1 christos { Bad_Opcode },
2437 1.1 christos { "vmulpd", { XM, Vex, EXx, EXxEVexR } },
2438 1.1 christos },
2439 1.1 christos /* EVEX_W_0F59_P_3 */
2440 1.1 christos {
2441 1.1 christos { Bad_Opcode },
2442 1.1 christos { "vmulsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2443 1.1 christos },
2444 1.1 christos /* EVEX_W_0F5A_P_0 */
2445 1.1 christos {
2446 1.1 christos { "vcvtps2pd", { XM, EXEvexHalfBcstXmmq, EXxEVexS } },
2447 1.1 christos },
2448 1.1 christos /* EVEX_W_0F5A_P_1 */
2449 1.1 christos {
2450 1.1 christos { "vcvtss2sd", { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2451 1.1 christos },
2452 1.1 christos /* EVEX_W_0F5A_P_2 */
2453 1.1 christos {
2454 1.1 christos { Bad_Opcode },
2455 1.1 christos { "vcvtpd2ps", { XMxmmq, EXx, EXxEVexR } },
2456 1.1 christos },
2457 1.1 christos /* EVEX_W_0F5A_P_3 */
2458 1.1 christos {
2459 1.1 christos { Bad_Opcode },
2460 1.1 christos { "vcvtsd2ss", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2461 1.1 christos },
2462 1.1 christos /* EVEX_W_0F5B_P_0 */
2463 1.1 christos {
2464 1.1 christos { "vcvtdq2ps", { XM, EXx, EXxEVexR } },
2465 1.1 christos },
2466 1.1 christos /* EVEX_W_0F5B_P_1 */
2467 1.1 christos {
2468 1.1 christos { "vcvttps2dq", { XM, EXx, EXxEVexS } },
2469 1.1 christos },
2470 1.1 christos /* EVEX_W_0F5B_P_2 */
2471 1.1 christos {
2472 1.1 christos { "vcvtps2dq", { XM, EXx, EXxEVexR } },
2473 1.1 christos },
2474 1.1 christos /* EVEX_W_0F5C_P_0 */
2475 1.1 christos {
2476 1.1 christos { "vsubps", { XM, Vex, EXx, EXxEVexR } },
2477 1.1 christos },
2478 1.1 christos /* EVEX_W_0F5C_P_1 */
2479 1.1 christos {
2480 1.1 christos { "vsubss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2481 1.1 christos },
2482 1.1 christos /* EVEX_W_0F5C_P_2 */
2483 1.1 christos {
2484 1.1 christos { Bad_Opcode },
2485 1.1 christos { "vsubpd", { XM, Vex, EXx, EXxEVexR } },
2486 1.1 christos },
2487 1.1 christos /* EVEX_W_0F5C_P_3 */
2488 1.1 christos {
2489 1.1 christos { Bad_Opcode },
2490 1.1 christos { "vsubsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2491 1.1 christos },
2492 1.1 christos /* EVEX_W_0F5D_P_0 */
2493 1.1 christos {
2494 1.1 christos { "vminps", { XM, Vex, EXx, EXxEVexS } },
2495 1.1 christos },
2496 1.1 christos /* EVEX_W_0F5D_P_1 */
2497 1.1 christos {
2498 1.1 christos { "vminss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2499 1.1 christos },
2500 1.1 christos /* EVEX_W_0F5D_P_2 */
2501 1.1 christos {
2502 1.1 christos { Bad_Opcode },
2503 1.1 christos { "vminpd", { XM, Vex, EXx, EXxEVexS } },
2504 1.1 christos },
2505 1.1 christos /* EVEX_W_0F5D_P_3 */
2506 1.1 christos {
2507 1.1 christos { Bad_Opcode },
2508 1.1 christos { "vminsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS } },
2509 1.1 christos },
2510 1.1 christos /* EVEX_W_0F5E_P_0 */
2511 1.1 christos {
2512 1.1 christos { "vdivps", { XM, Vex, EXx, EXxEVexR } },
2513 1.1 christos },
2514 1.1 christos /* EVEX_W_0F5E_P_1 */
2515 1.1 christos {
2516 1.1 christos { "vdivss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR } },
2517 1.1 christos },
2518 1.1 christos /* EVEX_W_0F5E_P_2 */
2519 1.1 christos {
2520 1.1 christos { Bad_Opcode },
2521 1.1 christos { "vdivpd", { XM, Vex, EXx, EXxEVexR } },
2522 1.1 christos },
2523 1.1 christos /* EVEX_W_0F5E_P_3 */
2524 1.1 christos {
2525 1.1 christos { Bad_Opcode },
2526 1.1 christos { "vdivsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR } },
2527 1.1 christos },
2528 1.1 christos /* EVEX_W_0F5F_P_0 */
2529 1.1 christos {
2530 1.1 christos { "vmaxps", { XM, Vex, EXx, EXxEVexS } },
2531 1.1 christos },
2532 1.1 christos /* EVEX_W_0F5F_P_1 */
2533 1.1 christos {
2534 1.1 christos { "vmaxss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS } },
2535 1.1 christos },
2536 1.1 christos /* EVEX_W_0F5F_P_2 */
2537 1.1 christos {
2538 1.1 christos { Bad_Opcode },
2539 1.1 christos { "vmaxpd", { XM, Vex, EXx, EXxEVexS } },
2540 1.1 christos },
2541 1.1 christos /* EVEX_W_0F5F_P_3 */
2542 1.1 christos {
2543 1.1 christos { Bad_Opcode },
2544 1.1 christos { "vmaxsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS } },
2545 1.1 christos },
2546 1.1 christos /* EVEX_W_0F62_P_2 */
2547 1.1 christos {
2548 1.1 christos { "vpunpckldq", { XM, Vex, EXx } },
2549 1.1 christos },
2550 1.1 christos /* EVEX_W_0F66_P_2 */
2551 1.1 christos {
2552 1.1 christos { "vpcmpgtd", { XMask, Vex, EXx } },
2553 1.1 christos },
2554 1.1 christos /* EVEX_W_0F6A_P_2 */
2555 1.1 christos {
2556 1.1 christos { "vpunpckhdq", { XM, Vex, EXx } },
2557 1.1 christos },
2558 1.1 christos /* EVEX_W_0F6C_P_2 */
2559 1.1 christos {
2560 1.1 christos { Bad_Opcode },
2561 1.1 christos { "vpunpcklqdq", { XM, Vex, EXx } },
2562 1.1 christos },
2563 1.1 christos /* EVEX_W_0F6D_P_2 */
2564 1.1 christos {
2565 1.1 christos { Bad_Opcode },
2566 1.1 christos { "vpunpckhqdq", { XM, Vex, EXx } },
2567 1.1 christos },
2568 1.1 christos /* EVEX_W_0F6E_P_2 */
2569 1.1 christos {
2570 1.1 christos { "vmovd", { XMScalar, Ed } },
2571 1.1 christos { "vmovq", { XMScalar, Eq } },
2572 1.1 christos },
2573 1.1 christos /* EVEX_W_0F6F_P_1 */
2574 1.1 christos {
2575 1.1 christos { "vmovdqu32", { XM, EXEvexXNoBcst } },
2576 1.1 christos { "vmovdqu64", { XM, EXEvexXNoBcst } },
2577 1.1 christos },
2578 1.1 christos /* EVEX_W_0F6F_P_2 */
2579 1.1 christos {
2580 1.1 christos { "vmovdqa32", { XM, EXEvexXNoBcst } },
2581 1.1 christos { "vmovdqa64", { XM, EXEvexXNoBcst } },
2582 1.1 christos },
2583 1.1 christos /* EVEX_W_0F70_P_2 */
2584 1.1 christos {
2585 1.1 christos { "vpshufd", { XM, EXx, Ib } },
2586 1.1 christos },
2587 1.1 christos /* EVEX_W_0F72_R_2_P_2 */
2588 1.1 christos {
2589 1.1 christos { "vpsrld", { Vex, EXx, Ib } },
2590 1.1 christos },
2591 1.1 christos /* EVEX_W_0F72_R_6_P_2 */
2592 1.1 christos {
2593 1.1 christos { "vpslld", { Vex, EXx, Ib } },
2594 1.1 christos },
2595 1.1 christos /* EVEX_W_0F73_R_2_P_2 */
2596 1.1 christos {
2597 1.1 christos { Bad_Opcode },
2598 1.1 christos { "vpsrlq", { Vex, EXx, Ib } },
2599 1.1 christos },
2600 1.1 christos /* EVEX_W_0F73_R_6_P_2 */
2601 1.1 christos {
2602 1.1 christos { Bad_Opcode },
2603 1.1 christos { "vpsllq", { Vex, EXx, Ib } },
2604 1.1 christos },
2605 1.1 christos /* EVEX_W_0F76_P_2 */
2606 1.1 christos {
2607 1.1 christos { "vpcmpeqd", { XMask, Vex, EXx } },
2608 1.1 christos },
2609 1.1 christos /* EVEX_W_0F78_P_0 */
2610 1.1 christos {
2611 1.1 christos { "vcvttps2udq", { XM, EXx, EXxEVexS } },
2612 1.1 christos { "vcvttpd2udq", { XMxmmq, EXx, EXxEVexS } },
2613 1.1 christos },
2614 1.1 christos /* EVEX_W_0F79_P_0 */
2615 1.1 christos {
2616 1.1 christos { "vcvtps2udq", { XM, EXx, EXxEVexR } },
2617 1.1 christos { "vcvtpd2udq", { XMxmmq, EXx, EXxEVexR } },
2618 1.1 christos },
2619 1.1 christos /* EVEX_W_0F7A_P_1 */
2620 1.1 christos {
2621 1.1 christos { "vcvtudq2pd", { XM, EXEvexHalfBcstXmmq } },
2622 1.1 christos },
2623 1.1 christos /* EVEX_W_0F7A_P_3 */
2624 1.1 christos {
2625 1.1 christos { "vcvtudq2ps", { XM, EXx, EXxEVexR } },
2626 1.1 christos },
2627 1.1 christos /* EVEX_W_0F7B_P_1 */
2628 1.1 christos {
2629 1.1 christos { "vcvtusi2ss", { XMScalar, VexScalar, EXxEVexR, Ed } },
2630 1.1 christos { "vcvtusi2ss", { XMScalar, VexScalar, EXxEVexR, Eq } },
2631 1.1 christos },
2632 1.1 christos /* EVEX_W_0F7B_P_3 */
2633 1.1 christos {
2634 1.1 christos { "vcvtusi2sd", { XMScalar, VexScalar, Ed } },
2635 1.1 christos { "vcvtusi2sd", { XMScalar, VexScalar, EXxEVexR, Eq } },
2636 1.1 christos },
2637 1.1 christos /* EVEX_W_0F7E_P_1 */
2638 1.1 christos {
2639 1.1 christos { Bad_Opcode },
2640 1.1 christos { "vmovq", { XMScalar, EXxmm_mq } },
2641 1.1 christos },
2642 1.1 christos /* EVEX_W_0F7E_P_2 */
2643 1.1 christos {
2644 1.1 christos { "vmovd", { Ed, XMScalar } },
2645 1.1 christos { "vmovq", { Eq, XMScalar } },
2646 1.1 christos },
2647 1.1 christos /* EVEX_W_0F7F_P_1 */
2648 1.1 christos {
2649 1.1 christos { "vmovdqu32", { EXxS, XM } },
2650 1.1 christos { "vmovdqu64", { EXxS, XM } },
2651 1.1 christos },
2652 1.1 christos /* EVEX_W_0F7F_P_2 */
2653 1.1 christos {
2654 1.1 christos { "vmovdqa32", { EXxS, XM } },
2655 1.1 christos { "vmovdqa64", { EXxS, XM } },
2656 1.1 christos },
2657 1.1 christos /* EVEX_W_0FC2_P_0 */
2658 1.1 christos {
2659 1.1 christos { "vcmpps", { XMask, Vex, EXx, EXxEVexS, VCMP } },
2660 1.1 christos },
2661 1.1 christos /* EVEX_W_0FC2_P_1 */
2662 1.1 christos {
2663 1.1 christos { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, VCMP } },
2664 1.1 christos },
2665 1.1 christos /* EVEX_W_0FC2_P_2 */
2666 1.1 christos {
2667 1.1 christos { Bad_Opcode },
2668 1.1 christos { "vcmppd", { XMask, Vex, EXx, EXxEVexS, VCMP } },
2669 1.1 christos },
2670 1.1 christos /* EVEX_W_0FC2_P_3 */
2671 1.1 christos {
2672 1.1 christos { Bad_Opcode },
2673 1.1 christos { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, VCMP } },
2674 1.1 christos },
2675 1.1 christos /* EVEX_W_0FC6_P_0 */
2676 1.1 christos {
2677 1.1 christos { "vshufps", { XM, Vex, EXx, Ib } },
2678 1.1 christos },
2679 1.1 christos /* EVEX_W_0FC6_P_2 */
2680 1.1 christos {
2681 1.1 christos { Bad_Opcode },
2682 1.1 christos { "vshufpd", { XM, Vex, EXx, Ib } },
2683 1.1 christos },
2684 1.1 christos /* EVEX_W_0FD2_P_2 */
2685 1.1 christos {
2686 1.1 christos { "vpsrld", { XM, Vex, EXxmm } },
2687 1.1 christos },
2688 1.1 christos /* EVEX_W_0FD3_P_2 */
2689 1.1 christos {
2690 1.1 christos { Bad_Opcode },
2691 1.1 christos { "vpsrlq", { XM, Vex, EXxmm } },
2692 1.1 christos },
2693 1.1 christos /* EVEX_W_0FD4_P_2 */
2694 1.1 christos {
2695 1.1 christos { Bad_Opcode },
2696 1.1 christos { "vpaddq", { XM, Vex, EXx } },
2697 1.1 christos },
2698 1.1 christos /* EVEX_W_0FD6_P_2 */
2699 1.1 christos {
2700 1.1 christos { Bad_Opcode },
2701 1.1 christos { "vmovq", { EXxmm_mq, XMScalar } },
2702 1.1 christos },
2703 1.1 christos /* EVEX_W_0FE6_P_1 */
2704 1.1 christos {
2705 1.1 christos { "vcvtdq2pd", { XM, EXEvexHalfBcstXmmq } },
2706 1.1 christos },
2707 1.1 christos /* EVEX_W_0FE6_P_2 */
2708 1.1 christos {
2709 1.1 christos { Bad_Opcode },
2710 1.1 christos { "vcvttpd2dq", { XMxmmq, EXx, EXxEVexS } },
2711 1.1 christos },
2712 1.1 christos /* EVEX_W_0FE6_P_3 */
2713 1.1 christos {
2714 1.1 christos { Bad_Opcode },
2715 1.1 christos { "vcvtpd2dq", { XMxmmq, EXx, EXxEVexR } },
2716 1.1 christos },
2717 1.1 christos /* EVEX_W_0FE7_P_2 */
2718 1.1 christos {
2719 1.1 christos { "vmovntdq", { EXEvexXNoBcst, XM } },
2720 1.1 christos },
2721 1.1 christos /* EVEX_W_0FF2_P_2 */
2722 1.1 christos {
2723 1.1 christos { "vpslld", { XM, Vex, EXxmm } },
2724 1.1 christos },
2725 1.1 christos /* EVEX_W_0FF3_P_2 */
2726 1.1 christos {
2727 1.1 christos { Bad_Opcode },
2728 1.1 christos { "vpsllq", { XM, Vex, EXxmm } },
2729 1.1 christos },
2730 1.1 christos /* EVEX_W_0FF4_P_2 */
2731 1.1 christos {
2732 1.1 christos { Bad_Opcode },
2733 1.1 christos { "vpmuludq", { XM, Vex, EXx } },
2734 1.1 christos },
2735 1.1 christos /* EVEX_W_0FFA_P_2 */
2736 1.1 christos {
2737 1.1 christos { "vpsubd", { XM, Vex, EXx } },
2738 1.1 christos },
2739 1.1 christos /* EVEX_W_0FFB_P_2 */
2740 1.1 christos {
2741 1.1 christos { Bad_Opcode },
2742 1.1 christos { "vpsubq", { XM, Vex, EXx } },
2743 1.1 christos },
2744 1.1 christos /* EVEX_W_0FFE_P_2 */
2745 1.1 christos {
2746 1.1 christos { "vpaddd", { XM, Vex, EXx } },
2747 1.1 christos },
2748 1.1 christos
2749 1.1 christos /* EVEX_W_0F380C_P_2 */
2750 1.1 christos {
2751 1.1 christos { "vpermilps", { XM, Vex, EXx } },
2752 1.1 christos },
2753 1.1 christos /* EVEX_W_0F380D_P_2 */
2754 1.1 christos {
2755 1.1 christos { Bad_Opcode },
2756 1.1 christos { "vpermilpd", { XM, Vex, EXx } },
2757 1.1 christos },
2758 1.1 christos /* EVEX_W_0F3811_P_1 */
2759 1.1 christos {
2760 1.1 christos { "vpmovusdb", { EXxmmqd, XM } },
2761 1.1 christos },
2762 1.1 christos /* EVEX_W_0F3812_P_1 */
2763 1.1 christos {
2764 1.1 christos { "vpmovusqb", { EXxmmdw, XM } },
2765 1.1 christos },
2766 1.1 christos /* EVEX_W_0F3813_P_1 */
2767 1.1 christos {
2768 1.1 christos { "vpmovusdw", { EXxmmq, XM } },
2769 1.1 christos },
2770 1.1 christos /* EVEX_W_0F3813_P_2 */
2771 1.1 christos {
2772 1.1 christos { "vcvtph2ps", { XM, EXxmmq, EXxEVexS } },
2773 1.1 christos },
2774 1.1 christos /* EVEX_W_0F3814_P_1 */
2775 1.1 christos {
2776 1.1 christos { "vpmovusqw", { EXxmmqd, XM } },
2777 1.1 christos },
2778 1.1 christos /* EVEX_W_0F3815_P_1 */
2779 1.1 christos {
2780 1.1 christos { "vpmovusqd", { EXxmmq, XM } },
2781 1.1 christos },
2782 1.1 christos /* EVEX_W_0F3818_P_2 */
2783 1.1 christos {
2784 1.1 christos { "vbroadcastss", { XM, EXxmm_md } },
2785 1.1 christos },
2786 1.1 christos /* EVEX_W_0F3819_P_2 */
2787 1.1 christos {
2788 1.1 christos { Bad_Opcode },
2789 1.1 christos { "vbroadcastsd", { XM, EXxmm_mq } },
2790 1.1 christos },
2791 1.1 christos /* EVEX_W_0F381A_P_2 */
2792 1.1 christos {
2793 1.1 christos { "vbroadcastf32x4", { XM, EXxmm } },
2794 1.1 christos },
2795 1.1 christos /* EVEX_W_0F381B_P_2 */
2796 1.1 christos {
2797 1.1 christos { Bad_Opcode },
2798 1.1 christos { "vbroadcastf64x4", { XM, EXymm } },
2799 1.1 christos },
2800 1.1 christos /* EVEX_W_0F381E_P_2 */
2801 1.1 christos {
2802 1.1 christos { "vpabsd", { XM, EXx } },
2803 1.1 christos },
2804 1.1 christos /* EVEX_W_0F381F_P_2 */
2805 1.1 christos {
2806 1.1 christos { Bad_Opcode },
2807 1.1 christos { "vpabsq", { XM, EXx } },
2808 1.1 christos },
2809 1.1 christos /* EVEX_W_0F3821_P_1 */
2810 1.1 christos {
2811 1.1 christos { "vpmovsdb", { EXxmmqd, XM } },
2812 1.1 christos },
2813 1.1 christos /* EVEX_W_0F3822_P_1 */
2814 1.1 christos {
2815 1.1 christos { "vpmovsqb", { EXxmmdw, XM } },
2816 1.1 christos },
2817 1.1 christos /* EVEX_W_0F3823_P_1 */
2818 1.1 christos {
2819 1.1 christos { "vpmovsdw", { EXxmmq, XM } },
2820 1.1 christos },
2821 1.1 christos /* EVEX_W_0F3824_P_1 */
2822 1.1 christos {
2823 1.1 christos { "vpmovsqw", { EXxmmqd, XM } },
2824 1.1 christos },
2825 1.1 christos /* EVEX_W_0F3825_P_1 */
2826 1.1 christos {
2827 1.1 christos { "vpmovsqd", { EXxmmq, XM } },
2828 1.1 christos },
2829 1.1 christos /* EVEX_W_0F3825_P_2 */
2830 1.1 christos {
2831 1.1 christos { "vpmovsxdq", { XM, EXxmmq } },
2832 1.1 christos },
2833 1.1 christos /* EVEX_W_0F3828_P_2 */
2834 1.1 christos {
2835 1.1 christos { Bad_Opcode },
2836 1.1 christos { "vpmuldq", { XM, Vex, EXx } },
2837 1.1 christos },
2838 1.1 christos /* EVEX_W_0F3829_P_2 */
2839 1.1 christos {
2840 1.1 christos { Bad_Opcode },
2841 1.1 christos { "vpcmpeqq", { XMask, Vex, EXx } },
2842 1.1 christos },
2843 1.1 christos /* EVEX_W_0F382A_P_1 */
2844 1.1 christos {
2845 1.1 christos { Bad_Opcode },
2846 1.1 christos { "vpbroadcastmb2q", { XM, MaskR } },
2847 1.1 christos },
2848 1.1 christos /* EVEX_W_0F382A_P_2 */
2849 1.1 christos {
2850 1.1 christos { "vmovntdqa", { XM, EXEvexXNoBcst } },
2851 1.1 christos },
2852 1.1 christos /* EVEX_W_0F3831_P_1 */
2853 1.1 christos {
2854 1.1 christos { "vpmovdb", { EXxmmqd, XM } },
2855 1.1 christos },
2856 1.1 christos /* EVEX_W_0F3832_P_1 */
2857 1.1 christos {
2858 1.1 christos { "vpmovqb", { EXxmmdw, XM } },
2859 1.1 christos },
2860 1.1 christos /* EVEX_W_0F3833_P_1 */
2861 1.1 christos {
2862 1.1 christos { "vpmovdw", { EXxmmq, XM } },
2863 1.1 christos },
2864 1.1 christos /* EVEX_W_0F3834_P_1 */
2865 1.1 christos {
2866 1.1 christos { "vpmovqw", { EXxmmqd, XM } },
2867 1.1 christos },
2868 1.1 christos /* EVEX_W_0F3835_P_1 */
2869 1.1 christos {
2870 1.1 christos { "vpmovqd", { EXxmmq, XM } },
2871 1.1 christos },
2872 1.1 christos /* EVEX_W_0F3835_P_2 */
2873 1.1 christos {
2874 1.1 christos { "vpmovzxdq", { XM, EXxmmq } },
2875 1.1 christos },
2876 1.1 christos /* EVEX_W_0F3837_P_2 */
2877 1.1 christos {
2878 1.1 christos { Bad_Opcode },
2879 1.1 christos { "vpcmpgtq", { XMask, Vex, EXx } },
2880 1.1 christos },
2881 1.1 christos /* EVEX_W_0F383A_P_1 */
2882 1.1 christos {
2883 1.1 christos { "vpbroadcastmw2d", { XM, MaskR } },
2884 1.1 christos },
2885 1.1 christos /* EVEX_W_0F3840_P_2 */
2886 1.1 christos {
2887 1.1 christos { "vpmulld", { XM, Vex, EXx } },
2888 1.1 christos },
2889 1.1 christos /* EVEX_W_0F3858_P_2 */
2890 1.1 christos {
2891 1.1 christos { "vpbroadcastd", { XM, EXxmm_md } },
2892 1.1 christos },
2893 1.1 christos /* EVEX_W_0F3859_P_2 */
2894 1.1 christos {
2895 1.1 christos { Bad_Opcode },
2896 1.1 christos { "vpbroadcastq", { XM, EXxmm_mq } },
2897 1.1 christos },
2898 1.1 christos /* EVEX_W_0F385A_P_2 */
2899 1.1 christos {
2900 1.1 christos { "vbroadcasti32x4", { XM, EXxmm } },
2901 1.1 christos },
2902 1.1 christos /* EVEX_W_0F385B_P_2 */
2903 1.1 christos {
2904 1.1 christos { Bad_Opcode },
2905 1.1 christos { "vbroadcasti64x4", { XM, EXymm } },
2906 1.1 christos },
2907 1.1 christos /* EVEX_W_0F3891_P_2 */
2908 1.1 christos {
2909 1.1 christos { "vpgatherqd", { XMxmmq, MVexVSIBQWpX } },
2910 1.1 christos { "vpgatherqq", { XM, MVexVSIBQWpX } },
2911 1.1 christos },
2912 1.1 christos /* EVEX_W_0F3893_P_2 */
2913 1.1 christos {
2914 1.1 christos { "vgatherqps", { XMxmmq, MVexVSIBQWpX } },
2915 1.1 christos { "vgatherqpd", { XM, MVexVSIBQWpX } },
2916 1.1 christos },
2917 1.1 christos /* EVEX_W_0F38A1_P_2 */
2918 1.1 christos {
2919 1.1 christos { "vpscatterqd", { MVexVSIBQWpX, XMxmmq } },
2920 1.1 christos { "vpscatterqq", { MVexVSIBQWpX, XM } },
2921 1.1 christos },
2922 1.1 christos /* EVEX_W_0F38A3_P_2 */
2923 1.1 christos {
2924 1.1 christos { "vscatterqps", { MVexVSIBQWpX, XMxmmq } },
2925 1.1 christos { "vscatterqpd", { MVexVSIBQWpX, XM } },
2926 1.1 christos },
2927 1.1 christos /* EVEX_W_0F38C7_R_1_P_2 */
2928 1.1 christos {
2929 1.1 christos { "vgatherpf0qps", { MVexVSIBDWpX } },
2930 1.1 christos { "vgatherpf0qpd", { MVexVSIBQWpX } },
2931 1.1 christos },
2932 1.1 christos /* EVEX_W_0F38C7_R_2_P_2 */
2933 1.1 christos {
2934 1.1 christos { "vgatherpf1qps", { MVexVSIBDWpX } },
2935 1.1 christos { "vgatherpf1qpd", { MVexVSIBQWpX } },
2936 1.1 christos },
2937 1.1 christos /* EVEX_W_0F38C7_R_5_P_2 */
2938 1.1 christos {
2939 1.1 christos { "vscatterpf0qps", { MVexVSIBDWpX } },
2940 1.1 christos { "vscatterpf0qpd", { MVexVSIBQWpX } },
2941 1.1 christos },
2942 1.1 christos /* EVEX_W_0F38C7_R_6_P_2 */
2943 1.1 christos {
2944 1.1 christos { "vscatterpf1qps", { MVexVSIBDWpX } },
2945 1.1 christos { "vscatterpf1qpd", { MVexVSIBQWpX } },
2946 1.1 christos },
2947 1.1 christos
2948 1.1 christos /* EVEX_W_0F3A00_P_2 */
2949 1.1 christos {
2950 1.1 christos { Bad_Opcode },
2951 1.1 christos { "vpermq", { XM, EXx, Ib } },
2952 1.1 christos },
2953 1.1 christos /* EVEX_W_0F3A01_P_2 */
2954 1.1 christos {
2955 1.1 christos { Bad_Opcode },
2956 1.1 christos { "vpermpd", { XM, EXx, Ib } },
2957 1.1 christos },
2958 1.1 christos /* EVEX_W_0F3A04_P_2 */
2959 1.1 christos {
2960 1.1 christos { "vpermilps", { XM, EXx, Ib } },
2961 1.1 christos },
2962 1.1 christos /* EVEX_W_0F3A05_P_2 */
2963 1.1 christos {
2964 1.1 christos { Bad_Opcode },
2965 1.1 christos { "vpermilpd", { XM, EXx, Ib } },
2966 1.1 christos },
2967 1.1 christos /* EVEX_W_0F3A08_P_2 */
2968 1.1 christos {
2969 1.1 christos { "vrndscaleps", { XM, EXx, EXxEVexS, Ib } },
2970 1.1 christos },
2971 1.1 christos /* EVEX_W_0F3A09_P_2 */
2972 1.1 christos {
2973 1.1 christos { Bad_Opcode },
2974 1.1 christos { "vrndscalepd", { XM, EXx, EXxEVexS, Ib } },
2975 1.1 christos },
2976 1.1 christos /* EVEX_W_0F3A0A_P_2 */
2977 1.1 christos {
2978 1.1 christos { "vrndscaless", { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib } },
2979 1.1 christos },
2980 1.1 christos /* EVEX_W_0F3A0B_P_2 */
2981 1.1 christos {
2982 1.1 christos { Bad_Opcode },
2983 1.1 christos { "vrndscalesd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib } },
2984 1.1 christos },
2985 1.1 christos /* EVEX_W_0F3A18_P_2 */
2986 1.1 christos {
2987 1.1 christos { "vinsertf32x4", { XM, Vex, EXxmm, Ib } },
2988 1.1 christos },
2989 1.1 christos /* EVEX_W_0F3A19_P_2 */
2990 1.1 christos {
2991 1.1 christos { "vextractf32x4", { EXxmm, XM, Ib } },
2992 1.1 christos },
2993 1.1 christos /* EVEX_W_0F3A1A_P_2 */
2994 1.1 christos {
2995 1.1 christos { Bad_Opcode },
2996 1.1 christos { "vinsertf64x4", { XM, Vex, EXxmmq, Ib } },
2997 1.1 christos },
2998 1.1 christos /* EVEX_W_0F3A1B_P_2 */
2999 1.1 christos {
3000 1.1 christos { Bad_Opcode },
3001 1.1 christos { "vextractf64x4", { EXxmmq, XM, Ib } },
3002 1.1 christos },
3003 1.1 christos /* EVEX_W_0F3A1D_P_2 */
3004 1.1 christos {
3005 1.1 christos { "vcvtps2ph", { EXxmmq, XM, EXxEVexS, Ib } },
3006 1.1 christos },
3007 1.1 christos /* EVEX_W_0F3A21_P_2 */
3008 1.1 christos {
3009 1.1 christos { "vinsertps", { XMM, Vex, EXxmm_md, Ib } },
3010 1.1 christos },
3011 1.1 christos /* EVEX_W_0F3A23_P_2 */
3012 1.1 christos {
3013 1.1 christos { "vshuff32x4", { XM, Vex, EXx, Ib } },
3014 1.1 christos { "vshuff64x2", { XM, Vex, EXx, Ib } },
3015 1.1 christos },
3016 1.1 christos /* EVEX_W_0F3A38_P_2 */
3017 1.1 christos {
3018 1.1 christos { "vinserti32x4", { XM, Vex, EXxmm, Ib } },
3019 1.1 christos },
3020 1.1 christos /* EVEX_W_0F3A39_P_2 */
3021 1.1 christos {
3022 1.1 christos { "vextracti32x4", { EXxmm, XM, Ib } },
3023 1.1 christos },
3024 1.1 christos /* EVEX_W_0F3A3A_P_2 */
3025 1.1 christos {
3026 1.1 christos { Bad_Opcode },
3027 1.1 christos { "vinserti64x4", { XM, Vex, EXxmmq, Ib } },
3028 1.1 christos },
3029 1.1 christos /* EVEX_W_0F3A3B_P_2 */
3030 1.1 christos {
3031 1.1 christos { Bad_Opcode },
3032 1.1 christos { "vextracti64x4", { EXxmmq, XM, Ib } },
3033 1.1 christos },
3034 1.1 christos /* EVEX_W_0F3A43_P_2 */
3035 1.1 christos {
3036 1.1 christos { "vshufi32x4", { XM, Vex, EXx, Ib } },
3037 1.1 christos { "vshufi64x2", { XM, Vex, EXx, Ib } },
3038 1.1 christos },
3039 1.1 christos #endif /* NEED_VEX_W_TABLE */
3040 1.1 christos #ifdef NEED_MOD_TABLE
3041 1.1 christos {
3042 1.1 christos /* MOD_EVEX_0F10_PREFIX_1 */
3043 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_1_M_0) },
3044 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_1_M_1) },
3045 1.1 christos },
3046 1.1 christos {
3047 1.1 christos /* MOD_EVEX_0F10_PREFIX_3 */
3048 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_3_M_0) },
3049 1.1 christos { VEX_W_TABLE (EVEX_W_0F10_P_3_M_1) },
3050 1.1 christos },
3051 1.1 christos {
3052 1.1 christos /* MOD_EVEX_0F11_PREFIX_1 */
3053 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_1_M_0) },
3054 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_1_M_1) },
3055 1.1 christos },
3056 1.1 christos {
3057 1.1 christos /* MOD_EVEX_0F11_PREFIX_3 */
3058 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_3_M_0) },
3059 1.1 christos { VEX_W_TABLE (EVEX_W_0F11_P_3_M_1) },
3060 1.1 christos },
3061 1.1 christos {
3062 1.1 christos /* MOD_EVEX_0F12_PREFIX_0 */
3063 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_0_M_0) },
3064 1.1 christos { VEX_W_TABLE (EVEX_W_0F12_P_0_M_1) },
3065 1.1 christos },
3066 1.1 christos {
3067 1.1 christos /* MOD_EVEX_0F16_PREFIX_0 */
3068 1.1 christos { VEX_W_TABLE (EVEX_W_0F16_P_0_M_0) },
3069 1.1 christos { VEX_W_TABLE (EVEX_W_0F16_P_0_M_1) },
3070 1.1 christos },
3071 1.1 christos {
3072 1.1 christos /* MOD_EVEX_0F38C6_REG_1 */
3073 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) },
3074 1.1 christos },
3075 1.1 christos {
3076 1.1 christos /* MOD_EVEX_0F38C6_REG_2 */
3077 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_2) },
3078 1.1 christos },
3079 1.1 christos {
3080 1.1 christos /* MOD_EVEX_0F38C6_REG_5 */
3081 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_5) },
3082 1.1 christos },
3083 1.1 christos {
3084 1.1 christos /* MOD_EVEX_0F38C6_REG_6 */
3085 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_6) },
3086 1.1 christos },
3087 1.1 christos {
3088 1.1 christos /* MOD_EVEX_0F38C7_REG_1 */
3089 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_1) },
3090 1.1 christos },
3091 1.1 christos {
3092 1.1 christos /* MOD_EVEX_0F38C7_REG_2 */
3093 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_2) },
3094 1.1 christos },
3095 1.1 christos {
3096 1.1 christos /* MOD_EVEX_0F38C7_REG_5 */
3097 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_5) },
3098 1.1 christos },
3099 1.1 christos {
3100 1.1 christos /* MOD_EVEX_0F38C7_REG_6 */
3101 1.1 christos { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
3102 1.1 christos },
3103 1.1 christos #endif /* NEED_MOD_TABLE */
3104