i386-dis-evex-prefix.h revision 1.1.1.4 1 1.1.1.4 christos /* PREFIX_EVEX_0F2E */
2 1.1.1.4 christos {
3 1.1.1.4 christos { "%XEvucomis%XS", { XMScalar, EXd, EXxEVexS }, 0 },
4 1.1.1.4 christos { "vucomxs%XS", { XMScalar, EXd, EXxEVexS }, 0 },
5 1.1.1.4 christos { "%XEvucomis%XD", { XMScalar, EXq, EXxEVexS }, 0 },
6 1.1.1.4 christos { "vucomxs%XD", { XMScalar, EXq, EXxEVexS }, 0 },
7 1.1.1.4 christos },
8 1.1.1.4 christos /* PREFIX_EVEX_0F2F */
9 1.1.1.4 christos {
10 1.1.1.4 christos { "%XEvcomis%XS", { XMScalar, EXd, EXxEVexS }, 0 },
11 1.1.1.4 christos { "vcomxs%XS", { XMScalar, EXd, EXxEVexS }, 0 },
12 1.1.1.4 christos { "%XEvcomis%XD", { XMScalar, EXq, EXxEVexS }, 0 },
13 1.1.1.4 christos { "vcomxs%XD", { XMScalar, EXq, EXxEVexS }, 0 },
14 1.1.1.4 christos },
15 1.1.1.2 christos /* PREFIX_EVEX_0F5B */
16 1.1 christos {
17 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
18 1.1.1.3 christos { "%XEvcvttp%XS2dq", { XM, EXx, EXxEVexS }, 0 },
19 1.1.1.3 christos { "%XEvcvtp%XS2dq", { XM, EXx, EXxEVexR }, 0 },
20 1.1 christos },
21 1.1.1.2 christos /* PREFIX_EVEX_0F6F */
22 1.1 christos {
23 1.1 christos { Bad_Opcode },
24 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
25 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
26 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F6F_P_3) },
27 1.1 christos },
28 1.1.1.2 christos /* PREFIX_EVEX_0F70 */
29 1.1 christos {
30 1.1 christos { Bad_Opcode },
31 1.1.1.3 christos { "%XEvpshufhw", { XM, EXx, Ib }, 0 },
32 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F70_P_2) },
33 1.1.1.3 christos { "%XEvpshuflw", { XM, EXx, Ib }, 0 },
34 1.1 christos },
35 1.1.1.2 christos /* PREFIX_EVEX_0F78 */
36 1.1 christos {
37 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F78_P_0) },
38 1.1.1.2 christos { "vcvttss2usi", { Gdq, EXd, EXxEVexS }, 0 },
39 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F78_P_2) },
40 1.1.1.2 christos { "vcvttsd2usi", { Gdq, EXq, EXxEVexS }, 0 },
41 1.1 christos },
42 1.1.1.2 christos /* PREFIX_EVEX_0F79 */
43 1.1 christos {
44 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F79_P_0) },
45 1.1.1.2 christos { "vcvtss2usi", { Gdq, EXd, EXxEVexR }, 0 },
46 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F79_P_2) },
47 1.1.1.2 christos { "vcvtsd2usi", { Gdq, EXq, EXxEVexR }, 0 },
48 1.1 christos },
49 1.1.1.2 christos /* PREFIX_EVEX_0F7A */
50 1.1 christos {
51 1.1 christos { Bad_Opcode },
52 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
53 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7A_P_2) },
54 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
55 1.1 christos },
56 1.1.1.2 christos /* PREFIX_EVEX_0F7B */
57 1.1 christos {
58 1.1 christos { Bad_Opcode },
59 1.1.1.3 christos { "vcvtusi2ssY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
60 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7B_P_2) },
61 1.1.1.3 christos { "vcvtusi2sdY{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
62 1.1 christos },
63 1.1.1.2 christos /* PREFIX_EVEX_0F7E */
64 1.1 christos {
65 1.1 christos { Bad_Opcode },
66 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
67 1.1.1.2 christos { VEX_LEN_TABLE (VEX_LEN_0F7E_P_2) },
68 1.1 christos },
69 1.1.1.2 christos /* PREFIX_EVEX_0F7F */
70 1.1 christos {
71 1.1 christos { Bad_Opcode },
72 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
73 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
74 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F7F_P_3) },
75 1.1 christos },
76 1.1.1.2 christos /* PREFIX_EVEX_0FC2 */
77 1.1 christos {
78 1.1.1.2 christos { "vcmppX", { MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE },
79 1.1.1.2 christos { "vcmps%XS", { MaskG, VexScalar, EXd, EXxEVexS, CMP }, 0 },
80 1.1.1.2 christos { "vcmppX", { MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE },
81 1.1.1.2 christos { "vcmps%XD", { MaskG, VexScalar, EXq, EXxEVexS, CMP }, 0 },
82 1.1 christos },
83 1.1.1.2 christos /* PREFIX_EVEX_0FE6 */
84 1.1 christos {
85 1.1 christos { Bad_Opcode },
86 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
87 1.1.1.3 christos { "%XEvcvttp%XD2dq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
88 1.1.1.3 christos { "%XEvcvtp%XD2dq%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
89 1.1 christos },
90 1.1.1.2 christos /* PREFIX_EVEX_0F3810 */
91 1.1 christos {
92 1.1 christos { Bad_Opcode },
93 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3810_P_1) },
94 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3810_P_2) },
95 1.1 christos },
96 1.1.1.2 christos /* PREFIX_EVEX_0F3811 */
97 1.1 christos {
98 1.1 christos { Bad_Opcode },
99 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
100 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3811_P_2) },
101 1.1 christos },
102 1.1.1.2 christos /* PREFIX_EVEX_0F3812 */
103 1.1 christos {
104 1.1 christos { Bad_Opcode },
105 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
106 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3812_P_2) },
107 1.1 christos },
108 1.1.1.2 christos /* PREFIX_EVEX_0F3813 */
109 1.1 christos {
110 1.1 christos { Bad_Opcode },
111 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
112 1.1.1.3 christos { "%XEvcvtph2p%XS", { XM, EXxmmq, EXxEVexS }, 0 },
113 1.1 christos },
114 1.1.1.2 christos /* PREFIX_EVEX_0F3814 */
115 1.1 christos {
116 1.1 christos { Bad_Opcode },
117 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
118 1.1.1.2 christos { "vprorv%DQ", { XM, Vex, EXx }, 0 },
119 1.1 christos },
120 1.1.1.2 christos /* PREFIX_EVEX_0F3815 */
121 1.1 christos {
122 1.1 christos { Bad_Opcode },
123 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
124 1.1.1.2 christos { "vprolv%DQ", { XM, Vex, EXx }, 0 },
125 1.1 christos },
126 1.1.1.2 christos /* PREFIX_EVEX_0F3820 */
127 1.1 christos {
128 1.1 christos { Bad_Opcode },
129 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3820_P_1) },
130 1.1.1.3 christos { "%XEvpmovsxbw", { XM, EXxmmq }, 0 },
131 1.1 christos },
132 1.1.1.2 christos /* PREFIX_EVEX_0F3821 */
133 1.1 christos {
134 1.1 christos { Bad_Opcode },
135 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
136 1.1.1.3 christos { "%XEvpmovsxbd", { XM, EXxmmqd }, 0 },
137 1.1 christos },
138 1.1.1.2 christos /* PREFIX_EVEX_0F3822 */
139 1.1 christos {
140 1.1 christos { Bad_Opcode },
141 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
142 1.1.1.3 christos { "%XEvpmovsxbq", { XM, EXxmmdw }, 0 },
143 1.1 christos },
144 1.1.1.2 christos /* PREFIX_EVEX_0F3823 */
145 1.1 christos {
146 1.1 christos { Bad_Opcode },
147 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
148 1.1.1.3 christos { "%XEvpmovsxwd", { XM, EXxmmq }, 0 },
149 1.1 christos },
150 1.1.1.2 christos /* PREFIX_EVEX_0F3824 */
151 1.1 christos {
152 1.1 christos { Bad_Opcode },
153 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
154 1.1.1.3 christos { "%XEvpmovsxwq", { XM, EXxmmqd }, 0 },
155 1.1 christos },
156 1.1.1.2 christos /* PREFIX_EVEX_0F3825 */
157 1.1 christos {
158 1.1 christos { Bad_Opcode },
159 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
160 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
161 1.1 christos },
162 1.1.1.2 christos /* PREFIX_EVEX_0F3826 */
163 1.1 christos {
164 1.1 christos { Bad_Opcode },
165 1.1.1.2 christos { "vptestnm%BW", { MaskG, Vex, EXx }, 0 },
166 1.1.1.2 christos { "vptestm%BW", { MaskG, Vex, EXx }, 0 },
167 1.1 christos },
168 1.1.1.2 christos /* PREFIX_EVEX_0F3827 */
169 1.1 christos {
170 1.1 christos { Bad_Opcode },
171 1.1.1.2 christos { "vptestnm%DQ", { MaskG, Vex, EXx }, 0 },
172 1.1.1.2 christos { "vptestm%DQ", { MaskG, Vex, EXx }, 0 },
173 1.1 christos },
174 1.1.1.2 christos /* PREFIX_EVEX_0F3828 */
175 1.1 christos {
176 1.1 christos { Bad_Opcode },
177 1.1.1.3 christos { "vpmovm2Y%BW", { XM, MaskR }, 0 },
178 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
179 1.1 christos },
180 1.1.1.2 christos /* PREFIX_EVEX_0F3829 */
181 1.1 christos {
182 1.1 christos { Bad_Opcode },
183 1.1.1.3 christos { "vpmov%BW2mY", { MaskG, Ux }, 0 },
184 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
185 1.1 christos },
186 1.1.1.2 christos /* PREFIX_EVEX_0F382A */
187 1.1 christos {
188 1.1 christos { Bad_Opcode },
189 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
190 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
191 1.1 christos },
192 1.1.1.2 christos /* PREFIX_EVEX_0F3830 */
193 1.1 christos {
194 1.1 christos { Bad_Opcode },
195 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3830_P_1) },
196 1.1.1.3 christos { "%XEvpmovzxbw", { XM, EXxmmq }, 0 },
197 1.1 christos },
198 1.1.1.2 christos /* PREFIX_EVEX_0F3831 */
199 1.1 christos {
200 1.1 christos { Bad_Opcode },
201 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
202 1.1.1.3 christos { "%XEvpmovzxbd", { XM, EXxmmqd }, 0 },
203 1.1 christos },
204 1.1.1.2 christos /* PREFIX_EVEX_0F3832 */
205 1.1 christos {
206 1.1 christos { Bad_Opcode },
207 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
208 1.1.1.3 christos { "%XEvpmovzxbq", { XM, EXxmmdw }, 0 },
209 1.1 christos },
210 1.1.1.2 christos /* PREFIX_EVEX_0F3833 */
211 1.1 christos {
212 1.1 christos { Bad_Opcode },
213 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
214 1.1.1.3 christos { "%XEvpmovzxwd", { XM, EXxmmq }, 0 },
215 1.1 christos },
216 1.1.1.2 christos /* PREFIX_EVEX_0F3834 */
217 1.1 christos {
218 1.1 christos { Bad_Opcode },
219 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
220 1.1.1.3 christos { "%XEvpmovzxwq", { XM, EXxmmqd }, 0 },
221 1.1 christos },
222 1.1.1.2 christos /* PREFIX_EVEX_0F3835 */
223 1.1 christos {
224 1.1 christos { Bad_Opcode },
225 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
226 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
227 1.1 christos },
228 1.1.1.2 christos /* PREFIX_EVEX_0F3838 */
229 1.1 christos {
230 1.1 christos { Bad_Opcode },
231 1.1.1.3 christos { "vpmovm2Y%DQ", { XM, MaskR }, 0 },
232 1.1.1.3 christos { "%XEvpminsb", { XM, Vex, EXx }, 0 },
233 1.1 christos },
234 1.1.1.2 christos /* PREFIX_EVEX_0F3839 */
235 1.1 christos {
236 1.1 christos { Bad_Opcode },
237 1.1.1.3 christos { "vpmov%DQ2mY", { MaskG, Ux }, 0 },
238 1.1.1.3 christos { "%XEvpmins%DQ", { XM, Vex, EXx }, 0 },
239 1.1 christos },
240 1.1.1.2 christos /* PREFIX_EVEX_0F383A */
241 1.1 christos {
242 1.1 christos { Bad_Opcode },
243 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
244 1.1.1.3 christos { "%XEvpminuw", { XM, Vex, EXx }, 0 },
245 1.1 christos },
246 1.1.1.4 christos /* PREFIX_EVEX_0F384A_W_0_L_2 */
247 1.1 christos {
248 1.1 christos { Bad_Opcode },
249 1.1.1.4 christos { "tcvtrowd2ps", { XM, Rtmm, VexGdq }, 0 },
250 1.1.1.4 christos { "tilemovrow", { XM, Rtmm, VexGdq }, 0 },
251 1.1.1.4 christos },
252 1.1.1.4 christos /* PREFIX_EVEX_0F3852 */
253 1.1.1.4 christos {
254 1.1.1.4 christos { "vdpphp%XS", { XM, Vex, EXx }, 0 },
255 1.1.1.4 christos { "vdpbf16p%XS", { XM, Vex, EXx }, 0 },
256 1.1.1.3 christos { VEX_W_TABLE (VEX_W_0F3852) },
257 1.1.1.3 christos { "vp4dpws%XSd", { XM, Vex, Mxmm }, 0 },
258 1.1 christos },
259 1.1.1.2 christos /* PREFIX_EVEX_0F3853 */
260 1.1 christos {
261 1.1 christos { Bad_Opcode },
262 1.1 christos { Bad_Opcode },
263 1.1.1.3 christos { VEX_W_TABLE (VEX_W_0F3853) },
264 1.1.1.3 christos { "vp4dpws%XSds", { XM, Vex, Mxmm }, 0 },
265 1.1 christos },
266 1.1.1.2 christos /* PREFIX_EVEX_0F3868 */
267 1.1 christos {
268 1.1 christos { Bad_Opcode },
269 1.1 christos { Bad_Opcode },
270 1.1 christos { Bad_Opcode },
271 1.1.1.3 christos { "vp2intersectY%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 },
272 1.1 christos },
273 1.1.1.4 christos /* PREFIX_EVEX_0F386D_W_0_L_2 */
274 1.1.1.4 christos {
275 1.1.1.4 christos { "tcvtrowps2phh", { XM, Rtmm, VexGdq }, 0 },
276 1.1.1.4 christos { "tcvtrowps2bf16l", { XM, Rtmm, VexGdq }, 0 },
277 1.1.1.4 christos { "tcvtrowps2phl", { XM, Rtmm, VexGdq }, 0 },
278 1.1.1.4 christos { "tcvtrowps2bf16h", { XM, Rtmm, VexGdq }, 0 },
279 1.1.1.4 christos },
280 1.1.1.2 christos /* PREFIX_EVEX_0F3872 */
281 1.1 christos {
282 1.1 christos { Bad_Opcode },
283 1.1.1.2 christos { "vcvtnep%XS2bf16%XY", { XMxmmq, EXx }, 0 },
284 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_0F3872_P_2) },
285 1.1.1.2 christos { "vcvtne2p%XS2bf16", { XM, Vex, EXx}, 0 },
286 1.1 christos },
287 1.1.1.4 christos /* PREFIX_EVEX_0F3874 */
288 1.1.1.4 christos {
289 1.1.1.4 christos { "vcvtbiasp%XH2bf8", { XMxmmq, Vex, EXxh }, 0 },
290 1.1.1.4 christos { "vcvtp%XH2bf8%XY", { XMxmmq, EXxh }, 0 },
291 1.1.1.4 christos { Bad_Opcode },
292 1.1.1.4 christos { "vcvt2p%XH2bf8", { XM, Vex, EXxh }, 0 },
293 1.1.1.4 christos },
294 1.1.1.2 christos /* PREFIX_EVEX_0F389A */
295 1.1 christos {
296 1.1 christos { Bad_Opcode },
297 1.1 christos { Bad_Opcode },
298 1.1.1.3 christos { "%XEvfmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
299 1.1.1.3 christos { "v4fmaddp%XS", { XM, Vex, Mxmm }, 0 },
300 1.1 christos },
301 1.1.1.2 christos /* PREFIX_EVEX_0F389B */
302 1.1 christos {
303 1.1 christos { Bad_Opcode },
304 1.1 christos { Bad_Opcode },
305 1.1.1.3 christos { "%XEvfmsub132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, 0 },
306 1.1.1.3 christos { "v4fmadds%XS", { XMScalar, VexScalar, Mxmm }, 0 },
307 1.1 christos },
308 1.1.1.2 christos /* PREFIX_EVEX_0F38AA */
309 1.1 christos {
310 1.1 christos { Bad_Opcode },
311 1.1 christos { Bad_Opcode },
312 1.1.1.3 christos { "%XEvfmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
313 1.1.1.3 christos { "v4fnmaddp%XS", { XM, Vex, Mxmm }, 0 },
314 1.1 christos },
315 1.1.1.2 christos /* PREFIX_EVEX_0F38AB */
316 1.1 christos {
317 1.1 christos { Bad_Opcode },
318 1.1 christos { Bad_Opcode },
319 1.1.1.3 christos { "%XEvfmsub213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, 0 },
320 1.1.1.3 christos { "v4fnmadds%XS", { XMScalar, VexScalar, Mxmm }, 0 },
321 1.1 christos },
322 1.1.1.4 christos /* PREFIX_EVEX_0F3A07_W_0_L_2 */
323 1.1.1.4 christos {
324 1.1.1.4 christos { "tcvtrowps2phh", { XM, Rtmm, Ib }, 0 },
325 1.1.1.4 christos { "tcvtrowd2ps", { XM, Rtmm, Ib }, 0 },
326 1.1.1.4 christos { "tilemovrow", { XM, Rtmm, Ib }, 0 },
327 1.1.1.4 christos { "tcvtrowps2bf16h", { XM, Rtmm, Ib }, 0 },
328 1.1.1.4 christos },
329 1.1.1.2 christos /* PREFIX_EVEX_0F3A08 */
330 1.1 christos {
331 1.1.1.2 christos { "vrndscalep%XH", { XM, EXxh, EXxEVexS, Ib }, 0 },
332 1.1 christos { Bad_Opcode },
333 1.1.1.2 christos { "vrndscalep%XS", { XM, EXx, EXxEVexS, Ib }, 0 },
334 1.1.1.4 christos { "vrndscale%XB", { XM, EXxh, Ib }, 0 },
335 1.1 christos },
336 1.1.1.2 christos /* PREFIX_EVEX_0F3A0A */
337 1.1 christos {
338 1.1.1.2 christos { "vrndscales%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
339 1.1 christos { Bad_Opcode },
340 1.1.1.2 christos { "vrndscales%XS", { XMScalar, VexScalar, EXd, EXxEVexS, Ib }, 0 },
341 1.1 christos },
342 1.1.1.2 christos /* PREFIX_EVEX_0F3A26 */
343 1.1 christos {
344 1.1.1.2 christos { "vgetmantp%XH", { XM, EXxh, EXxEVexS, Ib }, 0 },
345 1.1 christos { Bad_Opcode },
346 1.1.1.2 christos { "vgetmantp%XW", { XM, EXx, EXxEVexS, Ib }, 0 },
347 1.1.1.4 christos { "vgetmant%XB", { XM, EXxh, Ib }, 0 },
348 1.1 christos },
349 1.1.1.2 christos /* PREFIX_EVEX_0F3A27 */
350 1.1 christos {
351 1.1.1.2 christos { "vgetmants%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
352 1.1 christos { Bad_Opcode },
353 1.1.1.2 christos { "vgetmants%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 },
354 1.1 christos },
355 1.1.1.4 christos /* PREFIX_EVEX_0F3A42_W_0 */
356 1.1.1.4 christos {
357 1.1.1.4 christos { Bad_Opcode },
358 1.1.1.4 christos { "%XEvmpsadbw", { XM, Vex, EXx, Ib }, 0 },
359 1.1.1.4 christos { "vdbpsadbw", { XM, Vex, EXx, Ib }, 0 },
360 1.1.1.4 christos },
361 1.1.1.4 christos /* PREFIX_EVEX_0F3A52 */
362 1.1.1.4 christos {
363 1.1.1.4 christos { "vminmaxp%XH", { XM, Vex, EXxh, EXxEVexS, Ib }, 0 },
364 1.1.1.4 christos { Bad_Opcode },
365 1.1.1.4 christos { "vminmaxp%XW", { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
366 1.1.1.4 christos { "vminmax%XB", { XM, Vex, EXxh, Ib }, 0 },
367 1.1.1.4 christos },
368 1.1.1.4 christos /* PREFIX_EVEX_0F3A53 */
369 1.1.1.4 christos {
370 1.1.1.4 christos { "vminmaxs%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
371 1.1.1.4 christos { Bad_Opcode },
372 1.1.1.4 christos { "vminmaxs%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 },
373 1.1.1.4 christos },
374 1.1.1.2 christos /* PREFIX_EVEX_0F3A56 */
375 1.1 christos {
376 1.1.1.2 christos { "vreducep%XH", { XM, EXxh, EXxEVexS, Ib }, 0 },
377 1.1 christos { Bad_Opcode },
378 1.1.1.2 christos { "vreducep%XW", { XM, EXx, EXxEVexS, Ib }, 0 },
379 1.1.1.4 christos { "vreduce%XB", { XM, EXxh, Ib }, 0 },
380 1.1 christos },
381 1.1.1.2 christos /* PREFIX_EVEX_0F3A57 */
382 1.1 christos {
383 1.1.1.2 christos { "vreduces%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 },
384 1.1 christos { Bad_Opcode },
385 1.1.1.2 christos { "vreduces%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 },
386 1.1 christos },
387 1.1.1.2 christos /* PREFIX_EVEX_0F3A66 */
388 1.1 christos {
389 1.1.1.2 christos { "vfpclassp%XH%XZ", { MaskG, EXxh, Ib }, 0 },
390 1.1 christos { Bad_Opcode },
391 1.1.1.2 christos { "vfpclassp%XW%XZ", { MaskG, EXx, Ib }, 0 },
392 1.1.1.4 christos { "vfpclass%XB%XZ", { MaskG, EXxh, Ib }, 0 },
393 1.1 christos },
394 1.1.1.2 christos /* PREFIX_EVEX_0F3A67 */
395 1.1 christos {
396 1.1.1.2 christos { "vfpclasss%XH", { MaskG, EXw, Ib }, 0 },
397 1.1 christos { Bad_Opcode },
398 1.1.1.2 christos { "vfpclasss%XW", { MaskG, EXdq, Ib }, 0 },
399 1.1 christos },
400 1.1.1.4 christos /* PREFIX_EVEX_0F3A77_W_0_L_2 */
401 1.1.1.4 christos {
402 1.1.1.4 christos { Bad_Opcode },
403 1.1.1.4 christos { "tcvtrowps2bf16l", { XM, Rtmm, Ib }, 0 },
404 1.1.1.4 christos { Bad_Opcode },
405 1.1.1.4 christos { "tcvtrowps2phl", { XM, Rtmm, Ib }, 0 },
406 1.1.1.4 christos },
407 1.1.1.2 christos /* PREFIX_EVEX_0F3AC2 */
408 1.1 christos {
409 1.1.1.2 christos { "vcmpp%XH", { MaskG, Vex, EXxh, EXxEVexS, CMP }, 0 },
410 1.1.1.2 christos { "vcmps%XH", { MaskG, VexScalar, EXw, EXxEVexS, CMP }, 0 },
411 1.1.1.3 christos { Bad_Opcode },
412 1.1.1.4 christos { "vcmp%XB", { MaskG, Vex, EXxh, CMP }, 0 },
413 1.1.1.3 christos },
414 1.1.1.4 christos /* PREFIX_EVEX_MAP4_4x */
415 1.1.1.3 christos {
416 1.1.1.4 christos { "%CFcmov%CCS", { VexGv, { CFCMOV_Fixup, 0 }, { CFCMOV_Fixup, 1 } }, 0 },
417 1.1.1.3 christos { Bad_Opcode },
418 1.1.1.4 christos { "%CFcmov%CCS", { VexGv, { CFCMOV_Fixup, 0 }, { CFCMOV_Fixup, 1 } }, 0 },
419 1.1.1.4 christos { "set%ZU%CC", { Eb }, 0 },
420 1.1.1.3 christos },
421 1.1.1.3 christos /* PREFIX_EVEX_MAP4_F0 */
422 1.1.1.3 christos {
423 1.1.1.3 christos { "crc32A", { Gdq, Eb }, 0 },
424 1.1.1.3 christos { "invept", { Gm, Mo }, 0 },
425 1.1.1.3 christos },
426 1.1.1.3 christos /* PREFIX_EVEX_MAP4_F1 */
427 1.1.1.3 christos {
428 1.1.1.3 christos { "crc32Q", { Gdq, Ev }, 0 },
429 1.1.1.3 christos { "invvpid", { Gm, Mo }, 0 },
430 1.1.1.3 christos { "crc32Q", { Gdq, Ev }, 0 },
431 1.1.1.3 christos },
432 1.1.1.3 christos /* PREFIX_EVEX_MAP4_F2 */
433 1.1.1.3 christos {
434 1.1.1.3 christos { Bad_Opcode },
435 1.1.1.3 christos { "invpcid", { Gm, M }, 0 },
436 1.1.1.3 christos },
437 1.1.1.3 christos /* PREFIX_EVEX_MAP4_F8 */
438 1.1.1.3 christos {
439 1.1.1.3 christos { Bad_Opcode },
440 1.1.1.3 christos { MOD_TABLE (MOD_EVEX_MAP4_F8_P_1) },
441 1.1.1.3 christos { "movdir64b", { Gva, M }, 0 },
442 1.1.1.3 christos { MOD_TABLE (MOD_EVEX_MAP4_F8_P_3) },
443 1.1.1.3 christos },
444 1.1.1.2 christos /* PREFIX_EVEX_MAP5_10 */
445 1.1 christos {
446 1.1 christos { Bad_Opcode },
447 1.1.1.2 christos { "vmovs%XH", { XMScalar, VexScalarR, EXw }, 0 },
448 1.1 christos },
449 1.1.1.2 christos /* PREFIX_EVEX_MAP5_11 */
450 1.1 christos {
451 1.1 christos { Bad_Opcode },
452 1.1.1.2 christos { "vmovs%XH", { EXwS, VexScalarR, XMScalar }, 0 },
453 1.1 christos },
454 1.1.1.4 christos /* PREFIX_EVEX_MAP5_18 */
455 1.1.1.4 christos {
456 1.1.1.4 christos { "vcvtbiasp%XH2hf8", { XMxmmq, Vex, EXxh }, 0 },
457 1.1.1.4 christos { "vcvtp%XH2hf8%XY", { XMxmmq, EXxh }, 0 },
458 1.1.1.4 christos { Bad_Opcode },
459 1.1.1.4 christos { "vcvt2p%XH2hf8", { XM, Vex, EXxh }, 0 },
460 1.1.1.4 christos },
461 1.1.1.4 christos /* PREFIX_EVEX_MAP5_1B */
462 1.1.1.4 christos {
463 1.1.1.4 christos { "vcvtbiasp%XH2hf8s", { XMxmmq, Vex, EXxh }, 0 },
464 1.1.1.4 christos { "vcvtp%XH2hf8s%XY", { XMxmmq, EXxh }, 0 },
465 1.1.1.4 christos { Bad_Opcode },
466 1.1.1.4 christos { "vcvt2p%XH2hf8s", { XM, Vex, EXxh }, 0 },
467 1.1.1.4 christos },
468 1.1.1.2 christos /* PREFIX_EVEX_MAP5_1D */
469 1.1 christos {
470 1.1.1.2 christos { "vcvtss2s%XH", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
471 1.1 christos { Bad_Opcode },
472 1.1.1.2 christos { "vcvtps2p%XHx%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
473 1.1 christos },
474 1.1.1.4 christos /* PREFIX_EVEX_MAP5_1E */
475 1.1.1.4 christos {
476 1.1.1.4 christos { Bad_Opcode },
477 1.1.1.4 christos { Bad_Opcode },
478 1.1.1.4 christos { Bad_Opcode },
479 1.1.1.4 christos { "vcvthf82p%XH", { XM, EXxmmq }, 0 },
480 1.1.1.4 christos },
481 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2A */
482 1.1 christos {
483 1.1 christos { Bad_Opcode },
484 1.1.1.3 christos { "vcvtsi2shY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
485 1.1 christos },
486 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2C */
487 1.1 christos {
488 1.1 christos { Bad_Opcode },
489 1.1.1.2 christos { "vcvttsh2si", { Gdq, EXw, EXxEVexS }, 0 },
490 1.1 christos },
491 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2D */
492 1.1 christos {
493 1.1 christos { Bad_Opcode },
494 1.1.1.2 christos { "vcvtsh2si", { Gdq, EXw, EXxEVexR }, 0 },
495 1.1 christos },
496 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2E */
497 1.1 christos {
498 1.1.1.4 christos { "vucomisY%XH", { XMScalar, EXw, EXxEVexS }, 0 },
499 1.1.1.4 christos { "vucomxs%XH", { XMScalar, EXw, EXxEVexS }, 0 },
500 1.1 christos },
501 1.1.1.2 christos /* PREFIX_EVEX_MAP5_2F */
502 1.1 christos {
503 1.1.1.4 christos { "vcomisY%XH", { XMScalar, EXw, EXxEVexS }, 0 },
504 1.1.1.4 christos { "vcomxs%XH", { XMScalar, EXw, EXxEVexS }, 0 },
505 1.1.1.4 christos { "vcomis%XB", { XMScalar, EXw, EXxEVexS }, 0 },
506 1.1 christos },
507 1.1.1.2 christos /* PREFIX_EVEX_MAP5_51 */
508 1.1 christos {
509 1.1.1.2 christos { "vsqrtp%XH", { XM, EXxh, EXxEVexR }, 0 },
510 1.1.1.2 christos { "vsqrts%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
511 1.1.1.4 christos { "vsqrt%XB", { XM, EXxh }, 0 },
512 1.1 christos },
513 1.1.1.2 christos /* PREFIX_EVEX_MAP5_58 */
514 1.1 christos {
515 1.1.1.2 christos { "vaddp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
516 1.1.1.2 christos { "vadds%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
517 1.1.1.4 christos { "vadd%XB", { XM, Vex, EXxh }, 0 },
518 1.1 christos },
519 1.1.1.2 christos /* PREFIX_EVEX_MAP5_59 */
520 1.1 christos {
521 1.1.1.2 christos { "vmulp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
522 1.1.1.2 christos { "vmuls%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
523 1.1.1.4 christos { "vmul%XB", { XM, Vex, EXxh }, 0 },
524 1.1 christos },
525 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5A */
526 1.1 christos {
527 1.1.1.2 christos { "vcvtp%XH2pd", { XM, EXxmmqdh, EXxEVexS }, 0 },
528 1.1.1.2 christos { "vcvts%XH2sd", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
529 1.1.1.2 christos { "vcvtp%XD2ph%XZ", { XMM, EXx, EXxEVexR }, 0 },
530 1.1.1.2 christos { "vcvts%XD2sh", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
531 1.1 christos },
532 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5B */
533 1.1 christos {
534 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_MAP5_5B_P_0) },
535 1.1.1.2 christos { "vcvttp%XH2dq", { XM, EXxmmqh, EXxEVexS }, 0 },
536 1.1.1.2 christos { "vcvtp%XH2dq", { XM, EXxmmqh, EXxEVexR }, 0 },
537 1.1 christos },
538 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5C */
539 1.1 christos {
540 1.1.1.2 christos { "vsubp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
541 1.1.1.2 christos { "vsubs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
542 1.1.1.4 christos { "vsub%XB", { XM, Vex, EXxh }, 0 },
543 1.1 christos },
544 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5D */
545 1.1 christos {
546 1.1.1.2 christos { "vminp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 },
547 1.1.1.2 christos { "vmins%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
548 1.1.1.4 christos { "vmin%XB", { XM, Vex, EXxh }, 0 },
549 1.1 christos },
550 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5E */
551 1.1 christos {
552 1.1.1.2 christos { "vdivp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
553 1.1.1.2 christos { "vdivs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 },
554 1.1.1.4 christos { "vdiv%XB", { XM, Vex, EXxh }, 0 },
555 1.1 christos },
556 1.1.1.2 christos /* PREFIX_EVEX_MAP5_5F */
557 1.1 christos {
558 1.1.1.2 christos { "vmaxp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 },
559 1.1.1.2 christos { "vmaxs%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
560 1.1.1.4 christos { "vmax%XB", { XM, Vex, EXxh }, 0 },
561 1.1.1.4 christos },
562 1.1.1.4 christos /* PREFIX_EVEX_MAP5_68 */
563 1.1.1.4 christos {
564 1.1.1.4 christos { "vcvttp%XH2ibs", { XM, EXxh, EXxEVexS }, 0 },
565 1.1.1.4 christos { Bad_Opcode },
566 1.1.1.4 christos { "vcvttp%XS2ibs", { XM, EXx, EXxEVexS }, 0 },
567 1.1.1.4 christos { "vcvtt%XB2ibs", { XM, EXxh }, 0 },
568 1.1.1.4 christos },
569 1.1.1.4 christos /* PREFIX_EVEX_MAP5_69 */
570 1.1.1.4 christos {
571 1.1.1.4 christos { "vcvtp%XH2ibs", { XM, EXxh, EXxEVexR }, 0 },
572 1.1.1.4 christos { Bad_Opcode },
573 1.1.1.4 christos { "vcvtp%XS2ibs", { XM, EXx, EXxEVexR }, 0 },
574 1.1.1.4 christos { "vcvt%XB2ibs", { XM, EXxh }, 0 },
575 1.1.1.4 christos },
576 1.1.1.4 christos /* PREFIX_EVEX_MAP5_6A */
577 1.1.1.4 christos {
578 1.1.1.4 christos { "vcvttp%XH2iubs", { XM, EXxh, EXxEVexS }, 0 },
579 1.1.1.4 christos { Bad_Opcode },
580 1.1.1.4 christos { "vcvttp%XS2iubs", { XM, EXx, EXxEVexS }, 0 },
581 1.1.1.4 christos { "vcvtt%XB2iubs", { XM, EXxh }, 0 },
582 1.1.1.4 christos },
583 1.1.1.4 christos /* PREFIX_EVEX_MAP5_6B */
584 1.1.1.4 christos {
585 1.1.1.4 christos { "vcvtp%XH2iubs", { XM, EXxh, EXxEVexR }, 0 },
586 1.1.1.4 christos { Bad_Opcode },
587 1.1.1.4 christos { "vcvtp%XS2iubs", { XM, EXx, EXxEVexR }, 0 },
588 1.1.1.4 christos { "vcvt%XB2iubs", { XM, EXxh }, 0 },
589 1.1.1.4 christos },
590 1.1.1.4 christos /* PREFIX_EVEX_MAP5_6C */
591 1.1.1.4 christos {
592 1.1.1.4 christos { VEX_W_TABLE (EVEX_W_MAP5_6C_P_0) },
593 1.1.1.4 christos { "vcvttss2usis", { Gdq, EXd, EXxEVexS }, 0 },
594 1.1.1.4 christos { VEX_W_TABLE (EVEX_W_MAP5_6C_P_2) },
595 1.1.1.4 christos { "vcvttsd2usis", { Gdq, EXq, EXxEVexS }, 0 },
596 1.1.1.4 christos },
597 1.1.1.4 christos /* PREFIX_EVEX_MAP5_6D */
598 1.1.1.4 christos {
599 1.1.1.4 christos { VEX_W_TABLE (EVEX_W_MAP5_6D_P_0) },
600 1.1.1.4 christos { "vcvttss2sis", { Gdq, EXd, EXxEVexS }, 0 },
601 1.1.1.4 christos { VEX_W_TABLE (EVEX_W_MAP5_6D_P_2) },
602 1.1.1.4 christos { "vcvttsd2sis", { Gdq, EXq, EXxEVexS }, 0 },
603 1.1.1.4 christos },
604 1.1.1.4 christos /* PREFIX_EVEX_MAP5_6E_L_0 */
605 1.1.1.4 christos {
606 1.1.1.4 christos { Bad_Opcode },
607 1.1.1.4 christos { VEX_W_TABLE (EVEX_W_MAP5_6E_P_1) },
608 1.1.1.4 christos { "vmovwY", { XMScalar, Edw }, 0 },
609 1.1.1.4 christos },
610 1.1.1.4 christos /* PREFIX_EVEX_MAP5_6F_X86_64 */
611 1.1.1.4 christos {
612 1.1.1.4 christos { Bad_Opcode },
613 1.1.1.4 christos { "vmovrs%DQ", { XM, Mx }, 0 },
614 1.1.1.4 christos { Bad_Opcode },
615 1.1.1.4 christos { "vmovrs%BW", { XM, Mx }, 0 },
616 1.1.1.4 christos },
617 1.1.1.4 christos /* PREFIX_EVEX_MAP5_74 */
618 1.1.1.4 christos {
619 1.1.1.4 christos { "vcvtbiasp%XH2bf8s", { XMxmmq, Vex, EXxh }, 0 },
620 1.1.1.4 christos { "vcvtp%XH2bf8s%XY", { XMxmmq, EXxh }, 0 },
621 1.1.1.4 christos { Bad_Opcode },
622 1.1.1.4 christos { "vcvt2p%XH2bf8s", { XM, Vex, EXxh }, 0 },
623 1.1 christos },
624 1.1.1.2 christos /* PREFIX_EVEX_MAP5_78 */
625 1.1 christos {
626 1.1.1.2 christos { "vcvttp%XH2udq", { XM, EXxmmqh, EXxEVexS }, 0 },
627 1.1.1.2 christos { "vcvttsh2usi", { Gdq, EXw, EXxEVexS }, 0 },
628 1.1.1.2 christos { "vcvttp%XH2uqq", { XM, EXxmmqdh, EXxEVexS }, 0 },
629 1.1 christos },
630 1.1.1.2 christos /* PREFIX_EVEX_MAP5_79 */
631 1.1 christos {
632 1.1.1.2 christos { "vcvtp%XH2udq", { XM, EXxmmqh, EXxEVexR }, 0 },
633 1.1.1.2 christos { "vcvtsh2usi", { Gdq, EXw, EXxEVexR }, 0 },
634 1.1.1.2 christos { "vcvtp%XH2uqq", { XM, EXxmmqdh, EXxEVexR }, 0 },
635 1.1 christos },
636 1.1.1.2 christos /* PREFIX_EVEX_MAP5_7A */
637 1.1 christos {
638 1.1 christos { Bad_Opcode },
639 1.1 christos { Bad_Opcode },
640 1.1.1.2 christos { "vcvttp%XH2qq", { XM, EXxmmqdh, EXxEVexS }, 0 },
641 1.1.1.2 christos { VEX_W_TABLE (EVEX_W_MAP5_7A_P_3) },
642 1.1 christos },
643 1.1.1.2 christos /* PREFIX_EVEX_MAP5_7B */
644 1.1 christos {
645 1.1 christos { Bad_Opcode },
646 1.1.1.3 christos { "vcvtusi2shY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
647 1.1.1.2 christos { "vcvtp%XH2qq", { XM, EXxmmqdh, EXxEVexR }, 0 },
648 1.1 christos },
649 1.1.1.2 christos /* PREFIX_EVEX_MAP5_7C */
650 1.1 christos {
651 1.1.1.2 christos { "vcvttp%XH2uw", { XM, EXxh, EXxEVexS }, 0 },
652 1.1 christos { Bad_Opcode },
653 1.1.1.2 christos { "vcvttp%XH2w", { XM, EXxh, EXxEVexS }, 0 },
654 1.1 christos },
655 1.1.1.2 christos /* PREFIX_EVEX_MAP5_7D */
656 1.1 christos {
657 1.1.1.2 christos { "vcvtp%XH2uw", { XM, EXxh, EXxEVexR }, 0 },
658 1.1.1.2 christos { "vcvtw2p%XH", { XM, EXxh, EXxEVexR }, 0 },
659 1.1.1.2 christos { "vcvtp%XH2w", { XM, EXxh, EXxEVexR }, 0 },
660 1.1.1.2 christos { "vcvtuw2p%XH", { XM, EXxh, EXxEVexR }, 0 },
661 1.1 christos },
662 1.1.1.4 christos /* PREFIX_EVEX_MAP5_7E_L_0 */
663 1.1.1.4 christos {
664 1.1.1.4 christos { Bad_Opcode },
665 1.1.1.4 christos { VEX_W_TABLE (EVEX_W_MAP5_7E_P_1) },
666 1.1.1.4 christos { "vmovw", { Edw, XMScalar }, 0 },
667 1.1.1.4 christos },
668 1.1.1.2 christos /* PREFIX_EVEX_MAP6_13 */
669 1.1 christos {
670 1.1.1.2 christos { "vcvts%XH2ss", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 },
671 1.1 christos { Bad_Opcode },
672 1.1.1.2 christos { "vcvtp%XH2psx", { XM, EXxmmqh, EXxEVexS }, 0 },
673 1.1 christos },
674 1.1.1.4 christos /* PREFIX_EVEX_MAP6_2C */
675 1.1.1.4 christos {
676 1.1.1.4 christos { "vscalef%XB", { XM, Vex, EXxh }, 0 },
677 1.1.1.4 christos { Bad_Opcode },
678 1.1.1.4 christos { "vscalefp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
679 1.1.1.4 christos },
680 1.1.1.4 christos /* PREFIX_EVEX_MAP6_42 */
681 1.1.1.4 christos {
682 1.1.1.4 christos { "vgetexp%XB", { XM, EXxh }, 0 },
683 1.1.1.4 christos { Bad_Opcode },
684 1.1.1.4 christos { "vgetexpp%XH", { XM, EXxh, EXxEVexS }, 0 },
685 1.1.1.4 christos },
686 1.1.1.4 christos /* PREFIX_EVEX_MAP6_4C */
687 1.1.1.4 christos {
688 1.1.1.4 christos { "vrcp%XB", { XM, EXxh }, 0 },
689 1.1.1.4 christos { Bad_Opcode },
690 1.1.1.4 christos { "vrcpp%XH", { XM, EXxh }, 0 },
691 1.1.1.4 christos },
692 1.1.1.4 christos /* PREFIX_EVEX_MAP6_4E */
693 1.1.1.4 christos {
694 1.1.1.4 christos { "vrsqrt%XB", { XM, EXxh }, 0 },
695 1.1.1.4 christos { Bad_Opcode },
696 1.1.1.4 christos { "vrsqrtp%XH", { XM, EXxh }, 0 },
697 1.1.1.4 christos },
698 1.1.1.2 christos /* PREFIX_EVEX_MAP6_56 */
699 1.1 christos {
700 1.1 christos { Bad_Opcode },
701 1.1.1.2 christos { "vfmaddcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
702 1.1 christos { Bad_Opcode },
703 1.1.1.2 christos { "vfcmaddcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
704 1.1 christos },
705 1.1.1.2 christos /* PREFIX_EVEX_MAP6_57 */
706 1.1 christos {
707 1.1 christos { Bad_Opcode },
708 1.1.1.2 christos { "vfmaddcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
709 1.1 christos { Bad_Opcode },
710 1.1.1.2 christos { "vfcmaddcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
711 1.1 christos },
712 1.1.1.4 christos /* PREFIX_EVEX_MAP6_98 */
713 1.1.1.4 christos {
714 1.1.1.4 christos { "vfmadd132%XB", { XM, Vex, EXxh }, 0 },
715 1.1.1.4 christos { Bad_Opcode },
716 1.1.1.4 christos { "vfmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
717 1.1.1.4 christos },
718 1.1.1.4 christos /* PREFIX_EVEX_MAP6_9A */
719 1.1.1.4 christos {
720 1.1.1.4 christos { "vfmsub132%XB", { XM, Vex, EXxh }, 0 },
721 1.1.1.4 christos { Bad_Opcode },
722 1.1.1.4 christos { "vfmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
723 1.1.1.4 christos },
724 1.1.1.4 christos /* PREFIX_EVEX_MAP6_9C */
725 1.1.1.4 christos {
726 1.1.1.4 christos { "vfnmadd132%XB", { XM, Vex, EXxh }, 0 },
727 1.1.1.4 christos { Bad_Opcode },
728 1.1.1.4 christos { "vfnmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
729 1.1.1.4 christos },
730 1.1.1.4 christos /* PREFIX_EVEX_MAP6_9E */
731 1.1.1.4 christos {
732 1.1.1.4 christos { "vfnmsub132%XB", { XM, Vex, EXxh }, 0 },
733 1.1.1.4 christos { Bad_Opcode },
734 1.1.1.4 christos { "vfnmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
735 1.1.1.4 christos },
736 1.1.1.4 christos /* PREFIX_EVEX_MAP6_A8 */
737 1.1.1.4 christos {
738 1.1.1.4 christos { "vfmadd213%XB", { XM, Vex, EXxh }, 0 },
739 1.1.1.4 christos { Bad_Opcode },
740 1.1.1.4 christos { "vfmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
741 1.1.1.4 christos },
742 1.1.1.4 christos /* PREFIX_EVEX_MAP6_AA */
743 1.1.1.4 christos {
744 1.1.1.4 christos { "vfmsub213%XB", { XM, Vex, EXxh }, 0 },
745 1.1.1.4 christos { Bad_Opcode },
746 1.1.1.4 christos { "vfmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
747 1.1.1.4 christos },
748 1.1.1.4 christos /* PREFIX_EVEX_MAP6_AC */
749 1.1.1.4 christos {
750 1.1.1.4 christos { "vfnmadd213%XB", { XM, Vex, EXxh }, 0 },
751 1.1.1.4 christos { Bad_Opcode },
752 1.1.1.4 christos { "vfnmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
753 1.1.1.4 christos },
754 1.1.1.4 christos /* PREFIX_EVEX_MAP6_AE */
755 1.1.1.4 christos {
756 1.1.1.4 christos { "vfnmsub213%XB", { XM, Vex, EXxh }, 0 },
757 1.1.1.4 christos { Bad_Opcode },
758 1.1.1.4 christos { "vfnmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
759 1.1.1.4 christos },
760 1.1.1.4 christos /* PREFIX_EVEX_MAP6_B8 */
761 1.1.1.4 christos {
762 1.1.1.4 christos { "vfmadd231%XB", { XM, Vex, EXxh }, 0 },
763 1.1.1.4 christos { Bad_Opcode },
764 1.1.1.4 christos { "vfmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
765 1.1.1.4 christos },
766 1.1.1.4 christos /* PREFIX_EVEX_MAP6_BA */
767 1.1.1.4 christos {
768 1.1.1.4 christos { "vfmsub231%XB", { XM, Vex, EXxh }, 0 },
769 1.1.1.4 christos { Bad_Opcode },
770 1.1.1.4 christos { "vfmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
771 1.1.1.4 christos },
772 1.1.1.4 christos /* PREFIX_EVEX_MAP6_BC */
773 1.1.1.4 christos {
774 1.1.1.4 christos { "vfnmadd231%XB", { XM, Vex, EXxh }, 0 },
775 1.1.1.4 christos { Bad_Opcode },
776 1.1.1.4 christos { "vfnmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
777 1.1.1.4 christos },
778 1.1.1.4 christos /* PREFIX_EVEX_MAP6_BE */
779 1.1.1.4 christos {
780 1.1.1.4 christos { "vfnmsub231%XB", { XM, Vex, EXxh }, 0 },
781 1.1.1.4 christos { Bad_Opcode },
782 1.1.1.4 christos { "vfnmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 },
783 1.1.1.4 christos },
784 1.1.1.2 christos /* PREFIX_EVEX_MAP6_D6 */
785 1.1 christos {
786 1.1 christos { Bad_Opcode },
787 1.1.1.2 christos { "vfmulcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
788 1.1 christos { Bad_Opcode },
789 1.1.1.2 christos { "vfcmulcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 },
790 1.1 christos },
791 1.1.1.2 christos /* PREFIX_EVEX_MAP6_D7 */
792 1.1 christos {
793 1.1 christos { Bad_Opcode },
794 1.1.1.2 christos { "vfmulcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
795 1.1 christos { Bad_Opcode },
796 1.1.1.2 christos { "vfcmulcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 },
797 1.1 christos },
798