x86: re-arrange order of decode for various EVEX opcodes
[binutils-gdb.git] / opcodes / i386-dis-evex-len.h
1 static const struct dis386 evex_len_table[][3] = {
2 /* EVEX_LEN_0F6E */
3 {
4 { "vmovK", { XMScalar, Edq }, PREFIX_DATA },
5 },
6
7 /* EVEX_LEN_0F7E_P_1 */
8 {
9 { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
10 },
11
12 /* EVEX_LEN_0F7E_P_2 */
13 {
14 { "vmovK", { Edq, XMScalar }, 0 },
15 },
16
17 /* EVEX_LEN_0FC4 */
18 {
19 { "vpinsrw", { XM, Vex, Edqw, Ib }, PREFIX_DATA },
20 },
21
22 /* EVEX_LEN_0FC5 */
23 {
24 { "vpextrw", { Gdq, XS, Ib }, PREFIX_DATA },
25 },
26
27 /* EVEX_LEN_0FD6 */
28 {
29 { VEX_W_TABLE (EVEX_W_0FD6_L_0) },
30 },
31
32 /* EVEX_LEN_0F3816 */
33 {
34 { Bad_Opcode },
35 { "vpermp%XW", { XM, Vex, EXx }, PREFIX_DATA },
36 { "vpermp%XW", { XM, Vex, EXx }, PREFIX_DATA },
37 },
38
39 /* EVEX_LEN_0F3819 */
40 {
41 { Bad_Opcode },
42 { VEX_W_TABLE (EVEX_W_0F3819_L_n) },
43 { VEX_W_TABLE (EVEX_W_0F3819_L_n) },
44 },
45
46 /* EVEX_LEN_0F381A_M_0 */
47 {
48 { Bad_Opcode },
49 { VEX_W_TABLE (EVEX_W_0F381A_M_0_L_n) },
50 { VEX_W_TABLE (EVEX_W_0F381A_M_0_L_n) },
51 },
52
53 /* EVEX_LEN_0F381B_M_0 */
54 {
55 { Bad_Opcode },
56 { Bad_Opcode },
57 { VEX_W_TABLE (EVEX_W_0F381B_M_0_L_2) },
58 },
59
60 /* EVEX_LEN_0F3836 */
61 {
62 { Bad_Opcode },
63 { "vperm%DQ", { XM, Vex, EXx }, PREFIX_DATA },
64 { "vperm%DQ", { XM, Vex, EXx }, PREFIX_DATA },
65 },
66
67 /* EVEX_LEN_0F385A_M_0 */
68 {
69 { Bad_Opcode },
70 { VEX_W_TABLE (EVEX_W_0F385A_M_0_L_n) },
71 { VEX_W_TABLE (EVEX_W_0F385A_M_0_L_n) },
72 },
73
74 /* EVEX_LEN_0F385B_M_0 */
75 {
76 { Bad_Opcode },
77 { Bad_Opcode },
78 { VEX_W_TABLE (EVEX_W_0F385B_M_0_L_2) },
79 },
80
81 /* EVEX_LEN_0F38C6_M_0 */
82 {
83 { Bad_Opcode },
84 { Bad_Opcode },
85 { REG_TABLE (REG_EVEX_0F38C6_M_0_L_2) },
86 },
87
88 /* EVEX_LEN_0F38C7_M_0 */
89 {
90 { Bad_Opcode },
91 { Bad_Opcode },
92 { VEX_W_TABLE (EVEX_W_0F38C7_M_0_L_2) },
93 },
94
95 /* EVEX_LEN_0F3A00_W_1 */
96 {
97 { Bad_Opcode },
98 { "vpermq", { XM, EXx, Ib }, PREFIX_DATA },
99 { "vpermq", { XM, EXx, Ib }, PREFIX_DATA },
100 },
101
102 /* EVEX_LEN_0F3A01_W_1 */
103 {
104 { Bad_Opcode },
105 { "vpermpd", { XM, EXx, Ib }, PREFIX_DATA },
106 { "vpermpd", { XM, EXx, Ib }, PREFIX_DATA },
107 },
108
109 /* EVEX_LEN_0F3A14 */
110 {
111 { "vpextrb", { Edqb, XM, Ib }, PREFIX_DATA },
112 },
113
114 /* EVEX_LEN_0F3A15 */
115 {
116 { "vpextrw", { Edqw, XM, Ib }, PREFIX_DATA },
117 },
118
119 /* EVEX_LEN_0F3A16 */
120 {
121 { "vpextrK", { Edq, XM, Ib }, PREFIX_DATA },
122 },
123
124 /* EVEX_LEN_0F3A17 */
125 {
126 { "vextractps", { Edqd, XMM, Ib }, PREFIX_DATA },
127 },
128
129 /* EVEX_LEN_0F3A18 */
130 {
131 { Bad_Opcode },
132 { VEX_W_TABLE (EVEX_W_0F3A18_L_n) },
133 { VEX_W_TABLE (EVEX_W_0F3A18_L_n) },
134 },
135
136 /* EVEX_LEN_0F3A19 */
137 {
138 { Bad_Opcode },
139 { VEX_W_TABLE (EVEX_W_0F3A19_L_n) },
140 { VEX_W_TABLE (EVEX_W_0F3A19_L_n) },
141 },
142
143 /* EVEX_LEN_0F3A1A */
144 {
145 { Bad_Opcode },
146 { Bad_Opcode },
147 { VEX_W_TABLE (EVEX_W_0F3A1A_L_2) },
148 },
149
150 /* EVEX_LEN_0F3A1B */
151 {
152 { Bad_Opcode },
153 { Bad_Opcode },
154 { VEX_W_TABLE (EVEX_W_0F3A1B_L_2) },
155 },
156
157 /* EVEX_LEN_0F3A20 */
158 {
159 { "vpinsrb", { XM, Vex, Edqb, Ib }, PREFIX_DATA },
160 },
161
162 /* EVEX_LEN_0F3A21_W_0 */
163 {
164 { "vinsertps", { XMM, Vex, EXxmm_md, Ib }, PREFIX_DATA },
165 },
166
167 /* EVEX_LEN_0F3A22 */
168 {
169 { "vpinsrK", { XM, Vex, Edq, Ib }, PREFIX_DATA },
170 },
171
172 /* EVEX_LEN_0F3A23 */
173 {
174 { Bad_Opcode },
175 { VEX_W_TABLE (EVEX_W_0F3A23_L_n) },
176 { VEX_W_TABLE (EVEX_W_0F3A23_L_n) },
177 },
178
179 /* EVEX_LEN_0F3A38 */
180 {
181 { Bad_Opcode },
182 { VEX_W_TABLE (EVEX_W_0F3A38_L_n) },
183 { VEX_W_TABLE (EVEX_W_0F3A38_L_n) },
184 },
185
186 /* EVEX_LEN_0F3A39 */
187 {
188 { Bad_Opcode },
189 { VEX_W_TABLE (EVEX_W_0F3A39_L_n) },
190 { VEX_W_TABLE (EVEX_W_0F3A39_L_n) },
191 },
192
193 /* EVEX_LEN_0F3A3A */
194 {
195 { Bad_Opcode },
196 { Bad_Opcode },
197 { VEX_W_TABLE (EVEX_W_0F3A3A_L_2) },
198 },
199
200 /* EVEX_LEN_0F3A3B */
201 {
202 { Bad_Opcode },
203 { Bad_Opcode },
204 { VEX_W_TABLE (EVEX_W_0F3A3B_L_2) },
205 },
206
207 /* EVEX_LEN_0F3A43 */
208 {
209 { Bad_Opcode },
210 { VEX_W_TABLE (EVEX_W_0F3A43_L_n) },
211 { VEX_W_TABLE (EVEX_W_0F3A43_L_n) },
212 },
213 };