1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|*                                                                            *|
3|*Target Register Enum Values                                                 *|
4|*                                                                            *|
5|* Automatically generated file, do not edit!                                 *|
6|*                                                                            *|
7\*===----------------------------------------------------------------------===*/
8
9/* Capstone Disassembly Engine, http://www.capstone-engine.org */
10/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
11
12
13#ifdef GET_REGINFO_ENUM
14#undef GET_REGINFO_ENUM
15
16enum {
17  X86_NoRegister,
18  X86_AH = 1,
19  X86_AL = 2,
20  X86_AX = 3,
21  X86_BH = 4,
22  X86_BL = 5,
23  X86_BP = 6,
24  X86_BPL = 7,
25  X86_BX = 8,
26  X86_CH = 9,
27  X86_CL = 10,
28  X86_CS = 11,
29  X86_CX = 12,
30  X86_DH = 13,
31  X86_DI = 14,
32  X86_DIL = 15,
33  X86_DL = 16,
34  X86_DS = 17,
35  X86_DX = 18,
36  X86_EAX = 19,
37  X86_EBP = 20,
38  X86_EBX = 21,
39  X86_ECX = 22,
40  X86_EDI = 23,
41  X86_EDX = 24,
42  X86_EFLAGS = 25,
43  X86_EIP = 26,
44  X86_EIZ = 27,
45  X86_ES = 28,
46  X86_ESI = 29,
47  X86_ESP = 30,
48  X86_FPSW = 31,
49  X86_FS = 32,
50  X86_GS = 33,
51  X86_IP = 34,
52  X86_RAX = 35,
53  X86_RBP = 36,
54  X86_RBX = 37,
55  X86_RCX = 38,
56  X86_RDI = 39,
57  X86_RDX = 40,
58  X86_RIP = 41,
59  X86_RIZ = 42,
60  X86_RSI = 43,
61  X86_RSP = 44,
62  X86_SI = 45,
63  X86_SIL = 46,
64  X86_SP = 47,
65  X86_SPL = 48,
66  X86_SS = 49,
67  X86_CR0 = 50,
68  X86_CR1 = 51,
69  X86_CR2 = 52,
70  X86_CR3 = 53,
71  X86_CR4 = 54,
72  X86_CR5 = 55,
73  X86_CR6 = 56,
74  X86_CR7 = 57,
75  X86_CR8 = 58,
76  X86_CR9 = 59,
77  X86_CR10 = 60,
78  X86_CR11 = 61,
79  X86_CR12 = 62,
80  X86_CR13 = 63,
81  X86_CR14 = 64,
82  X86_CR15 = 65,
83  X86_DR0 = 66,
84  X86_DR1 = 67,
85  X86_DR2 = 68,
86  X86_DR3 = 69,
87  X86_DR4 = 70,
88  X86_DR5 = 71,
89  X86_DR6 = 72,
90  X86_DR7 = 73,
91  X86_DR8 = 74,
92  X86_DR9 = 75,
93  X86_DR10 = 76,
94  X86_DR11 = 77,
95  X86_DR12 = 78,
96  X86_DR13 = 79,
97  X86_DR14 = 80,
98  X86_DR15 = 81,
99  X86_FP0 = 82,
100  X86_FP1 = 83,
101  X86_FP2 = 84,
102  X86_FP3 = 85,
103  X86_FP4 = 86,
104  X86_FP5 = 87,
105  X86_FP6 = 88,
106  X86_FP7 = 89,
107  X86_K0 = 90,
108  X86_K1 = 91,
109  X86_K2 = 92,
110  X86_K3 = 93,
111  X86_K4 = 94,
112  X86_K5 = 95,
113  X86_K6 = 96,
114  X86_K7 = 97,
115  X86_MM0 = 98,
116  X86_MM1 = 99,
117  X86_MM2 = 100,
118  X86_MM3 = 101,
119  X86_MM4 = 102,
120  X86_MM5 = 103,
121  X86_MM6 = 104,
122  X86_MM7 = 105,
123  X86_R8 = 106,
124  X86_R9 = 107,
125  X86_R10 = 108,
126  X86_R11 = 109,
127  X86_R12 = 110,
128  X86_R13 = 111,
129  X86_R14 = 112,
130  X86_R15 = 113,
131  X86_ST0 = 114,
132  X86_ST1 = 115,
133  X86_ST2 = 116,
134  X86_ST3 = 117,
135  X86_ST4 = 118,
136  X86_ST5 = 119,
137  X86_ST6 = 120,
138  X86_ST7 = 121,
139  X86_XMM0 = 122,
140  X86_XMM1 = 123,
141  X86_XMM2 = 124,
142  X86_XMM3 = 125,
143  X86_XMM4 = 126,
144  X86_XMM5 = 127,
145  X86_XMM6 = 128,
146  X86_XMM7 = 129,
147  X86_XMM8 = 130,
148  X86_XMM9 = 131,
149  X86_XMM10 = 132,
150  X86_XMM11 = 133,
151  X86_XMM12 = 134,
152  X86_XMM13 = 135,
153  X86_XMM14 = 136,
154  X86_XMM15 = 137,
155  X86_XMM16 = 138,
156  X86_XMM17 = 139,
157  X86_XMM18 = 140,
158  X86_XMM19 = 141,
159  X86_XMM20 = 142,
160  X86_XMM21 = 143,
161  X86_XMM22 = 144,
162  X86_XMM23 = 145,
163  X86_XMM24 = 146,
164  X86_XMM25 = 147,
165  X86_XMM26 = 148,
166  X86_XMM27 = 149,
167  X86_XMM28 = 150,
168  X86_XMM29 = 151,
169  X86_XMM30 = 152,
170  X86_XMM31 = 153,
171  X86_YMM0 = 154,
172  X86_YMM1 = 155,
173  X86_YMM2 = 156,
174  X86_YMM3 = 157,
175  X86_YMM4 = 158,
176  X86_YMM5 = 159,
177  X86_YMM6 = 160,
178  X86_YMM7 = 161,
179  X86_YMM8 = 162,
180  X86_YMM9 = 163,
181  X86_YMM10 = 164,
182  X86_YMM11 = 165,
183  X86_YMM12 = 166,
184  X86_YMM13 = 167,
185  X86_YMM14 = 168,
186  X86_YMM15 = 169,
187  X86_YMM16 = 170,
188  X86_YMM17 = 171,
189  X86_YMM18 = 172,
190  X86_YMM19 = 173,
191  X86_YMM20 = 174,
192  X86_YMM21 = 175,
193  X86_YMM22 = 176,
194  X86_YMM23 = 177,
195  X86_YMM24 = 178,
196  X86_YMM25 = 179,
197  X86_YMM26 = 180,
198  X86_YMM27 = 181,
199  X86_YMM28 = 182,
200  X86_YMM29 = 183,
201  X86_YMM30 = 184,
202  X86_YMM31 = 185,
203  X86_ZMM0 = 186,
204  X86_ZMM1 = 187,
205  X86_ZMM2 = 188,
206  X86_ZMM3 = 189,
207  X86_ZMM4 = 190,
208  X86_ZMM5 = 191,
209  X86_ZMM6 = 192,
210  X86_ZMM7 = 193,
211  X86_ZMM8 = 194,
212  X86_ZMM9 = 195,
213  X86_ZMM10 = 196,
214  X86_ZMM11 = 197,
215  X86_ZMM12 = 198,
216  X86_ZMM13 = 199,
217  X86_ZMM14 = 200,
218  X86_ZMM15 = 201,
219  X86_ZMM16 = 202,
220  X86_ZMM17 = 203,
221  X86_ZMM18 = 204,
222  X86_ZMM19 = 205,
223  X86_ZMM20 = 206,
224  X86_ZMM21 = 207,
225  X86_ZMM22 = 208,
226  X86_ZMM23 = 209,
227  X86_ZMM24 = 210,
228  X86_ZMM25 = 211,
229  X86_ZMM26 = 212,
230  X86_ZMM27 = 213,
231  X86_ZMM28 = 214,
232  X86_ZMM29 = 215,
233  X86_ZMM30 = 216,
234  X86_ZMM31 = 217,
235  X86_R8B = 218,
236  X86_R9B = 219,
237  X86_R10B = 220,
238  X86_R11B = 221,
239  X86_R12B = 222,
240  X86_R13B = 223,
241  X86_R14B = 224,
242  X86_R15B = 225,
243  X86_R8D = 226,
244  X86_R9D = 227,
245  X86_R10D = 228,
246  X86_R11D = 229,
247  X86_R12D = 230,
248  X86_R13D = 231,
249  X86_R14D = 232,
250  X86_R15D = 233,
251  X86_R8W = 234,
252  X86_R9W = 235,
253  X86_R10W = 236,
254  X86_R11W = 237,
255  X86_R12W = 238,
256  X86_R13W = 239,
257  X86_R14W = 240,
258  X86_R15W = 241,
259  X86_NUM_TARGET_REGS 	// 242
260};
261
262// Register classes
263enum {
264  X86_GR8RegClassID = 0,
265  X86_GR8_NOREXRegClassID = 1,
266  X86_VK1RegClassID = 2,
267  X86_VK2RegClassID = 3,
268  X86_VK4RegClassID = 4,
269  X86_VK8RegClassID = 5,
270  X86_VK1WMRegClassID = 6,
271  X86_VK2WMRegClassID = 7,
272  X86_VK4WMRegClassID = 8,
273  X86_VK8WMRegClassID = 9,
274  X86_GR8_ABCD_HRegClassID = 10,
275  X86_GR8_ABCD_LRegClassID = 11,
276  X86_GR16RegClassID = 12,
277  X86_GR16_NOREXRegClassID = 13,
278  X86_VK16RegClassID = 14,
279  X86_VK16WMRegClassID = 15,
280  X86_SEGMENT_REGRegClassID = 16,
281  X86_GR16_ABCDRegClassID = 17,
282  X86_FPCCRRegClassID = 18,
283  X86_FR32XRegClassID = 19,
284  X86_FR32RegClassID = 20,
285  X86_GR32RegClassID = 21,
286  X86_GR32_NOAXRegClassID = 22,
287  X86_GR32_NOSPRegClassID = 23,
288  X86_GR32_NOAX_and_GR32_NOSPRegClassID = 24,
289  X86_DEBUG_REGRegClassID = 25,
290  X86_GR32_NOREXRegClassID = 26,
291  X86_VK32RegClassID = 27,
292  X86_GR32_NOAX_and_GR32_NOREXRegClassID = 28,
293  X86_GR32_NOREX_NOSPRegClassID = 29,
294  X86_RFP32RegClassID = 30,
295  X86_VK32WMRegClassID = 31,
296  X86_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID = 32,
297  X86_GR32_ABCDRegClassID = 33,
298  X86_GR32_ABCD_and_GR32_NOAXRegClassID = 34,
299  X86_GR32_TCRegClassID = 35,
300  X86_GR32_ADRegClassID = 36,
301  X86_GR32_NOAX_and_GR32_TCRegClassID = 37,
302  X86_CCRRegClassID = 38,
303  X86_GR32_AD_and_GR32_NOAXRegClassID = 39,
304  X86_RFP64RegClassID = 40,
305  X86_FR64XRegClassID = 41,
306  X86_GR64RegClassID = 42,
307  X86_CONTROL_REGRegClassID = 43,
308  X86_FR64RegClassID = 44,
309  X86_GR64_with_sub_8bitRegClassID = 45,
310  X86_GR64_NOSPRegClassID = 46,
311  X86_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 47,
312  X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPRegClassID = 48,
313  X86_GR64_NOREXRegClassID = 49,
314  X86_GR64_TCRegClassID = 50,
315  X86_GR64_NOSP_and_GR64_TCRegClassID = 51,
316  X86_GR64_with_sub_16bit_in_GR16_NOREXRegClassID = 52,
317  X86_VK64RegClassID = 53,
318  X86_VR64RegClassID = 54,
319  X86_GR64_NOREX_NOSPRegClassID = 55,
320  X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 56,
321  X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID = 57,
322  X86_VK64WMRegClassID = 58,
323  X86_GR64_NOREX_and_GR64_TCRegClassID = 59,
324  X86_GR64_TCW64RegClassID = 60,
325  X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID = 61,
326  X86_GR64_NOREX_NOSP_and_GR64_TCRegClassID = 62,
327  X86_GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 63,
328  X86_GR64_ABCDRegClassID = 64,
329  X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID = 65,
330  X86_GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXRegClassID = 66,
331  X86_GR64_with_sub_32bit_in_GR32_TCRegClassID = 67,
332  X86_GR64_with_sub_32bit_in_GR32_ADRegClassID = 68,
333  X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCRegClassID = 69,
334  X86_GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXRegClassID = 70,
335  X86_RSTRegClassID = 71,
336  X86_RFP80RegClassID = 72,
337  X86_VR128XRegClassID = 73,
338  X86_VR128RegClassID = 74,
339  X86_VR256XRegClassID = 75,
340  X86_VR256RegClassID = 76,
341  X86_VR512RegClassID = 77,
342  X86_VR512_with_sub_xmm_in_FR32RegClassID = 78,
343};
344
345#endif // GET_REGINFO_ENUM
346
347#ifdef GET_REGINFO_MC_DESC
348#undef GET_REGINFO_MC_DESC
349
350static const MCPhysReg X86RegDiffLists[] = {
351  /* 0 */ 0, 1, 0,
352  /* 3 */ 2, 1, 0,
353  /* 6 */ 5, 1, 0,
354  /* 9 */ 65522, 16, 1, 0,
355  /* 13 */ 65522, 17, 1, 0,
356  /* 17 */ 65427, 1, 0,
357  /* 20 */ 65475, 1, 0,
358  /* 23 */ 65520, 65522, 1, 0,
359  /* 27 */ 65520, 65527, 1, 0,
360  /* 31 */ 8, 2, 0,
361  /* 34 */ 4, 0,
362  /* 36 */ 65521, 8, 0,
363  /* 39 */ 9, 0,
364  /* 41 */ 13, 0,
365  /* 43 */ 65535, 65519, 14, 0,
366  /* 47 */ 65535, 65520, 14, 0,
367  /* 51 */ 65528, 15, 0,
368  /* 54 */ 2, 6, 16, 0,
369  /* 58 */ 5, 6, 16, 0,
370  /* 62 */ 65535, 9, 16, 0,
371  /* 66 */ 2, 10, 16, 0,
372  /* 70 */ 3, 10, 16, 0,
373  /* 74 */ 3, 13, 16, 0,
374  /* 78 */ 4, 13, 16, 0,
375  /* 82 */ 65535, 14, 16, 0,
376  /* 86 */ 1, 16, 16, 0,
377  /* 90 */ 2, 16, 16, 0,
378  /* 94 */ 17, 0,
379  /* 96 */ 32, 32, 0,
380  /* 99 */ 65221, 0,
381  /* 101 */ 65381, 0,
382  /* 103 */ 65389, 0,
383  /* 105 */ 65397, 0,
384  /* 107 */ 16, 65528, 65416, 0,
385  /* 111 */ 65445, 0,
386  /* 113 */ 65477, 0,
387  /* 115 */ 65504, 65504, 0,
388  /* 118 */ 65509, 0,
389  /* 120 */ 120, 8, 65520, 0,
390  /* 124 */ 65523, 0,
391  /* 126 */ 65530, 0,
392  /* 128 */ 65531, 0,
393  /* 130 */ 65532, 0,
394  /* 132 */ 65520, 65530, 65534, 65533, 0,
395  /* 137 */ 65534, 0,
396  /* 139 */ 65520, 65523, 65533, 65535, 0,
397  /* 144 */ 65520, 65526, 65534, 65535, 0,
398  /* 149 */ 65520, 65520, 65535, 65535, 0,
399};
400
401static const uint16_t X86SubRegIdxLists[] = {
402  /* 0 */ 4, 3, 1, 0,
403  /* 4 */ 4, 3, 1, 2, 0,
404  /* 9 */ 4, 3, 0,
405  /* 12 */ 6, 5, 0,
406};
407
408static MCRegisterDesc X86RegDesc[] = { // Descriptors
409  { 5, 0, 0, 0, 0, 0 },
410  { 850, 2, 90, 3, 2273, 0 },
411  { 878, 2, 86, 3, 2273, 0 },
412  { 996, 151, 87, 6, 0, 2 },
413  { 853, 2, 78, 3, 2193, 0 },
414  { 881, 2, 74, 3, 2193, 0 },
415  { 907, 1, 83, 2, 544, 3 },
416  { 898, 2, 82, 3, 544, 0 },
417  { 1004, 141, 75, 6, 48, 2 },
418  { 856, 2, 70, 3, 2081, 0 },
419  { 884, 2, 66, 3, 2081, 0 },
420  { 930, 2, 2, 3, 2081, 0 },
421  { 1012, 146, 67, 6, 96, 2 },
422  { 859, 2, 58, 3, 2049, 0 },
423  { 863, 1, 63, 2, 624, 3 },
424  { 890, 2, 62, 3, 624, 0 },
425  { 887, 2, 54, 3, 2017, 0 },
426  { 933, 2, 2, 3, 2017, 0 },
427  { 1020, 134, 55, 6, 496, 2 },
428  { 995, 150, 56, 5, 0, 2 },
429  { 906, 24, 56, 1, 544, 3 },
430  { 1003, 140, 56, 5, 323, 2 },
431  { 1011, 145, 56, 5, 323, 2 },
432  { 862, 28, 56, 1, 624, 3 },
433  { 1019, 133, 56, 5, 496, 2 },
434  { 942, 2, 2, 3, 1985, 0 },
435  { 914, 37, 52, 10, 1985, 5 },
436  { 1027, 2, 2, 3, 1985, 0 },
437  { 936, 2, 2, 3, 1985, 0 },
438  { 870, 10, 45, 1, 1985, 3 },
439  { 922, 14, 45, 1, 1985, 3 },
440  { 990, 2, 2, 3, 1985, 0 },
441  { 939, 2, 2, 3, 1985, 0 },
442  { 946, 2, 2, 3, 1985, 0 },
443  { 915, 2, 51, 3, 656, 0 },
444  { 999, 149, 2, 4, 0, 2 },
445  { 910, 23, 2, 0, 544, 3 },
446  { 1007, 139, 2, 4, 275, 2 },
447  { 1015, 144, 2, 4, 275, 2 },
448  { 866, 27, 2, 0, 624, 3 },
449  { 1023, 132, 2, 4, 496, 2 },
450  { 918, 36, 2, 9, 1592, 5 },
451  { 1031, 2, 2, 3, 1592, 0 },
452  { 874, 9, 2, 0, 1889, 3 },
453  { 926, 13, 2, 0, 1889, 3 },
454  { 871, 1, 48, 2, 896, 3 },
455  { 894, 2, 47, 3, 896, 0 },
456  { 923, 1, 44, 2, 1504, 3 },
457  { 902, 2, 43, 3, 1504, 0 },
458  { 949, 2, 2, 3, 1889, 0 },
459  { 86, 2, 2, 3, 1889, 0 },
460  { 184, 2, 2, 3, 1889, 0 },
461  { 264, 2, 2, 3, 1889, 0 },
462  { 344, 2, 2, 3, 1889, 0 },
463  { 424, 2, 2, 3, 1889, 0 },
464  { 504, 2, 2, 3, 1889, 0 },
465  { 574, 2, 2, 3, 1889, 0 },
466  { 644, 2, 2, 3, 1889, 0 },
467  { 707, 2, 2, 3, 1889, 0 },
468  { 766, 2, 2, 3, 1889, 0 },
469  { 18, 2, 2, 3, 1889, 0 },
470  { 116, 2, 2, 3, 1889, 0 },
471  { 214, 2, 2, 3, 1889, 0 },
472  { 294, 2, 2, 3, 1889, 0 },
473  { 374, 2, 2, 3, 1889, 0 },
474  { 454, 2, 2, 3, 1889, 0 },
475  { 90, 2, 2, 3, 1889, 0 },
476  { 188, 2, 2, 3, 1889, 0 },
477  { 268, 2, 2, 3, 1889, 0 },
478  { 348, 2, 2, 3, 1889, 0 },
479  { 428, 2, 2, 3, 1889, 0 },
480  { 508, 2, 2, 3, 1889, 0 },
481  { 578, 2, 2, 3, 1889, 0 },
482  { 648, 2, 2, 3, 1889, 0 },
483  { 711, 2, 2, 3, 1889, 0 },
484  { 770, 2, 2, 3, 1889, 0 },
485  { 23, 2, 2, 3, 1889, 0 },
486  { 121, 2, 2, 3, 1889, 0 },
487  { 219, 2, 2, 3, 1889, 0 },
488  { 299, 2, 2, 3, 1889, 0 },
489  { 379, 2, 2, 3, 1889, 0 },
490  { 459, 2, 2, 3, 1889, 0 },
491  { 82, 2, 2, 3, 1889, 0 },
492  { 180, 2, 2, 3, 1889, 0 },
493  { 260, 2, 2, 3, 1889, 0 },
494  { 340, 2, 2, 3, 1889, 0 },
495  { 420, 2, 2, 3, 1889, 0 },
496  { 500, 2, 2, 3, 1889, 0 },
497  { 570, 2, 2, 3, 1889, 0 },
498  { 640, 2, 2, 3, 1889, 0 },
499  { 64, 2, 2, 3, 1889, 0 },
500  { 162, 2, 2, 3, 1889, 0 },
501  { 242, 2, 2, 3, 1889, 0 },
502  { 322, 2, 2, 3, 1889, 0 },
503  { 402, 2, 2, 3, 1889, 0 },
504  { 482, 2, 2, 3, 1889, 0 },
505  { 552, 2, 2, 3, 1889, 0 },
506  { 622, 2, 2, 3, 1889, 0 },
507  { 68, 2, 2, 3, 1889, 0 },
508  { 166, 2, 2, 3, 1889, 0 },
509  { 246, 2, 2, 3, 1889, 0 },
510  { 326, 2, 2, 3, 1889, 0 },
511  { 406, 2, 2, 3, 1889, 0 },
512  { 486, 2, 2, 3, 1889, 0 },
513  { 556, 2, 2, 3, 1889, 0 },
514  { 626, 2, 2, 3, 1889, 0 },
515  { 708, 120, 2, 0, 1889, 3 },
516  { 767, 120, 2, 0, 1889, 3 },
517  { 19, 120, 2, 0, 1889, 3 },
518  { 117, 120, 2, 0, 1889, 3 },
519  { 215, 120, 2, 0, 1889, 3 },
520  { 295, 120, 2, 0, 1889, 3 },
521  { 375, 120, 2, 0, 1889, 3 },
522  { 455, 120, 2, 0, 1889, 3 },
523  { 94, 2, 2, 3, 1889, 0 },
524  { 192, 2, 2, 3, 1889, 0 },
525  { 272, 2, 2, 3, 1889, 0 },
526  { 352, 2, 2, 3, 1889, 0 },
527  { 432, 2, 2, 3, 1889, 0 },
528  { 512, 2, 2, 3, 1889, 0 },
529  { 582, 2, 2, 3, 1889, 0 },
530  { 652, 2, 2, 3, 1889, 0 },
531  { 67, 2, 96, 3, 1889, 0 },
532  { 165, 2, 96, 3, 1889, 0 },
533  { 245, 2, 96, 3, 1889, 0 },
534  { 325, 2, 96, 3, 1889, 0 },
535  { 405, 2, 96, 3, 1889, 0 },
536  { 485, 2, 96, 3, 1889, 0 },
537  { 555, 2, 96, 3, 1889, 0 },
538  { 625, 2, 96, 3, 1889, 0 },
539  { 692, 2, 96, 3, 1889, 0 },
540  { 751, 2, 96, 3, 1889, 0 },
541  { 0, 2, 96, 3, 1889, 0 },
542  { 98, 2, 96, 3, 1889, 0 },
543  { 196, 2, 96, 3, 1889, 0 },
544  { 276, 2, 96, 3, 1889, 0 },
545  { 356, 2, 96, 3, 1889, 0 },
546  { 436, 2, 96, 3, 1889, 0 },
547  { 516, 2, 96, 3, 1889, 0 },
548  { 586, 2, 96, 3, 1889, 0 },
549  { 656, 2, 96, 3, 1889, 0 },
550  { 715, 2, 96, 3, 1889, 0 },
551  { 28, 2, 96, 3, 1889, 0 },
552  { 126, 2, 96, 3, 1889, 0 },
553  { 224, 2, 96, 3, 1889, 0 },
554  { 304, 2, 96, 3, 1889, 0 },
555  { 384, 2, 96, 3, 1889, 0 },
556  { 464, 2, 96, 3, 1889, 0 },
557  { 534, 2, 96, 3, 1889, 0 },
558  { 604, 2, 96, 3, 1889, 0 },
559  { 674, 2, 96, 3, 1889, 0 },
560  { 733, 2, 96, 3, 1889, 0 },
561  { 46, 2, 96, 3, 1889, 0 },
562  { 144, 2, 96, 3, 1889, 0 },
563  { 72, 116, 97, 13, 1809, 7 },
564  { 170, 116, 97, 13, 1809, 7 },
565  { 250, 116, 97, 13, 1809, 7 },
566  { 330, 116, 97, 13, 1809, 7 },
567  { 410, 116, 97, 13, 1809, 7 },
568  { 490, 116, 97, 13, 1809, 7 },
569  { 560, 116, 97, 13, 1809, 7 },
570  { 630, 116, 97, 13, 1809, 7 },
571  { 697, 116, 97, 13, 1809, 7 },
572  { 756, 116, 97, 13, 1809, 7 },
573  { 6, 116, 97, 13, 1809, 7 },
574  { 104, 116, 97, 13, 1809, 7 },
575  { 202, 116, 97, 13, 1809, 7 },
576  { 282, 116, 97, 13, 1809, 7 },
577  { 362, 116, 97, 13, 1809, 7 },
578  { 442, 116, 97, 13, 1809, 7 },
579  { 522, 116, 97, 13, 1809, 7 },
580  { 592, 116, 97, 13, 1809, 7 },
581  { 662, 116, 97, 13, 1809, 7 },
582  { 721, 116, 97, 13, 1809, 7 },
583  { 34, 116, 97, 13, 1809, 7 },
584  { 132, 116, 97, 13, 1809, 7 },
585  { 230, 116, 97, 13, 1809, 7 },
586  { 310, 116, 97, 13, 1809, 7 },
587  { 390, 116, 97, 13, 1809, 7 },
588  { 470, 116, 97, 13, 1809, 7 },
589  { 540, 116, 97, 13, 1809, 7 },
590  { 610, 116, 97, 13, 1809, 7 },
591  { 680, 116, 97, 13, 1809, 7 },
592  { 739, 116, 97, 13, 1809, 7 },
593  { 52, 116, 97, 13, 1809, 7 },
594  { 150, 116, 97, 13, 1809, 7 },
595  { 77, 115, 2, 12, 1777, 7 },
596  { 175, 115, 2, 12, 1777, 7 },
597  { 255, 115, 2, 12, 1777, 7 },
598  { 335, 115, 2, 12, 1777, 7 },
599  { 415, 115, 2, 12, 1777, 7 },
600  { 495, 115, 2, 12, 1777, 7 },
601  { 565, 115, 2, 12, 1777, 7 },
602  { 635, 115, 2, 12, 1777, 7 },
603  { 702, 115, 2, 12, 1777, 7 },
604  { 761, 115, 2, 12, 1777, 7 },
605  { 12, 115, 2, 12, 1777, 7 },
606  { 110, 115, 2, 12, 1777, 7 },
607  { 208, 115, 2, 12, 1777, 7 },
608  { 288, 115, 2, 12, 1777, 7 },
609  { 368, 115, 2, 12, 1777, 7 },
610  { 448, 115, 2, 12, 1777, 7 },
611  { 528, 115, 2, 12, 1777, 7 },
612  { 598, 115, 2, 12, 1777, 7 },
613  { 668, 115, 2, 12, 1777, 7 },
614  { 727, 115, 2, 12, 1777, 7 },
615  { 40, 115, 2, 12, 1777, 7 },
616  { 138, 115, 2, 12, 1777, 7 },
617  { 236, 115, 2, 12, 1777, 7 },
618  { 316, 115, 2, 12, 1777, 7 },
619  { 396, 115, 2, 12, 1777, 7 },
620  { 476, 115, 2, 12, 1777, 7 },
621  { 546, 115, 2, 12, 1777, 7 },
622  { 616, 115, 2, 12, 1777, 7 },
623  { 686, 115, 2, 12, 1777, 7 },
624  { 745, 115, 2, 12, 1777, 7 },
625  { 58, 115, 2, 12, 1777, 7 },
626  { 156, 115, 2, 12, 1777, 7 },
627  { 804, 2, 107, 3, 1681, 0 },
628  { 808, 2, 107, 3, 1681, 0 },
629  { 774, 2, 107, 3, 1681, 0 },
630  { 779, 2, 107, 3, 1681, 0 },
631  { 784, 2, 107, 3, 1681, 0 },
632  { 789, 2, 107, 3, 1681, 0 },
633  { 794, 2, 107, 3, 1681, 0 },
634  { 799, 2, 107, 3, 1681, 0 },
635  { 842, 121, 109, 1, 1649, 3 },
636  { 846, 121, 109, 1, 1649, 3 },
637  { 812, 121, 109, 1, 1649, 3 },
638  { 817, 121, 109, 1, 1649, 3 },
639  { 822, 121, 109, 1, 1649, 3 },
640  { 827, 121, 109, 1, 1649, 3 },
641  { 832, 121, 109, 1, 1649, 3 },
642  { 837, 121, 109, 1, 1649, 3 },
643  { 982, 122, 108, 2, 1617, 3 },
644  { 986, 122, 108, 2, 1617, 3 },
645  { 952, 122, 108, 2, 1617, 3 },
646  { 957, 122, 108, 2, 1617, 3 },
647  { 962, 122, 108, 2, 1617, 3 },
648  { 967, 122, 108, 2, 1617, 3 },
649  { 972, 122, 108, 2, 1617, 3 },
650  { 977, 122, 108, 2, 1617, 3 },
651};
652
653  // GR8 Register Class...
654  static const MCPhysReg GR8[] = {
655    X86_AL, X86_CL, X86_DL, X86_AH, X86_CH, X86_DH, X86_BL, X86_BH, X86_SIL, X86_DIL, X86_BPL, X86_SPL, X86_R8B, X86_R9B, X86_R10B, X86_R11B, X86_R14B, X86_R15B, X86_R12B, X86_R13B,
656  };
657
658  // GR8 Bit set.
659  static uint8_t GR8Bits[] = {
660    0xb6, 0xa6, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
661  };
662
663  // GR8_NOREX Register Class...
664  static const MCPhysReg GR8_NOREX[] = {
665    X86_AL, X86_CL, X86_DL, X86_AH, X86_CH, X86_DH, X86_BL, X86_BH,
666  };
667
668  // GR8_NOREX Bit set.
669  static const uint8_t GR8_NOREXBits[] = {
670    0x36, 0x26, 0x01,
671  };
672
673  // VK1 Register Class...
674  static const MCPhysReg VK1[] = {
675    X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
676  };
677
678  // VK1 Bit set.
679  static uint8_t VK1Bits[] = {
680    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
681  };
682
683  // VK2 Register Class...
684  static const MCPhysReg VK2[] = {
685    X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
686  };
687
688  // VK2 Bit set.
689  static uint8_t VK2Bits[] = {
690    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
691  };
692
693  // VK4 Register Class...
694  static const MCPhysReg VK4[] = {
695    X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
696  };
697
698  // VK4 Bit set.
699  static uint8_t VK4Bits[] = {
700    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
701  };
702
703  // VK8 Register Class...
704  static const MCPhysReg VK8[] = {
705    X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
706  };
707
708  // VK8 Bit set.
709  static uint8_t VK8Bits[] = {
710    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
711  };
712
713  // VK1WM Register Class...
714  static const MCPhysReg VK1WM[] = {
715    X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
716  };
717
718  // VK1WM Bit set.
719  static uint8_t VK1WMBits[] = {
720    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
721  };
722
723  // VK2WM Register Class...
724  static const MCPhysReg VK2WM[] = {
725    X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
726  };
727
728  // VK2WM Bit set.
729  static uint8_t VK2WMBits[] = {
730    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
731  };
732
733  // VK4WM Register Class...
734  static const MCPhysReg VK4WM[] = {
735    X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
736  };
737
738  // VK4WM Bit set.
739  static uint8_t VK4WMBits[] = {
740    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
741  };
742
743  // VK8WM Register Class...
744  static const MCPhysReg VK8WM[] = {
745    X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
746  };
747
748  // VK8WM Bit set.
749  static uint8_t VK8WMBits[] = {
750    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
751  };
752
753  // GR8_ABCD_H Register Class...
754  static MCPhysReg GR8_ABCD_H[] = {
755    X86_AH, X86_CH, X86_DH, X86_BH,
756  };
757
758  // GR8_ABCD_H Bit set.
759  static uint8_t GR8_ABCD_HBits[] = {
760    0x12, 0x22,
761  };
762
763  // GR8_ABCD_L Register Class...
764  static MCPhysReg GR8_ABCD_L[] = {
765    X86_AL, X86_CL, X86_DL, X86_BL,
766  };
767
768  // GR8_ABCD_L Bit set.
769  static uint8_t GR8_ABCD_LBits[] = {
770    0x24, 0x04, 0x01,
771  };
772
773  // GR16 Register Class...
774  static MCPhysReg GR16[] = {
775    X86_AX, X86_CX, X86_DX, X86_SI, X86_DI, X86_BX, X86_BP, X86_SP, X86_R8W, X86_R9W, X86_R10W, X86_R11W, X86_R14W, X86_R15W, X86_R12W, X86_R13W,
776  };
777
778  // GR16 Bit set.
779  static uint8_t GR16Bits[] = {
780    0x48, 0x51, 0x04, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
781  };
782
783  // GR16_NOREX Register Class...
784  static MCPhysReg GR16_NOREX[] = {
785    X86_AX, X86_CX, X86_DX, X86_SI, X86_DI, X86_BX, X86_BP, X86_SP,
786  };
787
788  // GR16_NOREX Bit set.
789  static uint8_t GR16_NOREXBits[] = {
790    0x48, 0x51, 0x04, 0x00, 0x00, 0xa0,
791  };
792
793  // VK16 Register Class...
794  static MCPhysReg VK16[] = {
795    X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
796  };
797
798  // VK16 Bit set.
799  static uint8_t VK16Bits[] = {
800    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
801  };
802
803  // VK16WM Register Class...
804  static MCPhysReg VK16WM[] = {
805    X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
806  };
807
808  // VK16WM Bit set.
809  static uint8_t VK16WMBits[] = {
810    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
811  };
812
813  // SEGMENT_REG Register Class...
814  static const MCPhysReg SEGMENT_REG[] = {
815    X86_CS, X86_DS, X86_SS, X86_ES, X86_FS, X86_GS,
816  };
817
818  // SEGMENT_REG Bit set.
819  static const uint8_t SEGMENT_REGBits[] = {
820    0x00, 0x08, 0x02, 0x10, 0x03, 0x00, 0x02,
821  };
822
823  // GR16_ABCD Register Class...
824  static const MCPhysReg GR16_ABCD[] = {
825    X86_AX, X86_CX, X86_DX, X86_BX,
826  };
827
828  // GR16_ABCD Bit set.
829  static const uint8_t GR16_ABCDBits[] = {
830    0x08, 0x11, 0x04,
831  };
832
833  // FPCCR Register Class...
834  static const MCPhysReg FPCCR[] = {
835    X86_FPSW,
836  };
837
838  // FPCCR Bit set.
839  static const uint8_t FPCCRBits[] = {
840    0x00, 0x00, 0x00, 0x80,
841  };
842
843  // FR32X Register Class...
844  static const MCPhysReg FR32X[] = {
845    X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31,
846  };
847
848  // FR32X Bit set.
849  static uint8_t FR32XBits[] = {
850    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
851  };
852
853  // FR32 Register Class...
854  static const MCPhysReg FR32[] = {
855    X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15,
856  };
857
858  // FR32 Bit set.
859  static uint8_t FR32Bits[] = {
860    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
861  };
862
863  // GR32 Register Class...
864  static const MCPhysReg GR32[] = {
865    X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D,
866  };
867
868  // GR32 Bit set.
869  static uint8_t GR32Bits[] = {
870    0x00, 0x00, 0xf8, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
871  };
872
873  // GR32_NOAX Register Class...
874  static const MCPhysReg GR32_NOAX[] = {
875    X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D,
876  };
877
878  // GR32_NOAX Bit set.
879  static uint8_t GR32_NOAXBits[] = {
880    0x00, 0x00, 0xf0, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
881  };
882
883  // GR32_NOSP Register Class...
884  static const MCPhysReg GR32_NOSP[] = {
885    X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D,
886  };
887
888  // GR32_NOSP Bit set.
889  static uint8_t GR32_NOSPBits[] = {
890    0x00, 0x00, 0xf8, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
891  };
892
893  // GR32_NOAX_and_GR32_NOSP Register Class...
894  static const MCPhysReg GR32_NOAX_and_GR32_NOSP[] = {
895    X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D,
896  };
897
898  // GR32_NOAX_and_GR32_NOSP Bit set.
899  static uint8_t GR32_NOAX_and_GR32_NOSPBits[] = {
900    0x00, 0x00, 0xf0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
901  };
902
903  // DEBUG_REG Register Class...
904  static const MCPhysReg DEBUG_REG[] = {
905    X86_DR0, X86_DR1, X86_DR2, X86_DR3, X86_DR4, X86_DR5, X86_DR6, X86_DR7,
906  };
907
908  // DEBUG_REG Bit set.
909  static const uint8_t DEBUG_REGBits[] = {
910    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
911  };
912
913  // GR32_NOREX Register Class...
914  static const MCPhysReg GR32_NOREX[] = {
915    X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP,
916  };
917
918  // GR32_NOREX Bit set.
919  static const uint8_t GR32_NOREXBits[] = {
920    0x00, 0x00, 0xf8, 0x61,
921  };
922
923  // VK32 Register Class...
924  static const MCPhysReg VK32[] = {
925    X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
926  };
927
928  // VK32 Bit set.
929  static uint8_t VK32Bits[] = {
930    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
931  };
932
933  // GR32_NOAX_and_GR32_NOREX Register Class...
934  static const MCPhysReg GR32_NOAX_and_GR32_NOREX[] = {
935    X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP,
936  };
937
938  // GR32_NOAX_and_GR32_NOREX Bit set.
939  static const uint8_t GR32_NOAX_and_GR32_NOREXBits[] = {
940    0x00, 0x00, 0xf0, 0x61,
941  };
942
943  // GR32_NOREX_NOSP Register Class...
944  static const MCPhysReg GR32_NOREX_NOSP[] = {
945    X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP,
946  };
947
948  // GR32_NOREX_NOSP Bit set.
949  static const uint8_t GR32_NOREX_NOSPBits[] = {
950    0x00, 0x00, 0xf8, 0x21,
951  };
952
953  // RFP32 Register Class...
954  static const MCPhysReg RFP32[] = {
955    X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6,
956  };
957
958  // RFP32 Bit set.
959  static uint8_t RFP32Bits[] = {
960    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01,
961  };
962
963  // VK32WM Register Class...
964  static const MCPhysReg VK32WM[] = {
965    X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
966  };
967
968  // VK32WM Bit set.
969  static uint8_t VK32WMBits[] = {
970    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
971  };
972
973  // GR32_NOAX_and_GR32_NOREX_NOSP Register Class...
974  static const MCPhysReg GR32_NOAX_and_GR32_NOREX_NOSP[] = {
975    X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP,
976  };
977
978  // GR32_NOAX_and_GR32_NOREX_NOSP Bit set.
979  static const uint8_t GR32_NOAX_and_GR32_NOREX_NOSPBits[] = {
980    0x00, 0x00, 0xf0, 0x21,
981  };
982
983  // GR32_ABCD Register Class...
984  static const MCPhysReg GR32_ABCD[] = {
985    X86_EAX, X86_ECX, X86_EDX, X86_EBX,
986  };
987
988  // GR32_ABCD Bit set.
989  static const uint8_t GR32_ABCDBits[] = {
990    0x00, 0x00, 0x68, 0x01,
991  };
992
993  // GR32_ABCD_and_GR32_NOAX Register Class...
994  static const MCPhysReg GR32_ABCD_and_GR32_NOAX[] = {
995    X86_ECX, X86_EDX, X86_EBX,
996  };
997
998  // GR32_ABCD_and_GR32_NOAX Bit set.
999  static const uint8_t GR32_ABCD_and_GR32_NOAXBits[] = {
1000    0x00, 0x00, 0x60, 0x01,
1001  };
1002
1003  // GR32_TC Register Class...
1004  static const MCPhysReg GR32_TC[] = {
1005    X86_EAX, X86_ECX, X86_EDX,
1006  };
1007
1008  // GR32_TC Bit set.
1009  static const uint8_t GR32_TCBits[] = {
1010    0x00, 0x00, 0x48, 0x01,
1011  };
1012
1013  // GR32_AD Register Class...
1014  static const MCPhysReg GR32_AD[] = {
1015    X86_EAX, X86_EDX,
1016  };
1017
1018  // GR32_AD Bit set.
1019  static const uint8_t GR32_ADBits[] = {
1020    0x00, 0x00, 0x08, 0x01,
1021  };
1022
1023  // GR32_NOAX_and_GR32_TC Register Class...
1024  static const MCPhysReg GR32_NOAX_and_GR32_TC[] = {
1025    X86_ECX, X86_EDX,
1026  };
1027
1028  // GR32_NOAX_and_GR32_TC Bit set.
1029  static const uint8_t GR32_NOAX_and_GR32_TCBits[] = {
1030    0x00, 0x00, 0x40, 0x01,
1031  };
1032
1033  // CCR Register Class...
1034  static const MCPhysReg CCR[] = {
1035    X86_EFLAGS,
1036  };
1037
1038  // CCR Bit set.
1039  static const uint8_t CCRBits[] = {
1040    0x00, 0x00, 0x00, 0x02,
1041  };
1042
1043  // GR32_AD_and_GR32_NOAX Register Class...
1044  static const MCPhysReg GR32_AD_and_GR32_NOAX[] = {
1045    X86_EDX,
1046  };
1047
1048  // GR32_AD_and_GR32_NOAX Bit set.
1049  static const uint8_t GR32_AD_and_GR32_NOAXBits[] = {
1050    0x00, 0x00, 0x00, 0x01,
1051  };
1052
1053  // RFP64 Register Class...
1054  static const MCPhysReg RFP64[] = {
1055    X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6,
1056  };
1057
1058  // RFP64 Bit set.
1059  static uint8_t RFP64Bits[] = {
1060    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01,
1061  };
1062
1063  // FR64X Register Class...
1064  static const MCPhysReg FR64X[] = {
1065    X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31,
1066  };
1067
1068  // FR64X Bit set.
1069  static uint8_t FR64XBits[] = {
1070    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
1071  };
1072
1073  // GR64 Register Class...
1074  static const MCPhysReg GR64[] = {
1075    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP, X86_RIP,
1076  };
1077
1078  // GR64 Bit set.
1079  static uint8_t GR64Bits[] = {
1080    0x00, 0x00, 0x00, 0x00, 0xf8, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1081  };
1082
1083  // CONTROL_REG Register Class...
1084  static const MCPhysReg CONTROL_REG[] = {
1085    X86_CR0, X86_CR1, X86_CR2, X86_CR3, X86_CR4, X86_CR5, X86_CR6, X86_CR7, X86_CR8, X86_CR9, X86_CR10, X86_CR11, X86_CR12, X86_CR13, X86_CR14, X86_CR15,
1086  };
1087
1088  // CONTROL_REG Bit set.
1089  static const uint8_t CONTROL_REGBits[] = {
1090    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1091  };
1092
1093  // FR64 Register Class...
1094  static const MCPhysReg FR64[] = {
1095    X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15,
1096  };
1097
1098  // FR64 Bit set.
1099  static uint8_t FR64Bits[] = {
1100    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1101  };
1102
1103  // GR64_with_sub_8bit Register Class...
1104  static const MCPhysReg GR64_with_sub_8bit[] = {
1105    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP,
1106  };
1107
1108  // GR64_with_sub_8bit Bit set.
1109  static uint8_t GR64_with_sub_8bitBits[] = {
1110    0x00, 0x00, 0x00, 0x00, 0xf8, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1111  };
1112
1113  // GR64_NOSP Register Class...
1114  static const MCPhysReg GR64_NOSP[] = {
1115    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP,
1116  };
1117
1118  // GR64_NOSP Bit set.
1119  static uint8_t GR64_NOSPBits[] = {
1120    0x00, 0x00, 0x00, 0x00, 0xf8, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1121  };
1122
1123  // GR64_with_sub_32bit_in_GR32_NOAX Register Class...
1124  static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX[] = {
1125    X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP,
1126  };
1127
1128  // GR64_with_sub_32bit_in_GR32_NOAX Bit set.
1129  static uint8_t GR64_with_sub_32bit_in_GR32_NOAXBits[] = {
1130    0x00, 0x00, 0x00, 0x00, 0xf0, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1131  };
1132
1133  // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP Register Class...
1134  static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP[] = {
1135    X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP,
1136  };
1137
1138  // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP Bit set.
1139  static uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits[] = {
1140    0x00, 0x00, 0x00, 0x00, 0xf0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1141  };
1142
1143  // GR64_NOREX Register Class...
1144  static const MCPhysReg GR64_NOREX[] = {
1145    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP, X86_RIP,
1146  };
1147
1148  // GR64_NOREX Bit set.
1149  static const uint8_t GR64_NOREXBits[] = {
1150    0x00, 0x00, 0x00, 0x00, 0xf8, 0x1b,
1151  };
1152
1153  // GR64_TC Register Class...
1154  static const MCPhysReg GR64_TC[] = {
1155    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11, X86_RIP,
1156  };
1157
1158  // GR64_TC Bit set.
1159  static uint8_t GR64_TCBits[] = {
1160    0x00, 0x00, 0x00, 0x00, 0xc8, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1161  };
1162
1163  // GR64_NOSP_and_GR64_TC Register Class...
1164  static const MCPhysReg GR64_NOSP_and_GR64_TC[] = {
1165    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11,
1166  };
1167
1168  // GR64_NOSP_and_GR64_TC Bit set.
1169  static uint8_t GR64_NOSP_and_GR64_TCBits[] = {
1170    0x00, 0x00, 0x00, 0x00, 0xc8, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1171  };
1172
1173  // GR64_with_sub_16bit_in_GR16_NOREX Register Class...
1174  static const MCPhysReg GR64_with_sub_16bit_in_GR16_NOREX[] = {
1175    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP,
1176  };
1177
1178  // GR64_with_sub_16bit_in_GR16_NOREX Bit set.
1179  static const uint8_t GR64_with_sub_16bit_in_GR16_NOREXBits[] = {
1180    0x00, 0x00, 0x00, 0x00, 0xf8, 0x19,
1181  };
1182
1183  // VK64 Register Class...
1184  static const MCPhysReg VK64[] = {
1185    X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
1186  };
1187
1188  // VK64 Bit set.
1189  static uint8_t VK64Bits[] = {
1190    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1191  };
1192
1193  // VR64 Register Class...
1194  static const MCPhysReg VR64[] = {
1195    X86_MM0, X86_MM1, X86_MM2, X86_MM3, X86_MM4, X86_MM5, X86_MM6, X86_MM7,
1196  };
1197
1198  // VR64 Bit set.
1199  static uint8_t VR64Bits[] = {
1200    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1201  };
1202
1203  // GR64_NOREX_NOSP Register Class...
1204  static const MCPhysReg GR64_NOREX_NOSP[] = {
1205    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP,
1206  };
1207
1208  // GR64_NOREX_NOSP Bit set.
1209  static const uint8_t GR64_NOREX_NOSPBits[] = {
1210    0x00, 0x00, 0x00, 0x00, 0xf8, 0x09,
1211  };
1212
1213  // GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX Register Class...
1214  static const MCPhysReg GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX[] = {
1215    X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11,
1216  };
1217
1218  // GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX Bit set.
1219  static uint8_t GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits[] = {
1220    0x00, 0x00, 0x00, 0x00, 0xc0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1221  };
1222
1223  // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX Register Class...
1224  static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX[] = {
1225    X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP,
1226  };
1227
1228  // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX Bit set.
1229  static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits[] = {
1230    0x00, 0x00, 0x00, 0x00, 0xf0, 0x19,
1231  };
1232
1233  // VK64WM Register Class...
1234  static const MCPhysReg VK64WM[] = {
1235    X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
1236  };
1237
1238  // VK64WM Bit set.
1239  static uint8_t VK64WMBits[] = {
1240    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
1241  };
1242
1243  // GR64_NOREX_and_GR64_TC Register Class...
1244  static const MCPhysReg GR64_NOREX_and_GR64_TC[] = {
1245    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RIP,
1246  };
1247
1248  // GR64_NOREX_and_GR64_TC Bit set.
1249  static const uint8_t GR64_NOREX_and_GR64_TCBits[] = {
1250    0x00, 0x00, 0x00, 0x00, 0xc8, 0x0b,
1251  };
1252
1253  // GR64_TCW64 Register Class...
1254  static const MCPhysReg GR64_TCW64[] = {
1255    X86_RAX, X86_RCX, X86_RDX, X86_R8, X86_R9, X86_R11,
1256  };
1257
1258  // GR64_TCW64 Bit set.
1259  static uint8_t GR64_TCW64Bits[] = {
1260    0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1261  };
1262
1263  // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP Register Class...
1264  static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP[] = {
1265    X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP,
1266  };
1267
1268  // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP Bit set.
1269  static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits[] = {
1270    0x00, 0x00, 0x00, 0x00, 0xf0, 0x09,
1271  };
1272
1273  // GR64_NOREX_NOSP_and_GR64_TC Register Class...
1274  static const MCPhysReg GR64_NOREX_NOSP_and_GR64_TC[] = {
1275    X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI,
1276  };
1277
1278  // GR64_NOREX_NOSP_and_GR64_TC Bit set.
1279  static const uint8_t GR64_NOREX_NOSP_and_GR64_TCBits[] = {
1280    0x00, 0x00, 0x00, 0x00, 0xc8, 0x09,
1281  };
1282
1283  // GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX Register Class...
1284  static const MCPhysReg GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX[] = {
1285    X86_RCX, X86_RDX, X86_R8, X86_R9, X86_R11,
1286  };
1287
1288  // GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX Bit set.
1289  static uint8_t GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits[] = {
1290    0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1291  };
1292
1293  // GR64_ABCD Register Class...
1294  static const MCPhysReg GR64_ABCD[] = {
1295    X86_RAX, X86_RCX, X86_RDX, X86_RBX,
1296  };
1297
1298  // GR64_ABCD Bit set.
1299  static const uint8_t GR64_ABCDBits[] = {
1300    0x00, 0x00, 0x00, 0x00, 0x68, 0x01,
1301  };
1302
1303  // GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX Register Class...
1304  static const MCPhysReg GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX[] = {
1305    X86_RCX, X86_RDX, X86_RSI, X86_RDI,
1306  };
1307
1308  // GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX Bit set.
1309  static const uint8_t GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits[] = {
1310    0x00, 0x00, 0x00, 0x00, 0xc0, 0x09,
1311  };
1312
1313  // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX Register Class...
1314  static const MCPhysReg GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX[] = {
1315    X86_RCX, X86_RDX, X86_RBX,
1316  };
1317
1318  // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX Bit set.
1319  static const uint8_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits[] = {
1320    0x00, 0x00, 0x00, 0x00, 0x60, 0x01,
1321  };
1322
1323  // GR64_with_sub_32bit_in_GR32_TC Register Class...
1324  static const MCPhysReg GR64_with_sub_32bit_in_GR32_TC[] = {
1325    X86_RAX, X86_RCX, X86_RDX,
1326  };
1327
1328  // GR64_with_sub_32bit_in_GR32_TC Bit set.
1329  static const uint8_t GR64_with_sub_32bit_in_GR32_TCBits[] = {
1330    0x00, 0x00, 0x00, 0x00, 0x48, 0x01,
1331  };
1332
1333  // GR64_with_sub_32bit_in_GR32_AD Register Class...
1334  static const MCPhysReg GR64_with_sub_32bit_in_GR32_AD[] = {
1335    X86_RAX, X86_RDX,
1336  };
1337
1338  // GR64_with_sub_32bit_in_GR32_AD Bit set.
1339  static const uint8_t GR64_with_sub_32bit_in_GR32_ADBits[] = {
1340    0x00, 0x00, 0x00, 0x00, 0x08, 0x01,
1341  };
1342
1343  // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC Register Class...
1344  static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC[] = {
1345    X86_RCX, X86_RDX,
1346  };
1347
1348  // GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC Bit set.
1349  static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits[] = {
1350    0x00, 0x00, 0x00, 0x00, 0x40, 0x01,
1351  };
1352
1353  // GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX Register Class...
1354  static const MCPhysReg GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX[] = {
1355    X86_RDX,
1356  };
1357
1358  // GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX Bit set.
1359  static const uint8_t GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits[] = {
1360    0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
1361  };
1362
1363  // RST Register Class...
1364  static const MCPhysReg RST[] = {
1365    X86_ST0, X86_ST1, X86_ST2, X86_ST3, X86_ST4, X86_ST5, X86_ST6, X86_ST7,
1366  };
1367
1368  // RST Bit set.
1369  static uint8_t RSTBits[] = {
1370    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1371  };
1372
1373  // RFP80 Register Class...
1374  static const MCPhysReg RFP80[] = {
1375    X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6,
1376  };
1377
1378  // RFP80 Bit set.
1379  static uint8_t RFP80Bits[] = {
1380    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01,
1381  };
1382
1383  // VR128X Register Class...
1384  static const MCPhysReg VR128X[] = {
1385    X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31,
1386  };
1387
1388  // VR128X Bit set.
1389  static uint8_t VR128XBits[] = {
1390    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
1391  };
1392
1393  // VR128 Register Class...
1394  static const MCPhysReg VR128[] = {
1395    X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15,
1396  };
1397
1398  // VR128 Bit set.
1399  static uint8_t VR128Bits[] = {
1400    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1401  };
1402
1403  // VR256X Register Class...
1404  static const MCPhysReg VR256X[] = {
1405    X86_YMM0, X86_YMM1, X86_YMM2, X86_YMM3, X86_YMM4, X86_YMM5, X86_YMM6, X86_YMM7, X86_YMM8, X86_YMM9, X86_YMM10, X86_YMM11, X86_YMM12, X86_YMM13, X86_YMM14, X86_YMM15, X86_YMM16, X86_YMM17, X86_YMM18, X86_YMM19, X86_YMM20, X86_YMM21, X86_YMM22, X86_YMM23, X86_YMM24, X86_YMM25, X86_YMM26, X86_YMM27, X86_YMM28, X86_YMM29, X86_YMM30, X86_YMM31,
1406  };
1407
1408  // VR256X Bit set.
1409  static uint8_t VR256XBits[] = {
1410    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
1411  };
1412
1413  // VR256 Register Class...
1414  static const MCPhysReg VR256[] = {
1415    X86_YMM0, X86_YMM1, X86_YMM2, X86_YMM3, X86_YMM4, X86_YMM5, X86_YMM6, X86_YMM7, X86_YMM8, X86_YMM9, X86_YMM10, X86_YMM11, X86_YMM12, X86_YMM13, X86_YMM14, X86_YMM15,
1416  };
1417
1418  // VR256 Bit set.
1419  static uint8_t VR256Bits[] = {
1420    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1421  };
1422
1423  // VR512 Register Class...
1424  static const MCPhysReg VR512[] = {
1425    X86_ZMM0, X86_ZMM1, X86_ZMM2, X86_ZMM3, X86_ZMM4, X86_ZMM5, X86_ZMM6, X86_ZMM7, X86_ZMM8, X86_ZMM9, X86_ZMM10, X86_ZMM11, X86_ZMM12, X86_ZMM13, X86_ZMM14, X86_ZMM15, X86_ZMM16, X86_ZMM17, X86_ZMM18, X86_ZMM19, X86_ZMM20, X86_ZMM21, X86_ZMM22, X86_ZMM23, X86_ZMM24, X86_ZMM25, X86_ZMM26, X86_ZMM27, X86_ZMM28, X86_ZMM29, X86_ZMM30, X86_ZMM31,
1426  };
1427
1428  // VR512 Bit set.
1429  static uint8_t VR512Bits[] = {
1430    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
1431  };
1432
1433  // VR512_with_sub_xmm_in_FR32 Register Class...
1434  static const MCPhysReg VR512_with_sub_xmm_in_FR32[] = {
1435    X86_ZMM0, X86_ZMM1, X86_ZMM2, X86_ZMM3, X86_ZMM4, X86_ZMM5, X86_ZMM6, X86_ZMM7, X86_ZMM8, X86_ZMM9, X86_ZMM10, X86_ZMM11, X86_ZMM12, X86_ZMM13, X86_ZMM14, X86_ZMM15,
1436  };
1437
1438  // VR512_with_sub_xmm_in_FR32 Bit set.
1439  static uint8_t VR512_with_sub_xmm_in_FR32Bits[] = {
1440    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1441  };
1442
1443static MCRegisterClass X86MCRegisterClasses[] = {
1444  { GR8, GR8Bits, 130, 20, sizeof(GR8Bits), X86_GR8RegClassID, 1, 1, 1, 1 },
1445  { GR8_NOREX, GR8_NOREXBits, 897, 8, sizeof(GR8_NOREXBits), X86_GR8_NOREXRegClassID, 1, 1, 1, 1 },
1446  { VK1, VK1Bits, 6, 8, sizeof(VK1Bits), X86_VK1RegClassID, 1, 1, 1, 1 },
1447  { VK2, VK2Bits, 59, 8, sizeof(VK2Bits), X86_VK2RegClassID, 1, 1, 1, 1 },
1448  { VK4, VK4Bits, 100, 8, sizeof(VK4Bits), X86_VK4RegClassID, 1, 1, 1, 1 },
1449  { VK8, VK8Bits, 126, 8, sizeof(VK8Bits), X86_VK8RegClassID, 1, 1, 1, 1 },
1450  { VK1WM, VK1WMBits, 400, 7, sizeof(VK1WMBits), X86_VK1WMRegClassID, 1, 1, 1, 1 },
1451  { VK2WM, VK2WMBits, 413, 7, sizeof(VK2WMBits), X86_VK2WMRegClassID, 1, 1, 1, 1 },
1452  { VK4WM, VK4WMBits, 426, 7, sizeof(VK4WMBits), X86_VK4WMRegClassID, 1, 1, 1, 1 },
1453  { VK8WM, VK8WMBits, 439, 7, sizeof(VK8WMBits), X86_VK8WMRegClassID, 1, 1, 1, 1 },
1454  { GR8_ABCD_H, GR8_ABCD_HBits, 378, 4, sizeof(GR8_ABCD_HBits), X86_GR8_ABCD_HRegClassID, 1, 1, 1, 1 },
1455  { GR8_ABCD_L, GR8_ABCD_LBits, 389, 4, sizeof(GR8_ABCD_LBits), X86_GR8_ABCD_LRegClassID, 1, 1, 1, 1 },
1456  { GR16, GR16Bits, 109, 16, sizeof(GR16Bits), X86_GR16RegClassID, 2, 2, 1, 1 },
1457  { GR16_NOREX, GR16_NOREXBits, 886, 8, sizeof(GR16_NOREXBits), X86_GR16_NOREXRegClassID, 2, 2, 1, 1 },
1458  { VK16, VK16Bits, 104, 8, sizeof(VK16Bits), X86_VK16RegClassID, 2, 2, 1, 1 },
1459  { VK16WM, VK16WMBits, 432, 7, sizeof(VK16WMBits), X86_VK16WMRegClassID, 2, 2, 1, 1 },
1460  { SEGMENT_REG, SEGMENT_REGBits, 366, 6, sizeof(SEGMENT_REGBits), X86_SEGMENT_REGRegClassID, 2, 2, 1, 1 },
1461  { GR16_ABCD, GR16_ABCDBits, 334, 4, sizeof(GR16_ABCDBits), X86_GR16_ABCDRegClassID, 2, 2, 1, 1 },
1462  { FPCCR, FPCCRBits, 571, 1, sizeof(FPCCRBits), X86_FPCCRRegClassID, 2, 2, -1, 0 },
1463  { FR32X, FR32XBits, 581, 32, sizeof(FR32XBits), X86_FR32XRegClassID, 4, 4, 1, 1 },
1464  { FR32, FR32Bits, 49, 16, sizeof(FR32Bits), X86_FR32RegClassID, 4, 4, 1, 1 },
1465  { GR32, GR32Bits, 54, 16, sizeof(GR32Bits), X86_GR32RegClassID, 4, 4, 1, 1 },
1466  { GR32_NOAX, GR32_NOAXBits, 642, 15, sizeof(GR32_NOAXBits), X86_GR32_NOAXRegClassID, 4, 4, 1, 1 },
1467  { GR32_NOSP, GR32_NOSPBits, 482, 15, sizeof(GR32_NOSPBits), X86_GR32_NOSPRegClassID, 4, 4, 1, 1 },
1468  { GR32_NOAX_and_GR32_NOSP, GR32_NOAX_and_GR32_NOSPBits, 468, 14, sizeof(GR32_NOAX_and_GR32_NOSPBits), X86_GR32_NOAX_and_GR32_NOSPRegClassID, 4, 4, 1, 1 },
1469  { DEBUG_REG, DEBUG_REGBits, 344, 8, sizeof(DEBUG_REGBits), X86_DEBUG_REGRegClassID, 4, 4, 1, 1 },
1470  { GR32_NOREX, GR32_NOREXBits, 841, 8, sizeof(GR32_NOREXBits), X86_GR32_NOREXRegClassID, 4, 4, 1, 1 },
1471  { VK32, VK32Bits, 16, 8, sizeof(VK32Bits), X86_VK32RegClassID, 4, 4, 1, 1 },
1472  { GR32_NOAX_and_GR32_NOREX, GR32_NOAX_and_GR32_NOREXBits, 827, 7, sizeof(GR32_NOAX_and_GR32_NOREXBits), X86_GR32_NOAX_and_GR32_NOREXRegClassID, 4, 4, 1, 1 },
1473  { GR32_NOREX_NOSP, GR32_NOREX_NOSPBits, 539, 7, sizeof(GR32_NOREX_NOSPBits), X86_GR32_NOREX_NOSPRegClassID, 4, 4, 1, 1 },
1474  { RFP32, RFP32Bits, 21, 7, sizeof(RFP32Bits), X86_RFP32RegClassID, 4, 4, 1, 1 },
1475  { VK32WM, VK32WMBits, 406, 7, sizeof(VK32WMBits), X86_VK32WMRegClassID, 4, 4, 1, 1 },
1476  { GR32_NOAX_and_GR32_NOREX_NOSP, GR32_NOAX_and_GR32_NOREX_NOSPBits, 525, 6, sizeof(GR32_NOAX_and_GR32_NOREX_NOSPBits), X86_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID, 4, 4, 1, 1 },
1477  { GR32_ABCD, GR32_ABCDBits, 314, 4, sizeof(GR32_ABCDBits), X86_GR32_ABCDRegClassID, 4, 4, 1, 1 },
1478  { GR32_ABCD_and_GR32_NOAX, GR32_ABCD_and_GR32_NOAXBits, 675, 3, sizeof(GR32_ABCD_and_GR32_NOAXBits), X86_GR32_ABCD_and_GR32_NOAXRegClassID, 4, 4, 1, 1 },
1479  { GR32_TC, GR32_TCBits, 171, 3, sizeof(GR32_TCBits), X86_GR32_TCRegClassID, 4, 4, 1, 1 },
1480  { GR32_AD, GR32_ADBits, 306, 2, sizeof(GR32_ADBits), X86_GR32_ADRegClassID, 4, 4, 1, 1 },
1481  { GR32_NOAX_and_GR32_TC, GR32_NOAX_and_GR32_TCBits, 157, 2, sizeof(GR32_NOAX_and_GR32_TCBits), X86_GR32_NOAX_and_GR32_TCRegClassID, 4, 4, 1, 1 },
1482  { CCR, CCRBits, 573, 1, sizeof(CCRBits), X86_CCRRegClassID, 4, 4, -1, 0 },
1483  { GR32_AD_and_GR32_NOAX, GR32_AD_and_GR32_NOAXBits, 630, 1, sizeof(GR32_AD_and_GR32_NOAXBits), X86_GR32_AD_and_GR32_NOAXRegClassID, 4, 4, 1, 1 },
1484  { RFP64, RFP64Bits, 68, 7, sizeof(RFP64Bits), X86_RFP64RegClassID, 8, 4, 1, 1 },
1485  { FR64X, FR64XBits, 587, 32, sizeof(FR64XBits), X86_FR64XRegClassID, 8, 8, 1, 1 },
1486  { GR64, GR64Bits, 79, 17, sizeof(GR64Bits), X86_GR64RegClassID, 8, 8, 1, 1 },
1487  { CONTROL_REG, CONTROL_REGBits, 354, 16, sizeof(CONTROL_REGBits), X86_CONTROL_REGRegClassID, 8, 8, 1, 1 },
1488  { FR64, FR64Bits, 74, 16, sizeof(FR64Bits), X86_FR64RegClassID, 8, 8, 1, 1 },
1489  { GR64_with_sub_8bit, GR64_with_sub_8bitBits, 907, 16, sizeof(GR64_with_sub_8bitBits), X86_GR64_with_sub_8bitRegClassID, 8, 8, 1, 1 },
1490  { GR64_NOSP, GR64_NOSPBits, 492, 15, sizeof(GR64_NOSPBits), X86_GR64_NOSPRegClassID, 8, 8, 1, 1 },
1491  { GR64_with_sub_32bit_in_GR32_NOAX, GR64_with_sub_32bit_in_GR32_NOAXBits, 714, 15, sizeof(GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1492  { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits, 445, 14, sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPRegClassID, 8, 8, 1, 1 },
1493  { GR64_NOREX, GR64_NOREXBits, 852, 9, sizeof(GR64_NOREXBits), X86_GR64_NOREXRegClassID, 8, 8, 1, 1 },
1494  { GR64_TC, GR64_TCBits, 224, 9, sizeof(GR64_TCBits), X86_GR64_TCRegClassID, 8, 8, 1, 1 },
1495  { GR64_NOSP_and_GR64_TC, GR64_NOSP_and_GR64_TCBits, 210, 8, sizeof(GR64_NOSP_and_GR64_TCBits), X86_GR64_NOSP_and_GR64_TCRegClassID, 8, 8, 1, 1 },
1496  { GR64_with_sub_16bit_in_GR16_NOREX, GR64_with_sub_16bit_in_GR16_NOREXBits, 863, 8, sizeof(GR64_with_sub_16bit_in_GR16_NOREXBits), X86_GR64_with_sub_16bit_in_GR16_NOREXRegClassID, 8, 8, 1, 1 },
1497  { VK64, VK64Bits, 63, 8, sizeof(VK64Bits), X86_VK64RegClassID, 8, 8, 1, 1 },
1498  { VR64, VR64Bits, 84, 8, sizeof(VR64Bits), X86_VR64RegClassID, 8, 8, 1, 1 },
1499  { GR64_NOREX_NOSP, GR64_NOREX_NOSPBits, 555, 7, sizeof(GR64_NOREX_NOSPBits), X86_GR64_NOREX_NOSPRegClassID, 8, 8, 1, 1 },
1500  { GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX, GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits, 747, 7, sizeof(GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1501  { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits, 804, 7, sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID, 8, 8, 1, 1 },
1502  { VK64WM, VK64WMBits, 419, 7, sizeof(VK64WMBits), X86_VK64WMRegClassID, 8, 8, 1, 1 },
1503  { GR64_NOREX_and_GR64_TC, GR64_NOREX_and_GR64_TCBits, 260, 6, sizeof(GR64_NOREX_and_GR64_TCBits), X86_GR64_NOREX_and_GR64_TCRegClassID, 8, 8, 1, 1 },
1504  { GR64_TCW64, GR64_TCW64Bits, 89, 6, sizeof(GR64_TCW64Bits), X86_GR64_TCW64RegClassID, 8, 8, 1, 1 },
1505  { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits, 502, 6, sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID, 8, 8, 1, 1 },
1506  { GR64_NOREX_NOSP_and_GR64_TC, GR64_NOREX_NOSP_and_GR64_TCBits, 232, 5, sizeof(GR64_NOREX_NOSP_and_GR64_TCBits), X86_GR64_NOREX_NOSP_and_GR64_TCRegClassID, 8, 8, 1, 1 },
1507  { GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX, GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits, 699, 5, sizeof(GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1508  { GR64_ABCD, GR64_ABCDBits, 324, 4, sizeof(GR64_ABCDBits), X86_GR64_ABCDRegClassID, 8, 8, 1, 1 },
1509  { GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX, GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits, 792, 4, sizeof(GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits), X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID, 8, 8, 1, 1 },
1510  { GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX, GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits, 652, 3, sizeof(GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1511  { GR64_with_sub_32bit_in_GR32_TC, GR64_with_sub_32bit_in_GR32_TCBits, 179, 3, sizeof(GR64_with_sub_32bit_in_GR32_TCBits), X86_GR64_with_sub_32bit_in_GR32_TCRegClassID, 8, 8, 1, 1 },
1512  { GR64_with_sub_32bit_in_GR32_AD, GR64_with_sub_32bit_in_GR32_ADBits, 283, 2, sizeof(GR64_with_sub_32bit_in_GR32_ADBits), X86_GR64_with_sub_32bit_in_GR32_ADRegClassID, 8, 8, 1, 1 },
1513  { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits, 134, 2, sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCRegClassID, 8, 8, 1, 1 },
1514  { GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX, GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits, 607, 1, sizeof(GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1515  { RST, RSTBits, 577, 8, sizeof(RSTBits), X86_RSTRegClassID, 10, 4, 1, 0 },
1516  { RFP80, RFP80Bits, 0, 7, sizeof(RFP80Bits), X86_RFP80RegClassID, 10, 4, 1, 1 },
1517  { VR128X, VR128XBits, 600, 32, sizeof(VR128XBits), X86_VR128XRegClassID, 16, 16, 1, 1 },
1518  { VR128, VR128Bits, 120, 16, sizeof(VR128Bits), X86_VR128RegClassID, 16, 16, 1, 1 },
1519  { VR256X, VR256XBits, 593, 32, sizeof(VR256XBits), X86_VR256XRegClassID, 32, 32, 1, 1 },
1520  { VR256, VR256Bits, 114, 16, sizeof(VR256Bits), X86_VR256RegClassID, 32, 32, 1, 1 },
1521  { VR512, VR512Bits, 10, 32, sizeof(VR512Bits), X86_VR512RegClassID, 64, 64, 1, 1 },
1522  { VR512_with_sub_xmm_in_FR32, VR512_with_sub_xmm_in_FR32Bits, 27, 16, sizeof(VR512_with_sub_xmm_in_FR32Bits), X86_VR512_with_sub_xmm_in_FR32RegClassID, 64, 64, 1, 1 },
1523};
1524
1525#endif // GET_REGINFO_MC_DESC
1526