i386-dis-evex-prefix.h revision 1.1.1.3 1 1.1.1.2 christos /* PREFIX_EVEX_0F5B */
2 1.1 christos {
3 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
4 1.1.1.3 christos { "%XEvcvttp%XS2dq", { XM, EXx, EXxEVexS }, 0 },
5 1.1.1.3 christos { "%XEvcvtp%XS2dq", { XM, EXx, EXxEVexR }, 0 },
6 1.1 christos },
7 1.1.1.2 christos /* PREFIX_EVEX_0F6F */
8 1.1 christos {
9 1.1 christos { Bad_Opcode },
10 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
11 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
12 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F6F_P_3) },
13 1.1 christos },
14 1.1.1.2 christos /* PREFIX_EVEX_0F70 */
15 1.1 christos {
16 1.1 christos { Bad_Opcode },
17 1.1.1.3 christos { "%XEvpshufhw", { XM, EXx, Ib }, 0 },
18 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F70_P_2) },
19 1.1.1.3 christos { "%XEvpshuflw", { XM, EXx, Ib }, 0 },
20 1.1 christos },
21 1.1.1.2 christos /* PREFIX_EVEX_0F78 */
22 1.1 christos {
23 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F78_P_0) },
24 1.1.1.2 christos { "vcvttss2usi", { Gdq, EXd, EXxEVexS }, 0 },
25 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F78_P_2) },
26 1.1.1.2 christos { "vcvttsd2usi", { Gdq, EXq, EXxEVexS }, 0 },
27 1.1 christos },
28 1.1.1.2 christos /* PREFIX_EVEX_0F79 */
29 1.1 christos {
30 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F79_P_0) },
31 1.1.1.2 christos { "vcvtss2usi", { Gdq, EXd, EXxEVexR }, 0 },
32 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F79_P_2) },
33 1.1.1.2 christos { "vcvtsd2usi", { Gdq, EXq, EXxEVexR }, 0 },
34 1.1 christos },
35 1.1.1.2 christos /* PREFIX_EVEX_0F7A */
36 1.1 christos {
37 1.1 christos { Bad_Opcode },
38 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
39 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7A_P_2) },
40 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
41 1.1 christos },
42 1.1.1.2 christos /* PREFIX_EVEX_0F7B */
43 1.1 christos {
44 1.1 christos { Bad_Opcode },
45 1.1.1.3 christos { "vcvtusi2ssY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
46 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7B_P_2) },
47 1.1.1.3 christos { "vcvtusi2sdY{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
48 1.1 christos },
49 1.1.1.2 christos /* PREFIX_EVEX_0F7E */
50 1.1 christos {
51 1.1 christos { Bad_Opcode },
52 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
53 1.1.1.2 christos { VEX_LEN_TABLE (VEX_LEN_0F7E_P_2) },
54 1.1 christos },
55 1.1.1.2 christos /* PREFIX_EVEX_0F7F */
56 1.1 christos {
57 1.1 christos { Bad_Opcode },
58 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
59 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
60 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7F_P_3) },
61 1.1 christos },
62 1.1.1.2 christos /* PREFIX_EVEX_0FC2 */
63 1.1 christos {
64 1.1.1.2 christos { "vcmppX", { MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE },
65 1.1.1.2 christos { "vcmps%XS", { MaskG, VexScalar, EXd, EXxEVexS, CMP }, 0 },
66 1.1.1.2 christos { "vcmppX", { MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE },
67 1.1.1.2 christos { "vcmps%XD", { MaskG, VexScalar, EXq, EXxEVexS, CMP }, 0 },
68 1.1 christos },
69 1.1.1.2 christos /* PREFIX_EVEX_0FE6 */
70 1.1 christos {
71 1.1 christos { Bad_Opcode },
72 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
73 1.1.1.3 christos { "%XEvcvttp%XD2dq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
74 1.1.1.3 christos { "%XEvcvtp%XD2dq%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
75 1.1 christos },
76 1.1.1.2 christos /* PREFIX_EVEX_0F3810 */
77 1.1 christos {
78 1.1 christos { Bad_Opcode },
79 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3810_P_1) },
80 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3810_P_2) },
81 1.1 christos },
82 1.1.1.2 christos /* PREFIX_EVEX_0F3811 */
83 1.1 christos {
84 1.1 christos { Bad_Opcode },
85 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
86 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3811_P_2) },
87 1.1 christos },
88 1.1.1.2 christos /* PREFIX_EVEX_0F3812 */
89 1.1 christos {
90 1.1 christos { Bad_Opcode },
91 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
92 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3812_P_2) },
93 1.1 christos },
94 1.1.1.2 christos /* PREFIX_EVEX_0F3813 */
95 1.1 christos {
96 1.1 christos { Bad_Opcode },
97 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
98 1.1.1.3 christos { "%XEvcvtph2p%XS", { XM, EXxmmq, EXxEVexS }, 0 },
99 1.1 christos },
100 1.1.1.2 christos /* PREFIX_EVEX_0F3814 */
101 1.1 christos {
102 1.1 christos { Bad_Opcode },
103 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
104 1.1.1.2 christos { "vprorv%DQ", { XM, Vex, EXx }, 0 },
105 1.1 christos },
106 1.1.1.2 christos /* PREFIX_EVEX_0F3815 */
107 1.1 christos {
108 1.1 christos { Bad_Opcode },
109 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
110 1.1.1.2 christos { "vprolv%DQ", { XM, Vex, EXx }, 0 },
111 1.1 christos },
112 1.1.1.2 christos /* PREFIX_EVEX_0F3820 */
113 1.1 christos {
114 1.1 christos { Bad_Opcode },
115 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3820_P_1) },
116 1.1.1.3 christos { "%XEvpmovsxbw", { XM, EXxmmq }, 0 },
117 1.1 christos },
118 1.1.1.2 christos /* PREFIX_EVEX_0F3821 */
119 1.1 christos {
120 1.1 christos { Bad_Opcode },
121 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
122 1.1.1.3 christos { "%XEvpmovsxbd", { XM, EXxmmqd }, 0 },
123 1.1 christos },
124 1.1.1.2 christos /* PREFIX_EVEX_0F3822 */
125 1.1 christos {
126 1.1 christos { Bad_Opcode },
127 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
128 1.1.1.3 christos { "%XEvpmovsxbq", { XM, EXxmmdw }, 0 },
129 1.1 christos },
130 1.1.1.2 christos /* PREFIX_EVEX_0F3823 */
131 1.1 christos {
132 1.1 christos { Bad_Opcode },
133 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
134 1.1.1.3 christos { "%XEvpmovsxwd", { XM, EXxmmq }, 0 },
135 1.1 christos },
136 1.1.1.2 christos /* PREFIX_EVEX_0F3824 */
137 1.1 christos {
138 1.1 christos { Bad_Opcode },
139 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
140 1.1.1.3 christos { "%XEvpmovsxwq", { XM, EXxmmqd }, 0 },
141 1.1 christos },
142 1.1.1.2 christos /* PREFIX_EVEX_0F3825 */
143 1.1 christos {
144 1.1 christos { Bad_Opcode },
145 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
146 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
147 1.1 christos },
148 1.1.1.2 christos /* PREFIX_EVEX_0F3826 */
149 1.1 christos {
150 1.1 christos { Bad_Opcode },
151 1.1.1.2 christos { "vptestnm%BW", { MaskG, Vex, EXx }, 0 },
152 1.1.1.2 christos { "vptestm%BW", { MaskG, Vex, EXx }, 0 },
153 1.1 christos },
154 1.1.1.2 christos /* PREFIX_EVEX_0F3827 */
155 1.1 christos {
156 1.1 christos { Bad_Opcode },
157 1.1.1.2 christos { "vptestnm%DQ", { MaskG, Vex, EXx }, 0 },
158 1.1.1.2 christos { "vptestm%DQ", { MaskG, Vex, EXx }, 0 },
159 1.1 christos },
160 1.1.1.2 christos /* PREFIX_EVEX_0F3828 */
161 1.1 christos {
162 1.1 christos { Bad_Opcode },
163 1.1.1.3 christos { "vpmovm2Y%BW", { XM, MaskR }, 0 },
164 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
165 1.1 christos },
166 1.1.1.2 christos /* PREFIX_EVEX_0F3829 */
167 1.1 christos {
168 1.1 christos { Bad_Opcode },
169 1.1.1.3 christos { "vpmov%BW2mY", { MaskG, Ux }, 0 },
170 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
171 1.1 christos },
172 1.1.1.2 christos /* PREFIX_EVEX_0F382A */
173 1.1 christos {
174 1.1 christos { Bad_Opcode },
175 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
176 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
177 1.1 christos },
178 1.1.1.2 christos /* PREFIX_EVEX_0F3830 */
179 1.1 christos {
180 1.1 christos { Bad_Opcode },
181 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3830_P_1) },
182 1.1.1.3 christos { "%XEvpmovzxbw", { XM, EXxmmq }, 0 },
183 1.1 christos },
184 1.1.1.2 christos /* PREFIX_EVEX_0F3831 */
185 1.1 christos {
186 1.1 christos { Bad_Opcode },
187 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
188 1.1.1.3 christos { "%XEvpmovzxbd", { XM, EXxmmqd }, 0 },
189 1.1 christos },
190 1.1.1.2 christos /* PREFIX_EVEX_0F3832 */
191 1.1 christos {
192 1.1 christos { Bad_Opcode },
193 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
194 1.1.1.3 christos { "%XEvpmovzxbq", { XM, EXxmmdw }, 0 },
195 1.1 christos },
196 1.1.1.2 christos /* PREFIX_EVEX_0F3833 */
197 1.1 christos {
198 1.1 christos { Bad_Opcode },
199 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
200 1.1.1.3 christos { "%XEvpmovzxwd", { XM, EXxmmq }, 0 },
201 1.1 christos },
202 1.1.1.2 christos /* PREFIX_EVEX_0F3834 */
203 1.1 christos {
204 1.1 christos { Bad_Opcode },
205 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
206 1.1.1.3 christos { "%XEvpmovzxwq", { XM, EXxmmqd }, 0 },
207 1.1 christos },
208 1.1.1.2 christos /* PREFIX_EVEX_0F3835 */
209 1.1 christos {
210 1.1 christos { Bad_Opcode },
211 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
212 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
213 1.1 christos },
214 1.1.1.2 christos /* PREFIX_EVEX_0F3838 */
215 1.1 christos {
216 1.1 christos { Bad_Opcode },
217 1.1.1.3 christos { "vpmovm2Y%DQ", { XM, MaskR }, 0 },
218 1.1.1.3 christos { "%XEvpminsb", { XM, Vex, EXx }, 0 },
219 1.1 christos },
220 1.1.1.2 christos /* PREFIX_EVEX_0F3839 */
221 1.1 christos {
222 1.1 christos { Bad_Opcode },
223 1.1.1.3 christos { "vpmov%DQ2mY", { MaskG, Ux }, 0 },
224 1.1.1.3 christos { "%XEvpmins%DQ", { XM, Vex, EXx }, 0 },
225 1.1 christos },
226 1.1.1.2 christos /* PREFIX_EVEX_0F383A */
227 1.1 christos {
228 1.1 christos { Bad_Opcode },
229 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
230 1.1.1.3 christos { "%XEvpminuw", { XM, Vex, EXx }, 0 },
231 1.1 christos },
232 1.1.1.2 christos /* PREFIX_EVEX_0F3852 */
233 1.1 christos {
234 1.1 christos { Bad_Opcode },
235 1.1.1.2 christos { "vdpbf16p%XS", { XM, Vex, EXx }, 0 },
236 1.1.1.3 christos { VEX_W_TABLE (VEX_W_0F3852) },
237 1.1.1.3 christos { "vp4dpws%XSd", { XM, Vex, Mxmm }, 0 },
238 1.1 christos },
239 1.1.1.2 christos /* PREFIX_EVEX_0F3853 */
240 1.1 christos {
241 1.1 christos { Bad_Opcode },
242 1.1 christos { Bad_Opcode },
243 1.1.1.3 christos { VEX_W_TABLE (VEX_W_0F3853) },
244 1.1.1.3 christos { "vp4dpws%XSds", { XM, Vex, Mxmm }, 0 },
245 1.1 christos },
246 1.1.1.2 christos /* PREFIX_EVEX_0F3868 */
247 1.1 christos {
248 1.1 christos { Bad_Opcode },
249 1.1 christos { Bad_Opcode },
250 1.1 christos { Bad_Opcode },
251 1.1.1.3 christos { "vp2intersectY%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 },
252 1.1 christos },
253 1.1.1.2 christos /* PREFIX_EVEX_0F3872 */
254 1.1 christos {
255 1.1 christos { Bad_Opcode },
256 1.1.1.2 christos { "vcvtnep%XS2bf16%XY", { XMxmmq, EXx }, 0 },
257 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3872_P_2) },
258 1.1.1.2 christos { "vcvtne2p%XS2bf16", { XM, Vex, EXx}, 0 },
259 1.1 christos },
260 1.1.1.2 christos /* PREFIX_EVEX_0F389A */
261 1.1 christos {
262 1.1 christos { Bad_Opcode },
263 1.1 christos { Bad_Opcode },
264 1.1.1.3 christos { "%XEvfmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
265 1.1.1.3 christos { "v4fmaddp%XS", { XM, Vex, Mxmm }, 0 },
266 1.1 christos },
267 1.1.1.2 christos /* PREFIX_EVEX_0F389B */
268 1.1 christos {
269 1.1 christos { Bad_Opcode },
270 1.1 christos { Bad_Opcode },
271 1.1.1.3 christos { "%XEvfmsub132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, 0 },
272 1.1.1.3 christos { "v4fmadds%XS", { XMScalar, VexScalar, Mxmm }, 0 },
273 1.1 christos },
274 1.1.1.2 christos /* PREFIX_EVEX_0F38AA */
275 1.1 christos {
276 1.1 christos { Bad_Opcode },
277 1.1 christos { Bad_Opcode },
278 1.1.1.3 christos { "%XEvfmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
279 1.1.1.3 christos { "v4fnmaddp%XS", { XM, Vex, Mxmm }, 0 },
280 1.1 christos },
281 1.1.1.2 christos /* PREFIX_EVEX_0F38AB */
282 1.1 christos {
283 1.1 christos { Bad_Opcode },
284 1.1 christos { Bad_Opcode },
285 1.1.1.3 christos { "%XEvfmsub213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, 0 },
286 1.1.1.3 christos { "v4fnmadds%XS", { XMScalar, VexScalar, Mxmm }, 0 },
287 1.1 christos },
288 1.1.1.2 christos /* PREFIX_EVEX_0F3A08 */
289 1.1 christos {
290 1.1.1.2 christos { "vrndscalep%XH", { XM, EXxh, EXxEVexS, Ib }, 0 },
291 1.1 christos { Bad_Opcode },
292 1.1.1.2 christos { "vrndscalep%XS", { XM, EXx, EXxEVexS, Ib }, 0 },
293 1.1 christos },
294 1.1.1.2 christos /* PREFIX_EVEX_0F3A0A */
295 1.1 christos {
296 1.1.1.2 christos { "vrndscales%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
297 1.1 christos { Bad_Opcode },
298 1.1.1.2 christos { "vrndscales%XS", { XMScalar, VexScalar, EXd, EXxEVexS, Ib }, 0 },
299 1.1 christos },
300 1.1.1.2 christos /* PREFIX_EVEX_0F3A26 */
301 1.1 christos {
302 1.1.1.2 christos { "vgetmantp%XH", { XM, EXxh, EXxEVexS, Ib }, 0 },
303 1.1 christos { Bad_Opcode },
304 1.1.1.2 christos { "vgetmantp%XW", { XM, EXx, EXxEVexS, Ib }, 0 },
305 1.1 christos },
306 1.1.1.2 christos /* PREFIX_EVEX_0F3A27 */
307 1.1 christos {
308 1.1.1.2 christos { "vgetmants%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
309 1.1 christos { Bad_Opcode },
310 1.1.1.2 christos { "vgetmants%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 },
311 1.1 christos },
312 1.1.1.2 christos /* PREFIX_EVEX_0F3A56 */
313 1.1 christos {
314 1.1.1.2 christos { "vreducep%XH", { XM, EXxh, EXxEVexS, Ib }, 0 },
315 1.1 christos { Bad_Opcode },
316 1.1.1.2 christos { "vreducep%XW", { XM, EXx, EXxEVexS, Ib }, 0 },
317 1.1 christos },
318 1.1.1.2 christos /* PREFIX_EVEX_0F3A57 */
319 1.1 christos {
320 1.1.1.2 christos { "vreduces%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
321 1.1 christos { Bad_Opcode },
322 1.1.1.2 christos { "vreduces%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 },
323 1.1 christos },
324 1.1.1.2 christos /* PREFIX_EVEX_0F3A66 */
325 1.1 christos {
326 1.1.1.2 christos { "vfpclassp%XH%XZ", { MaskG, EXxh, Ib }, 0 },
327 1.1 christos { Bad_Opcode },
328 1.1.1.2 christos { "vfpclassp%XW%XZ", { MaskG, EXx, Ib }, 0 },
329 1.1 christos },
330 1.1.1.2 christos /* PREFIX_EVEX_0F3A67 */
331 1.1 christos {
332 1.1.1.2 christos { "vfpclasss%XH", { MaskG, EXw, Ib }, 0 },
333 1.1 christos { Bad_Opcode },
334 1.1.1.2 christos { "vfpclasss%XW", { MaskG, EXdq, Ib }, 0 },
335 1.1 christos },
336 1.1.1.2 christos /* PREFIX_EVEX_0F3AC2 */
337 1.1 christos {
338 1.1.1.2 christos { "vcmpp%XH", { MaskG, Vex, EXxh, EXxEVexS, CMP }, 0 },
339 1.1.1.2 christos { "vcmps%XH", { MaskG, VexScalar, EXw, EXxEVexS, CMP }, 0 },
340 1.1 christos },
341 1.1.1.3 christos /* PREFIX_EVEX_MAP4_D8 */
342 1.1.1.3 christos {
343 1.1.1.3 christos { "sha1nexte", { XM, EXxmm }, 0 },
344 1.1.1.3 christos { REG_TABLE (REG_0F38D8_PREFIX_1) },
345 1.1.1.3 christos },
346 1.1.1.3 christos /* PREFIX_EVEX_MAP4_DA */
347 1.1.1.3 christos {
348 1.1.1.3 christos { "sha1msg2", { XM, EXxmm }, 0 },
349 1.1.1.3 christos { "encodekey128", { Gd, Rd }, 0 },
350 1.1.1.3 christos },
351 1.1.1.3 christos /* PREFIX_EVEX_MAP4_DB */
352 1.1.1.3 christos {
353 1.1.1.3 christos { "sha256rnds2", { XM, EXxmm, XMM0 }, 0 },
354 1.1.1.3 christos { "encodekey256", { Gd, Rd }, 0 },
355 1.1.1.3 christos },
356 1.1.1.3 christos /* PREFIX_EVEX_MAP4_DC */
357 1.1.1.3 christos {
358 1.1.1.3 christos { "sha256msg1", { XM, EXxmm }, 0 },
359 1.1.1.3 christos { "aesenc128kl", { XM, M }, 0 },
360 1.1.1.3 christos },
361 1.1.1.3 christos /* PREFIX_EVEX_MAP4_DD */
362 1.1.1.3 christos {
363 1.1.1.3 christos { "sha256msg2", { XM, EXxmm }, 0 },
364 1.1.1.3 christos { "aesdec128kl", { XM, M }, 0 },
365 1.1.1.3 christos },
366 1.1.1.3 christos /* PREFIX_EVEX_MAP4_DE */
367 1.1.1.3 christos {
368 1.1.1.3 christos { Bad_Opcode },
369 1.1.1.3 christos { "aesenc256kl", { XM, M }, 0 },
370 1.1.1.3 christos },
371 1.1.1.3 christos /* PREFIX_EVEX_MAP4_DF */
372 1.1.1.3 christos {
373 1.1.1.3 christos { Bad_Opcode },
374 1.1.1.3 christos { "aesdec256kl", { XM, M }, 0 },
375 1.1.1.3 christos },
376 1.1.1.3 christos /* PREFIX_EVEX_MAP4_F0 */
377 1.1.1.3 christos {
378 1.1.1.3 christos { "crc32A", { Gdq, Eb }, 0 },
379 1.1.1.3 christos { "invept", { Gm, Mo }, 0 },
380 1.1.1.3 christos },
381 1.1.1.3 christos /* PREFIX_EVEX_MAP4_F1 */
382 1.1.1.3 christos {
383 1.1.1.3 christos { "crc32Q", { Gdq, Ev }, 0 },
384 1.1.1.3 christos { "invvpid", { Gm, Mo }, 0 },
385 1.1.1.3 christos { "crc32Q", { Gdq, Ev }, 0 },
386 1.1.1.3 christos },
387 1.1.1.3 christos /* PREFIX_EVEX_MAP4_F2 */
388 1.1.1.3 christos {
389 1.1.1.3 christos { Bad_Opcode },
390 1.1.1.3 christos { "invpcid", { Gm, M }, 0 },
391 1.1.1.3 christos },
392 1.1.1.3 christos /* PREFIX_EVEX_MAP4_F8 */
393 1.1.1.3 christos {
394 1.1.1.3 christos { Bad_Opcode },
395 1.1.1.3 christos { MOD_TABLE (MOD_EVEX_MAP4_F8_P_1) },
396 1.1.1.3 christos { "movdir64b", { Gva, M }, 0 },
397 1.1.1.3 christos { MOD_TABLE (MOD_EVEX_MAP4_F8_P_3) },
398 1.1.1.3 christos },
399 1.1.1.2 christos /* PREFIX_EVEX_MAP5_10 */
400 1.1 christos {
401 1.1 christos { Bad_Opcode },
402 1.1.1.2 christos { "vmovs%XH", { XMScalar, VexScalarR, EXw }, 0 },
403 1.1 christos },
404 1.1.1.2 christos /* PREFIX_EVEX_MAP5_11 */
405 1.1 christos {
406 1.1 christos { Bad_Opcode },
407 1.1.1.2 christos { "vmovs%XH", { EXwS, VexScalarR, XMScalar }, 0 },
408 1.1 christos },
409 1.1.1.2 christos /* PREFIX_EVEX_MAP5_1D */
410 1.1 christos {
411 1.1.1.2 christos { "vcvtss2s%XH", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
412 1.1 christos { Bad_Opcode },
413 1.1.1.2 christos { "vcvtps2p%XHx%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
414 1.1 christos },
415 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2A */
416 1.1 christos {
417 1.1 christos { Bad_Opcode },
418 1.1.1.3 christos { "vcvtsi2shY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
419 1.1 christos },
420 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2C */
421 1.1 christos {
422 1.1 christos { Bad_Opcode },
423 1.1.1.2 christos { "vcvttsh2si", { Gdq, EXw, EXxEVexS }, 0 },
424 1.1 christos },
425 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2D */
426 1.1 christos {
427 1.1 christos { Bad_Opcode },
428 1.1.1.2 christos { "vcvtsh2si", { Gdq, EXw, EXxEVexR }, 0 },
429 1.1 christos },
430 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2E */
431 1.1 christos {
432 1.1.1.3 christos { "vucomisY%XH", { XMScalar, EXw, EXxEVexS }, 0 },
433 1.1 christos },
434 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2F */
435 1.1 christos {
436 1.1.1.3 christos { "vcomisY%XH", { XMScalar, EXw, EXxEVexS }, 0 },
437 1.1 christos },
438 1.1.1.2 christos /* PREFIX_EVEX_MAP5_51 */
439 1.1 christos {
440 1.1.1.2 christos { "vsqrtp%XH", { XM, EXxh, EXxEVexR }, 0 },
441 1.1.1.2 christos { "vsqrts%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
442 1.1 christos },
443 1.1.1.2 christos /* PREFIX_EVEX_MAP5_58 */
444 1.1 christos {
445 1.1.1.2 christos { "vaddp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
446 1.1.1.2 christos { "vadds%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
447 1.1 christos },
448 1.1.1.2 christos /* PREFIX_EVEX_MAP5_59 */
449 1.1 christos {
450 1.1.1.2 christos { "vmulp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
451 1.1.1.2 christos { "vmuls%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
452 1.1 christos },
453 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5A */
454 1.1 christos {
455 1.1.1.2 christos { "vcvtp%XH2pd", { XM, EXxmmqdh, EXxEVexS }, 0 },
456 1.1.1.2 christos { "vcvts%XH2sd", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
457 1.1.1.2 christos { "vcvtp%XD2ph%XZ", { XMM, EXx, EXxEVexR }, 0 },
458 1.1.1.2 christos { "vcvts%XD2sh", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
459 1.1 christos },
460 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5B */
461 1.1 christos {
462 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_MAP5_5B_P_0) },
463 1.1.1.2 christos { "vcvttp%XH2dq", { XM, EXxmmqh, EXxEVexS }, 0 },
464 1.1.1.2 christos { "vcvtp%XH2dq", { XM, EXxmmqh, EXxEVexR }, 0 },
465 1.1 christos },
466 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5C */
467 1.1 christos {
468 1.1.1.2 christos { "vsubp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
469 1.1.1.2 christos { "vsubs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
470 1.1 christos },
471 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5D */
472 1.1 christos {
473 1.1.1.2 christos { "vminp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 },
474 1.1.1.2 christos { "vmins%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
475 1.1 christos },
476 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5E */
477 1.1 christos {
478 1.1.1.2 christos { "vdivp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
479 1.1.1.2 christos { "vdivs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
480 1.1 christos },
481 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5F */
482 1.1 christos {
483 1.1.1.2 christos { "vmaxp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 },
484 1.1.1.2 christos { "vmaxs%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
485 1.1 christos },
486 1.1.1.2 christos /* PREFIX_EVEX_MAP5_78 */
487 1.1 christos {
488 1.1.1.2 christos { "vcvttp%XH2udq", { XM, EXxmmqh, EXxEVexS }, 0 },
489 1.1.1.2 christos { "vcvttsh2usi", { Gdq, EXw, EXxEVexS }, 0 },
490 1.1.1.2 christos { "vcvttp%XH2uqq", { XM, EXxmmqdh, EXxEVexS }, 0 },
491 1.1 christos },
492 1.1.1.2 christos /* PREFIX_EVEX_MAP5_79 */
493 1.1 christos {
494 1.1.1.2 christos { "vcvtp%XH2udq", { XM, EXxmmqh, EXxEVexR }, 0 },
495 1.1.1.2 christos { "vcvtsh2usi", { Gdq, EXw, EXxEVexR }, 0 },
496 1.1.1.2 christos { "vcvtp%XH2uqq", { XM, EXxmmqdh, EXxEVexR }, 0 },
497 1.1 christos },
498 1.1.1.2 christos /* PREFIX_EVEX_MAP5_7A */
499 1.1 christos {
500 1.1 christos { Bad_Opcode },
501 1.1 christos { Bad_Opcode },
502 1.1.1.2 christos { "vcvttp%XH2qq", { XM, EXxmmqdh, EXxEVexS }, 0 },
503 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_MAP5_7A_P_3) },
504 1.1 christos },
505 1.1.1.2 christos /* PREFIX_EVEX_MAP5_7B */
506 1.1 christos {
507 1.1 christos { Bad_Opcode },
508 1.1.1.3 christos { "vcvtusi2shY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
509 1.1.1.2 christos { "vcvtp%XH2qq", { XM, EXxmmqdh, EXxEVexR }, 0 },
510 1.1 christos },
511 1.1.1.2 christos /* PREFIX_EVEX_MAP5_7C */
512 1.1 christos {
513 1.1.1.2 christos { "vcvttp%XH2uw", { XM, EXxh, EXxEVexS }, 0 },
514 1.1 christos { Bad_Opcode },
515 1.1.1.2 christos { "vcvttp%XH2w", { XM, EXxh, EXxEVexS }, 0 },
516 1.1 christos },
517 1.1.1.2 christos /* PREFIX_EVEX_MAP5_7D */
518 1.1 christos {
519 1.1.1.2 christos { "vcvtp%XH2uw", { XM, EXxh, EXxEVexR }, 0 },
520 1.1.1.2 christos { "vcvtw2p%XH", { XM, EXxh, EXxEVexR }, 0 },
521 1.1.1.2 christos { "vcvtp%XH2w", { XM, EXxh, EXxEVexR }, 0 },
522 1.1.1.2 christos { "vcvtuw2p%XH", { XM, EXxh, EXxEVexR }, 0 },
523 1.1 christos },
524 1.1.1.2 christos /* PREFIX_EVEX_MAP6_13 */
525 1.1 christos {
526 1.1.1.2 christos { "vcvts%XH2ss", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
527 1.1 christos { Bad_Opcode },
528 1.1.1.2 christos { "vcvtp%XH2psx", { XM, EXxmmqh, EXxEVexS }, 0 },
529 1.1 christos },
530 1.1.1.2 christos /* PREFIX_EVEX_MAP6_56 */
531 1.1 christos {
532 1.1 christos { Bad_Opcode },
533 1.1.1.2 christos { "vfmaddcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
534 1.1 christos { Bad_Opcode },
535 1.1.1.2 christos { "vfcmaddcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
536 1.1 christos },
537 1.1.1.2 christos /* PREFIX_EVEX_MAP6_57 */
538 1.1 christos {
539 1.1 christos { Bad_Opcode },
540 1.1.1.2 christos { "vfmaddcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
541 1.1 christos { Bad_Opcode },
542 1.1.1.2 christos { "vfcmaddcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
543 1.1 christos },
544 1.1.1.2 christos /* PREFIX_EVEX_MAP6_D6 */
545 1.1 christos {
546 1.1 christos { Bad_Opcode },
547 1.1.1.2 christos { "vfmulcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
548 1.1 christos { Bad_Opcode },
549 1.1.1.2 christos { "vfcmulcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
550 1.1 christos },
551 1.1.1.2 christos /* PREFIX_EVEX_MAP6_D7 */
552 1.1 christos {
553 1.1 christos { Bad_Opcode },
554 1.1.1.2 christos { "vfmulcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
555 1.1 christos { Bad_Opcode },
556 1.1.1.2 christos { "vfcmulcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
557 1.1 christos },
558