]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - opcodes/i386-dis-evex-prefix.h
PR26449, PR26450 UBSAN: frv-ibld.c:135 left shift
[thirdparty/binutils-gdb.git] / opcodes / i386-dis-evex-prefix.h
CommitLineData
ad692897
L
1 /* PREFIX_EVEX_0F10 */
2 {
97e6786a 3 { "vmovupX", { XM, EXEvexXNoBcst }, PREFIX_OPCODE },
36cc073e 4 { VEX_W_TABLE (EVEX_W_0F10_P_1) },
97e6786a 5 { "vmovupX", { XM, EXEvexXNoBcst }, PREFIX_OPCODE },
36cc073e 6 { VEX_W_TABLE (EVEX_W_0F10_P_3) },
ad692897
L
7 },
8 /* PREFIX_EVEX_0F11 */
9 {
97e6786a 10 { "vmovupX", { EXxS, XM }, PREFIX_OPCODE },
36cc073e 11 { VEX_W_TABLE (EVEX_W_0F11_P_1) },
97e6786a 12 { "vmovupX", { EXxS, XM }, PREFIX_OPCODE },
36cc073e 13 { VEX_W_TABLE (EVEX_W_0F11_P_3) },
ad692897
L
14 },
15 /* PREFIX_EVEX_0F12 */
16 {
17 { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) },
18 { VEX_W_TABLE (EVEX_W_0F12_P_1) },
97e6786a 19 { MOD_TABLE (MOD_EVEX_0F12_PREFIX_2) },
ad692897
L
20 { VEX_W_TABLE (EVEX_W_0F12_P_3) },
21 },
ad692897
L
22 /* PREFIX_EVEX_0F16 */
23 {
24 { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) },
25 { VEX_W_TABLE (EVEX_W_0F16_P_1) },
97e6786a 26 { MOD_TABLE (MOD_EVEX_0F16_PREFIX_2) },
ad692897
L
27 },
28 /* PREFIX_EVEX_0F2A */
29 {
30 { Bad_Opcode },
b24d668c 31 { "vcvtsi2ss{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
ad692897
L
32 { Bad_Opcode },
33 { VEX_W_TABLE (EVEX_W_0F2A_P_3) },
34 },
ad692897
L
35 /* PREFIX_EVEX_0F51 */
36 {
97e6786a 37 { "vsqrtpX", { XM, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897 38 { VEX_W_TABLE (EVEX_W_0F51_P_1) },
97e6786a 39 { "vsqrtpX", { XM, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897
L
40 { VEX_W_TABLE (EVEX_W_0F51_P_3) },
41 },
ad692897
L
42 /* PREFIX_EVEX_0F58 */
43 {
97e6786a 44 { "vaddpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897 45 { VEX_W_TABLE (EVEX_W_0F58_P_1) },
97e6786a 46 { "vaddpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897
L
47 { VEX_W_TABLE (EVEX_W_0F58_P_3) },
48 },
49 /* PREFIX_EVEX_0F59 */
50 {
97e6786a 51 { "vmulpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897 52 { VEX_W_TABLE (EVEX_W_0F59_P_1) },
97e6786a 53 { "vmulpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897
L
54 { VEX_W_TABLE (EVEX_W_0F59_P_3) },
55 },
56 /* PREFIX_EVEX_0F5A */
57 {
58 { VEX_W_TABLE (EVEX_W_0F5A_P_0) },
59 { VEX_W_TABLE (EVEX_W_0F5A_P_1) },
60 { VEX_W_TABLE (EVEX_W_0F5A_P_2) },
61 { VEX_W_TABLE (EVEX_W_0F5A_P_3) },
62 },
63 /* PREFIX_EVEX_0F5B */
64 {
65 { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
66 { VEX_W_TABLE (EVEX_W_0F5B_P_1) },
67 { VEX_W_TABLE (EVEX_W_0F5B_P_2) },
68 },
69 /* PREFIX_EVEX_0F5C */
70 {
97e6786a 71 { "vsubpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897 72 { VEX_W_TABLE (EVEX_W_0F5C_P_1) },
97e6786a 73 { "vsubpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897
L
74 { VEX_W_TABLE (EVEX_W_0F5C_P_3) },
75 },
76 /* PREFIX_EVEX_0F5D */
77 {
97e6786a 78 { "vminpX", { XM, Vex, EXx, EXxEVexS }, PREFIX_OPCODE },
ad692897 79 { VEX_W_TABLE (EVEX_W_0F5D_P_1) },
97e6786a 80 { "vminpX", { XM, Vex, EXx, EXxEVexS }, PREFIX_OPCODE },
ad692897
L
81 { VEX_W_TABLE (EVEX_W_0F5D_P_3) },
82 },
83 /* PREFIX_EVEX_0F5E */
84 {
97e6786a 85 { "vdivpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897 86 { VEX_W_TABLE (EVEX_W_0F5E_P_1) },
97e6786a 87 { "vdivpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE },
ad692897
L
88 { VEX_W_TABLE (EVEX_W_0F5E_P_3) },
89 },
90 /* PREFIX_EVEX_0F5F */
91 {
97e6786a 92 { "vmaxpX", { XM, Vex, EXx, EXxEVexS }, PREFIX_OPCODE },
ad692897 93 { VEX_W_TABLE (EVEX_W_0F5F_P_1) },
97e6786a 94 { "vmaxpX", { XM, Vex, EXx, EXxEVexS }, PREFIX_OPCODE },
ad692897
L
95 { VEX_W_TABLE (EVEX_W_0F5F_P_3) },
96 },
ad692897
L
97 /* PREFIX_EVEX_0F6F */
98 {
99 { Bad_Opcode },
100 { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
101 { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
102 { VEX_W_TABLE (EVEX_W_0F6F_P_3) },
103 },
104 /* PREFIX_EVEX_0F70 */
105 {
106 { Bad_Opcode },
107 { "vpshufhw", { XM, EXx, Ib }, 0 },
108 { VEX_W_TABLE (EVEX_W_0F70_P_2) },
109 { "vpshuflw", { XM, EXx, Ib }, 0 },
110 },
ad692897
L
111 /* PREFIX_EVEX_0F78 */
112 {
113 { VEX_W_TABLE (EVEX_W_0F78_P_0) },
114 { "vcvttss2usi", { Gdq, EXxmm_md, EXxEVexS }, 0 },
115 { VEX_W_TABLE (EVEX_W_0F78_P_2) },
116 { "vcvttsd2usi", { Gdq, EXxmm_mq, EXxEVexS }, 0 },
117 },
118 /* PREFIX_EVEX_0F79 */
119 {
120 { VEX_W_TABLE (EVEX_W_0F79_P_0) },
121 { "vcvtss2usi", { Gdq, EXxmm_md, EXxEVexR }, 0 },
122 { VEX_W_TABLE (EVEX_W_0F79_P_2) },
123 { "vcvtsd2usi", { Gdq, EXxmm_mq, EXxEVexR }, 0 },
124 },
125 /* PREFIX_EVEX_0F7A */
126 {
127 { Bad_Opcode },
128 { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
129 { VEX_W_TABLE (EVEX_W_0F7A_P_2) },
130 { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
131 },
132 /* PREFIX_EVEX_0F7B */
133 {
134 { Bad_Opcode },
b24d668c 135 { "vcvtusi2ss{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
ad692897
L
136 { VEX_W_TABLE (EVEX_W_0F7B_P_2) },
137 { VEX_W_TABLE (EVEX_W_0F7B_P_3) },
138 },
139 /* PREFIX_EVEX_0F7E */
140 {
141 { Bad_Opcode },
142 { EVEX_LEN_TABLE (EVEX_LEN_0F7E_P_1) },
143 { EVEX_LEN_TABLE (EVEX_LEN_0F7E_P_2) },
144 },
145 /* PREFIX_EVEX_0F7F */
146 {
147 { Bad_Opcode },
148 { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
149 { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
150 { VEX_W_TABLE (EVEX_W_0F7F_P_3) },
151 },
152 /* PREFIX_EVEX_0FC2 */
153 {
c4de7606 154 { "vcmppX", { XMask, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE },
ad692897 155 { VEX_W_TABLE (EVEX_W_0FC2_P_1) },
c4de7606 156 { "vcmppX", { XMask, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE },
ad692897
L
157 { VEX_W_TABLE (EVEX_W_0FC2_P_3) },
158 },
ad692897
L
159 /* PREFIX_EVEX_0FE6 */
160 {
161 { Bad_Opcode },
162 { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
163 { VEX_W_TABLE (EVEX_W_0FE6_P_2) },
164 { VEX_W_TABLE (EVEX_W_0FE6_P_3) },
165 },
ad692897
L
166 /* PREFIX_EVEX_0F3810 */
167 {
168 { Bad_Opcode },
169 { VEX_W_TABLE (EVEX_W_0F3810_P_1) },
170 { VEX_W_TABLE (EVEX_W_0F3810_P_2) },
171 },
172 /* PREFIX_EVEX_0F3811 */
173 {
174 { Bad_Opcode },
175 { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
176 { VEX_W_TABLE (EVEX_W_0F3811_P_2) },
177 },
178 /* PREFIX_EVEX_0F3812 */
179 {
180 { Bad_Opcode },
181 { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
182 { VEX_W_TABLE (EVEX_W_0F3812_P_2) },
183 },
184 /* PREFIX_EVEX_0F3813 */
185 {
186 { Bad_Opcode },
187 { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
188 { VEX_W_TABLE (EVEX_W_0F3813_P_2) },
189 },
190 /* PREFIX_EVEX_0F3814 */
191 {
192 { Bad_Opcode },
193 { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
492a76aa 194 { "vprorv%DQ", { XM, Vex, EXx }, 0 },
ad692897
L
195 },
196 /* PREFIX_EVEX_0F3815 */
197 {
198 { Bad_Opcode },
199 { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
492a76aa 200 { "vprolv%DQ", { XM, Vex, EXx }, 0 },
ad692897 201 },
ad692897
L
202 /* PREFIX_EVEX_0F3820 */
203 {
204 { Bad_Opcode },
205 { VEX_W_TABLE (EVEX_W_0F3820_P_1) },
206 { "vpmovsxbw", { XM, EXxmmq }, 0 },
207 },
208 /* PREFIX_EVEX_0F3821 */
209 {
210 { Bad_Opcode },
211 { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
212 { "vpmovsxbd", { XM, EXxmmqd }, 0 },
213 },
214 /* PREFIX_EVEX_0F3822 */
215 {
216 { Bad_Opcode },
217 { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
218 { "vpmovsxbq", { XM, EXxmmdw }, 0 },
219 },
220 /* PREFIX_EVEX_0F3823 */
221 {
222 { Bad_Opcode },
223 { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
224 { "vpmovsxwd", { XM, EXxmmq }, 0 },
225 },
226 /* PREFIX_EVEX_0F3824 */
227 {
228 { Bad_Opcode },
229 { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
230 { "vpmovsxwq", { XM, EXxmmqd }, 0 },
231 },
232 /* PREFIX_EVEX_0F3825 */
233 {
234 { Bad_Opcode },
235 { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
236 { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
237 },
238 /* PREFIX_EVEX_0F3826 */
239 {
240 { Bad_Opcode },
931452b6
JB
241 { "vptestnm%BW", { XMask, Vex, EXx }, 0 },
242 { "vptestm%BW", { XMask, Vex, EXx }, 0 },
ad692897
L
243 },
244 /* PREFIX_EVEX_0F3827 */
245 {
246 { Bad_Opcode },
492a76aa
JB
247 { "vptestnm%DQ", { XMask, Vex, EXx }, 0 },
248 { "vptestm%DQ", { XMask, Vex, EXx }, 0 },
ad692897
L
249 },
250 /* PREFIX_EVEX_0F3828 */
251 {
252 { Bad_Opcode },
464d2b65 253 { MOD_TABLE (MOD_EVEX_0F3828_P_1) },
ad692897
L
254 { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
255 },
256 /* PREFIX_EVEX_0F3829 */
257 {
258 { Bad_Opcode },
931452b6 259 { "vpmov%BW2m", { XMask, EXx }, 0 },
ad692897
L
260 { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
261 },
262 /* PREFIX_EVEX_0F382A */
263 {
264 { Bad_Opcode },
265 { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
266 { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
267 },
ad692897
L
268 /* PREFIX_EVEX_0F3830 */
269 {
270 { Bad_Opcode },
271 { VEX_W_TABLE (EVEX_W_0F3830_P_1) },
272 { "vpmovzxbw", { XM, EXxmmq }, 0 },
273 },
274 /* PREFIX_EVEX_0F3831 */
275 {
276 { Bad_Opcode },
277 { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
278 { "vpmovzxbd", { XM, EXxmmqd }, 0 },
279 },
280 /* PREFIX_EVEX_0F3832 */
281 {
282 { Bad_Opcode },
283 { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
284 { "vpmovzxbq", { XM, EXxmmdw }, 0 },
285 },
286 /* PREFIX_EVEX_0F3833 */
287 {
288 { Bad_Opcode },
289 { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
290 { "vpmovzxwd", { XM, EXxmmq }, 0 },
291 },
292 /* PREFIX_EVEX_0F3834 */
293 {
294 { Bad_Opcode },
295 { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
296 { "vpmovzxwq", { XM, EXxmmqd }, 0 },
297 },
298 /* PREFIX_EVEX_0F3835 */
299 {
300 { Bad_Opcode },
301 { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
302 { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
303 },
ad692897
L
304 /* PREFIX_EVEX_0F3838 */
305 {
306 { Bad_Opcode },
464d2b65 307 { MOD_TABLE (MOD_EVEX_0F3838_P_1) },
ad692897
L
308 { "vpminsb", { XM, Vex, EXx }, 0 },
309 },
310 /* PREFIX_EVEX_0F3839 */
311 {
312 { Bad_Opcode },
492a76aa
JB
313 { "vpmov%DQ2m", { XMask, EXx }, 0 },
314 { "vpmins%DQ", { XM, Vex, EXx }, 0 },
ad692897
L
315 },
316 /* PREFIX_EVEX_0F383A */
317 {
318 { Bad_Opcode },
319 { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
320 { "vpminuw", { XM, Vex, EXx }, 0 },
321 },
ad692897
L
322 /* PREFIX_EVEX_0F3852 */
323 {
324 { Bad_Opcode },
325 { VEX_W_TABLE (EVEX_W_0F3852_P_1) },
326 { "vpdpwssd", { XM, Vex, EXx }, 0 },
327 { "vp4dpwssd", { XM, Vex, EXxmm }, 0 },
328 },
329 /* PREFIX_EVEX_0F3853 */
330 {
331 { Bad_Opcode },
332 { Bad_Opcode },
333 { "vpdpwssds", { XM, Vex, EXx }, 0 },
334 { "vp4dpwssds", { XM, Vex, EXxmm }, 0 },
335 },
7531c613 336 /* PREFIX_EVEX_0F3868 */
ad692897
L
337 {
338 { Bad_Opcode },
ad692897
L
339 { Bad_Opcode },
340 { Bad_Opcode },
7531c613 341 { "vp2intersect%DQ", { XMask, Vex, EXx, EXxEVexS }, 0 },
ad692897 342 },
7531c613 343 /* PREFIX_EVEX_0F3872 */
ad692897
L
344 {
345 { Bad_Opcode },
7531c613
JB
346 { VEX_W_TABLE (EVEX_W_0F3872_P_1) },
347 { VEX_W_TABLE (EVEX_W_0F3872_P_2) },
348 { VEX_W_TABLE (EVEX_W_0F3872_P_3) },
ad692897 349 },
7531c613 350 /* PREFIX_EVEX_0F389A */
ad692897
L
351 {
352 { Bad_Opcode },
353 { Bad_Opcode },
7531c613
JB
354 { "vfmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
355 { "v4fmaddps", { XM, Vex, Mxmm }, 0 },
ad692897 356 },
7531c613 357 /* PREFIX_EVEX_0F389B */
ad692897
L
358 {
359 { Bad_Opcode },
360 { Bad_Opcode },
7531c613
JB
361 { "vfmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 },
362 { "v4fmaddss", { XMScalar, VexScalar, Mxmm }, 0 },
ad692897 363 },
7531c613 364 /* PREFIX_EVEX_0F38AA */
ad692897
L
365 {
366 { Bad_Opcode },
367 { Bad_Opcode },
7531c613
JB
368 { "vfmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
369 { "v4fnmaddps", { XM, Vex, Mxmm }, 0 },
ad692897 370 },
7531c613 371 /* PREFIX_EVEX_0F38AB */
ad692897
L
372 {
373 { Bad_Opcode },
374 { Bad_Opcode },
4102be5c 375 { "vfmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 },
ad692897
L
376 { "v4fnmaddss", { XMScalar, VexScalar, Mxmm }, 0 },
377 },