1/* x86 opcode map generated from x86-opcode-map.txt */
2/* Do not change this code. */
3
4/* Table: one byte opcode */
5const insn_attr_t inat_primary_table[INAT_OPCODE_TABLE_SIZE] = {
6 [0x00] = INAT_MODRM,
7 [0x01] = INAT_MODRM,
8 [0x02] = INAT_MODRM,
9 [0x03] = INAT_MODRM,
10 [0x04] = INAT_MAKE_IMM(INAT_IMM_BYTE),
11 [0x05] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
12 [0x06] = INAT_INV64,
13 [0x07] = INAT_INV64,
14 [0x08] = INAT_MODRM,
15 [0x09] = INAT_MODRM,
16 [0x0a] = INAT_MODRM,
17 [0x0b] = INAT_MODRM,
18 [0x0c] = INAT_MAKE_IMM(INAT_IMM_BYTE),
19 [0x0d] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
20 [0x0e] = INAT_INV64,
21 [0x0f] = INAT_MAKE_ESCAPE(1),
22 [0x10] = INAT_MODRM,
23 [0x11] = INAT_MODRM,
24 [0x12] = INAT_MODRM,
25 [0x13] = INAT_MODRM,
26 [0x14] = INAT_MAKE_IMM(INAT_IMM_BYTE),
27 [0x15] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
28 [0x16] = INAT_INV64,
29 [0x17] = INAT_INV64,
30 [0x18] = INAT_MODRM,
31 [0x19] = INAT_MODRM,
32 [0x1a] = INAT_MODRM,
33 [0x1b] = INAT_MODRM,
34 [0x1c] = INAT_MAKE_IMM(INAT_IMM_BYTE),
35 [0x1d] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
36 [0x1e] = INAT_INV64,
37 [0x1f] = INAT_INV64,
38 [0x20] = INAT_MODRM,
39 [0x21] = INAT_MODRM,
40 [0x22] = INAT_MODRM,
41 [0x23] = INAT_MODRM,
42 [0x24] = INAT_MAKE_IMM(INAT_IMM_BYTE),
43 [0x25] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
44 [0x26] = INAT_MAKE_PREFIX(INAT_PFX_ES),
45 [0x27] = INAT_INV64,
46 [0x28] = INAT_MODRM,
47 [0x29] = INAT_MODRM,
48 [0x2a] = INAT_MODRM,
49 [0x2b] = INAT_MODRM,
50 [0x2c] = INAT_MAKE_IMM(INAT_IMM_BYTE),
51 [0x2d] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
52 [0x2e] = INAT_MAKE_PREFIX(INAT_PFX_CS),
53 [0x2f] = INAT_INV64,
54 [0x30] = INAT_MODRM,
55 [0x31] = INAT_MODRM,
56 [0x32] = INAT_MODRM,
57 [0x33] = INAT_MODRM,
58 [0x34] = INAT_MAKE_IMM(INAT_IMM_BYTE),
59 [0x35] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
60 [0x36] = INAT_MAKE_PREFIX(INAT_PFX_SS),
61 [0x37] = INAT_INV64,
62 [0x38] = INAT_MODRM,
63 [0x39] = INAT_MODRM,
64 [0x3a] = INAT_MODRM,
65 [0x3b] = INAT_MODRM,
66 [0x3c] = INAT_MAKE_IMM(INAT_IMM_BYTE),
67 [0x3d] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
68 [0x3e] = INAT_MAKE_PREFIX(INAT_PFX_DS),
69 [0x3f] = INAT_INV64,
70 [0x40] = INAT_MAKE_PREFIX(INAT_PFX_REX),
71 [0x41] = INAT_MAKE_PREFIX(INAT_PFX_REX),
72 [0x42] = INAT_MAKE_PREFIX(INAT_PFX_REX),
73 [0x43] = INAT_MAKE_PREFIX(INAT_PFX_REX),
74 [0x44] = INAT_MAKE_PREFIX(INAT_PFX_REX),
75 [0x45] = INAT_MAKE_PREFIX(INAT_PFX_REX),
76 [0x46] = INAT_MAKE_PREFIX(INAT_PFX_REX),
77 [0x47] = INAT_MAKE_PREFIX(INAT_PFX_REX),
78 [0x48] = INAT_MAKE_PREFIX(INAT_PFX_REX),
79 [0x49] = INAT_MAKE_PREFIX(INAT_PFX_REX),
80 [0x4a] = INAT_MAKE_PREFIX(INAT_PFX_REX),
81 [0x4b] = INAT_MAKE_PREFIX(INAT_PFX_REX),
82 [0x4c] = INAT_MAKE_PREFIX(INAT_PFX_REX),
83 [0x4d] = INAT_MAKE_PREFIX(INAT_PFX_REX),
84 [0x4e] = INAT_MAKE_PREFIX(INAT_PFX_REX),
85 [0x4f] = INAT_MAKE_PREFIX(INAT_PFX_REX),
86 [0x50] = INAT_FORCE64,
87 [0x51] = INAT_FORCE64,
88 [0x52] = INAT_FORCE64,
89 [0x53] = INAT_FORCE64,
90 [0x54] = INAT_FORCE64,
91 [0x55] = INAT_FORCE64,
92 [0x56] = INAT_FORCE64,
93 [0x57] = INAT_FORCE64,
94 [0x58] = INAT_FORCE64,
95 [0x59] = INAT_FORCE64,
96 [0x5a] = INAT_FORCE64,
97 [0x5b] = INAT_FORCE64,
98 [0x5c] = INAT_FORCE64,
99 [0x5d] = INAT_FORCE64,
100 [0x5e] = INAT_FORCE64,
101 [0x5f] = INAT_FORCE64,
102 [0x60] = INAT_INV64,
103 [0x61] = INAT_INV64,
104 [0x62] = INAT_MODRM | INAT_MAKE_PREFIX(INAT_PFX_EVEX),
105 [0x63] = INAT_MODRM | INAT_MODRM,
106 [0x64] = INAT_MAKE_PREFIX(INAT_PFX_FS),
107 [0x65] = INAT_MAKE_PREFIX(INAT_PFX_GS),
108 [0x66] = INAT_MAKE_PREFIX(INAT_PFX_OPNDSZ),
109 [0x67] = INAT_MAKE_PREFIX(INAT_PFX_ADDRSZ),
110 [0x68] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
111 [0x69] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM,
112 [0x6a] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_FORCE64,
113 [0x6b] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
114 [0x70] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
115 [0x71] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
116 [0x72] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
117 [0x73] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
118 [0x74] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
119 [0x75] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
120 [0x76] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
121 [0x77] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
122 [0x78] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
123 [0x79] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
124 [0x7a] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
125 [0x7b] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
126 [0x7c] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
127 [0x7d] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
128 [0x7e] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
129 [0x7f] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
130 [0x80] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(1),
131 [0x81] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM | INAT_MAKE_GROUP(1),
132 [0x82] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(1) | INAT_INV64,
133 [0x83] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(1),
134 [0x84] = INAT_MODRM,
135 [0x85] = INAT_MODRM,
136 [0x86] = INAT_MODRM,
137 [0x87] = INAT_MODRM,
138 [0x88] = INAT_MODRM,
139 [0x89] = INAT_MODRM,
140 [0x8a] = INAT_MODRM,
141 [0x8b] = INAT_MODRM,
142 [0x8c] = INAT_MODRM,
143 [0x8d] = INAT_MODRM,
144 [0x8e] = INAT_MODRM,
145 [0x8f] = INAT_MAKE_GROUP(2) | INAT_MODRM | INAT_FORCE64 | INAT_MAKE_PREFIX(INAT_PFX_XOP),
146 [0x9a] = INAT_MAKE_IMM(INAT_IMM_PTR) | INAT_INV64,
147 [0x9c] = INAT_FORCE64,
148 [0x9d] = INAT_FORCE64,
149 [0xa0] = INAT_MOFFSET | INAT_NO_REX2,
150 [0xa1] = INAT_MOFFSET | INAT_NO_REX2,
151 [0xa2] = INAT_MOFFSET | INAT_NO_REX2,
152 [0xa3] = INAT_MOFFSET | INAT_NO_REX2,
153 [0xa4] = INAT_NO_REX2,
154 [0xa5] = INAT_NO_REX2,
155 [0xa6] = INAT_NO_REX2,
156 [0xa7] = INAT_NO_REX2,
157 [0xa8] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
158 [0xa9] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_NO_REX2,
159 [0xaa] = INAT_NO_REX2,
160 [0xab] = INAT_NO_REX2,
161 [0xac] = INAT_NO_REX2,
162 [0xad] = INAT_NO_REX2,
163 [0xae] = INAT_NO_REX2,
164 [0xaf] = INAT_NO_REX2,
165 [0xb0] = INAT_MAKE_IMM(INAT_IMM_BYTE),
166 [0xb1] = INAT_MAKE_IMM(INAT_IMM_BYTE),
167 [0xb2] = INAT_MAKE_IMM(INAT_IMM_BYTE),
168 [0xb3] = INAT_MAKE_IMM(INAT_IMM_BYTE),
169 [0xb4] = INAT_MAKE_IMM(INAT_IMM_BYTE),
170 [0xb5] = INAT_MAKE_IMM(INAT_IMM_BYTE),
171 [0xb6] = INAT_MAKE_IMM(INAT_IMM_BYTE),
172 [0xb7] = INAT_MAKE_IMM(INAT_IMM_BYTE),
173 [0xb8] = INAT_MAKE_IMM(INAT_IMM_VWORD),
174 [0xb9] = INAT_MAKE_IMM(INAT_IMM_VWORD),
175 [0xba] = INAT_MAKE_IMM(INAT_IMM_VWORD),
176 [0xbb] = INAT_MAKE_IMM(INAT_IMM_VWORD),
177 [0xbc] = INAT_MAKE_IMM(INAT_IMM_VWORD),
178 [0xbd] = INAT_MAKE_IMM(INAT_IMM_VWORD),
179 [0xbe] = INAT_MAKE_IMM(INAT_IMM_VWORD),
180 [0xbf] = INAT_MAKE_IMM(INAT_IMM_VWORD),
181 [0xc0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(3),
182 [0xc1] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(3),
183 [0xc2] = INAT_MAKE_IMM(INAT_IMM_WORD) | INAT_FORCE64,
184 [0xc4] = INAT_MODRM | INAT_MAKE_PREFIX(INAT_PFX_VEX3),
185 [0xc5] = INAT_MODRM | INAT_MAKE_PREFIX(INAT_PFX_VEX2),
186 [0xc6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(4),
187 [0xc7] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM | INAT_MAKE_GROUP(5),
188 [0xc8] = INAT_MAKE_IMM(INAT_IMM_WORD) | INAT_SCNDIMM,
189 [0xc9] = INAT_FORCE64,
190 [0xca] = INAT_MAKE_IMM(INAT_IMM_WORD),
191 [0xcd] = INAT_MAKE_IMM(INAT_IMM_BYTE),
192 [0xce] = INAT_INV64,
193 [0xd0] = INAT_MODRM | INAT_MAKE_GROUP(3),
194 [0xd1] = INAT_MODRM | INAT_MAKE_GROUP(3),
195 [0xd2] = INAT_MODRM | INAT_MAKE_GROUP(3),
196 [0xd3] = INAT_MODRM | INAT_MAKE_GROUP(3),
197 [0xd4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_INV64,
198 [0xd5] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MAKE_PREFIX(INAT_PFX_REX2),
199 [0xd8] = INAT_MODRM,
200 [0xd9] = INAT_MODRM,
201 [0xda] = INAT_MODRM,
202 [0xdb] = INAT_MODRM,
203 [0xdc] = INAT_MODRM,
204 [0xdd] = INAT_MODRM,
205 [0xde] = INAT_MODRM,
206 [0xdf] = INAT_MODRM,
207 [0xe0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_FORCE64 | INAT_NO_REX2,
208 [0xe1] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_FORCE64 | INAT_NO_REX2,
209 [0xe2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_FORCE64 | INAT_NO_REX2,
210 [0xe3] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_FORCE64 | INAT_NO_REX2,
211 [0xe4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
212 [0xe5] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
213 [0xe6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
214 [0xe7] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_NO_REX2,
215 [0xe8] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
216 [0xe9] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
217 [0xea] = INAT_MAKE_IMM(INAT_IMM_PTR) | INAT_INV64 | INAT_NO_REX2,
218 [0xeb] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_FORCE64 | INAT_NO_REX2,
219 [0xec] = INAT_NO_REX2,
220 [0xed] = INAT_NO_REX2,
221 [0xee] = INAT_NO_REX2,
222 [0xef] = INAT_NO_REX2,
223 [0xf0] = INAT_MAKE_PREFIX(INAT_PFX_LOCK),
224 [0xf2] = INAT_MAKE_PREFIX(INAT_PFX_REPNE) | INAT_MAKE_PREFIX(INAT_PFX_REPNE),
225 [0xf3] = INAT_MAKE_PREFIX(INAT_PFX_REPE) | INAT_MAKE_PREFIX(INAT_PFX_REPE),
226 [0xf6] = INAT_MODRM | INAT_MAKE_GROUP(6),
227 [0xf7] = INAT_MODRM | INAT_MAKE_GROUP(7),
228 [0xfe] = INAT_MAKE_GROUP(8),
229 [0xff] = INAT_MAKE_GROUP(9),
230};
231
232/* Table: 2-byte opcode (0x0f) */
233const insn_attr_t inat_escape_table_1[INAT_OPCODE_TABLE_SIZE] = {
234 [0x00] = INAT_MAKE_GROUP(10),
235 [0x01] = INAT_MAKE_GROUP(11),
236 [0x02] = INAT_MODRM,
237 [0x03] = INAT_MODRM,
238 [0x0d] = INAT_MAKE_GROUP(12),
239 [0x0f] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
240 [0x10] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
241 [0x11] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
242 [0x12] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
243 [0x13] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
244 [0x14] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
245 [0x15] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
246 [0x16] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
247 [0x17] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
248 [0x18] = INAT_MAKE_GROUP(13),
249 [0x1a] = INAT_MODRM | INAT_VARIANT,
250 [0x1b] = INAT_MODRM | INAT_VARIANT,
251 [0x1c] = INAT_MAKE_GROUP(14),
252 [0x1e] = INAT_MAKE_GROUP(15),
253 [0x1f] = INAT_MODRM,
254 [0x20] = INAT_MODRM,
255 [0x21] = INAT_MODRM,
256 [0x22] = INAT_MODRM,
257 [0x23] = INAT_MODRM,
258 [0x28] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
259 [0x29] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
260 [0x2a] = INAT_MODRM | INAT_VARIANT,
261 [0x2b] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
262 [0x2c] = INAT_MODRM | INAT_VARIANT,
263 [0x2d] = INAT_MODRM | INAT_VARIANT,
264 [0x2e] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
265 [0x2f] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
266 [0x30] = INAT_NO_REX2,
267 [0x31] = INAT_NO_REX2,
268 [0x32] = INAT_NO_REX2,
269 [0x33] = INAT_NO_REX2,
270 [0x34] = INAT_NO_REX2,
271 [0x35] = INAT_NO_REX2,
272 [0x37] = INAT_NO_REX2,
273 [0x38] = INAT_MAKE_ESCAPE(2),
274 [0x3a] = INAT_MAKE_ESCAPE(3),
275 [0x40] = INAT_MODRM,
276 [0x41] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
277 [0x42] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
278 [0x43] = INAT_MODRM,
279 [0x44] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
280 [0x45] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
281 [0x46] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
282 [0x47] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
283 [0x48] = INAT_MODRM,
284 [0x49] = INAT_MODRM,
285 [0x4a] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
286 [0x4b] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
287 [0x4c] = INAT_MODRM,
288 [0x4d] = INAT_MODRM,
289 [0x4e] = INAT_MODRM,
290 [0x4f] = INAT_MODRM,
291 [0x50] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
292 [0x51] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
293 [0x52] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
294 [0x53] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
295 [0x54] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
296 [0x55] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
297 [0x56] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
298 [0x57] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
299 [0x58] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
300 [0x59] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
301 [0x5a] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
302 [0x5b] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
303 [0x5c] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
304 [0x5d] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
305 [0x5e] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
306 [0x5f] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
307 [0x60] = INAT_MODRM | INAT_VARIANT,
308 [0x61] = INAT_MODRM | INAT_VARIANT,
309 [0x62] = INAT_MODRM | INAT_VARIANT,
310 [0x63] = INAT_MODRM | INAT_VARIANT,
311 [0x64] = INAT_MODRM | INAT_VARIANT,
312 [0x65] = INAT_MODRM | INAT_VARIANT,
313 [0x66] = INAT_MODRM | INAT_VARIANT,
314 [0x67] = INAT_MODRM | INAT_VARIANT,
315 [0x68] = INAT_MODRM | INAT_VARIANT,
316 [0x69] = INAT_MODRM | INAT_VARIANT,
317 [0x6a] = INAT_MODRM | INAT_VARIANT,
318 [0x6b] = INAT_MODRM | INAT_VARIANT,
319 [0x6c] = INAT_VARIANT,
320 [0x6d] = INAT_VARIANT,
321 [0x6e] = INAT_MODRM | INAT_VARIANT,
322 [0x6f] = INAT_MODRM | INAT_VARIANT,
323 [0x70] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
324 [0x71] = INAT_MAKE_GROUP(16),
325 [0x72] = INAT_MAKE_GROUP(17),
326 [0x73] = INAT_MAKE_GROUP(18),
327 [0x74] = INAT_MODRM | INAT_VARIANT,
328 [0x75] = INAT_MODRM | INAT_VARIANT,
329 [0x76] = INAT_MODRM | INAT_VARIANT,
330 [0x77] = INAT_VEXOK | INAT_VEXOK,
331 [0x78] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
332 [0x79] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
333 [0x7a] = INAT_VARIANT,
334 [0x7b] = INAT_VARIANT,
335 [0x7c] = INAT_VARIANT,
336 [0x7d] = INAT_VARIANT,
337 [0x7e] = INAT_MODRM | INAT_VARIANT,
338 [0x7f] = INAT_MODRM | INAT_VARIANT,
339 [0x80] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
340 [0x81] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
341 [0x82] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
342 [0x83] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
343 [0x84] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
344 [0x85] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
345 [0x86] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
346 [0x87] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
347 [0x88] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
348 [0x89] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
349 [0x8a] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
350 [0x8b] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
351 [0x8c] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
352 [0x8d] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
353 [0x8e] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
354 [0x8f] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_FORCE64 | INAT_NO_REX2,
355 [0x90] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
356 [0x91] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
357 [0x92] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
358 [0x93] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
359 [0x94] = INAT_MODRM,
360 [0x95] = INAT_MODRM,
361 [0x96] = INAT_MODRM,
362 [0x97] = INAT_MODRM,
363 [0x98] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
364 [0x99] = INAT_MODRM | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
365 [0x9a] = INAT_MODRM,
366 [0x9b] = INAT_MODRM,
367 [0x9c] = INAT_MODRM,
368 [0x9d] = INAT_MODRM,
369 [0x9e] = INAT_MODRM,
370 [0x9f] = INAT_MODRM,
371 [0xa0] = INAT_FORCE64,
372 [0xa1] = INAT_FORCE64,
373 [0xa3] = INAT_MODRM,
374 [0xa4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
375 [0xa5] = INAT_MODRM,
376 [0xa6] = INAT_MAKE_GROUP(19),
377 [0xa7] = INAT_MAKE_GROUP(20),
378 [0xa8] = INAT_FORCE64,
379 [0xa9] = INAT_FORCE64,
380 [0xab] = INAT_MODRM,
381 [0xac] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
382 [0xad] = INAT_MODRM,
383 [0xae] = INAT_MAKE_GROUP(21),
384 [0xaf] = INAT_MODRM,
385 [0xb0] = INAT_MODRM,
386 [0xb1] = INAT_MODRM,
387 [0xb2] = INAT_MODRM,
388 [0xb3] = INAT_MODRM,
389 [0xb4] = INAT_MODRM,
390 [0xb5] = INAT_MODRM,
391 [0xb6] = INAT_MODRM,
392 [0xb7] = INAT_MODRM,
393 [0xb8] = INAT_VARIANT,
394 [0xb9] = INAT_MAKE_GROUP(22),
395 [0xba] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(23),
396 [0xbb] = INAT_MODRM,
397 [0xbc] = INAT_MODRM | INAT_VARIANT,
398 [0xbd] = INAT_MODRM | INAT_VARIANT,
399 [0xbe] = INAT_MODRM,
400 [0xbf] = INAT_MODRM,
401 [0xc0] = INAT_MODRM,
402 [0xc1] = INAT_MODRM,
403 [0xc2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
404 [0xc3] = INAT_MODRM,
405 [0xc4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
406 [0xc5] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
407 [0xc6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
408 [0xc7] = INAT_MAKE_GROUP(24),
409 [0xd0] = INAT_VARIANT,
410 [0xd1] = INAT_MODRM | INAT_VARIANT,
411 [0xd2] = INAT_MODRM | INAT_VARIANT,
412 [0xd3] = INAT_MODRM | INAT_VARIANT,
413 [0xd4] = INAT_MODRM | INAT_VARIANT,
414 [0xd5] = INAT_MODRM | INAT_VARIANT,
415 [0xd6] = INAT_VARIANT,
416 [0xd7] = INAT_MODRM | INAT_VARIANT,
417 [0xd8] = INAT_MODRM | INAT_VARIANT,
418 [0xd9] = INAT_MODRM | INAT_VARIANT,
419 [0xda] = INAT_MODRM | INAT_VARIANT,
420 [0xdb] = INAT_MODRM | INAT_VARIANT,
421 [0xdc] = INAT_MODRM | INAT_VARIANT,
422 [0xdd] = INAT_MODRM | INAT_VARIANT,
423 [0xde] = INAT_MODRM | INAT_VARIANT,
424 [0xdf] = INAT_MODRM | INAT_VARIANT,
425 [0xe0] = INAT_MODRM | INAT_VARIANT,
426 [0xe1] = INAT_MODRM | INAT_VARIANT,
427 [0xe2] = INAT_MODRM | INAT_VARIANT,
428 [0xe3] = INAT_MODRM | INAT_VARIANT,
429 [0xe4] = INAT_MODRM | INAT_VARIANT,
430 [0xe5] = INAT_MODRM | INAT_VARIANT,
431 [0xe6] = INAT_VARIANT,
432 [0xe7] = INAT_MODRM | INAT_VARIANT,
433 [0xe8] = INAT_MODRM | INAT_VARIANT,
434 [0xe9] = INAT_MODRM | INAT_VARIANT,
435 [0xea] = INAT_MODRM | INAT_VARIANT,
436 [0xeb] = INAT_MODRM | INAT_VARIANT,
437 [0xec] = INAT_MODRM | INAT_VARIANT,
438 [0xed] = INAT_MODRM | INAT_VARIANT,
439 [0xee] = INAT_MODRM | INAT_VARIANT,
440 [0xef] = INAT_MODRM | INAT_VARIANT,
441 [0xf0] = INAT_VARIANT,
442 [0xf1] = INAT_MODRM | INAT_VARIANT,
443 [0xf2] = INAT_MODRM | INAT_VARIANT,
444 [0xf3] = INAT_MODRM | INAT_VARIANT,
445 [0xf4] = INAT_MODRM | INAT_VARIANT,
446 [0xf5] = INAT_MODRM | INAT_VARIANT,
447 [0xf6] = INAT_MODRM | INAT_VARIANT,
448 [0xf7] = INAT_MODRM | INAT_VARIANT,
449 [0xf8] = INAT_MODRM | INAT_VARIANT,
450 [0xf9] = INAT_MODRM | INAT_VARIANT,
451 [0xfa] = INAT_MODRM | INAT_VARIANT,
452 [0xfb] = INAT_MODRM | INAT_VARIANT,
453 [0xfc] = INAT_MODRM | INAT_VARIANT,
454 [0xfd] = INAT_MODRM | INAT_VARIANT,
455 [0xfe] = INAT_MODRM | INAT_VARIANT,
456};
457const insn_attr_t inat_escape_table_1_1[INAT_OPCODE_TABLE_SIZE] = {
458 [0x10] = INAT_MODRM | INAT_VEXOK,
459 [0x11] = INAT_MODRM | INAT_VEXOK,
460 [0x12] = INAT_MODRM | INAT_VEXOK,
461 [0x13] = INAT_MODRM | INAT_VEXOK,
462 [0x14] = INAT_MODRM | INAT_VEXOK,
463 [0x15] = INAT_MODRM | INAT_VEXOK,
464 [0x16] = INAT_MODRM | INAT_VEXOK,
465 [0x17] = INAT_MODRM | INAT_VEXOK,
466 [0x1a] = INAT_MODRM,
467 [0x1b] = INAT_MODRM,
468 [0x28] = INAT_MODRM | INAT_VEXOK,
469 [0x29] = INAT_MODRM | INAT_VEXOK,
470 [0x2a] = INAT_MODRM,
471 [0x2b] = INAT_MODRM | INAT_VEXOK,
472 [0x2c] = INAT_MODRM,
473 [0x2d] = INAT_MODRM,
474 [0x2e] = INAT_MODRM | INAT_VEXOK,
475 [0x2f] = INAT_MODRM | INAT_VEXOK,
476 [0x41] = INAT_MODRM | INAT_VEXOK,
477 [0x42] = INAT_MODRM | INAT_VEXOK,
478 [0x44] = INAT_MODRM | INAT_VEXOK,
479 [0x45] = INAT_MODRM | INAT_VEXOK,
480 [0x46] = INAT_MODRM | INAT_VEXOK,
481 [0x47] = INAT_MODRM | INAT_VEXOK,
482 [0x4a] = INAT_MODRM | INAT_VEXOK,
483 [0x4b] = INAT_MODRM | INAT_VEXOK,
484 [0x50] = INAT_MODRM | INAT_VEXOK,
485 [0x51] = INAT_MODRM | INAT_VEXOK,
486 [0x54] = INAT_MODRM | INAT_VEXOK,
487 [0x55] = INAT_MODRM | INAT_VEXOK,
488 [0x56] = INAT_MODRM | INAT_VEXOK,
489 [0x57] = INAT_MODRM | INAT_VEXOK,
490 [0x58] = INAT_MODRM | INAT_VEXOK,
491 [0x59] = INAT_MODRM | INAT_VEXOK,
492 [0x5a] = INAT_MODRM | INAT_VEXOK,
493 [0x5b] = INAT_MODRM | INAT_VEXOK,
494 [0x5c] = INAT_MODRM | INAT_VEXOK,
495 [0x5d] = INAT_MODRM | INAT_VEXOK,
496 [0x5e] = INAT_MODRM | INAT_VEXOK,
497 [0x5f] = INAT_MODRM | INAT_VEXOK,
498 [0x60] = INAT_MODRM | INAT_VEXOK,
499 [0x61] = INAT_MODRM | INAT_VEXOK,
500 [0x62] = INAT_MODRM | INAT_VEXOK,
501 [0x63] = INAT_MODRM | INAT_VEXOK,
502 [0x64] = INAT_MODRM | INAT_VEXOK,
503 [0x65] = INAT_MODRM | INAT_VEXOK,
504 [0x66] = INAT_MODRM | INAT_VEXOK,
505 [0x67] = INAT_MODRM | INAT_VEXOK,
506 [0x68] = INAT_MODRM | INAT_VEXOK,
507 [0x69] = INAT_MODRM | INAT_VEXOK,
508 [0x6a] = INAT_MODRM | INAT_VEXOK,
509 [0x6b] = INAT_MODRM | INAT_VEXOK,
510 [0x6c] = INAT_MODRM | INAT_VEXOK,
511 [0x6d] = INAT_MODRM | INAT_VEXOK,
512 [0x6e] = INAT_MODRM | INAT_VEXOK,
513 [0x6f] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
514 [0x70] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
515 [0x74] = INAT_MODRM | INAT_VEXOK,
516 [0x75] = INAT_MODRM | INAT_VEXOK,
517 [0x76] = INAT_MODRM | INAT_VEXOK,
518 [0x78] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
519 [0x79] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
520 [0x7a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
521 [0x7b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
522 [0x7c] = INAT_MODRM | INAT_VEXOK,
523 [0x7d] = INAT_MODRM | INAT_VEXOK,
524 [0x7e] = INAT_MODRM | INAT_VEXOK,
525 [0x7f] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
526 [0x90] = INAT_MODRM | INAT_VEXOK,
527 [0x91] = INAT_MODRM | INAT_VEXOK,
528 [0x92] = INAT_MODRM | INAT_VEXOK,
529 [0x93] = INAT_MODRM | INAT_VEXOK,
530 [0x98] = INAT_MODRM | INAT_VEXOK,
531 [0x99] = INAT_MODRM | INAT_VEXOK,
532 [0xbc] = INAT_MODRM,
533 [0xbd] = INAT_MODRM,
534 [0xc2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
535 [0xc4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
536 [0xc5] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
537 [0xc6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
538 [0xd0] = INAT_MODRM | INAT_VEXOK,
539 [0xd1] = INAT_MODRM | INAT_VEXOK,
540 [0xd2] = INAT_MODRM | INAT_VEXOK,
541 [0xd3] = INAT_MODRM | INAT_VEXOK,
542 [0xd4] = INAT_MODRM | INAT_VEXOK,
543 [0xd5] = INAT_MODRM | INAT_VEXOK,
544 [0xd6] = INAT_MODRM | INAT_VEXOK,
545 [0xd7] = INAT_MODRM | INAT_VEXOK,
546 [0xd8] = INAT_MODRM | INAT_VEXOK,
547 [0xd9] = INAT_MODRM | INAT_VEXOK,
548 [0xda] = INAT_MODRM | INAT_VEXOK,
549 [0xdb] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
550 [0xdc] = INAT_MODRM | INAT_VEXOK,
551 [0xdd] = INAT_MODRM | INAT_VEXOK,
552 [0xde] = INAT_MODRM | INAT_VEXOK,
553 [0xdf] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
554 [0xe0] = INAT_MODRM | INAT_VEXOK,
555 [0xe1] = INAT_MODRM | INAT_VEXOK,
556 [0xe2] = INAT_MODRM | INAT_VEXOK,
557 [0xe3] = INAT_MODRM | INAT_VEXOK,
558 [0xe4] = INAT_MODRM | INAT_VEXOK,
559 [0xe5] = INAT_MODRM | INAT_VEXOK,
560 [0xe6] = INAT_MODRM | INAT_VEXOK,
561 [0xe7] = INAT_MODRM | INAT_VEXOK,
562 [0xe8] = INAT_MODRM | INAT_VEXOK,
563 [0xe9] = INAT_MODRM | INAT_VEXOK,
564 [0xea] = INAT_MODRM | INAT_VEXOK,
565 [0xeb] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
566 [0xec] = INAT_MODRM | INAT_VEXOK,
567 [0xed] = INAT_MODRM | INAT_VEXOK,
568 [0xee] = INAT_MODRM | INAT_VEXOK,
569 [0xef] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
570 [0xf1] = INAT_MODRM | INAT_VEXOK,
571 [0xf2] = INAT_MODRM | INAT_VEXOK,
572 [0xf3] = INAT_MODRM | INAT_VEXOK,
573 [0xf4] = INAT_MODRM | INAT_VEXOK,
574 [0xf5] = INAT_MODRM | INAT_VEXOK,
575 [0xf6] = INAT_MODRM | INAT_VEXOK,
576 [0xf7] = INAT_MODRM | INAT_VEXOK,
577 [0xf8] = INAT_MODRM | INAT_VEXOK,
578 [0xf9] = INAT_MODRM | INAT_VEXOK,
579 [0xfa] = INAT_MODRM | INAT_VEXOK,
580 [0xfb] = INAT_MODRM | INAT_VEXOK,
581 [0xfc] = INAT_MODRM | INAT_VEXOK,
582 [0xfd] = INAT_MODRM | INAT_VEXOK,
583 [0xfe] = INAT_MODRM | INAT_VEXOK,
584};
585const insn_attr_t inat_escape_table_1_2[INAT_OPCODE_TABLE_SIZE] = {
586 [0x10] = INAT_MODRM | INAT_VEXOK,
587 [0x11] = INAT_MODRM | INAT_VEXOK,
588 [0x12] = INAT_MODRM | INAT_VEXOK,
589 [0x16] = INAT_MODRM | INAT_VEXOK,
590 [0x1a] = INAT_MODRM,
591 [0x1b] = INAT_MODRM,
592 [0x2a] = INAT_MODRM | INAT_VEXOK,
593 [0x2c] = INAT_MODRM | INAT_VEXOK,
594 [0x2d] = INAT_MODRM | INAT_VEXOK,
595 [0x51] = INAT_MODRM | INAT_VEXOK,
596 [0x52] = INAT_MODRM | INAT_VEXOK,
597 [0x53] = INAT_MODRM | INAT_VEXOK,
598 [0x58] = INAT_MODRM | INAT_VEXOK,
599 [0x59] = INAT_MODRM | INAT_VEXOK,
600 [0x5a] = INAT_MODRM | INAT_VEXOK,
601 [0x5b] = INAT_MODRM | INAT_VEXOK,
602 [0x5c] = INAT_MODRM | INAT_VEXOK,
603 [0x5d] = INAT_MODRM | INAT_VEXOK,
604 [0x5e] = INAT_MODRM | INAT_VEXOK,
605 [0x5f] = INAT_MODRM | INAT_VEXOK,
606 [0x6f] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
607 [0x70] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
608 [0x78] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
609 [0x79] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
610 [0x7a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
611 [0x7b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
612 [0x7e] = INAT_MODRM | INAT_VEXOK,
613 [0x7f] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
614 [0xb8] = INAT_MODRM,
615 [0xbc] = INAT_MODRM,
616 [0xbd] = INAT_MODRM,
617 [0xc2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
618 [0xd6] = INAT_MODRM,
619 [0xe6] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
620};
621const insn_attr_t inat_escape_table_1_3[INAT_OPCODE_TABLE_SIZE] = {
622 [0x10] = INAT_MODRM | INAT_VEXOK,
623 [0x11] = INAT_MODRM | INAT_VEXOK,
624 [0x12] = INAT_MODRM | INAT_VEXOK,
625 [0x1a] = INAT_MODRM,
626 [0x1b] = INAT_MODRM,
627 [0x2a] = INAT_MODRM | INAT_VEXOK,
628 [0x2c] = INAT_MODRM | INAT_VEXOK,
629 [0x2d] = INAT_MODRM | INAT_VEXOK,
630 [0x51] = INAT_MODRM | INAT_VEXOK,
631 [0x58] = INAT_MODRM | INAT_VEXOK,
632 [0x59] = INAT_MODRM | INAT_VEXOK,
633 [0x5a] = INAT_MODRM | INAT_VEXOK,
634 [0x5c] = INAT_MODRM | INAT_VEXOK,
635 [0x5d] = INAT_MODRM | INAT_VEXOK,
636 [0x5e] = INAT_MODRM | INAT_VEXOK,
637 [0x5f] = INAT_MODRM | INAT_VEXOK,
638 [0x6f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
639 [0x70] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
640 [0x78] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
641 [0x79] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
642 [0x7a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
643 [0x7b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
644 [0x7c] = INAT_MODRM | INAT_VEXOK,
645 [0x7d] = INAT_MODRM | INAT_VEXOK,
646 [0x7f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
647 [0x92] = INAT_MODRM | INAT_VEXOK,
648 [0x93] = INAT_MODRM | INAT_VEXOK,
649 [0xbc] = INAT_MODRM,
650 [0xbd] = INAT_MODRM,
651 [0xc2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
652 [0xd0] = INAT_MODRM | INAT_VEXOK,
653 [0xd6] = INAT_MODRM,
654 [0xe6] = INAT_MODRM | INAT_VEXOK,
655 [0xf0] = INAT_MODRM | INAT_VEXOK,
656};
657
658/* Table: 3-byte opcode 1 (0x0f 0x38) */
659const insn_attr_t inat_escape_table_2[INAT_OPCODE_TABLE_SIZE] = {
660 [0x00] = INAT_MODRM | INAT_VARIANT,
661 [0x01] = INAT_MODRM | INAT_VARIANT,
662 [0x02] = INAT_MODRM | INAT_VARIANT,
663 [0x03] = INAT_MODRM | INAT_VARIANT,
664 [0x04] = INAT_MODRM | INAT_VARIANT,
665 [0x05] = INAT_MODRM | INAT_VARIANT,
666 [0x06] = INAT_MODRM | INAT_VARIANT,
667 [0x07] = INAT_MODRM | INAT_VARIANT,
668 [0x08] = INAT_MODRM | INAT_VARIANT,
669 [0x09] = INAT_MODRM | INAT_VARIANT,
670 [0x0a] = INAT_MODRM | INAT_VARIANT,
671 [0x0b] = INAT_MODRM | INAT_VARIANT,
672 [0x0c] = INAT_VARIANT,
673 [0x0d] = INAT_VARIANT,
674 [0x0e] = INAT_VARIANT,
675 [0x0f] = INAT_VARIANT,
676 [0x10] = INAT_VARIANT,
677 [0x11] = INAT_VARIANT,
678 [0x12] = INAT_VARIANT,
679 [0x13] = INAT_VARIANT,
680 [0x14] = INAT_VARIANT,
681 [0x15] = INAT_VARIANT,
682 [0x16] = INAT_VARIANT,
683 [0x17] = INAT_VARIANT,
684 [0x18] = INAT_VARIANT,
685 [0x19] = INAT_VARIANT,
686 [0x1a] = INAT_VARIANT,
687 [0x1b] = INAT_VARIANT,
688 [0x1c] = INAT_MODRM | INAT_VARIANT,
689 [0x1d] = INAT_MODRM | INAT_VARIANT,
690 [0x1e] = INAT_MODRM | INAT_VARIANT,
691 [0x1f] = INAT_VARIANT,
692 [0x20] = INAT_VARIANT,
693 [0x21] = INAT_VARIANT,
694 [0x22] = INAT_VARIANT,
695 [0x23] = INAT_VARIANT,
696 [0x24] = INAT_VARIANT,
697 [0x25] = INAT_VARIANT,
698 [0x26] = INAT_VARIANT,
699 [0x27] = INAT_VARIANT,
700 [0x28] = INAT_VARIANT,
701 [0x29] = INAT_VARIANT,
702 [0x2a] = INAT_VARIANT,
703 [0x2b] = INAT_VARIANT,
704 [0x2c] = INAT_VARIANT,
705 [0x2d] = INAT_VARIANT,
706 [0x2e] = INAT_VARIANT,
707 [0x2f] = INAT_VARIANT,
708 [0x30] = INAT_VARIANT,
709 [0x31] = INAT_VARIANT,
710 [0x32] = INAT_VARIANT,
711 [0x33] = INAT_VARIANT,
712 [0x34] = INAT_VARIANT,
713 [0x35] = INAT_VARIANT,
714 [0x36] = INAT_VARIANT,
715 [0x37] = INAT_VARIANT,
716 [0x38] = INAT_VARIANT,
717 [0x39] = INAT_VARIANT,
718 [0x3a] = INAT_VARIANT,
719 [0x3b] = INAT_VARIANT,
720 [0x3c] = INAT_VARIANT,
721 [0x3d] = INAT_VARIANT,
722 [0x3e] = INAT_VARIANT,
723 [0x3f] = INAT_VARIANT,
724 [0x40] = INAT_VARIANT,
725 [0x41] = INAT_VARIANT,
726 [0x42] = INAT_VARIANT,
727 [0x43] = INAT_VARIANT,
728 [0x44] = INAT_VARIANT,
729 [0x45] = INAT_VARIANT,
730 [0x46] = INAT_VARIANT,
731 [0x47] = INAT_VARIANT,
732 [0x49] = INAT_VEXOK | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
733 [0x4b] = INAT_VARIANT,
734 [0x4c] = INAT_VARIANT,
735 [0x4d] = INAT_VARIANT,
736 [0x4e] = INAT_VARIANT,
737 [0x4f] = INAT_VARIANT,
738 [0x50] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_VARIANT,
739 [0x51] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_VARIANT,
740 [0x52] = INAT_VARIANT,
741 [0x53] = INAT_VARIANT,
742 [0x54] = INAT_VARIANT,
743 [0x55] = INAT_VARIANT,
744 [0x58] = INAT_VARIANT,
745 [0x59] = INAT_VARIANT,
746 [0x5a] = INAT_VARIANT,
747 [0x5b] = INAT_VARIANT,
748 [0x5c] = INAT_VARIANT,
749 [0x5e] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
750 [0x62] = INAT_VARIANT,
751 [0x63] = INAT_VARIANT,
752 [0x64] = INAT_VARIANT,
753 [0x65] = INAT_VARIANT,
754 [0x66] = INAT_VARIANT,
755 [0x68] = INAT_VARIANT,
756 [0x6c] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
757 [0x70] = INAT_VARIANT,
758 [0x71] = INAT_VARIANT,
759 [0x72] = INAT_VARIANT,
760 [0x73] = INAT_VARIANT,
761 [0x75] = INAT_VARIANT,
762 [0x76] = INAT_VARIANT,
763 [0x77] = INAT_VARIANT,
764 [0x78] = INAT_VARIANT,
765 [0x79] = INAT_VARIANT,
766 [0x7a] = INAT_VARIANT,
767 [0x7b] = INAT_VARIANT,
768 [0x7c] = INAT_VARIANT,
769 [0x7d] = INAT_VARIANT,
770 [0x7e] = INAT_VARIANT,
771 [0x7f] = INAT_VARIANT,
772 [0x80] = INAT_VARIANT,
773 [0x81] = INAT_VARIANT,
774 [0x82] = INAT_VARIANT,
775 [0x83] = INAT_VARIANT,
776 [0x88] = INAT_VARIANT,
777 [0x89] = INAT_VARIANT,
778 [0x8a] = INAT_VARIANT,
779 [0x8b] = INAT_VARIANT,
780 [0x8c] = INAT_VARIANT,
781 [0x8d] = INAT_VARIANT,
782 [0x8e] = INAT_VARIANT,
783 [0x8f] = INAT_VARIANT,
784 [0x90] = INAT_VARIANT,
785 [0x91] = INAT_VARIANT,
786 [0x92] = INAT_VARIANT,
787 [0x93] = INAT_VARIANT,
788 [0x96] = INAT_VARIANT,
789 [0x97] = INAT_VARIANT,
790 [0x98] = INAT_VARIANT,
791 [0x99] = INAT_VARIANT,
792 [0x9a] = INAT_VARIANT,
793 [0x9b] = INAT_VARIANT,
794 [0x9c] = INAT_VARIANT,
795 [0x9d] = INAT_VARIANT,
796 [0x9e] = INAT_VARIANT,
797 [0x9f] = INAT_VARIANT,
798 [0xa0] = INAT_VARIANT,
799 [0xa1] = INAT_VARIANT,
800 [0xa2] = INAT_VARIANT,
801 [0xa3] = INAT_VARIANT,
802 [0xa6] = INAT_VARIANT,
803 [0xa7] = INAT_VARIANT,
804 [0xa8] = INAT_VARIANT,
805 [0xa9] = INAT_VARIANT,
806 [0xaa] = INAT_VARIANT,
807 [0xab] = INAT_VARIANT,
808 [0xac] = INAT_VARIANT,
809 [0xad] = INAT_VARIANT,
810 [0xae] = INAT_VARIANT,
811 [0xaf] = INAT_VARIANT,
812 [0xb0] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_VARIANT,
813 [0xb1] = INAT_VARIANT,
814 [0xb4] = INAT_VARIANT,
815 [0xb5] = INAT_VARIANT,
816 [0xb6] = INAT_VARIANT,
817 [0xb7] = INAT_VARIANT,
818 [0xb8] = INAT_VARIANT,
819 [0xb9] = INAT_VARIANT,
820 [0xba] = INAT_VARIANT,
821 [0xbb] = INAT_VARIANT,
822 [0xbc] = INAT_VARIANT,
823 [0xbd] = INAT_VARIANT,
824 [0xbe] = INAT_VARIANT,
825 [0xbf] = INAT_VARIANT,
826 [0xc4] = INAT_VARIANT,
827 [0xc6] = INAT_MAKE_GROUP(25),
828 [0xc7] = INAT_MAKE_GROUP(26),
829 [0xc8] = INAT_MODRM | INAT_VARIANT,
830 [0xc9] = INAT_MODRM,
831 [0xca] = INAT_MODRM | INAT_VARIANT,
832 [0xcb] = INAT_MODRM | INAT_VARIANT,
833 [0xcc] = INAT_MODRM | INAT_VARIANT,
834 [0xcd] = INAT_MODRM | INAT_VARIANT,
835 [0xcf] = INAT_VARIANT,
836 [0xd2] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_VARIANT,
837 [0xd3] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_VARIANT,
838 [0xd8] = INAT_VARIANT,
839 [0xda] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
840 [0xdb] = INAT_VARIANT,
841 [0xdc] = INAT_VARIANT,
842 [0xdd] = INAT_VARIANT,
843 [0xde] = INAT_VARIANT,
844 [0xdf] = INAT_VARIANT,
845 [0xe0] = INAT_VARIANT,
846 [0xe1] = INAT_VARIANT,
847 [0xe2] = INAT_VARIANT,
848 [0xe3] = INAT_VARIANT,
849 [0xe4] = INAT_VARIANT,
850 [0xe5] = INAT_VARIANT,
851 [0xe6] = INAT_VARIANT,
852 [0xe7] = INAT_VARIANT,
853 [0xe8] = INAT_VARIANT,
854 [0xe9] = INAT_VARIANT,
855 [0xea] = INAT_VARIANT,
856 [0xeb] = INAT_VARIANT,
857 [0xec] = INAT_VARIANT,
858 [0xed] = INAT_VARIANT,
859 [0xee] = INAT_VARIANT,
860 [0xef] = INAT_VARIANT,
861 [0xf0] = INAT_MODRM | INAT_MODRM | INAT_VARIANT,
862 [0xf1] = INAT_MODRM | INAT_MODRM | INAT_VARIANT,
863 [0xf2] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
864 [0xf3] = INAT_MAKE_GROUP(27),
865 [0xf5] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_VARIANT,
866 [0xf6] = INAT_MODRM | INAT_VARIANT,
867 [0xf7] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_VARIANT,
868 [0xf8] = INAT_VARIANT,
869 [0xf9] = INAT_MODRM,
870 [0xfa] = INAT_VARIANT,
871 [0xfb] = INAT_VARIANT,
872 [0xfc] = INAT_MODRM | INAT_VARIANT,
873};
874const insn_attr_t inat_escape_table_2_1[INAT_OPCODE_TABLE_SIZE] = {
875 [0x00] = INAT_MODRM | INAT_VEXOK,
876 [0x01] = INAT_MODRM | INAT_VEXOK,
877 [0x02] = INAT_MODRM | INAT_VEXOK,
878 [0x03] = INAT_MODRM | INAT_VEXOK,
879 [0x04] = INAT_MODRM | INAT_VEXOK,
880 [0x05] = INAT_MODRM | INAT_VEXOK,
881 [0x06] = INAT_MODRM | INAT_VEXOK,
882 [0x07] = INAT_MODRM | INAT_VEXOK,
883 [0x08] = INAT_MODRM | INAT_VEXOK,
884 [0x09] = INAT_MODRM | INAT_VEXOK,
885 [0x0a] = INAT_MODRM | INAT_VEXOK,
886 [0x0b] = INAT_MODRM | INAT_VEXOK,
887 [0x0c] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
888 [0x0d] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
889 [0x0e] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
890 [0x0f] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
891 [0x10] = INAT_MODRM | INAT_MODRM | INAT_VEXOK,
892 [0x11] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
893 [0x12] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
894 [0x13] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
895 [0x14] = INAT_MODRM | INAT_MODRM | INAT_VEXOK,
896 [0x15] = INAT_MODRM | INAT_MODRM | INAT_VEXOK,
897 [0x16] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
898 [0x17] = INAT_MODRM | INAT_VEXOK,
899 [0x18] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
900 [0x19] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
901 [0x1a] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
902 [0x1b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
903 [0x1c] = INAT_MODRM | INAT_VEXOK,
904 [0x1d] = INAT_MODRM | INAT_VEXOK,
905 [0x1e] = INAT_MODRM | INAT_VEXOK,
906 [0x1f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
907 [0x20] = INAT_MODRM | INAT_VEXOK,
908 [0x21] = INAT_MODRM | INAT_VEXOK,
909 [0x22] = INAT_MODRM | INAT_VEXOK,
910 [0x23] = INAT_MODRM | INAT_VEXOK,
911 [0x24] = INAT_MODRM | INAT_VEXOK,
912 [0x25] = INAT_MODRM | INAT_VEXOK,
913 [0x26] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
914 [0x27] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
915 [0x28] = INAT_MODRM | INAT_VEXOK,
916 [0x29] = INAT_MODRM | INAT_VEXOK,
917 [0x2a] = INAT_MODRM | INAT_VEXOK,
918 [0x2b] = INAT_MODRM | INAT_VEXOK,
919 [0x2c] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
920 [0x2d] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
921 [0x2e] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
922 [0x2f] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
923 [0x30] = INAT_MODRM | INAT_VEXOK,
924 [0x31] = INAT_MODRM | INAT_VEXOK,
925 [0x32] = INAT_MODRM | INAT_VEXOK,
926 [0x33] = INAT_MODRM | INAT_VEXOK,
927 [0x34] = INAT_MODRM | INAT_VEXOK,
928 [0x35] = INAT_MODRM | INAT_VEXOK,
929 [0x36] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
930 [0x37] = INAT_MODRM | INAT_VEXOK,
931 [0x38] = INAT_MODRM | INAT_VEXOK,
932 [0x39] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
933 [0x3a] = INAT_MODRM | INAT_VEXOK,
934 [0x3b] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
935 [0x3c] = INAT_MODRM | INAT_VEXOK,
936 [0x3d] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
937 [0x3e] = INAT_MODRM | INAT_VEXOK,
938 [0x3f] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
939 [0x40] = INAT_MODRM | INAT_VEXOK | INAT_MODRM | INAT_VEXOK,
940 [0x41] = INAT_MODRM | INAT_VEXOK,
941 [0x42] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
942 [0x43] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
943 [0x44] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
944 [0x45] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
945 [0x46] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
946 [0x47] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
947 [0x49] = INAT_MODRM | INAT_VEXOK,
948 [0x4b] = INAT_MODRM | INAT_VEXOK,
949 [0x4c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
950 [0x4d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
951 [0x4e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
952 [0x4f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
953 [0x50] = INAT_MODRM | INAT_VEXOK,
954 [0x51] = INAT_MODRM | INAT_VEXOK,
955 [0x52] = INAT_MODRM | INAT_VEXOK,
956 [0x53] = INAT_MODRM | INAT_VEXOK,
957 [0x54] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
958 [0x55] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
959 [0x58] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
960 [0x59] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
961 [0x5a] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
962 [0x5b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
963 [0x5e] = INAT_MODRM | INAT_VEXOK,
964 [0x62] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
965 [0x63] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
966 [0x64] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
967 [0x65] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
968 [0x66] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
969 [0x6c] = INAT_MODRM | INAT_VEXOK,
970 [0x70] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
971 [0x71] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
972 [0x72] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
973 [0x73] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
974 [0x75] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
975 [0x76] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
976 [0x77] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
977 [0x78] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
978 [0x79] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
979 [0x7a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
980 [0x7b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
981 [0x7c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
982 [0x7d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
983 [0x7e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
984 [0x7f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
985 [0x80] = INAT_MODRM,
986 [0x81] = INAT_MODRM,
987 [0x82] = INAT_MODRM,
988 [0x83] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
989 [0x88] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
990 [0x89] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
991 [0x8a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
992 [0x8b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
993 [0x8c] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
994 [0x8d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
995 [0x8e] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
996 [0x8f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
997 [0x90] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
998 [0x91] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MODRM | INAT_VEXOK,
999 [0x92] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1000 [0x93] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1001 [0x96] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1002 [0x97] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1003 [0x98] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1004 [0x99] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1005 [0x9a] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1006 [0x9b] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1007 [0x9c] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1008 [0x9d] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1009 [0x9e] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1010 [0x9f] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1011 [0xa0] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1012 [0xa1] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1013 [0xa2] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1014 [0xa3] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1015 [0xa6] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1016 [0xa7] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1017 [0xa8] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1018 [0xa9] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1019 [0xaa] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1020 [0xab] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1021 [0xac] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1022 [0xad] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1023 [0xae] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1024 [0xaf] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1025 [0xb0] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1026 [0xb1] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1027 [0xb4] = INAT_MODRM | INAT_VEXOK,
1028 [0xb5] = INAT_MODRM | INAT_VEXOK,
1029 [0xb6] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1030 [0xb7] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1031 [0xb8] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1032 [0xb9] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1033 [0xba] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1034 [0xbb] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1035 [0xbc] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1036 [0xbd] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1037 [0xbe] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1038 [0xbf] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1039 [0xc4] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1040 [0xc8] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1041 [0xca] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1042 [0xcb] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1043 [0xcc] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1044 [0xcd] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1045 [0xcf] = INAT_MODRM | INAT_VEXOK,
1046 [0xd2] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1047 [0xd3] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1048 [0xda] = INAT_MODRM | INAT_VEXOK,
1049 [0xdb] = INAT_MODRM | INAT_VEXOK,
1050 [0xdc] = INAT_MODRM | INAT_VEXOK,
1051 [0xdd] = INAT_MODRM | INAT_VEXOK,
1052 [0xde] = INAT_MODRM | INAT_VEXOK,
1053 [0xdf] = INAT_MODRM | INAT_VEXOK,
1054 [0xe0] = INAT_MODRM | INAT_VEXOK,
1055 [0xe1] = INAT_MODRM | INAT_VEXOK,
1056 [0xe2] = INAT_MODRM | INAT_VEXOK,
1057 [0xe3] = INAT_MODRM | INAT_VEXOK,
1058 [0xe4] = INAT_MODRM | INAT_VEXOK,
1059 [0xe5] = INAT_MODRM | INAT_VEXOK,
1060 [0xe6] = INAT_MODRM | INAT_VEXOK,
1061 [0xe7] = INAT_MODRM | INAT_VEXOK,
1062 [0xe8] = INAT_MODRM | INAT_VEXOK,
1063 [0xe9] = INAT_MODRM | INAT_VEXOK,
1064 [0xea] = INAT_MODRM | INAT_VEXOK,
1065 [0xeb] = INAT_MODRM | INAT_VEXOK,
1066 [0xec] = INAT_MODRM | INAT_VEXOK,
1067 [0xed] = INAT_MODRM | INAT_VEXOK,
1068 [0xee] = INAT_MODRM | INAT_VEXOK,
1069 [0xef] = INAT_MODRM | INAT_VEXOK,
1070 [0xf0] = INAT_MODRM,
1071 [0xf1] = INAT_MODRM,
1072 [0xf5] = INAT_MODRM,
1073 [0xf6] = INAT_MODRM,
1074 [0xf7] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1075 [0xf8] = INAT_MODRM,
1076 [0xfc] = INAT_MODRM,
1077};
1078const insn_attr_t inat_escape_table_2_2[INAT_OPCODE_TABLE_SIZE] = {
1079 [0x10] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1080 [0x11] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1081 [0x12] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1082 [0x13] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1083 [0x14] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1084 [0x15] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1085 [0x20] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1086 [0x21] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1087 [0x22] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1088 [0x23] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1089 [0x24] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1090 [0x25] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1091 [0x26] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1092 [0x27] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1093 [0x28] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1094 [0x29] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1095 [0x2a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1096 [0x30] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1097 [0x31] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1098 [0x32] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1099 [0x33] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1100 [0x34] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1101 [0x35] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1102 [0x38] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1103 [0x39] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1104 [0x3a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1105 [0x4b] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1106 [0x50] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1107 [0x51] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1108 [0x52] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1109 [0x5c] = INAT_MODRM | INAT_VEXOK,
1110 [0x5e] = INAT_MODRM | INAT_VEXOK,
1111 [0x72] = INAT_MODRM | INAT_VEXOK,
1112 [0xb0] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1113 [0xb1] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1114 [0xd2] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1115 [0xd3] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1116 [0xd8] = INAT_MODRM | INAT_MODRM | INAT_MODRM | INAT_MODRM,
1117 [0xda] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1118 [0xdc] = INAT_MODRM | INAT_MODRM,
1119 [0xdd] = INAT_MODRM,
1120 [0xde] = INAT_MODRM,
1121 [0xdf] = INAT_MODRM,
1122 [0xf5] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1123 [0xf6] = INAT_MODRM,
1124 [0xf7] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1125 [0xf8] = INAT_MODRM | INAT_MODRM,
1126 [0xfa] = INAT_MODRM,
1127 [0xfb] = INAT_MODRM,
1128 [0xfc] = INAT_MODRM,
1129};
1130const insn_attr_t inat_escape_table_2_3[INAT_OPCODE_TABLE_SIZE] = {
1131 [0x49] = INAT_MODRM | INAT_VEXOK,
1132 [0x4b] = INAT_MODRM | INAT_VEXOK,
1133 [0x50] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1134 [0x51] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1135 [0x52] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1136 [0x53] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1137 [0x5c] = INAT_MODRM | INAT_VEXOK,
1138 [0x5e] = INAT_MODRM | INAT_VEXOK,
1139 [0x68] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1140 [0x72] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1141 [0x9a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1142 [0x9b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1143 [0xaa] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1144 [0xab] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1145 [0xb0] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1146 [0xcb] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1147 [0xcc] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1148 [0xcd] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1149 [0xda] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1150 [0xf0] = INAT_MODRM | INAT_MODRM,
1151 [0xf1] = INAT_MODRM | INAT_MODRM,
1152 [0xf5] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1153 [0xf6] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1154 [0xf7] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1155 [0xf8] = INAT_MODRM | INAT_MODRM,
1156 [0xfc] = INAT_MODRM,
1157};
1158
1159/* Table: 3-byte opcode 2 (0x0f 0x3a) */
1160const insn_attr_t inat_escape_table_3[INAT_OPCODE_TABLE_SIZE] = {
1161 [0x00] = INAT_VARIANT,
1162 [0x01] = INAT_VARIANT,
1163 [0x02] = INAT_VARIANT,
1164 [0x03] = INAT_VARIANT,
1165 [0x04] = INAT_VARIANT,
1166 [0x05] = INAT_VARIANT,
1167 [0x06] = INAT_VARIANT,
1168 [0x08] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
1169 [0x09] = INAT_VARIANT,
1170 [0x0a] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
1171 [0x0b] = INAT_VARIANT,
1172 [0x0c] = INAT_VARIANT,
1173 [0x0d] = INAT_VARIANT,
1174 [0x0e] = INAT_VARIANT,
1175 [0x0f] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1176 [0x14] = INAT_VARIANT,
1177 [0x15] = INAT_VARIANT,
1178 [0x16] = INAT_VARIANT,
1179 [0x17] = INAT_VARIANT,
1180 [0x18] = INAT_VARIANT,
1181 [0x19] = INAT_VARIANT,
1182 [0x1a] = INAT_VARIANT,
1183 [0x1b] = INAT_VARIANT,
1184 [0x1d] = INAT_VARIANT,
1185 [0x1e] = INAT_VARIANT,
1186 [0x1f] = INAT_VARIANT,
1187 [0x20] = INAT_VARIANT,
1188 [0x21] = INAT_VARIANT,
1189 [0x22] = INAT_VARIANT,
1190 [0x23] = INAT_VARIANT,
1191 [0x25] = INAT_VARIANT,
1192 [0x26] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1193 [0x27] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1194 [0x30] = INAT_VARIANT,
1195 [0x31] = INAT_VARIANT,
1196 [0x32] = INAT_VARIANT,
1197 [0x33] = INAT_VARIANT,
1198 [0x38] = INAT_VARIANT,
1199 [0x39] = INAT_VARIANT,
1200 [0x3a] = INAT_VARIANT,
1201 [0x3b] = INAT_VARIANT,
1202 [0x3e] = INAT_VARIANT,
1203 [0x3f] = INAT_VARIANT,
1204 [0x40] = INAT_VARIANT,
1205 [0x41] = INAT_VARIANT,
1206 [0x42] = INAT_VARIANT,
1207 [0x43] = INAT_VARIANT,
1208 [0x44] = INAT_VARIANT,
1209 [0x46] = INAT_VARIANT,
1210 [0x4a] = INAT_VARIANT,
1211 [0x4b] = INAT_VARIANT,
1212 [0x4c] = INAT_VARIANT,
1213 [0x50] = INAT_VARIANT,
1214 [0x51] = INAT_VARIANT,
1215 [0x54] = INAT_VARIANT,
1216 [0x55] = INAT_VARIANT,
1217 [0x56] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1218 [0x57] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1219 [0x60] = INAT_VARIANT,
1220 [0x61] = INAT_VARIANT,
1221 [0x62] = INAT_VARIANT,
1222 [0x63] = INAT_VARIANT,
1223 [0x66] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1224 [0x67] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1225 [0x70] = INAT_VARIANT,
1226 [0x71] = INAT_VARIANT,
1227 [0x72] = INAT_VARIANT,
1228 [0x73] = INAT_VARIANT,
1229 [0xc2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1230 [0xcc] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
1231 [0xce] = INAT_VARIANT,
1232 [0xcf] = INAT_VARIANT,
1233 [0xde] = INAT_VARIANT,
1234 [0xdf] = INAT_VARIANT,
1235 [0xf0] = INAT_VARIANT,
1236};
1237const insn_attr_t inat_escape_table_3_1[INAT_OPCODE_TABLE_SIZE] = {
1238 [0x00] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1239 [0x01] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1240 [0x02] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1241 [0x03] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1242 [0x04] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1243 [0x05] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1244 [0x06] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1245 [0x08] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1246 [0x09] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1247 [0x0a] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1248 [0x0b] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1249 [0x0c] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1250 [0x0d] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1251 [0x0e] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1252 [0x0f] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1253 [0x14] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1254 [0x15] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1255 [0x16] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1256 [0x17] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1257 [0x18] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1258 [0x19] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1259 [0x1a] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1260 [0x1b] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1261 [0x1d] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1262 [0x1e] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1263 [0x1f] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1264 [0x20] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1265 [0x21] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1266 [0x22] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1267 [0x23] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1268 [0x25] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1269 [0x26] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1270 [0x27] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1271 [0x30] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1272 [0x31] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1273 [0x32] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1274 [0x33] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1275 [0x38] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1276 [0x39] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1277 [0x3a] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1278 [0x3b] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1279 [0x3e] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1280 [0x3f] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1281 [0x40] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1282 [0x41] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1283 [0x42] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1284 [0x43] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1285 [0x44] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1286 [0x46] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1287 [0x4a] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1288 [0x4b] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1289 [0x4c] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1290 [0x50] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1291 [0x51] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1292 [0x54] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1293 [0x55] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1294 [0x56] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1295 [0x57] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1296 [0x60] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1297 [0x61] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1298 [0x62] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1299 [0x63] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1300 [0x66] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1301 [0x67] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1302 [0x70] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1303 [0x71] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1304 [0x72] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1305 [0x73] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1306 [0xce] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1307 [0xcf] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1308 [0xde] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1309 [0xdf] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1310};
1311const insn_attr_t inat_escape_table_3_2[INAT_OPCODE_TABLE_SIZE] = {
1312 [0xc2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1313 [0xf0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
1314};
1315const insn_attr_t inat_escape_table_3_3[INAT_OPCODE_TABLE_SIZE] = {
1316 [0xf0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1317};
1318
1319/* Table: EVEX map 4 */
1320const insn_attr_t inat_avx_table_4[INAT_OPCODE_TABLE_SIZE] = {
1321 [0x00] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1322 [0x01] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1323 [0x02] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1324 [0x03] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1325 [0x08] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1326 [0x09] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1327 [0x0a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1328 [0x0b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1329 [0x10] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1330 [0x11] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1331 [0x12] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1332 [0x13] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1333 [0x18] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1334 [0x19] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1335 [0x1a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1336 [0x1b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1337 [0x20] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1338 [0x21] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1339 [0x22] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1340 [0x23] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1341 [0x24] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1342 [0x28] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1343 [0x29] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1344 [0x2a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1345 [0x2b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1346 [0x2c] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1347 [0x30] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1348 [0x31] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1349 [0x32] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1350 [0x33] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1351 [0x38] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1352 [0x39] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1353 [0x3a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1354 [0x3b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1355 [0x40] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1356 [0x41] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1357 [0x42] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1358 [0x43] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1359 [0x44] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1360 [0x45] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1361 [0x46] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1362 [0x47] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1363 [0x48] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1364 [0x49] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1365 [0x4a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1366 [0x4b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1367 [0x4c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1368 [0x4d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1369 [0x4e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1370 [0x4f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1371 [0x60] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1372 [0x61] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1373 [0x65] = INAT_VARIANT,
1374 [0x66] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1375 [0x69] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1376 [0x6b] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1377 [0x80] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(1) | INAT_VEXOK | INAT_EVEXONLY,
1378 [0x81] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM | INAT_MAKE_GROUP(1) | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1379 [0x83] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(1) | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1380 [0x84] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1381 [0x85] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1382 [0x88] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1383 [0x8f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1384 [0xa5] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1385 [0xad] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1386 [0xaf] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1387 [0xc0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(3) | INAT_VEXOK | INAT_EVEXONLY,
1388 [0xc1] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_MAKE_GROUP(3) | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1389 [0xd0] = INAT_MODRM | INAT_MAKE_GROUP(3) | INAT_VEXOK | INAT_EVEXONLY,
1390 [0xd1] = INAT_MODRM | INAT_MAKE_GROUP(3) | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1391 [0xd2] = INAT_MODRM | INAT_MAKE_GROUP(3) | INAT_VEXOK | INAT_EVEXONLY,
1392 [0xd3] = INAT_MODRM | INAT_MAKE_GROUP(3) | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1393 [0xf0] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1394 [0xf1] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1395 [0xf2] = INAT_VARIANT,
1396 [0xf4] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1397 [0xf5] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_VARIANT,
1398 [0xf6] = INAT_MODRM | INAT_MAKE_GROUP(6) | INAT_VEXOK | INAT_EVEXONLY,
1399 [0xf7] = INAT_MODRM | INAT_MAKE_GROUP(7) | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1400 [0xf8] = INAT_VARIANT,
1401 [0xf9] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1402 [0xfe] = INAT_MAKE_GROUP(8) | INAT_VEXOK | INAT_EVEXONLY,
1403 [0xff] = INAT_MAKE_GROUP(9) | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1404};
1405const insn_attr_t inat_avx_table_4_1[INAT_OPCODE_TABLE_SIZE] = {
1406 [0x01] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1407 [0x03] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1408 [0x09] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1409 [0x0b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1410 [0x11] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1411 [0x13] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1412 [0x19] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1413 [0x1b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1414 [0x21] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1415 [0x23] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1416 [0x24] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1417 [0x29] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1418 [0x2b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1419 [0x2c] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1420 [0x31] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1421 [0x33] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1422 [0x39] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1423 [0x3b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1424 [0x40] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1425 [0x41] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1426 [0x42] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1427 [0x43] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1428 [0x44] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1429 [0x45] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1430 [0x46] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1431 [0x47] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1432 [0x48] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1433 [0x49] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1434 [0x4a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1435 [0x4b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1436 [0x4c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1437 [0x4d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1438 [0x4e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1439 [0x4f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1440 [0x60] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1441 [0x61] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1442 [0x65] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1443 [0x66] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1444 [0x69] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1445 [0x6b] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1446 [0x85] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1447 [0x88] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1448 [0xa5] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1449 [0xad] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1450 [0xaf] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1451 [0xf1] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1452 [0xf4] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1453 [0xf5] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_EVEX_SCALABLE,
1454 [0xf8] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1455};
1456const insn_attr_t inat_avx_table_4_2[INAT_OPCODE_TABLE_SIZE] = {
1457 [0x66] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1458 [0xf0] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1459 [0xf1] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1460 [0xf2] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1461 [0xf8] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1462};
1463const insn_attr_t inat_avx_table_4_3[INAT_OPCODE_TABLE_SIZE] = {
1464 [0x40] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1465 [0x41] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1466 [0x42] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1467 [0x43] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1468 [0x44] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1469 [0x45] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1470 [0x46] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1471 [0x47] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1472 [0x48] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1473 [0x49] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1474 [0x4a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1475 [0x4b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1476 [0x4c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1477 [0x4d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1478 [0x4e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1479 [0x4f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1480 [0xf8] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1481};
1482
1483/* Table: EVEX map 5 */
1484const insn_attr_t inat_avx_table_5[INAT_OPCODE_TABLE_SIZE] = {
1485 [0x10] = INAT_VARIANT,
1486 [0x11] = INAT_VARIANT,
1487 [0x1d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1488 [0x2a] = INAT_VARIANT,
1489 [0x2c] = INAT_VARIANT,
1490 [0x2d] = INAT_VARIANT,
1491 [0x2e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1492 [0x2f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1493 [0x51] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1494 [0x58] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1495 [0x59] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1496 [0x5a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1497 [0x5b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1498 [0x5c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1499 [0x5d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1500 [0x5e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1501 [0x5f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1502 [0x6e] = INAT_VARIANT,
1503 [0x78] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1504 [0x79] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1505 [0x7a] = INAT_VARIANT,
1506 [0x7b] = INAT_VARIANT,
1507 [0x7c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1508 [0x7d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1509 [0x7e] = INAT_VARIANT,
1510};
1511const insn_attr_t inat_avx_table_5_1[INAT_OPCODE_TABLE_SIZE] = {
1512 [0x1d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1513 [0x5a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1514 [0x5b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1515 [0x6e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1516 [0x78] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1517 [0x79] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1518 [0x7a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1519 [0x7b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1520 [0x7c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1521 [0x7d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1522 [0x7e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1523};
1524const insn_attr_t inat_avx_table_5_2[INAT_OPCODE_TABLE_SIZE] = {
1525 [0x10] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1526 [0x11] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1527 [0x2a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1528 [0x2c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1529 [0x2d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1530 [0x51] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1531 [0x58] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1532 [0x59] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1533 [0x5a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1534 [0x5b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1535 [0x5c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1536 [0x5d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1537 [0x5e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1538 [0x5f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1539 [0x78] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1540 [0x79] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1541 [0x7b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1542 [0x7d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1543};
1544const insn_attr_t inat_avx_table_5_3[INAT_OPCODE_TABLE_SIZE] = {
1545 [0x5a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1546 [0x7a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1547 [0x7d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1548};
1549
1550/* Table: EVEX map 6 */
1551const insn_attr_t inat_avx_table_6[INAT_OPCODE_TABLE_SIZE] = {
1552 [0x13] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY | INAT_VARIANT,
1553 [0x2c] = INAT_VARIANT,
1554 [0x2d] = INAT_VARIANT,
1555 [0x42] = INAT_VARIANT,
1556 [0x43] = INAT_VARIANT,
1557 [0x4c] = INAT_VARIANT,
1558 [0x4d] = INAT_VARIANT,
1559 [0x4e] = INAT_VARIANT,
1560 [0x4f] = INAT_VARIANT,
1561 [0x56] = INAT_VARIANT,
1562 [0x57] = INAT_VARIANT,
1563 [0x96] = INAT_VARIANT,
1564 [0x97] = INAT_VARIANT,
1565 [0x98] = INAT_VARIANT,
1566 [0x99] = INAT_VARIANT,
1567 [0x9a] = INAT_VARIANT,
1568 [0x9b] = INAT_VARIANT,
1569 [0x9c] = INAT_VARIANT,
1570 [0x9d] = INAT_VARIANT,
1571 [0x9e] = INAT_VARIANT,
1572 [0x9f] = INAT_VARIANT,
1573 [0xa6] = INAT_VARIANT,
1574 [0xa7] = INAT_VARIANT,
1575 [0xa8] = INAT_VARIANT,
1576 [0xa9] = INAT_VARIANT,
1577 [0xaa] = INAT_VARIANT,
1578 [0xab] = INAT_VARIANT,
1579 [0xac] = INAT_VARIANT,
1580 [0xad] = INAT_VARIANT,
1581 [0xae] = INAT_VARIANT,
1582 [0xaf] = INAT_VARIANT,
1583 [0xb6] = INAT_VARIANT,
1584 [0xb7] = INAT_VARIANT,
1585 [0xb8] = INAT_VARIANT,
1586 [0xb9] = INAT_VARIANT,
1587 [0xba] = INAT_VARIANT,
1588 [0xbb] = INAT_VARIANT,
1589 [0xbc] = INAT_VARIANT,
1590 [0xbd] = INAT_VARIANT,
1591 [0xbe] = INAT_VARIANT,
1592 [0xbf] = INAT_VARIANT,
1593 [0xd6] = INAT_VARIANT,
1594 [0xd7] = INAT_VARIANT,
1595};
1596const insn_attr_t inat_avx_table_6_1[INAT_OPCODE_TABLE_SIZE] = {
1597 [0x13] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1598 [0x2c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1599 [0x2d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1600 [0x42] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1601 [0x43] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1602 [0x4c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1603 [0x4d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1604 [0x4e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1605 [0x4f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1606 [0x96] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1607 [0x97] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1608 [0x98] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1609 [0x99] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1610 [0x9a] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1611 [0x9b] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1612 [0x9c] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1613 [0x9d] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1614 [0x9e] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1615 [0x9f] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1616 [0xa6] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1617 [0xa7] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1618 [0xa8] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1619 [0xa9] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1620 [0xaa] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1621 [0xab] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1622 [0xac] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1623 [0xad] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1624 [0xae] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1625 [0xaf] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1626 [0xb6] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1627 [0xb7] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1628 [0xb8] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1629 [0xb9] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1630 [0xba] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1631 [0xbb] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1632 [0xbc] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1633 [0xbd] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1634 [0xbe] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1635 [0xbf] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1636};
1637const insn_attr_t inat_avx_table_6_2[INAT_OPCODE_TABLE_SIZE] = {
1638 [0x56] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1639 [0x57] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1640 [0xd6] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1641 [0xd7] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1642};
1643const insn_attr_t inat_avx_table_6_3[INAT_OPCODE_TABLE_SIZE] = {
1644 [0x56] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1645 [0x57] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1646 [0xd6] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1647 [0xd7] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1648};
1649
1650/* Table: VEX map 7 */
1651const insn_attr_t inat_avx_table_7[INAT_OPCODE_TABLE_SIZE] = {
1652 [0xf8] = INAT_VARIANT,
1653};
1654const insn_attr_t inat_avx_table_7_2[INAT_OPCODE_TABLE_SIZE] = {
1655 [0xf8] = INAT_MAKE_IMM(INAT_IMM_DWORD) | INAT_MODRM | INAT_VEXOK,
1656};
1657const insn_attr_t inat_avx_table_7_3[INAT_OPCODE_TABLE_SIZE] = {
1658 [0xf8] = INAT_MAKE_IMM(INAT_IMM_DWORD) | INAT_MODRM | INAT_VEXOK,
1659};
1660
1661/* Table: XOP map 8h */
1662const insn_attr_t inat_xop_table_0[INAT_OPCODE_TABLE_SIZE] = {
1663 [0x85] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1664 [0x86] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1665 [0x87] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1666 [0x8e] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1667 [0x8f] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1668 [0x95] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1669 [0x96] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1670 [0x97] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1671 [0x9e] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1672 [0x9f] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1673 [0xa2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1674 [0xa3] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1675 [0xa6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1676 [0xb6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1677 [0xc0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1678 [0xc1] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1679 [0xc2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1680 [0xc3] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1681 [0xcc] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1682 [0xcd] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1683 [0xce] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1684 [0xcf] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1685 [0xec] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1686 [0xed] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1687 [0xee] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1688 [0xef] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_XOPOK,
1689};
1690
1691/* Table: XOP map 9h */
1692const insn_attr_t inat_xop_table_1[INAT_OPCODE_TABLE_SIZE] = {
1693 [0x01] = INAT_MAKE_GROUP(28) | INAT_XOPOK,
1694 [0x02] = INAT_MAKE_GROUP(29) | INAT_XOPOK,
1695 [0x12] = INAT_MAKE_GROUP(30) | INAT_XOPOK,
1696 [0x80] = INAT_MODRM | INAT_XOPOK,
1697 [0x81] = INAT_MODRM | INAT_XOPOK,
1698 [0x82] = INAT_MODRM | INAT_XOPOK,
1699 [0x83] = INAT_MODRM | INAT_XOPOK,
1700 [0x90] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1701 [0x91] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1702 [0x92] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1703 [0x93] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1704 [0x94] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1705 [0x95] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1706 [0x96] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1707 [0x97] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1708 [0x98] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1709 [0x99] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1710 [0x9a] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1711 [0x9b] = INAT_MODRM | INAT_XOPOK | INAT_MODRM | INAT_XOPOK,
1712 [0xc1] = INAT_MODRM | INAT_XOPOK,
1713 [0xc2] = INAT_MODRM | INAT_XOPOK,
1714 [0xc3] = INAT_MODRM | INAT_XOPOK,
1715 [0xc6] = INAT_MODRM | INAT_XOPOK,
1716 [0xc7] = INAT_MODRM | INAT_XOPOK,
1717 [0xcb] = INAT_MODRM | INAT_XOPOK,
1718 [0xd1] = INAT_MODRM | INAT_XOPOK,
1719 [0xd2] = INAT_MODRM | INAT_XOPOK,
1720 [0xd3] = INAT_MODRM | INAT_XOPOK,
1721 [0xd6] = INAT_MODRM | INAT_XOPOK,
1722 [0xd7] = INAT_MODRM | INAT_XOPOK,
1723 [0xdb] = INAT_MODRM | INAT_XOPOK,
1724 [0xe1] = INAT_MODRM | INAT_XOPOK,
1725 [0xe2] = INAT_MODRM | INAT_XOPOK,
1726 [0xe3] = INAT_MODRM | INAT_XOPOK,
1727};
1728
1729/* Table: XOP map Ah */
1730const insn_attr_t inat_xop_table_2[INAT_OPCODE_TABLE_SIZE] = {
1731 [0x10] = INAT_MAKE_IMM(INAT_IMM_DWORD) | INAT_MODRM | INAT_XOPOK,
1732 [0x12] = INAT_MAKE_GROUP(31) | INAT_XOPOK,
1733};
1734
1735/* GrpTable: Grp1 */
1736
1737/* GrpTable: Grp1A */
1738
1739/* GrpTable: Grp2 */
1740
1741/* GrpTable: Grp3_1 */
1742const insn_attr_t inat_group_table_6[INAT_GROUP_TABLE_SIZE] = {
1743 [0x0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
1744 [0x1] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
1745 [0x2] = INAT_MODRM,
1746 [0x3] = INAT_MODRM,
1747 [0x4] = INAT_MODRM,
1748 [0x5] = INAT_MODRM,
1749 [0x6] = INAT_MODRM,
1750 [0x7] = INAT_MODRM,
1751};
1752
1753/* GrpTable: Grp3_2 */
1754const insn_attr_t inat_group_table_7[INAT_GROUP_TABLE_SIZE] = {
1755 [0x0] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM,
1756 [0x1] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM,
1757 [0x2] = INAT_MODRM,
1758 [0x3] = INAT_MODRM,
1759 [0x4] = INAT_MODRM,
1760 [0x5] = INAT_MODRM,
1761 [0x6] = INAT_MODRM,
1762 [0x7] = INAT_MODRM,
1763};
1764
1765/* GrpTable: Grp4 */
1766const insn_attr_t inat_group_table_8[INAT_GROUP_TABLE_SIZE] = {
1767 [0x0] = INAT_MODRM,
1768 [0x1] = INAT_MODRM,
1769};
1770
1771/* GrpTable: Grp5 */
1772const insn_attr_t inat_group_table_9[INAT_GROUP_TABLE_SIZE] = {
1773 [0x0] = INAT_MODRM,
1774 [0x1] = INAT_MODRM,
1775 [0x2] = INAT_MODRM | INAT_FORCE64,
1776 [0x3] = INAT_MODRM,
1777 [0x4] = INAT_MODRM | INAT_FORCE64,
1778 [0x5] = INAT_MODRM,
1779 [0x6] = INAT_MODRM | INAT_FORCE64,
1780};
1781
1782/* GrpTable: Grp6 */
1783const insn_attr_t inat_group_table_10[INAT_GROUP_TABLE_SIZE] = {
1784 [0x0] = INAT_MODRM,
1785 [0x1] = INAT_MODRM,
1786 [0x2] = INAT_MODRM,
1787 [0x3] = INAT_MODRM,
1788 [0x4] = INAT_MODRM,
1789 [0x5] = INAT_MODRM,
1790 [0x6] = INAT_VARIANT,
1791};
1792const insn_attr_t inat_group_table_10_3[INAT_GROUP_TABLE_SIZE] = {
1793 [0x6] = INAT_MODRM,
1794};
1795
1796/* GrpTable: Grp7 */
1797const insn_attr_t inat_group_table_11[INAT_GROUP_TABLE_SIZE] = {
1798 [0x0] = INAT_MODRM,
1799 [0x1] = INAT_MODRM,
1800 [0x2] = INAT_MODRM,
1801 [0x3] = INAT_MODRM,
1802 [0x4] = INAT_MODRM,
1803 [0x5] = INAT_VARIANT,
1804 [0x6] = INAT_MODRM,
1805 [0x7] = INAT_MODRM,
1806};
1807const insn_attr_t inat_group_table_11_2[INAT_GROUP_TABLE_SIZE] = {
1808 [0x5] = INAT_MODRM,
1809};
1810
1811/* GrpTable: Grp8 */
1812
1813/* GrpTable: Grp9 */
1814const insn_attr_t inat_group_table_24[INAT_GROUP_TABLE_SIZE] = {
1815 [0x1] = INAT_MODRM,
1816 [0x6] = INAT_MODRM | INAT_MODRM | INAT_VARIANT,
1817 [0x7] = INAT_MODRM | INAT_MODRM | INAT_VARIANT,
1818};
1819const insn_attr_t inat_group_table_24_1[INAT_GROUP_TABLE_SIZE] = {
1820 [0x6] = INAT_MODRM,
1821};
1822const insn_attr_t inat_group_table_24_2[INAT_GROUP_TABLE_SIZE] = {
1823 [0x6] = INAT_MODRM | INAT_MODRM,
1824 [0x7] = INAT_MODRM,
1825};
1826
1827/* GrpTable: Grp10 */
1828
1829/* GrpTable: Grp11A */
1830const insn_attr_t inat_group_table_4[INAT_GROUP_TABLE_SIZE] = {
1831 [0x0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM,
1832 [0x7] = INAT_MAKE_IMM(INAT_IMM_BYTE),
1833};
1834
1835/* GrpTable: Grp11B */
1836const insn_attr_t inat_group_table_5[INAT_GROUP_TABLE_SIZE] = {
1837 [0x0] = INAT_MAKE_IMM(INAT_IMM_VWORD32) | INAT_MODRM,
1838 [0x7] = INAT_MAKE_IMM(INAT_IMM_VWORD32),
1839};
1840
1841/* GrpTable: Grp12 */
1842const insn_attr_t inat_group_table_16[INAT_GROUP_TABLE_SIZE] = {
1843 [0x2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1844 [0x4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1845 [0x6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1846};
1847const insn_attr_t inat_group_table_16_1[INAT_GROUP_TABLE_SIZE] = {
1848 [0x2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1849 [0x4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1850 [0x6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1851};
1852
1853/* GrpTable: Grp13 */
1854const insn_attr_t inat_group_table_17[INAT_GROUP_TABLE_SIZE] = {
1855 [0x0] = INAT_VARIANT,
1856 [0x1] = INAT_VARIANT,
1857 [0x2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1858 [0x4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1859 [0x6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1860};
1861const insn_attr_t inat_group_table_17_1[INAT_GROUP_TABLE_SIZE] = {
1862 [0x0] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1863 [0x1] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1864 [0x2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1865 [0x4] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK | INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1866 [0x6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1867};
1868
1869/* GrpTable: Grp14 */
1870const insn_attr_t inat_group_table_18[INAT_GROUP_TABLE_SIZE] = {
1871 [0x2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1872 [0x3] = INAT_VARIANT,
1873 [0x6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VARIANT,
1874 [0x7] = INAT_VARIANT,
1875};
1876const insn_attr_t inat_group_table_18_1[INAT_GROUP_TABLE_SIZE] = {
1877 [0x2] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1878 [0x3] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1879 [0x6] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1880 [0x7] = INAT_MAKE_IMM(INAT_IMM_BYTE) | INAT_MODRM | INAT_VEXOK,
1881};
1882
1883/* GrpTable: Grp15 */
1884const insn_attr_t inat_group_table_21[INAT_GROUP_TABLE_SIZE] = {
1885 [0x0] = INAT_VARIANT,
1886 [0x1] = INAT_VARIANT,
1887 [0x2] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
1888 [0x3] = INAT_MODRM | INAT_VEXOK | INAT_VARIANT,
1889 [0x4] = INAT_VARIANT,
1890 [0x5] = INAT_VARIANT,
1891 [0x6] = INAT_VARIANT,
1892};
1893const insn_attr_t inat_group_table_21_1[INAT_GROUP_TABLE_SIZE] = {
1894 [0x6] = INAT_MODRM,
1895};
1896const insn_attr_t inat_group_table_21_2[INAT_GROUP_TABLE_SIZE] = {
1897 [0x0] = INAT_MODRM,
1898 [0x1] = INAT_MODRM,
1899 [0x2] = INAT_MODRM,
1900 [0x3] = INAT_MODRM,
1901 [0x4] = INAT_MODRM,
1902 [0x5] = INAT_MODRM,
1903 [0x6] = INAT_MODRM | INAT_MODRM,
1904};
1905const insn_attr_t inat_group_table_21_3[INAT_GROUP_TABLE_SIZE] = {
1906 [0x6] = INAT_MODRM,
1907};
1908
1909/* GrpTable: Grp16 */
1910const insn_attr_t inat_group_table_13[INAT_GROUP_TABLE_SIZE] = {
1911 [0x0] = INAT_MODRM,
1912 [0x1] = INAT_MODRM,
1913 [0x2] = INAT_MODRM,
1914 [0x3] = INAT_MODRM,
1915};
1916
1917/* GrpTable: Grp17 */
1918const insn_attr_t inat_group_table_27[INAT_GROUP_TABLE_SIZE] = {
1919 [0x1] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1920 [0x2] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1921 [0x3] = INAT_MODRM | INAT_VEXOK | INAT_VEXONLY,
1922};
1923
1924/* GrpTable: Grp18 */
1925const insn_attr_t inat_group_table_25[INAT_GROUP_TABLE_SIZE] = {
1926 [0x1] = INAT_VARIANT,
1927 [0x2] = INAT_VARIANT,
1928 [0x5] = INAT_VARIANT,
1929 [0x6] = INAT_VARIANT,
1930};
1931const insn_attr_t inat_group_table_25_1[INAT_GROUP_TABLE_SIZE] = {
1932 [0x1] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1933 [0x2] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1934 [0x5] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1935 [0x6] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1936};
1937
1938/* GrpTable: Grp19 */
1939const insn_attr_t inat_group_table_26[INAT_GROUP_TABLE_SIZE] = {
1940 [0x1] = INAT_VARIANT,
1941 [0x2] = INAT_VARIANT,
1942 [0x5] = INAT_VARIANT,
1943 [0x6] = INAT_VARIANT,
1944};
1945const insn_attr_t inat_group_table_26_1[INAT_GROUP_TABLE_SIZE] = {
1946 [0x1] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1947 [0x2] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1948 [0x5] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1949 [0x6] = INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY,
1950};
1951
1952/* GrpTable: Grp20 */
1953const insn_attr_t inat_group_table_14[INAT_GROUP_TABLE_SIZE] = {
1954 [0x0] = INAT_MODRM,
1955};
1956
1957/* GrpTable: Grp21 */
1958const insn_attr_t inat_group_table_15[INAT_GROUP_TABLE_SIZE] = {
1959 [0x1] = INAT_VARIANT,
1960};
1961const insn_attr_t inat_group_table_15_2[INAT_GROUP_TABLE_SIZE] = {
1962 [0x1] = INAT_MODRM,
1963};
1964
1965/* GrpTable: GrpP */
1966
1967/* GrpTable: GrpPDLK */
1968
1969/* GrpTable: GrpRNG */
1970
1971/* GrpTable: GrpXOP1 */
1972const insn_attr_t inat_group_table_28[INAT_GROUP_TABLE_SIZE] = {
1973 [0x1] = INAT_MODRM | INAT_XOPOK,
1974 [0x2] = INAT_MODRM | INAT_XOPOK,
1975 [0x3] = INAT_MODRM | INAT_XOPOK,
1976 [0x4] = INAT_MODRM | INAT_XOPOK,
1977 [0x5] = INAT_MODRM | INAT_XOPOK,
1978 [0x6] = INAT_MODRM | INAT_XOPOK,
1979 [0x7] = INAT_MODRM | INAT_XOPOK,
1980};
1981
1982/* GrpTable: GrpXOP2 */
1983const insn_attr_t inat_group_table_29[INAT_GROUP_TABLE_SIZE] = {
1984 [0x1] = INAT_MODRM | INAT_XOPOK,
1985 [0x6] = INAT_MODRM | INAT_XOPOK,
1986};
1987
1988/* GrpTable: GrpXOP3 */
1989const insn_attr_t inat_group_table_30[INAT_GROUP_TABLE_SIZE] = {
1990 [0x0] = INAT_MODRM | INAT_XOPOK,
1991 [0x1] = INAT_MODRM | INAT_XOPOK,
1992};
1993
1994/* GrpTable: GrpXOP4 */
1995const insn_attr_t inat_group_table_31[INAT_GROUP_TABLE_SIZE] = {
1996 [0x0] = INAT_MAKE_IMM(INAT_IMM_DWORD) | INAT_MODRM | INAT_XOPOK,
1997 [0x1] = INAT_MAKE_IMM(INAT_IMM_DWORD) | INAT_MODRM | INAT_XOPOK,
1998};
1999
2000#ifndef __BOOT_COMPRESSED
2001
2002/* Escape opcode map array */
2003const insn_attr_t * const inat_escape_tables[INAT_ESC_MAX + 1][INAT_LSTPFX_MAX + 1] = {
2004 [1][0] = inat_escape_table_1,
2005 [1][1] = inat_escape_table_1_1,
2006 [1][2] = inat_escape_table_1_2,
2007 [1][3] = inat_escape_table_1_3,
2008 [2][0] = inat_escape_table_2,
2009 [2][1] = inat_escape_table_2_1,
2010 [2][2] = inat_escape_table_2_2,
2011 [2][3] = inat_escape_table_2_3,
2012 [3][0] = inat_escape_table_3,
2013 [3][1] = inat_escape_table_3_1,
2014 [3][2] = inat_escape_table_3_2,
2015 [3][3] = inat_escape_table_3_3,
2016};
2017
2018/* Group opcode map array */
2019const insn_attr_t * const inat_group_tables[INAT_GRP_MAX + 1][INAT_LSTPFX_MAX + 1] = {
2020 [4][0] = inat_group_table_4,
2021 [5][0] = inat_group_table_5,
2022 [6][0] = inat_group_table_6,
2023 [7][0] = inat_group_table_7,
2024 [8][0] = inat_group_table_8,
2025 [9][0] = inat_group_table_9,
2026 [10][0] = inat_group_table_10,
2027 [10][3] = inat_group_table_10_3,
2028 [11][0] = inat_group_table_11,
2029 [11][2] = inat_group_table_11_2,
2030 [13][0] = inat_group_table_13,
2031 [14][0] = inat_group_table_14,
2032 [15][0] = inat_group_table_15,
2033 [15][2] = inat_group_table_15_2,
2034 [16][0] = inat_group_table_16,
2035 [16][1] = inat_group_table_16_1,
2036 [17][0] = inat_group_table_17,
2037 [17][1] = inat_group_table_17_1,
2038 [18][0] = inat_group_table_18,
2039 [18][1] = inat_group_table_18_1,
2040 [21][0] = inat_group_table_21,
2041 [21][1] = inat_group_table_21_1,
2042 [21][2] = inat_group_table_21_2,
2043 [21][3] = inat_group_table_21_3,
2044 [24][0] = inat_group_table_24,
2045 [24][1] = inat_group_table_24_1,
2046 [24][2] = inat_group_table_24_2,
2047 [25][0] = inat_group_table_25,
2048 [25][1] = inat_group_table_25_1,
2049 [26][0] = inat_group_table_26,
2050 [26][1] = inat_group_table_26_1,
2051 [27][0] = inat_group_table_27,
2052 [28][0] = inat_group_table_28,
2053 [29][0] = inat_group_table_29,
2054 [30][0] = inat_group_table_30,
2055 [31][0] = inat_group_table_31,
2056};
2057
2058/* AVX opcode map array */
2059const insn_attr_t * const inat_avx_tables[X86_VEX_M_MAX + 1][INAT_LSTPFX_MAX + 1] = {
2060 [1][0] = inat_escape_table_1,
2061 [1][1] = inat_escape_table_1_1,
2062 [1][2] = inat_escape_table_1_2,
2063 [1][3] = inat_escape_table_1_3,
2064 [2][0] = inat_escape_table_2,
2065 [2][1] = inat_escape_table_2_1,
2066 [2][2] = inat_escape_table_2_2,
2067 [2][3] = inat_escape_table_2_3,
2068 [3][0] = inat_escape_table_3,
2069 [3][1] = inat_escape_table_3_1,
2070 [3][2] = inat_escape_table_3_2,
2071 [3][3] = inat_escape_table_3_3,
2072 [4][0] = inat_avx_table_4,
2073 [4][1] = inat_avx_table_4_1,
2074 [4][2] = inat_avx_table_4_2,
2075 [4][3] = inat_avx_table_4_3,
2076 [5][0] = inat_avx_table_5,
2077 [5][1] = inat_avx_table_5_1,
2078 [5][2] = inat_avx_table_5_2,
2079 [5][3] = inat_avx_table_5_3,
2080 [6][0] = inat_avx_table_6,
2081 [6][1] = inat_avx_table_6_1,
2082 [6][2] = inat_avx_table_6_2,
2083 [6][3] = inat_avx_table_6_3,
2084 [7][0] = inat_avx_table_7,
2085 [7][2] = inat_avx_table_7_2,
2086 [7][3] = inat_avx_table_7_3,
2087};
2088
2089/* XOP opcode map array */
2090const insn_attr_t * const inat_xop_tables[X86_XOP_M_MAX - X86_XOP_M_MIN + 1] = {
2091 [0] = inat_xop_table_0,
2092 [1] = inat_xop_table_1,
2093 [2] = inat_xop_table_2,
2094};
2095#else /* !__BOOT_COMPRESSED */
2096
2097/* Escape opcode map array */
2098static const insn_attr_t *inat_escape_tables[INAT_ESC_MAX + 1][INAT_LSTPFX_MAX + 1];
2099
2100/* Group opcode map array */
2101static const insn_attr_t *inat_group_tables[INAT_GRP_MAX + 1][INAT_LSTPFX_MAX + 1];
2102
2103/* AVX opcode map array */
2104static const insn_attr_t *inat_avx_tables[X86_VEX_M_MAX + 1][INAT_LSTPFX_MAX + 1];
2105
2106/* XOP opcode map array */
2107static const insn_attr_t *inat_xop_tables[X86_XOP_M_MAX - X86_XOP_M_MIN + 1];
2108
2109static void inat_init_tables(void)
2110{
2111 /* Print Escape opcode map array */
2112 inat_escape_tables[1][0] = inat_escape_table_1;
2113 inat_escape_tables[1][1] = inat_escape_table_1_1;
2114 inat_escape_tables[1][2] = inat_escape_table_1_2;
2115 inat_escape_tables[1][3] = inat_escape_table_1_3;
2116 inat_escape_tables[2][0] = inat_escape_table_2;
2117 inat_escape_tables[2][1] = inat_escape_table_2_1;
2118 inat_escape_tables[2][2] = inat_escape_table_2_2;
2119 inat_escape_tables[2][3] = inat_escape_table_2_3;
2120 inat_escape_tables[3][0] = inat_escape_table_3;
2121 inat_escape_tables[3][1] = inat_escape_table_3_1;
2122 inat_escape_tables[3][2] = inat_escape_table_3_2;
2123 inat_escape_tables[3][3] = inat_escape_table_3_3;
2124
2125 /* Print Group opcode map array */
2126 inat_group_tables[4][0] = inat_group_table_4;
2127 inat_group_tables[5][0] = inat_group_table_5;
2128 inat_group_tables[6][0] = inat_group_table_6;
2129 inat_group_tables[7][0] = inat_group_table_7;
2130 inat_group_tables[8][0] = inat_group_table_8;
2131 inat_group_tables[9][0] = inat_group_table_9;
2132 inat_group_tables[10][0] = inat_group_table_10;
2133 inat_group_tables[10][3] = inat_group_table_10_3;
2134 inat_group_tables[11][0] = inat_group_table_11;
2135 inat_group_tables[11][2] = inat_group_table_11_2;
2136 inat_group_tables[13][0] = inat_group_table_13;
2137 inat_group_tables[14][0] = inat_group_table_14;
2138 inat_group_tables[15][0] = inat_group_table_15;
2139 inat_group_tables[15][2] = inat_group_table_15_2;
2140 inat_group_tables[16][0] = inat_group_table_16;
2141 inat_group_tables[16][1] = inat_group_table_16_1;
2142 inat_group_tables[17][0] = inat_group_table_17;
2143 inat_group_tables[17][1] = inat_group_table_17_1;
2144 inat_group_tables[18][0] = inat_group_table_18;
2145 inat_group_tables[18][1] = inat_group_table_18_1;
2146 inat_group_tables[21][0] = inat_group_table_21;
2147 inat_group_tables[21][1] = inat_group_table_21_1;
2148 inat_group_tables[21][2] = inat_group_table_21_2;
2149 inat_group_tables[21][3] = inat_group_table_21_3;
2150 inat_group_tables[24][0] = inat_group_table_24;
2151 inat_group_tables[24][1] = inat_group_table_24_1;
2152 inat_group_tables[24][2] = inat_group_table_24_2;
2153 inat_group_tables[25][0] = inat_group_table_25;
2154 inat_group_tables[25][1] = inat_group_table_25_1;
2155 inat_group_tables[26][0] = inat_group_table_26;
2156 inat_group_tables[26][1] = inat_group_table_26_1;
2157 inat_group_tables[27][0] = inat_group_table_27;
2158 inat_group_tables[28][0] = inat_group_table_28;
2159 inat_group_tables[29][0] = inat_group_table_29;
2160 inat_group_tables[30][0] = inat_group_table_30;
2161 inat_group_tables[31][0] = inat_group_table_31;
2162
2163 /* Print AVX opcode map array */
2164 inat_avx_tables[1][0] = inat_escape_table_1;
2165 inat_avx_tables[1][1] = inat_escape_table_1_1;
2166 inat_avx_tables[1][2] = inat_escape_table_1_2;
2167 inat_avx_tables[1][3] = inat_escape_table_1_3;
2168 inat_avx_tables[2][0] = inat_escape_table_2;
2169 inat_avx_tables[2][1] = inat_escape_table_2_1;
2170 inat_avx_tables[2][2] = inat_escape_table_2_2;
2171 inat_avx_tables[2][3] = inat_escape_table_2_3;
2172 inat_avx_tables[3][0] = inat_escape_table_3;
2173 inat_avx_tables[3][1] = inat_escape_table_3_1;
2174 inat_avx_tables[3][2] = inat_escape_table_3_2;
2175 inat_avx_tables[3][3] = inat_escape_table_3_3;
2176 inat_avx_tables[4][0] = inat_avx_table_4;
2177 inat_avx_tables[4][1] = inat_avx_table_4_1;
2178 inat_avx_tables[4][2] = inat_avx_table_4_2;
2179 inat_avx_tables[4][3] = inat_avx_table_4_3;
2180 inat_avx_tables[5][0] = inat_avx_table_5;
2181 inat_avx_tables[5][1] = inat_avx_table_5_1;
2182 inat_avx_tables[5][2] = inat_avx_table_5_2;
2183 inat_avx_tables[5][3] = inat_avx_table_5_3;
2184 inat_avx_tables[6][0] = inat_avx_table_6;
2185 inat_avx_tables[6][1] = inat_avx_table_6_1;
2186 inat_avx_tables[6][2] = inat_avx_table_6_2;
2187 inat_avx_tables[6][3] = inat_avx_table_6_3;
2188 inat_avx_tables[7][0] = inat_avx_table_7;
2189 inat_avx_tables[7][2] = inat_avx_table_7_2;
2190 inat_avx_tables[7][3] = inat_avx_table_7_3;
2191
2192 /* Print XOP opcode map array */
2193 inat_xop_tables[0] = inat_xop_table_0;
2194 inat_xop_tables[1] = inat_xop_table_1;
2195 inat_xop_tables[2] = inat_xop_table_2;
2196}
2197#endif
2198

source code of linux/tools/objtool/arch/x86/lib/inat-tables.c