Line data Source code
1 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 : |* *|
3 : |* Target Register Enum Values *|
4 : |* *|
5 : |* Automatically generated file, do not edit! *|
6 : |* *|
7 : \*===----------------------------------------------------------------------===*/
8 :
9 :
10 : #ifdef GET_REGINFO_ENUM
11 : #undef GET_REGINFO_ENUM
12 :
13 : namespace llvm {
14 :
15 : class MCRegisterClass;
16 : extern const MCRegisterClass X86MCRegisterClasses[];
17 :
18 : namespace X86 {
19 : enum {
20 : NoRegister,
21 : AH = 1,
22 : AL = 2,
23 : AX = 3,
24 : BH = 4,
25 : BL = 5,
26 : BP = 6,
27 : BPH = 7,
28 : BPL = 8,
29 : BX = 9,
30 : CH = 10,
31 : CL = 11,
32 : CS = 12,
33 : CX = 13,
34 : DF = 14,
35 : DH = 15,
36 : DI = 16,
37 : DIH = 17,
38 : DIL = 18,
39 : DL = 19,
40 : DS = 20,
41 : DX = 21,
42 : EAX = 22,
43 : EBP = 23,
44 : EBX = 24,
45 : ECX = 25,
46 : EDI = 26,
47 : EDX = 27,
48 : EFLAGS = 28,
49 : EIP = 29,
50 : EIZ = 30,
51 : ES = 31,
52 : ESI = 32,
53 : ESP = 33,
54 : FPSW = 34,
55 : FS = 35,
56 : GS = 36,
57 : HAX = 37,
58 : HBP = 38,
59 : HBX = 39,
60 : HCX = 40,
61 : HDI = 41,
62 : HDX = 42,
63 : HIP = 43,
64 : HSI = 44,
65 : HSP = 45,
66 : IP = 46,
67 : RAX = 47,
68 : RBP = 48,
69 : RBX = 49,
70 : RCX = 50,
71 : RDI = 51,
72 : RDX = 52,
73 : RIP = 53,
74 : RIZ = 54,
75 : RSI = 55,
76 : RSP = 56,
77 : SI = 57,
78 : SIH = 58,
79 : SIL = 59,
80 : SP = 60,
81 : SPH = 61,
82 : SPL = 62,
83 : SS = 63,
84 : SSP = 64,
85 : BND0 = 65,
86 : BND1 = 66,
87 : BND2 = 67,
88 : BND3 = 68,
89 : CR0 = 69,
90 : CR1 = 70,
91 : CR2 = 71,
92 : CR3 = 72,
93 : CR4 = 73,
94 : CR5 = 74,
95 : CR6 = 75,
96 : CR7 = 76,
97 : CR8 = 77,
98 : CR9 = 78,
99 : CR10 = 79,
100 : CR11 = 80,
101 : CR12 = 81,
102 : CR13 = 82,
103 : CR14 = 83,
104 : CR15 = 84,
105 : DR0 = 85,
106 : DR1 = 86,
107 : DR2 = 87,
108 : DR3 = 88,
109 : DR4 = 89,
110 : DR5 = 90,
111 : DR6 = 91,
112 : DR7 = 92,
113 : DR8 = 93,
114 : DR9 = 94,
115 : DR10 = 95,
116 : DR11 = 96,
117 : DR12 = 97,
118 : DR13 = 98,
119 : DR14 = 99,
120 : DR15 = 100,
121 : FP0 = 101,
122 : FP1 = 102,
123 : FP2 = 103,
124 : FP3 = 104,
125 : FP4 = 105,
126 : FP5 = 106,
127 : FP6 = 107,
128 : FP7 = 108,
129 : K0 = 109,
130 : K1 = 110,
131 : K2 = 111,
132 : K3 = 112,
133 : K4 = 113,
134 : K5 = 114,
135 : K6 = 115,
136 : K7 = 116,
137 : MM0 = 117,
138 : MM1 = 118,
139 : MM2 = 119,
140 : MM3 = 120,
141 : MM4 = 121,
142 : MM5 = 122,
143 : MM6 = 123,
144 : MM7 = 124,
145 : R8 = 125,
146 : R9 = 126,
147 : R10 = 127,
148 : R11 = 128,
149 : R12 = 129,
150 : R13 = 130,
151 : R14 = 131,
152 : R15 = 132,
153 : ST0 = 133,
154 : ST1 = 134,
155 : ST2 = 135,
156 : ST3 = 136,
157 : ST4 = 137,
158 : ST5 = 138,
159 : ST6 = 139,
160 : ST7 = 140,
161 : XMM0 = 141,
162 : XMM1 = 142,
163 : XMM2 = 143,
164 : XMM3 = 144,
165 : XMM4 = 145,
166 : XMM5 = 146,
167 : XMM6 = 147,
168 : XMM7 = 148,
169 : XMM8 = 149,
170 : XMM9 = 150,
171 : XMM10 = 151,
172 : XMM11 = 152,
173 : XMM12 = 153,
174 : XMM13 = 154,
175 : XMM14 = 155,
176 : XMM15 = 156,
177 : XMM16 = 157,
178 : XMM17 = 158,
179 : XMM18 = 159,
180 : XMM19 = 160,
181 : XMM20 = 161,
182 : XMM21 = 162,
183 : XMM22 = 163,
184 : XMM23 = 164,
185 : XMM24 = 165,
186 : XMM25 = 166,
187 : XMM26 = 167,
188 : XMM27 = 168,
189 : XMM28 = 169,
190 : XMM29 = 170,
191 : XMM30 = 171,
192 : XMM31 = 172,
193 : YMM0 = 173,
194 : YMM1 = 174,
195 : YMM2 = 175,
196 : YMM3 = 176,
197 : YMM4 = 177,
198 : YMM5 = 178,
199 : YMM6 = 179,
200 : YMM7 = 180,
201 : YMM8 = 181,
202 : YMM9 = 182,
203 : YMM10 = 183,
204 : YMM11 = 184,
205 : YMM12 = 185,
206 : YMM13 = 186,
207 : YMM14 = 187,
208 : YMM15 = 188,
209 : YMM16 = 189,
210 : YMM17 = 190,
211 : YMM18 = 191,
212 : YMM19 = 192,
213 : YMM20 = 193,
214 : YMM21 = 194,
215 : YMM22 = 195,
216 : YMM23 = 196,
217 : YMM24 = 197,
218 : YMM25 = 198,
219 : YMM26 = 199,
220 : YMM27 = 200,
221 : YMM28 = 201,
222 : YMM29 = 202,
223 : YMM30 = 203,
224 : YMM31 = 204,
225 : ZMM0 = 205,
226 : ZMM1 = 206,
227 : ZMM2 = 207,
228 : ZMM3 = 208,
229 : ZMM4 = 209,
230 : ZMM5 = 210,
231 : ZMM6 = 211,
232 : ZMM7 = 212,
233 : ZMM8 = 213,
234 : ZMM9 = 214,
235 : ZMM10 = 215,
236 : ZMM11 = 216,
237 : ZMM12 = 217,
238 : ZMM13 = 218,
239 : ZMM14 = 219,
240 : ZMM15 = 220,
241 : ZMM16 = 221,
242 : ZMM17 = 222,
243 : ZMM18 = 223,
244 : ZMM19 = 224,
245 : ZMM20 = 225,
246 : ZMM21 = 226,
247 : ZMM22 = 227,
248 : ZMM23 = 228,
249 : ZMM24 = 229,
250 : ZMM25 = 230,
251 : ZMM26 = 231,
252 : ZMM27 = 232,
253 : ZMM28 = 233,
254 : ZMM29 = 234,
255 : ZMM30 = 235,
256 : ZMM31 = 236,
257 : R8B = 237,
258 : R9B = 238,
259 : R10B = 239,
260 : R11B = 240,
261 : R12B = 241,
262 : R13B = 242,
263 : R14B = 243,
264 : R15B = 244,
265 : R8BH = 245,
266 : R9BH = 246,
267 : R10BH = 247,
268 : R11BH = 248,
269 : R12BH = 249,
270 : R13BH = 250,
271 : R14BH = 251,
272 : R15BH = 252,
273 : R8D = 253,
274 : R9D = 254,
275 : R10D = 255,
276 : R11D = 256,
277 : R12D = 257,
278 : R13D = 258,
279 : R14D = 259,
280 : R15D = 260,
281 : R8W = 261,
282 : R9W = 262,
283 : R10W = 263,
284 : R11W = 264,
285 : R12W = 265,
286 : R13W = 266,
287 : R14W = 267,
288 : R15W = 268,
289 : R8WH = 269,
290 : R9WH = 270,
291 : R10WH = 271,
292 : R11WH = 272,
293 : R12WH = 273,
294 : R13WH = 274,
295 : R14WH = 275,
296 : R15WH = 276,
297 : NUM_TARGET_REGS // 277
298 : };
299 : } // end namespace X86
300 :
301 : // Register classes
302 :
303 : namespace X86 {
304 : enum {
305 : GR8RegClassID = 0,
306 : GRH8RegClassID = 1,
307 : GR8_NOREXRegClassID = 2,
308 : GR8_ABCD_HRegClassID = 3,
309 : GR8_ABCD_LRegClassID = 4,
310 : GRH16RegClassID = 5,
311 : GR16RegClassID = 6,
312 : GR16_NOREXRegClassID = 7,
313 : VK1RegClassID = 8,
314 : VK16RegClassID = 9,
315 : VK2RegClassID = 10,
316 : VK4RegClassID = 11,
317 : VK8RegClassID = 12,
318 : VK16WMRegClassID = 13,
319 : VK1WMRegClassID = 14,
320 : VK2WMRegClassID = 15,
321 : VK4WMRegClassID = 16,
322 : VK8WMRegClassID = 17,
323 : SEGMENT_REGRegClassID = 18,
324 : GR16_ABCDRegClassID = 19,
325 : FPCCRRegClassID = 20,
326 : FR32XRegClassID = 21,
327 : LOW32_ADDR_ACCESS_RBPRegClassID = 22,
328 : LOW32_ADDR_ACCESSRegClassID = 23,
329 : LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClassID = 24,
330 : DEBUG_REGRegClassID = 25,
331 : FR32RegClassID = 26,
332 : GR32RegClassID = 27,
333 : GR32_NOSPRegClassID = 28,
334 : LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClassID = 29,
335 : GR32_NOREXRegClassID = 30,
336 : VK32RegClassID = 31,
337 : GR32_NOREX_NOSPRegClassID = 32,
338 : RFP32RegClassID = 33,
339 : VK32WMRegClassID = 34,
340 : GR32_ABCDRegClassID = 35,
341 : GR32_TCRegClassID = 36,
342 : GR32_ADRegClassID = 37,
343 : GR32_BPSPRegClassID = 38,
344 : GR32_BSIRegClassID = 39,
345 : GR32_CBRegClassID = 40,
346 : GR32_DCRegClassID = 41,
347 : GR32_DIBPRegClassID = 42,
348 : GR32_SIDIRegClassID = 43,
349 : LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClassID = 44,
350 : CCRRegClassID = 45,
351 : DFCCRRegClassID = 46,
352 : GR32_ABCD_and_GR32_BSIRegClassID = 47,
353 : GR32_AD_and_GR32_DCRegClassID = 48,
354 : GR32_BPSP_and_GR32_DIBPRegClassID = 49,
355 : GR32_BSI_and_GR32_SIDIRegClassID = 50,
356 : GR32_CB_and_GR32_DCRegClassID = 51,
357 : GR32_DIBP_and_GR32_SIDIRegClassID = 52,
358 : LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClassID = 53,
359 : LOW32_ADDR_ACCESS_with_sub_32bitRegClassID = 54,
360 : RFP64RegClassID = 55,
361 : FR64XRegClassID = 56,
362 : GR64RegClassID = 57,
363 : CONTROL_REGRegClassID = 58,
364 : FR64RegClassID = 59,
365 : GR64_with_sub_8bitRegClassID = 60,
366 : GR64_NOSPRegClassID = 61,
367 : GR64_NOREXRegClassID = 62,
368 : GR64_TCRegClassID = 63,
369 : GR64_NOSP_and_GR64_TCRegClassID = 64,
370 : GR64_TCW64RegClassID = 65,
371 : GR64_with_sub_16bit_in_GR16_NOREXRegClassID = 66,
372 : VK64RegClassID = 67,
373 : VR64RegClassID = 68,
374 : GR64_NOREX_NOSPRegClassID = 69,
375 : GR64_NOSP_and_GR64_TCW64RegClassID = 70,
376 : GR64_TC_and_GR64_TCW64RegClassID = 71,
377 : VK64WMRegClassID = 72,
378 : GR64_NOREX_and_GR64_TCRegClassID = 73,
379 : GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClassID = 74,
380 : GR64_NOREX_NOSP_and_GR64_TCRegClassID = 75,
381 : GR64_ABCDRegClassID = 76,
382 : GR64_NOREX_and_GR64_TCW64RegClassID = 77,
383 : GR64_with_sub_32bit_in_GR32_TCRegClassID = 78,
384 : GR64_ADRegClassID = 79,
385 : GR64_and_LOW32_ADDR_ACCESS_RBPRegClassID = 80,
386 : GR64_with_sub_32bit_in_GR32_BPSPRegClassID = 81,
387 : GR64_with_sub_32bit_in_GR32_BSIRegClassID = 82,
388 : GR64_with_sub_32bit_in_GR32_CBRegClassID = 83,
389 : GR64_with_sub_32bit_in_GR32_DCRegClassID = 84,
390 : GR64_with_sub_32bit_in_GR32_DIBPRegClassID = 85,
391 : GR64_with_sub_32bit_in_GR32_SIDIRegClassID = 86,
392 : GR64_and_LOW32_ADDR_ACCESSRegClassID = 87,
393 : GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClassID = 88,
394 : GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClassID = 89,
395 : GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClassID = 90,
396 : GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClassID = 91,
397 : GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClassID = 92,
398 : GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClassID = 93,
399 : RSTRegClassID = 94,
400 : RFP80RegClassID = 95,
401 : VR128XRegClassID = 96,
402 : VR128RegClassID = 97,
403 : VR128HRegClassID = 98,
404 : VR128LRegClassID = 99,
405 : BNDRRegClassID = 100,
406 : VR256XRegClassID = 101,
407 : VR256RegClassID = 102,
408 : VR256HRegClassID = 103,
409 : VR256LRegClassID = 104,
410 : VR512RegClassID = 105,
411 : VR512_with_sub_xmm_in_FR32RegClassID = 106,
412 : VR512_with_sub_xmm_in_VR128HRegClassID = 107,
413 : VR512_with_sub_xmm_in_VR128LRegClassID = 108,
414 :
415 : };
416 : } // end namespace X86
417 :
418 :
419 : // Subregister indices
420 :
421 : namespace X86 {
422 : enum {
423 : NoSubRegister,
424 : sub_8bit, // 1
425 : sub_8bit_hi, // 2
426 : sub_8bit_hi_phony, // 3
427 : sub_16bit, // 4
428 : sub_16bit_hi, // 5
429 : sub_32bit, // 6
430 : sub_xmm, // 7
431 : sub_ymm, // 8
432 : NUM_TARGET_SUBREGS
433 : };
434 : } // end namespace X86
435 :
436 : } // end namespace llvm
437 :
438 : #endif // GET_REGINFO_ENUM
439 :
440 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
441 : |* *|
442 : |* MC Register Information *|
443 : |* *|
444 : |* Automatically generated file, do not edit! *|
445 : |* *|
446 : \*===----------------------------------------------------------------------===*/
447 :
448 :
449 : #ifdef GET_REGINFO_MC_DESC
450 : #undef GET_REGINFO_MC_DESC
451 :
452 : namespace llvm {
453 :
454 : extern const MCPhysReg X86RegDiffLists[] = {
455 : /* 0 */ 0, 1, 0,
456 : /* 3 */ 64875, 1, 1, 0,
457 : /* 7 */ 65259, 1, 1, 0,
458 : /* 11 */ 65397, 1, 1, 0,
459 : /* 15 */ 65466, 1, 1, 0,
460 : /* 19 */ 2, 1, 0,
461 : /* 22 */ 4, 1, 0,
462 : /* 25 */ 6, 1, 0,
463 : /* 28 */ 11, 1, 0,
464 : /* 31 */ 22, 1, 0,
465 : /* 34 */ 26, 1, 0,
466 : /* 37 */ 29, 1, 0,
467 : /* 40 */ 64851, 1, 0,
468 : /* 43 */ 10, 3, 0,
469 : /* 46 */ 4, 0,
470 : /* 48 */ 5, 0,
471 : /* 50 */ 65292, 1, 7, 0,
472 : /* 54 */ 65417, 1, 7, 0,
473 : /* 58 */ 10, 3, 7, 0,
474 : /* 62 */ 65512, 8, 0,
475 : /* 65 */ 65342, 1, 11, 0,
476 : /* 69 */ 65348, 1, 11, 0,
477 : /* 73 */ 65442, 1, 11, 0,
478 : /* 77 */ 65448, 1, 11, 0,
479 : /* 81 */ 12, 0,
480 : /* 83 */ 65342, 1, 14, 0,
481 : /* 87 */ 65348, 1, 14, 0,
482 : /* 91 */ 65442, 1, 14, 0,
483 : /* 95 */ 65448, 1, 14, 0,
484 : /* 99 */ 21, 0,
485 : /* 101 */ 22, 0,
486 : /* 103 */ 65534, 65509, 23, 0,
487 : /* 107 */ 65535, 65509, 23, 0,
488 : /* 111 */ 65534, 65511, 23, 0,
489 : /* 115 */ 65535, 65511, 23, 0,
490 : /* 119 */ 65524, 23, 0,
491 : /* 122 */ 128, 8, 65512, 8, 24, 0,
492 : /* 128 */ 65519, 24, 0,
493 : /* 131 */ 65522, 24, 0,
494 : /* 134 */ 65511, 65526, 2, 65535, 24, 0,
495 : /* 140 */ 2, 6, 25, 0,
496 : /* 144 */ 6, 6, 25, 0,
497 : /* 148 */ 65534, 10, 25, 0,
498 : /* 152 */ 65535, 10, 25, 0,
499 : /* 156 */ 2, 12, 25, 0,
500 : /* 160 */ 3, 12, 25, 0,
501 : /* 164 */ 4, 15, 25, 0,
502 : /* 168 */ 5, 15, 25, 0,
503 : /* 172 */ 65534, 17, 25, 0,
504 : /* 176 */ 65535, 17, 25, 0,
505 : /* 180 */ 1, 19, 25, 0,
506 : /* 184 */ 2, 19, 25, 0,
507 : /* 188 */ 65521, 25, 0,
508 : /* 191 */ 26, 0,
509 : /* 193 */ 65511, 65530, 65534, 65532, 27, 0,
510 : /* 199 */ 65511, 65524, 65534, 65535, 30, 0,
511 : /* 205 */ 65511, 65519, 2, 65535, 31, 0,
512 : /* 211 */ 32, 32, 0,
513 : /* 214 */ 65511, 65521, 65532, 65535, 35, 0,
514 : /* 220 */ 65511, 65517, 65535, 65535, 36, 0,
515 : /* 226 */ 64829, 0,
516 : /* 228 */ 64900, 0,
517 : /* 230 */ 64923, 0,
518 : /* 232 */ 65131, 0,
519 : /* 234 */ 65520, 65408, 0,
520 : /* 237 */ 16, 65528, 65408, 0,
521 : /* 241 */ 24, 65528, 65408, 0,
522 : /* 245 */ 65430, 0,
523 : /* 247 */ 65432, 0,
524 : /* 249 */ 65461, 0,
525 : /* 251 */ 65493, 0,
526 : /* 253 */ 65504, 65504, 0,
527 : /* 256 */ 65509, 0,
528 : /* 258 */ 65511, 0,
529 : /* 260 */ 65514, 0,
530 : /* 262 */ 65513, 27, 2, 65535, 65520, 0,
531 : /* 268 */ 65513, 25, 2, 65535, 65522, 0,
532 : /* 274 */ 65525, 0,
533 : /* 276 */ 65530, 0,
534 : /* 278 */ 65531, 0,
535 : /* 280 */ 65534, 65532, 0,
536 : /* 283 */ 65512, 17, 65533, 0,
537 : /* 287 */ 65534, 0,
538 : /* 289 */ 2, 65535, 0,
539 : /* 292 */ 65532, 65535, 0,
540 : /* 295 */ 65534, 65535, 0,
541 : /* 298 */ 65535, 65535, 0,
542 : };
543 :
544 : extern const LaneBitmask X86LaneMaskLists[] = {
545 : /* 0 */ LaneBitmask(0x00000000), LaneBitmask::getAll(),
546 : /* 2 */ LaneBitmask(0x00000002), LaneBitmask(0x00000001), LaneBitmask::getAll(),
547 : /* 5 */ LaneBitmask(0x00000001), LaneBitmask(0x00000004), LaneBitmask::getAll(),
548 : /* 8 */ LaneBitmask(0x00000002), LaneBitmask(0x00000001), LaneBitmask(0x00000008), LaneBitmask::getAll(),
549 : /* 12 */ LaneBitmask(0x00000001), LaneBitmask(0x00000004), LaneBitmask(0x00000008), LaneBitmask::getAll(),
550 : /* 16 */ LaneBitmask(0x00000007), LaneBitmask(0x00000008), LaneBitmask::getAll(),
551 : /* 19 */ LaneBitmask(0x00000010), LaneBitmask::getAll(),
552 : };
553 :
554 : extern const uint16_t X86SubRegIdxLists[] = {
555 : /* 0 */ 1, 2, 0,
556 : /* 3 */ 1, 3, 0,
557 : /* 6 */ 6, 4, 1, 2, 5, 0,
558 : /* 12 */ 6, 4, 1, 3, 5, 0,
559 : /* 18 */ 6, 4, 5, 0,
560 : /* 22 */ 8, 7, 0,
561 : };
562 :
563 : extern const MCRegisterInfo::SubRegCoveredBits X86SubRegIdxRanges[] = {
564 : { 65535, 65535 },
565 : { 0, 8 }, // sub_8bit
566 : { 8, 8 }, // sub_8bit_hi
567 : { 8, 8 }, // sub_8bit_hi_phony
568 : { 0, 16 }, // sub_16bit
569 : { 16, 16 }, // sub_16bit_hi
570 : { 0, 32 }, // sub_32bit
571 : { 0, 128 }, // sub_xmm
572 : { 0, 256 }, // sub_ymm
573 : };
574 :
575 : extern const char X86RegStrings[] = {
576 : /* 0 */ 'X', 'M', 'M', '1', '0', 0,
577 : /* 6 */ 'Y', 'M', 'M', '1', '0', 0,
578 : /* 12 */ 'Z', 'M', 'M', '1', '0', 0,
579 : /* 18 */ 'C', 'R', '1', '0', 0,
580 : /* 23 */ 'D', 'R', '1', '0', 0,
581 : /* 28 */ 'X', 'M', 'M', '2', '0', 0,
582 : /* 34 */ 'Y', 'M', 'M', '2', '0', 0,
583 : /* 40 */ 'Z', 'M', 'M', '2', '0', 0,
584 : /* 46 */ 'X', 'M', 'M', '3', '0', 0,
585 : /* 52 */ 'Y', 'M', 'M', '3', '0', 0,
586 : /* 58 */ 'Z', 'M', 'M', '3', '0', 0,
587 : /* 64 */ 'B', 'N', 'D', '0', 0,
588 : /* 69 */ 'K', '0', 0,
589 : /* 72 */ 'X', 'M', 'M', '0', 0,
590 : /* 77 */ 'Y', 'M', 'M', '0', 0,
591 : /* 82 */ 'Z', 'M', 'M', '0', 0,
592 : /* 87 */ 'F', 'P', '0', 0,
593 : /* 91 */ 'C', 'R', '0', 0,
594 : /* 95 */ 'D', 'R', '0', 0,
595 : /* 99 */ 'S', 'T', '0', 0,
596 : /* 103 */ 'X', 'M', 'M', '1', '1', 0,
597 : /* 109 */ 'Y', 'M', 'M', '1', '1', 0,
598 : /* 115 */ 'Z', 'M', 'M', '1', '1', 0,
599 : /* 121 */ 'C', 'R', '1', '1', 0,
600 : /* 126 */ 'D', 'R', '1', '1', 0,
601 : /* 131 */ 'X', 'M', 'M', '2', '1', 0,
602 : /* 137 */ 'Y', 'M', 'M', '2', '1', 0,
603 : /* 143 */ 'Z', 'M', 'M', '2', '1', 0,
604 : /* 149 */ 'X', 'M', 'M', '3', '1', 0,
605 : /* 155 */ 'Y', 'M', 'M', '3', '1', 0,
606 : /* 161 */ 'Z', 'M', 'M', '3', '1', 0,
607 : /* 167 */ 'B', 'N', 'D', '1', 0,
608 : /* 172 */ 'K', '1', 0,
609 : /* 175 */ 'X', 'M', 'M', '1', 0,
610 : /* 180 */ 'Y', 'M', 'M', '1', 0,
611 : /* 185 */ 'Z', 'M', 'M', '1', 0,
612 : /* 190 */ 'F', 'P', '1', 0,
613 : /* 194 */ 'C', 'R', '1', 0,
614 : /* 198 */ 'D', 'R', '1', 0,
615 : /* 202 */ 'S', 'T', '1', 0,
616 : /* 206 */ 'X', 'M', 'M', '1', '2', 0,
617 : /* 212 */ 'Y', 'M', 'M', '1', '2', 0,
618 : /* 218 */ 'Z', 'M', 'M', '1', '2', 0,
619 : /* 224 */ 'C', 'R', '1', '2', 0,
620 : /* 229 */ 'D', 'R', '1', '2', 0,
621 : /* 234 */ 'X', 'M', 'M', '2', '2', 0,
622 : /* 240 */ 'Y', 'M', 'M', '2', '2', 0,
623 : /* 246 */ 'Z', 'M', 'M', '2', '2', 0,
624 : /* 252 */ 'B', 'N', 'D', '2', 0,
625 : /* 257 */ 'K', '2', 0,
626 : /* 260 */ 'X', 'M', 'M', '2', 0,
627 : /* 265 */ 'Y', 'M', 'M', '2', 0,
628 : /* 270 */ 'Z', 'M', 'M', '2', 0,
629 : /* 275 */ 'F', 'P', '2', 0,
630 : /* 279 */ 'C', 'R', '2', 0,
631 : /* 283 */ 'D', 'R', '2', 0,
632 : /* 287 */ 'S', 'T', '2', 0,
633 : /* 291 */ 'X', 'M', 'M', '1', '3', 0,
634 : /* 297 */ 'Y', 'M', 'M', '1', '3', 0,
635 : /* 303 */ 'Z', 'M', 'M', '1', '3', 0,
636 : /* 309 */ 'C', 'R', '1', '3', 0,
637 : /* 314 */ 'D', 'R', '1', '3', 0,
638 : /* 319 */ 'X', 'M', 'M', '2', '3', 0,
639 : /* 325 */ 'Y', 'M', 'M', '2', '3', 0,
640 : /* 331 */ 'Z', 'M', 'M', '2', '3', 0,
641 : /* 337 */ 'B', 'N', 'D', '3', 0,
642 : /* 342 */ 'K', '3', 0,
643 : /* 345 */ 'X', 'M', 'M', '3', 0,
644 : /* 350 */ 'Y', 'M', 'M', '3', 0,
645 : /* 355 */ 'Z', 'M', 'M', '3', 0,
646 : /* 360 */ 'F', 'P', '3', 0,
647 : /* 364 */ 'C', 'R', '3', 0,
648 : /* 368 */ 'D', 'R', '3', 0,
649 : /* 372 */ 'S', 'T', '3', 0,
650 : /* 376 */ 'X', 'M', 'M', '1', '4', 0,
651 : /* 382 */ 'Y', 'M', 'M', '1', '4', 0,
652 : /* 388 */ 'Z', 'M', 'M', '1', '4', 0,
653 : /* 394 */ 'C', 'R', '1', '4', 0,
654 : /* 399 */ 'D', 'R', '1', '4', 0,
655 : /* 404 */ 'X', 'M', 'M', '2', '4', 0,
656 : /* 410 */ 'Y', 'M', 'M', '2', '4', 0,
657 : /* 416 */ 'Z', 'M', 'M', '2', '4', 0,
658 : /* 422 */ 'K', '4', 0,
659 : /* 425 */ 'X', 'M', 'M', '4', 0,
660 : /* 430 */ 'Y', 'M', 'M', '4', 0,
661 : /* 435 */ 'Z', 'M', 'M', '4', 0,
662 : /* 440 */ 'F', 'P', '4', 0,
663 : /* 444 */ 'C', 'R', '4', 0,
664 : /* 448 */ 'D', 'R', '4', 0,
665 : /* 452 */ 'S', 'T', '4', 0,
666 : /* 456 */ 'X', 'M', 'M', '1', '5', 0,
667 : /* 462 */ 'Y', 'M', 'M', '1', '5', 0,
668 : /* 468 */ 'Z', 'M', 'M', '1', '5', 0,
669 : /* 474 */ 'C', 'R', '1', '5', 0,
670 : /* 479 */ 'D', 'R', '1', '5', 0,
671 : /* 484 */ 'X', 'M', 'M', '2', '5', 0,
672 : /* 490 */ 'Y', 'M', 'M', '2', '5', 0,
673 : /* 496 */ 'Z', 'M', 'M', '2', '5', 0,
674 : /* 502 */ 'K', '5', 0,
675 : /* 505 */ 'X', 'M', 'M', '5', 0,
676 : /* 510 */ 'Y', 'M', 'M', '5', 0,
677 : /* 515 */ 'Z', 'M', 'M', '5', 0,
678 : /* 520 */ 'F', 'P', '5', 0,
679 : /* 524 */ 'C', 'R', '5', 0,
680 : /* 528 */ 'D', 'R', '5', 0,
681 : /* 532 */ 'S', 'T', '5', 0,
682 : /* 536 */ 'X', 'M', 'M', '1', '6', 0,
683 : /* 542 */ 'Y', 'M', 'M', '1', '6', 0,
684 : /* 548 */ 'Z', 'M', 'M', '1', '6', 0,
685 : /* 554 */ 'X', 'M', 'M', '2', '6', 0,
686 : /* 560 */ 'Y', 'M', 'M', '2', '6', 0,
687 : /* 566 */ 'Z', 'M', 'M', '2', '6', 0,
688 : /* 572 */ 'K', '6', 0,
689 : /* 575 */ 'X', 'M', 'M', '6', 0,
690 : /* 580 */ 'Y', 'M', 'M', '6', 0,
691 : /* 585 */ 'Z', 'M', 'M', '6', 0,
692 : /* 590 */ 'F', 'P', '6', 0,
693 : /* 594 */ 'C', 'R', '6', 0,
694 : /* 598 */ 'D', 'R', '6', 0,
695 : /* 602 */ 'S', 'T', '6', 0,
696 : /* 606 */ 'X', 'M', 'M', '1', '7', 0,
697 : /* 612 */ 'Y', 'M', 'M', '1', '7', 0,
698 : /* 618 */ 'Z', 'M', 'M', '1', '7', 0,
699 : /* 624 */ 'X', 'M', 'M', '2', '7', 0,
700 : /* 630 */ 'Y', 'M', 'M', '2', '7', 0,
701 : /* 636 */ 'Z', 'M', 'M', '2', '7', 0,
702 : /* 642 */ 'K', '7', 0,
703 : /* 645 */ 'X', 'M', 'M', '7', 0,
704 : /* 650 */ 'Y', 'M', 'M', '7', 0,
705 : /* 655 */ 'Z', 'M', 'M', '7', 0,
706 : /* 660 */ 'F', 'P', '7', 0,
707 : /* 664 */ 'C', 'R', '7', 0,
708 : /* 668 */ 'D', 'R', '7', 0,
709 : /* 672 */ 'S', 'T', '7', 0,
710 : /* 676 */ 'X', 'M', 'M', '1', '8', 0,
711 : /* 682 */ 'Y', 'M', 'M', '1', '8', 0,
712 : /* 688 */ 'Z', 'M', 'M', '1', '8', 0,
713 : /* 694 */ 'X', 'M', 'M', '2', '8', 0,
714 : /* 700 */ 'Y', 'M', 'M', '2', '8', 0,
715 : /* 706 */ 'Z', 'M', 'M', '2', '8', 0,
716 : /* 712 */ 'X', 'M', 'M', '8', 0,
717 : /* 717 */ 'Y', 'M', 'M', '8', 0,
718 : /* 722 */ 'Z', 'M', 'M', '8', 0,
719 : /* 727 */ 'C', 'R', '8', 0,
720 : /* 731 */ 'D', 'R', '8', 0,
721 : /* 735 */ 'X', 'M', 'M', '1', '9', 0,
722 : /* 741 */ 'Y', 'M', 'M', '1', '9', 0,
723 : /* 747 */ 'Z', 'M', 'M', '1', '9', 0,
724 : /* 753 */ 'X', 'M', 'M', '2', '9', 0,
725 : /* 759 */ 'Y', 'M', 'M', '2', '9', 0,
726 : /* 765 */ 'Z', 'M', 'M', '2', '9', 0,
727 : /* 771 */ 'X', 'M', 'M', '9', 0,
728 : /* 776 */ 'Y', 'M', 'M', '9', 0,
729 : /* 781 */ 'Z', 'M', 'M', '9', 0,
730 : /* 786 */ 'C', 'R', '9', 0,
731 : /* 790 */ 'D', 'R', '9', 0,
732 : /* 794 */ 'R', '1', '0', 'B', 0,
733 : /* 799 */ 'R', '1', '1', 'B', 0,
734 : /* 804 */ 'R', '1', '2', 'B', 0,
735 : /* 809 */ 'R', '1', '3', 'B', 0,
736 : /* 814 */ 'R', '1', '4', 'B', 0,
737 : /* 819 */ 'R', '1', '5', 'B', 0,
738 : /* 824 */ 'R', '8', 'B', 0,
739 : /* 828 */ 'R', '9', 'B', 0,
740 : /* 832 */ 'R', '1', '0', 'D', 0,
741 : /* 837 */ 'R', '1', '1', 'D', 0,
742 : /* 842 */ 'R', '1', '2', 'D', 0,
743 : /* 847 */ 'R', '1', '3', 'D', 0,
744 : /* 852 */ 'R', '1', '4', 'D', 0,
745 : /* 857 */ 'R', '1', '5', 'D', 0,
746 : /* 862 */ 'R', '8', 'D', 0,
747 : /* 866 */ 'R', '9', 'D', 0,
748 : /* 870 */ 'D', 'F', 0,
749 : /* 873 */ 'A', 'H', 0,
750 : /* 876 */ 'R', '1', '0', 'B', 'H', 0,
751 : /* 882 */ 'R', '1', '1', 'B', 'H', 0,
752 : /* 888 */ 'R', '1', '2', 'B', 'H', 0,
753 : /* 894 */ 'R', '1', '3', 'B', 'H', 0,
754 : /* 900 */ 'R', '1', '4', 'B', 'H', 0,
755 : /* 906 */ 'R', '1', '5', 'B', 'H', 0,
756 : /* 912 */ 'R', '8', 'B', 'H', 0,
757 : /* 917 */ 'R', '9', 'B', 'H', 0,
758 : /* 922 */ 'C', 'H', 0,
759 : /* 925 */ 'D', 'H', 0,
760 : /* 928 */ 'D', 'I', 'H', 0,
761 : /* 932 */ 'S', 'I', 'H', 0,
762 : /* 936 */ 'B', 'P', 'H', 0,
763 : /* 940 */ 'S', 'P', 'H', 0,
764 : /* 944 */ 'R', '1', '0', 'W', 'H', 0,
765 : /* 950 */ 'R', '1', '1', 'W', 'H', 0,
766 : /* 956 */ 'R', '1', '2', 'W', 'H', 0,
767 : /* 962 */ 'R', '1', '3', 'W', 'H', 0,
768 : /* 968 */ 'R', '1', '4', 'W', 'H', 0,
769 : /* 974 */ 'R', '1', '5', 'W', 'H', 0,
770 : /* 980 */ 'R', '8', 'W', 'H', 0,
771 : /* 985 */ 'R', '9', 'W', 'H', 0,
772 : /* 990 */ 'E', 'D', 'I', 0,
773 : /* 994 */ 'H', 'D', 'I', 0,
774 : /* 998 */ 'R', 'D', 'I', 0,
775 : /* 1002 */ 'E', 'S', 'I', 0,
776 : /* 1006 */ 'H', 'S', 'I', 0,
777 : /* 1010 */ 'R', 'S', 'I', 0,
778 : /* 1014 */ 'A', 'L', 0,
779 : /* 1017 */ 'B', 'L', 0,
780 : /* 1020 */ 'C', 'L', 0,
781 : /* 1023 */ 'D', 'L', 0,
782 : /* 1026 */ 'D', 'I', 'L', 0,
783 : /* 1030 */ 'S', 'I', 'L', 0,
784 : /* 1034 */ 'B', 'P', 'L', 0,
785 : /* 1038 */ 'S', 'P', 'L', 0,
786 : /* 1042 */ 'E', 'B', 'P', 0,
787 : /* 1046 */ 'H', 'B', 'P', 0,
788 : /* 1050 */ 'R', 'B', 'P', 0,
789 : /* 1054 */ 'E', 'I', 'P', 0,
790 : /* 1058 */ 'H', 'I', 'P', 0,
791 : /* 1062 */ 'R', 'I', 'P', 0,
792 : /* 1066 */ 'E', 'S', 'P', 0,
793 : /* 1070 */ 'H', 'S', 'P', 0,
794 : /* 1074 */ 'R', 'S', 'P', 0,
795 : /* 1078 */ 'S', 'S', 'P', 0,
796 : /* 1082 */ 'C', 'S', 0,
797 : /* 1085 */ 'D', 'S', 0,
798 : /* 1088 */ 'E', 'S', 0,
799 : /* 1091 */ 'F', 'S', 0,
800 : /* 1094 */ 'E', 'F', 'L', 'A', 'G', 'S', 0,
801 : /* 1101 */ 'S', 'S', 0,
802 : /* 1104 */ 'R', '1', '0', 'W', 0,
803 : /* 1109 */ 'R', '1', '1', 'W', 0,
804 : /* 1114 */ 'R', '1', '2', 'W', 0,
805 : /* 1119 */ 'R', '1', '3', 'W', 0,
806 : /* 1124 */ 'R', '1', '4', 'W', 0,
807 : /* 1129 */ 'R', '1', '5', 'W', 0,
808 : /* 1134 */ 'R', '8', 'W', 0,
809 : /* 1138 */ 'R', '9', 'W', 0,
810 : /* 1142 */ 'F', 'P', 'S', 'W', 0,
811 : /* 1147 */ 'E', 'A', 'X', 0,
812 : /* 1151 */ 'H', 'A', 'X', 0,
813 : /* 1155 */ 'R', 'A', 'X', 0,
814 : /* 1159 */ 'E', 'B', 'X', 0,
815 : /* 1163 */ 'H', 'B', 'X', 0,
816 : /* 1167 */ 'R', 'B', 'X', 0,
817 : /* 1171 */ 'E', 'C', 'X', 0,
818 : /* 1175 */ 'H', 'C', 'X', 0,
819 : /* 1179 */ 'R', 'C', 'X', 0,
820 : /* 1183 */ 'E', 'D', 'X', 0,
821 : /* 1187 */ 'H', 'D', 'X', 0,
822 : /* 1191 */ 'R', 'D', 'X', 0,
823 : /* 1195 */ 'E', 'I', 'Z', 0,
824 : /* 1199 */ 'R', 'I', 'Z', 0,
825 : };
826 :
827 : extern const MCRegisterDesc X86RegDesc[] = { // Descriptors
828 : { 5, 0, 0, 0, 0, 0 },
829 : { 873, 2, 184, 2, 4641, 0 },
830 : { 1014, 2, 180, 2, 4641, 0 },
831 : { 1148, 298, 181, 0, 0, 2 },
832 : { 879, 2, 168, 2, 4593, 0 },
833 : { 1017, 2, 164, 2, 4593, 0 },
834 : { 1043, 289, 173, 3, 352, 5 },
835 : { 936, 2, 176, 2, 768, 0 },
836 : { 1034, 2, 172, 2, 736, 0 },
837 : { 1160, 292, 165, 0, 304, 2 },
838 : { 922, 2, 160, 2, 4497, 0 },
839 : { 1020, 2, 156, 2, 4497, 0 },
840 : { 1082, 2, 2, 2, 4497, 0 },
841 : { 1172, 295, 157, 0, 400, 2 },
842 : { 870, 2, 2, 2, 4449, 0 },
843 : { 925, 2, 144, 2, 4449, 0 },
844 : { 991, 289, 149, 3, 448, 5 },
845 : { 928, 2, 152, 2, 1296, 0 },
846 : { 1026, 2, 148, 2, 4130, 0 },
847 : { 1023, 2, 140, 2, 4417, 0 },
848 : { 1085, 2, 2, 2, 4417, 0 },
849 : { 1184, 280, 141, 0, 688, 2 },
850 : { 1147, 221, 142, 7, 1524, 8 },
851 : { 1042, 206, 142, 13, 1236, 12 },
852 : { 1159, 215, 142, 7, 1460, 8 },
853 : { 1171, 200, 142, 7, 1172, 8 },
854 : { 990, 135, 142, 13, 869, 12 },
855 : { 1183, 194, 142, 7, 928, 8 },
856 : { 1094, 2, 2, 2, 1584, 0 },
857 : { 1054, 284, 126, 19, 496, 16 },
858 : { 1195, 2, 2, 2, 4417, 0 },
859 : { 1088, 2, 2, 2, 4417, 0 },
860 : { 1002, 269, 105, 13, 243, 12 },
861 : { 1066, 263, 105, 13, 243, 12 },
862 : { 1142, 2, 2, 2, 4593, 0 },
863 : { 1091, 2, 2, 2, 4593, 0 },
864 : { 1098, 2, 2, 2, 4593, 0 },
865 : { 1151, 2, 188, 2, 4161, 0 },
866 : { 1046, 2, 188, 2, 4161, 0 },
867 : { 1163, 2, 188, 2, 4161, 0 },
868 : { 1175, 2, 188, 2, 4161, 0 },
869 : { 994, 2, 188, 2, 4161, 0 },
870 : { 1187, 2, 188, 2, 4161, 0 },
871 : { 1058, 2, 131, 2, 3923, 0 },
872 : { 1006, 2, 119, 2, 3955, 0 },
873 : { 1070, 2, 119, 2, 3955, 0 },
874 : { 1055, 2, 128, 2, 1616, 0 },
875 : { 1155, 220, 2, 6, 1396, 8 },
876 : { 1050, 205, 2, 12, 1108, 12 },
877 : { 1167, 214, 2, 6, 1332, 8 },
878 : { 1179, 199, 2, 6, 1044, 8 },
879 : { 998, 134, 2, 12, 805, 12 },
880 : { 1191, 193, 2, 6, 928, 8 },
881 : { 1062, 283, 2, 18, 496, 16 },
882 : { 1199, 2, 2, 2, 3488, 0 },
883 : { 1010, 268, 2, 12, 179, 12 },
884 : { 1074, 262, 2, 12, 179, 12 },
885 : { 1003, 289, 112, 3, 544, 5 },
886 : { 932, 2, 115, 2, 3152, 0 },
887 : { 1030, 2, 111, 2, 3056, 0 },
888 : { 1067, 289, 104, 3, 592, 5 },
889 : { 940, 2, 107, 2, 3248, 0 },
890 : { 1038, 2, 103, 2, 3719, 0 },
891 : { 1101, 2, 2, 2, 4097, 0 },
892 : { 1078, 2, 2, 2, 4097, 0 },
893 : { 64, 2, 2, 2, 4097, 0 },
894 : { 167, 2, 2, 2, 4097, 0 },
895 : { 252, 2, 2, 2, 4097, 0 },
896 : { 337, 2, 2, 2, 4097, 0 },
897 : { 91, 2, 2, 2, 4097, 0 },
898 : { 194, 2, 2, 2, 4097, 0 },
899 : { 279, 2, 2, 2, 4097, 0 },
900 : { 364, 2, 2, 2, 4097, 0 },
901 : { 444, 2, 2, 2, 4097, 0 },
902 : { 524, 2, 2, 2, 4097, 0 },
903 : { 594, 2, 2, 2, 4097, 0 },
904 : { 664, 2, 2, 2, 4097, 0 },
905 : { 727, 2, 2, 2, 4097, 0 },
906 : { 786, 2, 2, 2, 4097, 0 },
907 : { 18, 2, 2, 2, 4097, 0 },
908 : { 121, 2, 2, 2, 4097, 0 },
909 : { 224, 2, 2, 2, 4097, 0 },
910 : { 309, 2, 2, 2, 4097, 0 },
911 : { 394, 2, 2, 2, 4097, 0 },
912 : { 474, 2, 2, 2, 4097, 0 },
913 : { 95, 2, 2, 2, 4097, 0 },
914 : { 198, 2, 2, 2, 4097, 0 },
915 : { 283, 2, 2, 2, 4097, 0 },
916 : { 368, 2, 2, 2, 4097, 0 },
917 : { 448, 2, 2, 2, 4097, 0 },
918 : { 528, 2, 2, 2, 4097, 0 },
919 : { 598, 2, 2, 2, 4097, 0 },
920 : { 668, 2, 2, 2, 4097, 0 },
921 : { 731, 2, 2, 2, 4097, 0 },
922 : { 790, 2, 2, 2, 4097, 0 },
923 : { 23, 2, 2, 2, 4097, 0 },
924 : { 126, 2, 2, 2, 4097, 0 },
925 : { 229, 2, 2, 2, 4097, 0 },
926 : { 314, 2, 2, 2, 4097, 0 },
927 : { 399, 2, 2, 2, 4097, 0 },
928 : { 479, 2, 2, 2, 4097, 0 },
929 : { 87, 2, 2, 2, 4097, 0 },
930 : { 190, 2, 2, 2, 4097, 0 },
931 : { 275, 2, 2, 2, 4097, 0 },
932 : { 360, 2, 2, 2, 4097, 0 },
933 : { 440, 2, 2, 2, 4097, 0 },
934 : { 520, 2, 2, 2, 4097, 0 },
935 : { 590, 2, 2, 2, 4097, 0 },
936 : { 660, 2, 2, 2, 4097, 0 },
937 : { 69, 2, 2, 2, 4097, 0 },
938 : { 172, 2, 2, 2, 4097, 0 },
939 : { 257, 2, 2, 2, 4097, 0 },
940 : { 342, 2, 2, 2, 4097, 0 },
941 : { 422, 2, 2, 2, 4097, 0 },
942 : { 502, 2, 2, 2, 4097, 0 },
943 : { 572, 2, 2, 2, 4097, 0 },
944 : { 642, 2, 2, 2, 4097, 0 },
945 : { 73, 2, 2, 2, 4097, 0 },
946 : { 176, 2, 2, 2, 4097, 0 },
947 : { 261, 2, 2, 2, 4097, 0 },
948 : { 346, 2, 2, 2, 4097, 0 },
949 : { 426, 2, 2, 2, 4097, 0 },
950 : { 506, 2, 2, 2, 4097, 0 },
951 : { 576, 2, 2, 2, 4097, 0 },
952 : { 646, 2, 2, 2, 4097, 0 },
953 : { 728, 122, 2, 12, 115, 12 },
954 : { 787, 122, 2, 12, 115, 12 },
955 : { 19, 122, 2, 12, 115, 12 },
956 : { 122, 122, 2, 12, 115, 12 },
957 : { 225, 122, 2, 12, 115, 12 },
958 : { 310, 122, 2, 12, 115, 12 },
959 : { 395, 122, 2, 12, 115, 12 },
960 : { 475, 122, 2, 12, 115, 12 },
961 : { 99, 2, 2, 2, 4385, 0 },
962 : { 202, 2, 2, 2, 4385, 0 },
963 : { 287, 2, 2, 2, 4385, 0 },
964 : { 372, 2, 2, 2, 4385, 0 },
965 : { 452, 2, 2, 2, 4385, 0 },
966 : { 532, 2, 2, 2, 4385, 0 },
967 : { 602, 2, 2, 2, 4385, 0 },
968 : { 672, 2, 2, 2, 4385, 0 },
969 : { 72, 2, 211, 2, 4385, 0 },
970 : { 175, 2, 211, 2, 4385, 0 },
971 : { 260, 2, 211, 2, 4385, 0 },
972 : { 345, 2, 211, 2, 4385, 0 },
973 : { 425, 2, 211, 2, 4385, 0 },
974 : { 505, 2, 211, 2, 4385, 0 },
975 : { 575, 2, 211, 2, 4385, 0 },
976 : { 645, 2, 211, 2, 4385, 0 },
977 : { 712, 2, 211, 2, 4385, 0 },
978 : { 771, 2, 211, 2, 4385, 0 },
979 : { 0, 2, 211, 2, 4385, 0 },
980 : { 103, 2, 211, 2, 4385, 0 },
981 : { 206, 2, 211, 2, 4385, 0 },
982 : { 291, 2, 211, 2, 4385, 0 },
983 : { 376, 2, 211, 2, 4385, 0 },
984 : { 456, 2, 211, 2, 4385, 0 },
985 : { 536, 2, 211, 2, 4385, 0 },
986 : { 606, 2, 211, 2, 4385, 0 },
987 : { 676, 2, 211, 2, 4385, 0 },
988 : { 735, 2, 211, 2, 4385, 0 },
989 : { 28, 2, 211, 2, 4385, 0 },
990 : { 131, 2, 211, 2, 4385, 0 },
991 : { 234, 2, 211, 2, 4385, 0 },
992 : { 319, 2, 211, 2, 4385, 0 },
993 : { 404, 2, 211, 2, 4385, 0 },
994 : { 484, 2, 211, 2, 4385, 0 },
995 : { 554, 2, 211, 2, 4385, 0 },
996 : { 624, 2, 211, 2, 4385, 0 },
997 : { 694, 2, 211, 2, 4385, 0 },
998 : { 753, 2, 211, 2, 4385, 0 },
999 : { 46, 2, 211, 2, 4385, 0 },
1000 : { 149, 2, 211, 2, 4385, 0 },
1001 : { 77, 254, 212, 23, 4017, 19 },
1002 : { 180, 254, 212, 23, 4017, 19 },
1003 : { 265, 254, 212, 23, 4017, 19 },
1004 : { 350, 254, 212, 23, 4017, 19 },
1005 : { 430, 254, 212, 23, 4017, 19 },
1006 : { 510, 254, 212, 23, 4017, 19 },
1007 : { 580, 254, 212, 23, 4017, 19 },
1008 : { 650, 254, 212, 23, 4017, 19 },
1009 : { 717, 254, 212, 23, 4017, 19 },
1010 : { 776, 254, 212, 23, 4017, 19 },
1011 : { 6, 254, 212, 23, 4017, 19 },
1012 : { 109, 254, 212, 23, 4017, 19 },
1013 : { 212, 254, 212, 23, 4017, 19 },
1014 : { 297, 254, 212, 23, 4017, 19 },
1015 : { 382, 254, 212, 23, 4017, 19 },
1016 : { 462, 254, 212, 23, 4017, 19 },
1017 : { 542, 254, 212, 23, 4017, 19 },
1018 : { 612, 254, 212, 23, 4017, 19 },
1019 : { 682, 254, 212, 23, 4017, 19 },
1020 : { 741, 254, 212, 23, 4017, 19 },
1021 : { 34, 254, 212, 23, 4017, 19 },
1022 : { 137, 254, 212, 23, 4017, 19 },
1023 : { 240, 254, 212, 23, 4017, 19 },
1024 : { 325, 254, 212, 23, 4017, 19 },
1025 : { 410, 254, 212, 23, 4017, 19 },
1026 : { 490, 254, 212, 23, 4017, 19 },
1027 : { 560, 254, 212, 23, 4017, 19 },
1028 : { 630, 254, 212, 23, 4017, 19 },
1029 : { 700, 254, 212, 23, 4017, 19 },
1030 : { 759, 254, 212, 23, 4017, 19 },
1031 : { 52, 254, 212, 23, 4017, 19 },
1032 : { 155, 254, 212, 23, 4017, 19 },
1033 : { 82, 253, 2, 22, 3985, 19 },
1034 : { 185, 253, 2, 22, 3985, 19 },
1035 : { 270, 253, 2, 22, 3985, 19 },
1036 : { 355, 253, 2, 22, 3985, 19 },
1037 : { 435, 253, 2, 22, 3985, 19 },
1038 : { 515, 253, 2, 22, 3985, 19 },
1039 : { 585, 253, 2, 22, 3985, 19 },
1040 : { 655, 253, 2, 22, 3985, 19 },
1041 : { 722, 253, 2, 22, 3985, 19 },
1042 : { 781, 253, 2, 22, 3985, 19 },
1043 : { 12, 253, 2, 22, 3985, 19 },
1044 : { 115, 253, 2, 22, 3985, 19 },
1045 : { 218, 253, 2, 22, 3985, 19 },
1046 : { 303, 253, 2, 22, 3985, 19 },
1047 : { 388, 253, 2, 22, 3985, 19 },
1048 : { 468, 253, 2, 22, 3985, 19 },
1049 : { 548, 253, 2, 22, 3985, 19 },
1050 : { 618, 253, 2, 22, 3985, 19 },
1051 : { 688, 253, 2, 22, 3985, 19 },
1052 : { 747, 253, 2, 22, 3985, 19 },
1053 : { 40, 253, 2, 22, 3985, 19 },
1054 : { 143, 253, 2, 22, 3985, 19 },
1055 : { 246, 253, 2, 22, 3985, 19 },
1056 : { 331, 253, 2, 22, 3985, 19 },
1057 : { 416, 253, 2, 22, 3985, 19 },
1058 : { 496, 253, 2, 22, 3985, 19 },
1059 : { 566, 253, 2, 22, 3985, 19 },
1060 : { 636, 253, 2, 22, 3985, 19 },
1061 : { 706, 253, 2, 22, 3985, 19 },
1062 : { 765, 253, 2, 22, 3985, 19 },
1063 : { 58, 253, 2, 22, 3985, 19 },
1064 : { 161, 253, 2, 22, 3985, 19 },
1065 : { 824, 2, 241, 2, 3683, 0 },
1066 : { 828, 2, 241, 2, 3683, 0 },
1067 : { 794, 2, 241, 2, 3683, 0 },
1068 : { 799, 2, 241, 2, 3683, 0 },
1069 : { 804, 2, 241, 2, 3683, 0 },
1070 : { 809, 2, 241, 2, 3683, 0 },
1071 : { 814, 2, 241, 2, 3683, 0 },
1072 : { 819, 2, 241, 2, 3683, 0 },
1073 : { 912, 2, 237, 2, 3651, 0 },
1074 : { 917, 2, 237, 2, 3651, 0 },
1075 : { 876, 2, 237, 2, 3651, 0 },
1076 : { 882, 2, 237, 2, 3651, 0 },
1077 : { 888, 2, 237, 2, 3651, 0 },
1078 : { 894, 2, 237, 2, 3651, 0 },
1079 : { 900, 2, 237, 2, 3651, 0 },
1080 : { 906, 2, 237, 2, 3651, 0 },
1081 : { 862, 123, 235, 13, 51, 12 },
1082 : { 866, 123, 235, 13, 51, 12 },
1083 : { 832, 123, 235, 13, 51, 12 },
1084 : { 837, 123, 235, 13, 51, 12 },
1085 : { 842, 123, 235, 13, 51, 12 },
1086 : { 847, 123, 235, 13, 51, 12 },
1087 : { 852, 123, 235, 13, 51, 12 },
1088 : { 857, 123, 235, 13, 51, 12 },
1089 : { 1134, 62, 238, 3, 643, 5 },
1090 : { 1138, 62, 238, 3, 643, 5 },
1091 : { 1104, 62, 238, 3, 643, 5 },
1092 : { 1109, 62, 238, 3, 643, 5 },
1093 : { 1114, 62, 238, 3, 643, 5 },
1094 : { 1119, 62, 238, 3, 643, 5 },
1095 : { 1124, 62, 238, 3, 643, 5 },
1096 : { 1129, 62, 238, 3, 643, 5 },
1097 : { 980, 2, 234, 2, 3619, 0 },
1098 : { 985, 2, 234, 2, 3619, 0 },
1099 : { 944, 2, 234, 2, 3619, 0 },
1100 : { 950, 2, 234, 2, 3619, 0 },
1101 : { 956, 2, 234, 2, 3619, 0 },
1102 : { 962, 2, 234, 2, 3619, 0 },
1103 : { 968, 2, 234, 2, 3619, 0 },
1104 : { 974, 2, 234, 2, 3619, 0 },
1105 : };
1106 :
1107 : extern const MCPhysReg X86RegUnitRoots[][2] = {
1108 : { X86::AH },
1109 : { X86::AL },
1110 : { X86::BH },
1111 : { X86::BL },
1112 : { X86::BPL },
1113 : { X86::BPH },
1114 : { X86::CH },
1115 : { X86::CL },
1116 : { X86::CS },
1117 : { X86::DF },
1118 : { X86::DH },
1119 : { X86::DIL },
1120 : { X86::DIH },
1121 : { X86::DL },
1122 : { X86::DS },
1123 : { X86::HAX },
1124 : { X86::HBP },
1125 : { X86::HBX },
1126 : { X86::HCX },
1127 : { X86::HDI },
1128 : { X86::HDX },
1129 : { X86::EFLAGS },
1130 : { X86::IP },
1131 : { X86::HIP },
1132 : { X86::EIZ },
1133 : { X86::ES },
1134 : { X86::SIL },
1135 : { X86::SIH },
1136 : { X86::HSI },
1137 : { X86::SPL },
1138 : { X86::SPH },
1139 : { X86::HSP },
1140 : { X86::FPSW },
1141 : { X86::FS },
1142 : { X86::GS },
1143 : { X86::RIZ },
1144 : { X86::SS },
1145 : { X86::SSP },
1146 : { X86::BND0 },
1147 : { X86::BND1 },
1148 : { X86::BND2 },
1149 : { X86::BND3 },
1150 : { X86::CR0 },
1151 : { X86::CR1 },
1152 : { X86::CR2 },
1153 : { X86::CR3 },
1154 : { X86::CR4 },
1155 : { X86::CR5 },
1156 : { X86::CR6 },
1157 : { X86::CR7 },
1158 : { X86::CR8 },
1159 : { X86::CR9 },
1160 : { X86::CR10 },
1161 : { X86::CR11 },
1162 : { X86::CR12 },
1163 : { X86::CR13 },
1164 : { X86::CR14 },
1165 : { X86::CR15 },
1166 : { X86::DR0 },
1167 : { X86::DR1 },
1168 : { X86::DR2 },
1169 : { X86::DR3 },
1170 : { X86::DR4 },
1171 : { X86::DR5 },
1172 : { X86::DR6 },
1173 : { X86::DR7 },
1174 : { X86::DR8 },
1175 : { X86::DR9 },
1176 : { X86::DR10 },
1177 : { X86::DR11 },
1178 : { X86::DR12 },
1179 : { X86::DR13 },
1180 : { X86::DR14 },
1181 : { X86::DR15 },
1182 : { X86::FP0 },
1183 : { X86::FP1 },
1184 : { X86::FP2 },
1185 : { X86::FP3 },
1186 : { X86::FP4 },
1187 : { X86::FP5 },
1188 : { X86::FP6 },
1189 : { X86::FP7 },
1190 : { X86::K0 },
1191 : { X86::K1 },
1192 : { X86::K2 },
1193 : { X86::K3 },
1194 : { X86::K4 },
1195 : { X86::K5 },
1196 : { X86::K6 },
1197 : { X86::K7 },
1198 : { X86::MM0 },
1199 : { X86::MM1 },
1200 : { X86::MM2 },
1201 : { X86::MM3 },
1202 : { X86::MM4 },
1203 : { X86::MM5 },
1204 : { X86::MM6 },
1205 : { X86::MM7 },
1206 : { X86::R8B },
1207 : { X86::R8BH },
1208 : { X86::R8WH },
1209 : { X86::R9B },
1210 : { X86::R9BH },
1211 : { X86::R9WH },
1212 : { X86::R10B },
1213 : { X86::R10BH },
1214 : { X86::R10WH },
1215 : { X86::R11B },
1216 : { X86::R11BH },
1217 : { X86::R11WH },
1218 : { X86::R12B },
1219 : { X86::R12BH },
1220 : { X86::R12WH },
1221 : { X86::R13B },
1222 : { X86::R13BH },
1223 : { X86::R13WH },
1224 : { X86::R14B },
1225 : { X86::R14BH },
1226 : { X86::R14WH },
1227 : { X86::R15B },
1228 : { X86::R15BH },
1229 : { X86::R15WH },
1230 : { X86::ST0 },
1231 : { X86::ST1 },
1232 : { X86::ST2 },
1233 : { X86::ST3 },
1234 : { X86::ST4 },
1235 : { X86::ST5 },
1236 : { X86::ST6 },
1237 : { X86::ST7 },
1238 : { X86::XMM0 },
1239 : { X86::XMM1 },
1240 : { X86::XMM2 },
1241 : { X86::XMM3 },
1242 : { X86::XMM4 },
1243 : { X86::XMM5 },
1244 : { X86::XMM6 },
1245 : { X86::XMM7 },
1246 : { X86::XMM8 },
1247 : { X86::XMM9 },
1248 : { X86::XMM10 },
1249 : { X86::XMM11 },
1250 : { X86::XMM12 },
1251 : { X86::XMM13 },
1252 : { X86::XMM14 },
1253 : { X86::XMM15 },
1254 : { X86::XMM16 },
1255 : { X86::XMM17 },
1256 : { X86::XMM18 },
1257 : { X86::XMM19 },
1258 : { X86::XMM20 },
1259 : { X86::XMM21 },
1260 : { X86::XMM22 },
1261 : { X86::XMM23 },
1262 : { X86::XMM24 },
1263 : { X86::XMM25 },
1264 : { X86::XMM26 },
1265 : { X86::XMM27 },
1266 : { X86::XMM28 },
1267 : { X86::XMM29 },
1268 : { X86::XMM30 },
1269 : { X86::XMM31 },
1270 : };
1271 :
1272 : namespace { // Register classes...
1273 : // GR8 Register Class...
1274 : const MCPhysReg GR8[] = {
1275 : 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,
1276 : };
1277 :
1278 : // GR8 Bit set.
1279 : const uint8_t GR8Bits[] = {
1280 : 0x36, 0x8d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1281 : };
1282 :
1283 : // GRH8 Register Class...
1284 : const MCPhysReg GRH8[] = {
1285 : X86::SIH, X86::DIH, X86::BPH, X86::SPH, X86::R8BH, X86::R9BH, X86::R10BH, X86::R11BH, X86::R12BH, X86::R13BH, X86::R14BH, X86::R15BH,
1286 : };
1287 :
1288 : // GRH8 Bit set.
1289 : const uint8_t GRH8Bits[] = {
1290 : 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1291 : };
1292 :
1293 : // GR8_NOREX Register Class...
1294 : const MCPhysReg GR8_NOREX[] = {
1295 : X86::AL, X86::CL, X86::DL, X86::AH, X86::CH, X86::DH, X86::BL, X86::BH,
1296 : };
1297 :
1298 : // GR8_NOREX Bit set.
1299 : const uint8_t GR8_NOREXBits[] = {
1300 : 0x36, 0x8c, 0x08,
1301 : };
1302 :
1303 : // GR8_ABCD_H Register Class...
1304 : const MCPhysReg GR8_ABCD_H[] = {
1305 : X86::AH, X86::CH, X86::DH, X86::BH,
1306 : };
1307 :
1308 : // GR8_ABCD_H Bit set.
1309 : const uint8_t GR8_ABCD_HBits[] = {
1310 : 0x12, 0x84,
1311 : };
1312 :
1313 : // GR8_ABCD_L Register Class...
1314 : const MCPhysReg GR8_ABCD_L[] = {
1315 : X86::AL, X86::CL, X86::DL, X86::BL,
1316 : };
1317 :
1318 : // GR8_ABCD_L Bit set.
1319 : const uint8_t GR8_ABCD_LBits[] = {
1320 : 0x24, 0x08, 0x08,
1321 : };
1322 :
1323 : // GRH16 Register Class...
1324 : const MCPhysReg GRH16[] = {
1325 : X86::HAX, X86::HCX, X86::HDX, X86::HSI, X86::HDI, X86::HBX, X86::HBP, X86::HSP, X86::HIP, X86::R8WH, X86::R9WH, X86::R10WH, X86::R11WH, X86::R12WH, X86::R13WH, X86::R14WH, X86::R15WH,
1326 : };
1327 :
1328 : // GRH16 Bit set.
1329 : const uint8_t GRH16Bits[] = {
1330 : 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1331 : };
1332 :
1333 : // GR16 Register Class...
1334 : const MCPhysReg GR16[] = {
1335 : 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,
1336 : };
1337 :
1338 : // GR16 Bit set.
1339 : const uint8_t GR16Bits[] = {
1340 : 0x48, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1341 : };
1342 :
1343 : // GR16_NOREX Register Class...
1344 : const MCPhysReg GR16_NOREX[] = {
1345 : X86::AX, X86::CX, X86::DX, X86::SI, X86::DI, X86::BX, X86::BP, X86::SP,
1346 : };
1347 :
1348 : // GR16_NOREX Bit set.
1349 : const uint8_t GR16_NOREXBits[] = {
1350 : 0x48, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x12,
1351 : };
1352 :
1353 : // VK1 Register Class...
1354 : const MCPhysReg VK1[] = {
1355 : X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1356 : };
1357 :
1358 : // VK1 Bit set.
1359 : const uint8_t VK1Bits[] = {
1360 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1361 : };
1362 :
1363 : // VK16 Register Class...
1364 : const MCPhysReg VK16[] = {
1365 : X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1366 : };
1367 :
1368 : // VK16 Bit set.
1369 : const uint8_t VK16Bits[] = {
1370 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1371 : };
1372 :
1373 : // VK2 Register Class...
1374 : const MCPhysReg VK2[] = {
1375 : X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1376 : };
1377 :
1378 : // VK2 Bit set.
1379 : const uint8_t VK2Bits[] = {
1380 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1381 : };
1382 :
1383 : // VK4 Register Class...
1384 : const MCPhysReg VK4[] = {
1385 : X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1386 : };
1387 :
1388 : // VK4 Bit set.
1389 : const uint8_t VK4Bits[] = {
1390 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1391 : };
1392 :
1393 : // VK8 Register Class...
1394 : const MCPhysReg VK8[] = {
1395 : X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1396 : };
1397 :
1398 : // VK8 Bit set.
1399 : const uint8_t VK8Bits[] = {
1400 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1401 : };
1402 :
1403 : // VK16WM Register Class...
1404 : const MCPhysReg VK16WM[] = {
1405 : X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1406 : };
1407 :
1408 : // VK16WM Bit set.
1409 : const uint8_t VK16WMBits[] = {
1410 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f,
1411 : };
1412 :
1413 : // VK1WM Register Class...
1414 : const MCPhysReg VK1WM[] = {
1415 : X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1416 : };
1417 :
1418 : // VK1WM Bit set.
1419 : const uint8_t VK1WMBits[] = {
1420 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f,
1421 : };
1422 :
1423 : // VK2WM Register Class...
1424 : const MCPhysReg VK2WM[] = {
1425 : X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1426 : };
1427 :
1428 : // VK2WM Bit set.
1429 : const uint8_t VK2WMBits[] = {
1430 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f,
1431 : };
1432 :
1433 : // VK4WM Register Class...
1434 : const MCPhysReg VK4WM[] = {
1435 : X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1436 : };
1437 :
1438 : // VK4WM Bit set.
1439 : const uint8_t VK4WMBits[] = {
1440 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f,
1441 : };
1442 :
1443 : // VK8WM Register Class...
1444 : const MCPhysReg VK8WM[] = {
1445 : X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1446 : };
1447 :
1448 : // VK8WM Bit set.
1449 : const uint8_t VK8WMBits[] = {
1450 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f,
1451 : };
1452 :
1453 : // SEGMENT_REG Register Class...
1454 : const MCPhysReg SEGMENT_REG[] = {
1455 : X86::CS, X86::DS, X86::SS, X86::ES, X86::FS, X86::GS,
1456 : };
1457 :
1458 : // SEGMENT_REG Bit set.
1459 : const uint8_t SEGMENT_REGBits[] = {
1460 : 0x00, 0x10, 0x10, 0x80, 0x18, 0x00, 0x00, 0x80,
1461 : };
1462 :
1463 : // GR16_ABCD Register Class...
1464 : const MCPhysReg GR16_ABCD[] = {
1465 : X86::AX, X86::CX, X86::DX, X86::BX,
1466 : };
1467 :
1468 : // GR16_ABCD Bit set.
1469 : const uint8_t GR16_ABCDBits[] = {
1470 : 0x08, 0x22, 0x20,
1471 : };
1472 :
1473 : // FPCCR Register Class...
1474 : const MCPhysReg FPCCR[] = {
1475 : X86::FPSW,
1476 : };
1477 :
1478 : // FPCCR Bit set.
1479 : const uint8_t FPCCRBits[] = {
1480 : 0x00, 0x00, 0x00, 0x00, 0x04,
1481 : };
1482 :
1483 : // FR32X Register Class...
1484 : const MCPhysReg FR32X[] = {
1485 : 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,
1486 : };
1487 :
1488 : // FR32X Bit set.
1489 : const uint8_t FR32XBits[] = {
1490 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f,
1491 : };
1492 :
1493 : // LOW32_ADDR_ACCESS_RBP Register Class...
1494 : const MCPhysReg LOW32_ADDR_ACCESS_RBP[] = {
1495 : 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, X86::RIP, X86::RBP,
1496 : };
1497 :
1498 : // LOW32_ADDR_ACCESS_RBP Bit set.
1499 : const uint8_t LOW32_ADDR_ACCESS_RBPBits[] = {
1500 : 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 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, 0xe0, 0x1f,
1501 : };
1502 :
1503 : // LOW32_ADDR_ACCESS Register Class...
1504 : const MCPhysReg LOW32_ADDR_ACCESS[] = {
1505 : 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, X86::RIP,
1506 : };
1507 :
1508 : // LOW32_ADDR_ACCESS Bit set.
1509 : const uint8_t LOW32_ADDR_ACCESSBits[] = {
1510 : 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1511 : };
1512 :
1513 : // LOW32_ADDR_ACCESS_RBP_with_sub_8bit Register Class...
1514 : const MCPhysReg LOW32_ADDR_ACCESS_RBP_with_sub_8bit[] = {
1515 : 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, X86::RBP,
1516 : };
1517 :
1518 : // LOW32_ADDR_ACCESS_RBP_with_sub_8bit Bit set.
1519 : const uint8_t LOW32_ADDR_ACCESS_RBP_with_sub_8bitBits[] = {
1520 : 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1521 : };
1522 :
1523 : // DEBUG_REG Register Class...
1524 : const MCPhysReg DEBUG_REG[] = {
1525 : X86::DR0, X86::DR1, X86::DR2, X86::DR3, X86::DR4, X86::DR5, X86::DR6, X86::DR7, X86::DR8, X86::DR9, X86::DR10, X86::DR11, X86::DR12, X86::DR13, X86::DR14, X86::DR15,
1526 : };
1527 :
1528 : // DEBUG_REG Bit set.
1529 : const uint8_t DEBUG_REGBits[] = {
1530 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
1531 : };
1532 :
1533 : // FR32 Register Class...
1534 : const MCPhysReg FR32[] = {
1535 : 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,
1536 : };
1537 :
1538 : // FR32 Bit set.
1539 : const uint8_t FR32Bits[] = {
1540 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
1541 : };
1542 :
1543 : // GR32 Register Class...
1544 : const MCPhysReg GR32[] = {
1545 : 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,
1546 : };
1547 :
1548 : // GR32 Bit set.
1549 : const uint8_t GR32Bits[] = {
1550 : 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1551 : };
1552 :
1553 : // GR32_NOSP Register Class...
1554 : const MCPhysReg GR32_NOSP[] = {
1555 : 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,
1556 : };
1557 :
1558 : // GR32_NOSP Bit set.
1559 : const uint8_t GR32_NOSPBits[] = {
1560 : 0x00, 0x00, 0xc0, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1561 : };
1562 :
1563 : // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX Register Class...
1564 : const MCPhysReg LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX[] = {
1565 : X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, X86::RBP,
1566 : };
1567 :
1568 : // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX Bit set.
1569 : const uint8_t LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXBits[] = {
1570 : 0x00, 0x00, 0xc0, 0x0f, 0x03, 0x00, 0x01,
1571 : };
1572 :
1573 : // GR32_NOREX Register Class...
1574 : const MCPhysReg GR32_NOREX[] = {
1575 : X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP,
1576 : };
1577 :
1578 : // GR32_NOREX Bit set.
1579 : const uint8_t GR32_NOREXBits[] = {
1580 : 0x00, 0x00, 0xc0, 0x0f, 0x03,
1581 : };
1582 :
1583 : // VK32 Register Class...
1584 : const MCPhysReg VK32[] = {
1585 : X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1586 : };
1587 :
1588 : // VK32 Bit set.
1589 : const uint8_t VK32Bits[] = {
1590 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1591 : };
1592 :
1593 : // GR32_NOREX_NOSP Register Class...
1594 : const MCPhysReg GR32_NOREX_NOSP[] = {
1595 : X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP,
1596 : };
1597 :
1598 : // GR32_NOREX_NOSP Bit set.
1599 : const uint8_t GR32_NOREX_NOSPBits[] = {
1600 : 0x00, 0x00, 0xc0, 0x0f, 0x01,
1601 : };
1602 :
1603 : // RFP32 Register Class...
1604 : const MCPhysReg RFP32[] = {
1605 : X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6,
1606 : };
1607 :
1608 : // RFP32 Bit set.
1609 : const uint8_t RFP32Bits[] = {
1610 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f,
1611 : };
1612 :
1613 : // VK32WM Register Class...
1614 : const MCPhysReg VK32WM[] = {
1615 : X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1616 : };
1617 :
1618 : // VK32WM Bit set.
1619 : const uint8_t VK32WMBits[] = {
1620 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f,
1621 : };
1622 :
1623 : // GR32_ABCD Register Class...
1624 : const MCPhysReg GR32_ABCD[] = {
1625 : X86::EAX, X86::ECX, X86::EDX, X86::EBX,
1626 : };
1627 :
1628 : // GR32_ABCD Bit set.
1629 : const uint8_t GR32_ABCDBits[] = {
1630 : 0x00, 0x00, 0x40, 0x0b,
1631 : };
1632 :
1633 : // GR32_TC Register Class...
1634 : const MCPhysReg GR32_TC[] = {
1635 : X86::EAX, X86::ECX, X86::EDX,
1636 : };
1637 :
1638 : // GR32_TC Bit set.
1639 : const uint8_t GR32_TCBits[] = {
1640 : 0x00, 0x00, 0x40, 0x0a,
1641 : };
1642 :
1643 : // GR32_AD Register Class...
1644 : const MCPhysReg GR32_AD[] = {
1645 : X86::EAX, X86::EDX,
1646 : };
1647 :
1648 : // GR32_AD Bit set.
1649 : const uint8_t GR32_ADBits[] = {
1650 : 0x00, 0x00, 0x40, 0x08,
1651 : };
1652 :
1653 : // GR32_BPSP Register Class...
1654 : const MCPhysReg GR32_BPSP[] = {
1655 : X86::EBP, X86::ESP,
1656 : };
1657 :
1658 : // GR32_BPSP Bit set.
1659 : const uint8_t GR32_BPSPBits[] = {
1660 : 0x00, 0x00, 0x80, 0x00, 0x02,
1661 : };
1662 :
1663 : // GR32_BSI Register Class...
1664 : const MCPhysReg GR32_BSI[] = {
1665 : X86::EBX, X86::ESI,
1666 : };
1667 :
1668 : // GR32_BSI Bit set.
1669 : const uint8_t GR32_BSIBits[] = {
1670 : 0x00, 0x00, 0x00, 0x01, 0x01,
1671 : };
1672 :
1673 : // GR32_CB Register Class...
1674 : const MCPhysReg GR32_CB[] = {
1675 : X86::ECX, X86::EBX,
1676 : };
1677 :
1678 : // GR32_CB Bit set.
1679 : const uint8_t GR32_CBBits[] = {
1680 : 0x00, 0x00, 0x00, 0x03,
1681 : };
1682 :
1683 : // GR32_DC Register Class...
1684 : const MCPhysReg GR32_DC[] = {
1685 : X86::EDX, X86::ECX,
1686 : };
1687 :
1688 : // GR32_DC Bit set.
1689 : const uint8_t GR32_DCBits[] = {
1690 : 0x00, 0x00, 0x00, 0x0a,
1691 : };
1692 :
1693 : // GR32_DIBP Register Class...
1694 : const MCPhysReg GR32_DIBP[] = {
1695 : X86::EDI, X86::EBP,
1696 : };
1697 :
1698 : // GR32_DIBP Bit set.
1699 : const uint8_t GR32_DIBPBits[] = {
1700 : 0x00, 0x00, 0x80, 0x04,
1701 : };
1702 :
1703 : // GR32_SIDI Register Class...
1704 : const MCPhysReg GR32_SIDI[] = {
1705 : X86::ESI, X86::EDI,
1706 : };
1707 :
1708 : // GR32_SIDI Bit set.
1709 : const uint8_t GR32_SIDIBits[] = {
1710 : 0x00, 0x00, 0x00, 0x04, 0x01,
1711 : };
1712 :
1713 : // LOW32_ADDR_ACCESS_RBP_with_sub_32bit Register Class...
1714 : const MCPhysReg LOW32_ADDR_ACCESS_RBP_with_sub_32bit[] = {
1715 : X86::RIP, X86::RBP,
1716 : };
1717 :
1718 : // LOW32_ADDR_ACCESS_RBP_with_sub_32bit Bit set.
1719 : const uint8_t LOW32_ADDR_ACCESS_RBP_with_sub_32bitBits[] = {
1720 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
1721 : };
1722 :
1723 : // CCR Register Class...
1724 : const MCPhysReg CCR[] = {
1725 : X86::EFLAGS,
1726 : };
1727 :
1728 : // CCR Bit set.
1729 : const uint8_t CCRBits[] = {
1730 : 0x00, 0x00, 0x00, 0x10,
1731 : };
1732 :
1733 : // DFCCR Register Class...
1734 : const MCPhysReg DFCCR[] = {
1735 : X86::DF,
1736 : };
1737 :
1738 : // DFCCR Bit set.
1739 : const uint8_t DFCCRBits[] = {
1740 : 0x00, 0x40,
1741 : };
1742 :
1743 : // GR32_ABCD_and_GR32_BSI Register Class...
1744 : const MCPhysReg GR32_ABCD_and_GR32_BSI[] = {
1745 : X86::EBX,
1746 : };
1747 :
1748 : // GR32_ABCD_and_GR32_BSI Bit set.
1749 : const uint8_t GR32_ABCD_and_GR32_BSIBits[] = {
1750 : 0x00, 0x00, 0x00, 0x01,
1751 : };
1752 :
1753 : // GR32_AD_and_GR32_DC Register Class...
1754 : const MCPhysReg GR32_AD_and_GR32_DC[] = {
1755 : X86::EDX,
1756 : };
1757 :
1758 : // GR32_AD_and_GR32_DC Bit set.
1759 : const uint8_t GR32_AD_and_GR32_DCBits[] = {
1760 : 0x00, 0x00, 0x00, 0x08,
1761 : };
1762 :
1763 : // GR32_BPSP_and_GR32_DIBP Register Class...
1764 : const MCPhysReg GR32_BPSP_and_GR32_DIBP[] = {
1765 : X86::EBP,
1766 : };
1767 :
1768 : // GR32_BPSP_and_GR32_DIBP Bit set.
1769 : const uint8_t GR32_BPSP_and_GR32_DIBPBits[] = {
1770 : 0x00, 0x00, 0x80,
1771 : };
1772 :
1773 : // GR32_BSI_and_GR32_SIDI Register Class...
1774 : const MCPhysReg GR32_BSI_and_GR32_SIDI[] = {
1775 : X86::ESI,
1776 : };
1777 :
1778 : // GR32_BSI_and_GR32_SIDI Bit set.
1779 : const uint8_t GR32_BSI_and_GR32_SIDIBits[] = {
1780 : 0x00, 0x00, 0x00, 0x00, 0x01,
1781 : };
1782 :
1783 : // GR32_CB_and_GR32_DC Register Class...
1784 : const MCPhysReg GR32_CB_and_GR32_DC[] = {
1785 : X86::ECX,
1786 : };
1787 :
1788 : // GR32_CB_and_GR32_DC Bit set.
1789 : const uint8_t GR32_CB_and_GR32_DCBits[] = {
1790 : 0x00, 0x00, 0x00, 0x02,
1791 : };
1792 :
1793 : // GR32_DIBP_and_GR32_SIDI Register Class...
1794 : const MCPhysReg GR32_DIBP_and_GR32_SIDI[] = {
1795 : X86::EDI,
1796 : };
1797 :
1798 : // GR32_DIBP_and_GR32_SIDI Bit set.
1799 : const uint8_t GR32_DIBP_and_GR32_SIDIBits[] = {
1800 : 0x00, 0x00, 0x00, 0x04,
1801 : };
1802 :
1803 : // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit Register Class...
1804 : const MCPhysReg LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit[] = {
1805 : X86::RBP,
1806 : };
1807 :
1808 : // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit Bit set.
1809 : const uint8_t LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitBits[] = {
1810 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
1811 : };
1812 :
1813 : // LOW32_ADDR_ACCESS_with_sub_32bit Register Class...
1814 : const MCPhysReg LOW32_ADDR_ACCESS_with_sub_32bit[] = {
1815 : X86::RIP,
1816 : };
1817 :
1818 : // LOW32_ADDR_ACCESS_with_sub_32bit Bit set.
1819 : const uint8_t LOW32_ADDR_ACCESS_with_sub_32bitBits[] = {
1820 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
1821 : };
1822 :
1823 : // RFP64 Register Class...
1824 : const MCPhysReg RFP64[] = {
1825 : X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6,
1826 : };
1827 :
1828 : // RFP64 Bit set.
1829 : const uint8_t RFP64Bits[] = {
1830 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f,
1831 : };
1832 :
1833 : // FR64X Register Class...
1834 : const MCPhysReg FR64X[] = {
1835 : 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,
1836 : };
1837 :
1838 : // FR64X Bit set.
1839 : const uint8_t FR64XBits[] = {
1840 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f,
1841 : };
1842 :
1843 : // GR64 Register Class...
1844 : const MCPhysReg GR64[] = {
1845 : 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,
1846 : };
1847 :
1848 : // GR64 Bit set.
1849 : const uint8_t GR64Bits[] = {
1850 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1851 : };
1852 :
1853 : // CONTROL_REG Register Class...
1854 : const MCPhysReg CONTROL_REG[] = {
1855 : 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,
1856 : };
1857 :
1858 : // CONTROL_REG Bit set.
1859 : const uint8_t CONTROL_REGBits[] = {
1860 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
1861 : };
1862 :
1863 : // FR64 Register Class...
1864 : const MCPhysReg FR64[] = {
1865 : 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,
1866 : };
1867 :
1868 : // FR64 Bit set.
1869 : const uint8_t FR64Bits[] = {
1870 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
1871 : };
1872 :
1873 : // GR64_with_sub_8bit Register Class...
1874 : const MCPhysReg GR64_with_sub_8bit[] = {
1875 : 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,
1876 : };
1877 :
1878 : // GR64_with_sub_8bit Bit set.
1879 : const uint8_t GR64_with_sub_8bitBits[] = {
1880 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1881 : };
1882 :
1883 : // GR64_NOSP Register Class...
1884 : const MCPhysReg GR64_NOSP[] = {
1885 : 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,
1886 : };
1887 :
1888 : // GR64_NOSP Bit set.
1889 : const uint8_t GR64_NOSPBits[] = {
1890 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1891 : };
1892 :
1893 : // GR64_NOREX Register Class...
1894 : const MCPhysReg GR64_NOREX[] = {
1895 : X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, X86::RSP, X86::RIP,
1896 : };
1897 :
1898 : // GR64_NOREX Bit set.
1899 : const uint8_t GR64_NOREXBits[] = {
1900 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x01,
1901 : };
1902 :
1903 : // GR64_TC Register Class...
1904 : const MCPhysReg GR64_TC[] = {
1905 : X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R11, X86::RIP,
1906 : };
1907 :
1908 : // GR64_TC Bit set.
1909 : const uint8_t GR64_TCBits[] = {
1910 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01,
1911 : };
1912 :
1913 : // GR64_NOSP_and_GR64_TC Register Class...
1914 : const MCPhysReg GR64_NOSP_and_GR64_TC[] = {
1915 : X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R11,
1916 : };
1917 :
1918 : // GR64_NOSP_and_GR64_TC Bit set.
1919 : const uint8_t GR64_NOSP_and_GR64_TCBits[] = {
1920 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01,
1921 : };
1922 :
1923 : // GR64_TCW64 Register Class...
1924 : const MCPhysReg GR64_TCW64[] = {
1925 : X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R10, X86::R11, X86::RIP,
1926 : };
1927 :
1928 : // GR64_TCW64 Bit set.
1929 : const uint8_t GR64_TCW64Bits[] = {
1930 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01,
1931 : };
1932 :
1933 : // GR64_with_sub_16bit_in_GR16_NOREX Register Class...
1934 : const MCPhysReg GR64_with_sub_16bit_in_GR16_NOREX[] = {
1935 : X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, X86::RSP,
1936 : };
1937 :
1938 : // GR64_with_sub_16bit_in_GR16_NOREX Bit set.
1939 : const uint8_t GR64_with_sub_16bit_in_GR16_NOREXBits[] = {
1940 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9f, 0x01,
1941 : };
1942 :
1943 : // VK64 Register Class...
1944 : const MCPhysReg VK64[] = {
1945 : X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1946 : };
1947 :
1948 : // VK64 Bit set.
1949 : const uint8_t VK64Bits[] = {
1950 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1951 : };
1952 :
1953 : // VR64 Register Class...
1954 : const MCPhysReg VR64[] = {
1955 : X86::MM0, X86::MM1, X86::MM2, X86::MM3, X86::MM4, X86::MM5, X86::MM6, X86::MM7,
1956 : };
1957 :
1958 : // VR64 Bit set.
1959 : const uint8_t VR64Bits[] = {
1960 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
1961 : };
1962 :
1963 : // GR64_NOREX_NOSP Register Class...
1964 : const MCPhysReg GR64_NOREX_NOSP[] = {
1965 : X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP,
1966 : };
1967 :
1968 : // GR64_NOREX_NOSP Bit set.
1969 : const uint8_t GR64_NOREX_NOSPBits[] = {
1970 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9f,
1971 : };
1972 :
1973 : // GR64_NOSP_and_GR64_TCW64 Register Class...
1974 : const MCPhysReg GR64_NOSP_and_GR64_TCW64[] = {
1975 : X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R10, X86::R11,
1976 : };
1977 :
1978 : // GR64_NOSP_and_GR64_TCW64 Bit set.
1979 : const uint8_t GR64_NOSP_and_GR64_TCW64Bits[] = {
1980 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01,
1981 : };
1982 :
1983 : // GR64_TC_and_GR64_TCW64 Register Class...
1984 : const MCPhysReg GR64_TC_and_GR64_TCW64[] = {
1985 : X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R11, X86::RIP,
1986 : };
1987 :
1988 : // GR64_TC_and_GR64_TCW64 Bit set.
1989 : const uint8_t GR64_TC_and_GR64_TCW64Bits[] = {
1990 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01,
1991 : };
1992 :
1993 : // VK64WM Register Class...
1994 : const MCPhysReg VK64WM[] = {
1995 : X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7,
1996 : };
1997 :
1998 : // VK64WM Bit set.
1999 : const uint8_t VK64WMBits[] = {
2000 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f,
2001 : };
2002 :
2003 : // GR64_NOREX_and_GR64_TC Register Class...
2004 : const MCPhysReg GR64_NOREX_and_GR64_TC[] = {
2005 : X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RIP,
2006 : };
2007 :
2008 : // GR64_NOREX_and_GR64_TC Bit set.
2009 : const uint8_t GR64_NOREX_and_GR64_TCBits[] = {
2010 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbc,
2011 : };
2012 :
2013 : // GR64_TC_and_GR64_NOSP_and_GR64_TCW64 Register Class...
2014 : const MCPhysReg GR64_TC_and_GR64_NOSP_and_GR64_TCW64[] = {
2015 : X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R11,
2016 : };
2017 :
2018 : // GR64_TC_and_GR64_NOSP_and_GR64_TCW64 Bit set.
2019 : const uint8_t GR64_TC_and_GR64_NOSP_and_GR64_TCW64Bits[] = {
2020 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01,
2021 : };
2022 :
2023 : // GR64_NOREX_NOSP_and_GR64_TC Register Class...
2024 : const MCPhysReg GR64_NOREX_NOSP_and_GR64_TC[] = {
2025 : X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI,
2026 : };
2027 :
2028 : // GR64_NOREX_NOSP_and_GR64_TC Bit set.
2029 : const uint8_t GR64_NOREX_NOSP_and_GR64_TCBits[] = {
2030 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9c,
2031 : };
2032 :
2033 : // GR64_ABCD Register Class...
2034 : const MCPhysReg GR64_ABCD[] = {
2035 : X86::RAX, X86::RCX, X86::RDX, X86::RBX,
2036 : };
2037 :
2038 : // GR64_ABCD Bit set.
2039 : const uint8_t GR64_ABCDBits[] = {
2040 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x16,
2041 : };
2042 :
2043 : // GR64_NOREX_and_GR64_TCW64 Register Class...
2044 : const MCPhysReg GR64_NOREX_and_GR64_TCW64[] = {
2045 : X86::RAX, X86::RCX, X86::RDX, X86::RIP,
2046 : };
2047 :
2048 : // GR64_NOREX_and_GR64_TCW64 Bit set.
2049 : const uint8_t GR64_NOREX_and_GR64_TCW64Bits[] = {
2050 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x34,
2051 : };
2052 :
2053 : // GR64_with_sub_32bit_in_GR32_TC Register Class...
2054 : const MCPhysReg GR64_with_sub_32bit_in_GR32_TC[] = {
2055 : X86::RAX, X86::RCX, X86::RDX,
2056 : };
2057 :
2058 : // GR64_with_sub_32bit_in_GR32_TC Bit set.
2059 : const uint8_t GR64_with_sub_32bit_in_GR32_TCBits[] = {
2060 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x14,
2061 : };
2062 :
2063 : // GR64_AD Register Class...
2064 : const MCPhysReg GR64_AD[] = {
2065 : X86::RAX, X86::RDX,
2066 : };
2067 :
2068 : // GR64_AD Bit set.
2069 : const uint8_t GR64_ADBits[] = {
2070 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10,
2071 : };
2072 :
2073 : // GR64_and_LOW32_ADDR_ACCESS_RBP Register Class...
2074 : const MCPhysReg GR64_and_LOW32_ADDR_ACCESS_RBP[] = {
2075 : X86::RBP, X86::RIP,
2076 : };
2077 :
2078 : // GR64_and_LOW32_ADDR_ACCESS_RBP Bit set.
2079 : const uint8_t GR64_and_LOW32_ADDR_ACCESS_RBPBits[] = {
2080 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
2081 : };
2082 :
2083 : // GR64_with_sub_32bit_in_GR32_BPSP Register Class...
2084 : const MCPhysReg GR64_with_sub_32bit_in_GR32_BPSP[] = {
2085 : X86::RBP, X86::RSP,
2086 : };
2087 :
2088 : // GR64_with_sub_32bit_in_GR32_BPSP Bit set.
2089 : const uint8_t GR64_with_sub_32bit_in_GR32_BPSPBits[] = {
2090 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
2091 : };
2092 :
2093 : // GR64_with_sub_32bit_in_GR32_BSI Register Class...
2094 : const MCPhysReg GR64_with_sub_32bit_in_GR32_BSI[] = {
2095 : X86::RSI, X86::RBX,
2096 : };
2097 :
2098 : // GR64_with_sub_32bit_in_GR32_BSI Bit set.
2099 : const uint8_t GR64_with_sub_32bit_in_GR32_BSIBits[] = {
2100 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82,
2101 : };
2102 :
2103 : // GR64_with_sub_32bit_in_GR32_CB Register Class...
2104 : const MCPhysReg GR64_with_sub_32bit_in_GR32_CB[] = {
2105 : X86::RCX, X86::RBX,
2106 : };
2107 :
2108 : // GR64_with_sub_32bit_in_GR32_CB Bit set.
2109 : const uint8_t GR64_with_sub_32bit_in_GR32_CBBits[] = {
2110 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
2111 : };
2112 :
2113 : // GR64_with_sub_32bit_in_GR32_DC Register Class...
2114 : const MCPhysReg GR64_with_sub_32bit_in_GR32_DC[] = {
2115 : X86::RCX, X86::RDX,
2116 : };
2117 :
2118 : // GR64_with_sub_32bit_in_GR32_DC Bit set.
2119 : const uint8_t GR64_with_sub_32bit_in_GR32_DCBits[] = {
2120 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
2121 : };
2122 :
2123 : // GR64_with_sub_32bit_in_GR32_DIBP Register Class...
2124 : const MCPhysReg GR64_with_sub_32bit_in_GR32_DIBP[] = {
2125 : X86::RDI, X86::RBP,
2126 : };
2127 :
2128 : // GR64_with_sub_32bit_in_GR32_DIBP Bit set.
2129 : const uint8_t GR64_with_sub_32bit_in_GR32_DIBPBits[] = {
2130 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09,
2131 : };
2132 :
2133 : // GR64_with_sub_32bit_in_GR32_SIDI Register Class...
2134 : const MCPhysReg GR64_with_sub_32bit_in_GR32_SIDI[] = {
2135 : X86::RSI, X86::RDI,
2136 : };
2137 :
2138 : // GR64_with_sub_32bit_in_GR32_SIDI Bit set.
2139 : const uint8_t GR64_with_sub_32bit_in_GR32_SIDIBits[] = {
2140 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88,
2141 : };
2142 :
2143 : // GR64_and_LOW32_ADDR_ACCESS Register Class...
2144 : const MCPhysReg GR64_and_LOW32_ADDR_ACCESS[] = {
2145 : X86::RIP,
2146 : };
2147 :
2148 : // GR64_and_LOW32_ADDR_ACCESS Bit set.
2149 : const uint8_t GR64_and_LOW32_ADDR_ACCESSBits[] = {
2150 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
2151 : };
2152 :
2153 : // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI Register Class...
2154 : const MCPhysReg GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI[] = {
2155 : X86::RBX,
2156 : };
2157 :
2158 : // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI Bit set.
2159 : const uint8_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIBits[] = {
2160 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
2161 : };
2162 :
2163 : // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC Register Class...
2164 : const MCPhysReg GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC[] = {
2165 : X86::RDX,
2166 : };
2167 :
2168 : // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC Bit set.
2169 : const uint8_t GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCBits[] = {
2170 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
2171 : };
2172 :
2173 : // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP Register Class...
2174 : const MCPhysReg GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP[] = {
2175 : X86::RBP,
2176 : };
2177 :
2178 : // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP Bit set.
2179 : const uint8_t GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPBits[] = {
2180 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
2181 : };
2182 :
2183 : // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI Register Class...
2184 : const MCPhysReg GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI[] = {
2185 : X86::RSI,
2186 : };
2187 :
2188 : // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI Bit set.
2189 : const uint8_t GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIBits[] = {
2190 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
2191 : };
2192 :
2193 : // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC Register Class...
2194 : const MCPhysReg GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC[] = {
2195 : X86::RCX,
2196 : };
2197 :
2198 : // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC Bit set.
2199 : const uint8_t GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCBits[] = {
2200 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
2201 : };
2202 :
2203 : // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI Register Class...
2204 : const MCPhysReg GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI[] = {
2205 : X86::RDI,
2206 : };
2207 :
2208 : // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI Bit set.
2209 : const uint8_t GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIBits[] = {
2210 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
2211 : };
2212 :
2213 : // RST Register Class...
2214 : const MCPhysReg RST[] = {
2215 : X86::ST0, X86::ST1, X86::ST2, X86::ST3, X86::ST4, X86::ST5, X86::ST6, X86::ST7,
2216 : };
2217 :
2218 : // RST Bit set.
2219 : const uint8_t RSTBits[] = {
2220 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
2221 : };
2222 :
2223 : // RFP80 Register Class...
2224 : const MCPhysReg RFP80[] = {
2225 : X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6,
2226 : };
2227 :
2228 : // RFP80 Bit set.
2229 : const uint8_t RFP80Bits[] = {
2230 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f,
2231 : };
2232 :
2233 : // VR128X Register Class...
2234 : const MCPhysReg VR128X[] = {
2235 : 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,
2236 : };
2237 :
2238 : // VR128X Bit set.
2239 : const uint8_t VR128XBits[] = {
2240 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f,
2241 : };
2242 :
2243 : // VR128 Register Class...
2244 : const MCPhysReg VR128[] = {
2245 : 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,
2246 : };
2247 :
2248 : // VR128 Bit set.
2249 : const uint8_t VR128Bits[] = {
2250 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
2251 : };
2252 :
2253 : // VR128H Register Class...
2254 : const MCPhysReg VR128H[] = {
2255 : X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15,
2256 : };
2257 :
2258 : // VR128H Bit set.
2259 : const uint8_t VR128HBits[] = {
2260 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
2261 : };
2262 :
2263 : // VR128L Register Class...
2264 : const MCPhysReg VR128L[] = {
2265 : X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7,
2266 : };
2267 :
2268 : // VR128L Bit set.
2269 : const uint8_t VR128LBits[] = {
2270 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
2271 : };
2272 :
2273 : // BNDR Register Class...
2274 : const MCPhysReg BNDR[] = {
2275 : X86::BND0, X86::BND1, X86::BND2, X86::BND3,
2276 : };
2277 :
2278 : // BNDR Bit set.
2279 : const uint8_t BNDRBits[] = {
2280 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
2281 : };
2282 :
2283 : // VR256X Register Class...
2284 : const MCPhysReg VR256X[] = {
2285 : 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,
2286 : };
2287 :
2288 : // VR256X Bit set.
2289 : const uint8_t VR256XBits[] = {
2290 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f,
2291 : };
2292 :
2293 : // VR256 Register Class...
2294 : const MCPhysReg VR256[] = {
2295 : 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,
2296 : };
2297 :
2298 : // VR256 Bit set.
2299 : const uint8_t VR256Bits[] = {
2300 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
2301 : };
2302 :
2303 : // VR256H Register Class...
2304 : const MCPhysReg VR256H[] = {
2305 : X86::YMM8, X86::YMM9, X86::YMM10, X86::YMM11, X86::YMM12, X86::YMM13, X86::YMM14, X86::YMM15,
2306 : };
2307 :
2308 : // VR256H Bit set.
2309 : const uint8_t VR256HBits[] = {
2310 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
2311 : };
2312 :
2313 : // VR256L Register Class...
2314 : const MCPhysReg VR256L[] = {
2315 : X86::YMM0, X86::YMM1, X86::YMM2, X86::YMM3, X86::YMM4, X86::YMM5, X86::YMM6, X86::YMM7,
2316 : };
2317 :
2318 : // VR256L Bit set.
2319 : const uint8_t VR256LBits[] = {
2320 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
2321 : };
2322 :
2323 : // VR512 Register Class...
2324 : const MCPhysReg VR512[] = {
2325 : 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,
2326 : };
2327 :
2328 : // VR512 Bit set.
2329 : const uint8_t VR512Bits[] = {
2330 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f,
2331 : };
2332 :
2333 : // VR512_with_sub_xmm_in_FR32 Register Class...
2334 : const MCPhysReg VR512_with_sub_xmm_in_FR32[] = {
2335 : 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,
2336 : };
2337 :
2338 : // VR512_with_sub_xmm_in_FR32 Bit set.
2339 : const uint8_t VR512_with_sub_xmm_in_FR32Bits[] = {
2340 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
2341 : };
2342 :
2343 : // VR512_with_sub_xmm_in_VR128H Register Class...
2344 : const MCPhysReg VR512_with_sub_xmm_in_VR128H[] = {
2345 : X86::ZMM8, X86::ZMM9, X86::ZMM10, X86::ZMM11, X86::ZMM12, X86::ZMM13, X86::ZMM14, X86::ZMM15,
2346 : };
2347 :
2348 : // VR512_with_sub_xmm_in_VR128H Bit set.
2349 : const uint8_t VR512_with_sub_xmm_in_VR128HBits[] = {
2350 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
2351 : };
2352 :
2353 : // VR512_with_sub_xmm_in_VR128L Register Class...
2354 : const MCPhysReg VR512_with_sub_xmm_in_VR128L[] = {
2355 : X86::ZMM0, X86::ZMM1, X86::ZMM2, X86::ZMM3, X86::ZMM4, X86::ZMM5, X86::ZMM6, X86::ZMM7,
2356 : };
2357 :
2358 : // VR512_with_sub_xmm_in_VR128L Bit set.
2359 : const uint8_t VR512_with_sub_xmm_in_VR128LBits[] = {
2360 : 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f,
2361 : };
2362 :
2363 : } // end anonymous namespace
2364 :
2365 : extern const char X86RegClassStrings[] = {
2366 : /* 0 */ 'R', 'F', 'P', '8', '0', 0,
2367 : /* 6 */ 'V', 'K', '1', 0,
2368 : /* 10 */ 'V', 'R', '5', '1', '2', 0,
2369 : /* 16 */ 'V', 'K', '3', '2', 0,
2370 : /* 21 */ 'R', 'F', 'P', '3', '2', 0,
2371 : /* 27 */ 'V', 'R', '5', '1', '2', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'x', 'm', 'm', '_', 'i', 'n', '_', 'F', 'R', '3', '2', 0,
2372 : /* 54 */ 'G', 'R', '3', '2', 0,
2373 : /* 59 */ 'V', 'K', '2', 0,
2374 : /* 63 */ 'V', 'K', '6', '4', 0,
2375 : /* 68 */ 'R', 'F', 'P', '6', '4', 0,
2376 : /* 74 */ 'F', 'R', '6', '4', 0,
2377 : /* 79 */ 'G', 'R', '6', '4', 0,
2378 : /* 84 */ 'V', 'R', '6', '4', 0,
2379 : /* 89 */ 'G', 'R', '6', '4', '_', 'T', 'C', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', 0,
2380 : /* 112 */ 'G', 'R', '6', '4', '_', 'T', 'C', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'N', 'O', 'S', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', 0,
2381 : /* 149 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 'W', '6', '4', 0,
2382 : /* 175 */ 'V', 'K', '4', 0,
2383 : /* 179 */ 'G', 'R', 'H', '1', '6', 0,
2384 : /* 185 */ 'V', 'K', '1', '6', 0,
2385 : /* 190 */ 'G', 'R', '1', '6', 0,
2386 : /* 195 */ 'V', 'R', '2', '5', '6', 0,
2387 : /* 201 */ 'V', 'R', '1', '2', '8', 0,
2388 : /* 207 */ 'G', 'R', 'H', '8', 0,
2389 : /* 212 */ 'V', 'K', '8', 0,
2390 : /* 216 */ 'G', 'R', '8', 0,
2391 : /* 220 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'C', 'B', 0,
2392 : /* 251 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'C', 'B', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'D', 'C', 0,
2393 : /* 294 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'A', 'D', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'D', 'C', 0,
2394 : /* 337 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'D', 'C', 0,
2395 : /* 368 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'T', 'C', 0,
2396 : /* 399 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'S', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 0,
2397 : /* 421 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', '_', 'N', 'O', 'S', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 0,
2398 : /* 449 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', '_', 'a', 'n', 'd', '_', 'G', 'R', '6', '4', '_', 'T', 'C', 0,
2399 : /* 472 */ 'G', 'R', '3', '2', '_', 'A', 'D', 0,
2400 : /* 480 */ 'G', 'R', '6', '4', '_', 'A', 'D', 0,
2401 : /* 488 */ 'G', 'R', '3', '2', '_', 'A', 'B', 'C', 'D', 0,
2402 : /* 498 */ 'G', 'R', '6', '4', '_', 'A', 'B', 'C', 'D', 0,
2403 : /* 508 */ 'G', 'R', '1', '6', '_', 'A', 'B', 'C', 'D', 0,
2404 : /* 518 */ 'D', 'E', 'B', 'U', 'G', '_', 'R', 'E', 'G', 0,
2405 : /* 528 */ 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'R', 'E', 'G', 0,
2406 : /* 540 */ 'S', 'E', 'G', 'M', 'E', 'N', 'T', '_', 'R', 'E', 'G', 0,
2407 : /* 552 */ 'V', 'R', '2', '5', '6', 'H', 0,
2408 : /* 559 */ 'V', 'R', '5', '1', '2', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'x', 'm', 'm', '_', 'i', 'n', '_', 'V', 'R', '1', '2', '8', 'H', 0,
2409 : /* 588 */ 'G', 'R', '8', '_', 'A', 'B', 'C', 'D', '_', 'H', 0,
2410 : /* 599 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'S', 'I', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'S', 'I', 'D', 'I', 0,
2411 : /* 645 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'D', 'I', 'B', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'S', 'I', 'D', 'I', 0,
2412 : /* 692 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'S', 'I', 'D', 'I', 0,
2413 : /* 725 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'A', 'B', 'C', 'D', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'B', 'S', 'I', 0,
2414 : /* 771 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'S', 'I', 0,
2415 : /* 803 */ 'V', 'R', '2', '5', '6', 'L', 0,
2416 : /* 810 */ 'V', 'R', '5', '1', '2', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', 'x', 'm', 'm', '_', 'i', 'n', '_', 'V', 'R', '1', '2', '8', 'L', 0,
2417 : /* 839 */ 'G', 'R', '8', '_', 'A', 'B', 'C', 'D', '_', 'L', 0,
2418 : /* 850 */ 'V', 'K', '1', 'W', 'M', 0,
2419 : /* 856 */ 'V', 'K', '3', '2', 'W', 'M', 0,
2420 : /* 863 */ 'V', 'K', '2', 'W', 'M', 0,
2421 : /* 869 */ 'V', 'K', '6', '4', 'W', 'M', 0,
2422 : /* 876 */ 'V', 'K', '4', 'W', 'M', 0,
2423 : /* 882 */ 'V', 'K', '1', '6', 'W', 'M', 0,
2424 : /* 889 */ 'V', 'K', '8', 'W', 'M', 0,
2425 : /* 895 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'P', 'S', 'P', '_', 'a', 'n', 'd', '_', 'G', 'R', '3', '2', '_', 'D', 'I', 'B', 'P', 0,
2426 : /* 942 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'D', 'I', 'B', 'P', 0,
2427 : /* 975 */ 'G', 'R', '6', '4', '_', 'a', 'n', 'd', '_', 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', 0,
2428 : /* 1006 */ 'G', 'R', '3', '2', '_', 'N', 'O', 'S', 'P', 0,
2429 : /* 1016 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'S', 'P', 0,
2430 : /* 1026 */ 'G', 'R', '3', '2', '_', 'N', 'O', 'R', 'E', 'X', '_', 'N', 'O', 'S', 'P', 0,
2431 : /* 1042 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', '_', 'N', 'O', 'S', 'P', 0,
2432 : /* 1058 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '3', '2', '_', 'B', 'P', 'S', 'P', 0,
2433 : /* 1091 */ 'D', 'F', 'C', 'C', 'R', 0,
2434 : /* 1097 */ 'F', 'P', 'C', 'C', 'R', 0,
2435 : /* 1103 */ 'B', 'N', 'D', 'R', 0,
2436 : /* 1108 */ 'G', 'R', '6', '4', '_', 'a', 'n', 'd', '_', 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', 0,
2437 : /* 1135 */ 'R', 'S', 'T', 0,
2438 : /* 1139 */ 'F', 'R', '3', '2', 'X', 0,
2439 : /* 1145 */ 'F', 'R', '6', '4', 'X', 0,
2440 : /* 1151 */ 'V', 'R', '2', '5', '6', 'X', 0,
2441 : /* 1158 */ 'V', 'R', '1', '2', '8', 'X', 0,
2442 : /* 1165 */ 'G', 'R', '3', '2', '_', 'N', 'O', 'R', 'E', 'X', 0,
2443 : /* 1176 */ 'G', 'R', '6', '4', '_', 'N', 'O', 'R', 'E', 'X', 0,
2444 : /* 1187 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '1', '6', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '1', '6', '_', 'N', 'O', 'R', 'E', 'X', 0,
2445 : /* 1221 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '1', '6', 'b', 'i', 't', '_', 'i', 'n', '_', 'G', 'R', '1', '6', '_', 'N', 'O', 'R', 'E', 'X', 0,
2446 : /* 1272 */ 'G', 'R', '8', '_', 'N', 'O', 'R', 'E', 'X', 0,
2447 : /* 1282 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', 0,
2448 : /* 1319 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', 0,
2449 : /* 1352 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '8', 'b', 'i', 't', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', 'b', 'i', 't', 0,
2450 : /* 1403 */ 'G', 'R', '6', '4', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '8', 'b', 'i', 't', 0,
2451 : /* 1422 */ 'L', 'O', 'W', '3', '2', '_', 'A', 'D', 'D', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'R', 'B', 'P', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '8', 'b', 'i', 't', 0,
2452 : };
2453 :
2454 : extern const MCRegisterClass X86MCRegisterClasses[] = {
2455 : { GR8, GR8Bits, 216, 20, sizeof(GR8Bits), X86::GR8RegClassID, 1, true },
2456 : { GRH8, GRH8Bits, 207, 12, sizeof(GRH8Bits), X86::GRH8RegClassID, 1, false },
2457 : { GR8_NOREX, GR8_NOREXBits, 1272, 8, sizeof(GR8_NOREXBits), X86::GR8_NOREXRegClassID, 1, true },
2458 : { GR8_ABCD_H, GR8_ABCD_HBits, 588, 4, sizeof(GR8_ABCD_HBits), X86::GR8_ABCD_HRegClassID, 1, true },
2459 : { GR8_ABCD_L, GR8_ABCD_LBits, 839, 4, sizeof(GR8_ABCD_LBits), X86::GR8_ABCD_LRegClassID, 1, true },
2460 : { GRH16, GRH16Bits, 179, 17, sizeof(GRH16Bits), X86::GRH16RegClassID, 1, false },
2461 : { GR16, GR16Bits, 190, 16, sizeof(GR16Bits), X86::GR16RegClassID, 1, true },
2462 : { GR16_NOREX, GR16_NOREXBits, 1210, 8, sizeof(GR16_NOREXBits), X86::GR16_NOREXRegClassID, 1, true },
2463 : { VK1, VK1Bits, 6, 8, sizeof(VK1Bits), X86::VK1RegClassID, 1, true },
2464 : { VK16, VK16Bits, 185, 8, sizeof(VK16Bits), X86::VK16RegClassID, 1, true },
2465 : { VK2, VK2Bits, 59, 8, sizeof(VK2Bits), X86::VK2RegClassID, 1, true },
2466 : { VK4, VK4Bits, 175, 8, sizeof(VK4Bits), X86::VK4RegClassID, 1, true },
2467 : { VK8, VK8Bits, 212, 8, sizeof(VK8Bits), X86::VK8RegClassID, 1, true },
2468 : { VK16WM, VK16WMBits, 882, 7, sizeof(VK16WMBits), X86::VK16WMRegClassID, 1, true },
2469 : { VK1WM, VK1WMBits, 850, 7, sizeof(VK1WMBits), X86::VK1WMRegClassID, 1, true },
2470 : { VK2WM, VK2WMBits, 863, 7, sizeof(VK2WMBits), X86::VK2WMRegClassID, 1, true },
2471 : { VK4WM, VK4WMBits, 876, 7, sizeof(VK4WMBits), X86::VK4WMRegClassID, 1, true },
2472 : { VK8WM, VK8WMBits, 889, 7, sizeof(VK8WMBits), X86::VK8WMRegClassID, 1, true },
2473 : { SEGMENT_REG, SEGMENT_REGBits, 540, 6, sizeof(SEGMENT_REGBits), X86::SEGMENT_REGRegClassID, 1, true },
2474 : { GR16_ABCD, GR16_ABCDBits, 508, 4, sizeof(GR16_ABCDBits), X86::GR16_ABCDRegClassID, 1, true },
2475 : { FPCCR, FPCCRBits, 1097, 1, sizeof(FPCCRBits), X86::FPCCRRegClassID, -1, false },
2476 : { FR32X, FR32XBits, 1139, 32, sizeof(FR32XBits), X86::FR32XRegClassID, 1, true },
2477 : { LOW32_ADDR_ACCESS_RBP, LOW32_ADDR_ACCESS_RBPBits, 984, 18, sizeof(LOW32_ADDR_ACCESS_RBPBits), X86::LOW32_ADDR_ACCESS_RBPRegClassID, 1, true },
2478 : { LOW32_ADDR_ACCESS, LOW32_ADDR_ACCESSBits, 1117, 17, sizeof(LOW32_ADDR_ACCESSBits), X86::LOW32_ADDR_ACCESSRegClassID, 1, true },
2479 : { LOW32_ADDR_ACCESS_RBP_with_sub_8bit, LOW32_ADDR_ACCESS_RBP_with_sub_8bitBits, 1422, 17, sizeof(LOW32_ADDR_ACCESS_RBP_with_sub_8bitBits), X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClassID, 1, true },
2480 : { DEBUG_REG, DEBUG_REGBits, 518, 16, sizeof(DEBUG_REGBits), X86::DEBUG_REGRegClassID, 1, true },
2481 : { FR32, FR32Bits, 49, 16, sizeof(FR32Bits), X86::FR32RegClassID, 1, true },
2482 : { GR32, GR32Bits, 54, 16, sizeof(GR32Bits), X86::GR32RegClassID, 1, true },
2483 : { GR32_NOSP, GR32_NOSPBits, 1006, 15, sizeof(GR32_NOSPBits), X86::GR32_NOSPRegClassID, 1, true },
2484 : { LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX, LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXBits, 1221, 9, sizeof(LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXBits), X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClassID, 1, true },
2485 : { GR32_NOREX, GR32_NOREXBits, 1165, 8, sizeof(GR32_NOREXBits), X86::GR32_NOREXRegClassID, 1, true },
2486 : { VK32, VK32Bits, 16, 8, sizeof(VK32Bits), X86::VK32RegClassID, 1, true },
2487 : { GR32_NOREX_NOSP, GR32_NOREX_NOSPBits, 1026, 7, sizeof(GR32_NOREX_NOSPBits), X86::GR32_NOREX_NOSPRegClassID, 1, true },
2488 : { RFP32, RFP32Bits, 21, 7, sizeof(RFP32Bits), X86::RFP32RegClassID, 1, true },
2489 : { VK32WM, VK32WMBits, 856, 7, sizeof(VK32WMBits), X86::VK32WMRegClassID, 1, true },
2490 : { GR32_ABCD, GR32_ABCDBits, 488, 4, sizeof(GR32_ABCDBits), X86::GR32_ABCDRegClassID, 1, true },
2491 : { GR32_TC, GR32_TCBits, 391, 3, sizeof(GR32_TCBits), X86::GR32_TCRegClassID, 1, true },
2492 : { GR32_AD, GR32_ADBits, 472, 2, sizeof(GR32_ADBits), X86::GR32_ADRegClassID, 1, true },
2493 : { GR32_BPSP, GR32_BPSPBits, 1081, 2, sizeof(GR32_BPSPBits), X86::GR32_BPSPRegClassID, 1, true },
2494 : { GR32_BSI, GR32_BSIBits, 762, 2, sizeof(GR32_BSIBits), X86::GR32_BSIRegClassID, 1, true },
2495 : { GR32_CB, GR32_CBBits, 243, 2, sizeof(GR32_CBBits), X86::GR32_CBRegClassID, 1, true },
2496 : { GR32_DC, GR32_DCBits, 286, 2, sizeof(GR32_DCBits), X86::GR32_DCRegClassID, 1, true },
2497 : { GR32_DIBP, GR32_DIBPBits, 932, 2, sizeof(GR32_DIBPBits), X86::GR32_DIBPRegClassID, 1, true },
2498 : { GR32_SIDI, GR32_SIDIBits, 635, 2, sizeof(GR32_SIDIBits), X86::GR32_SIDIRegClassID, 1, true },
2499 : { LOW32_ADDR_ACCESS_RBP_with_sub_32bit, LOW32_ADDR_ACCESS_RBP_with_sub_32bitBits, 1282, 2, sizeof(LOW32_ADDR_ACCESS_RBP_with_sub_32bitBits), X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClassID, 1, true },
2500 : { CCR, CCRBits, 1093, 1, sizeof(CCRBits), X86::CCRRegClassID, -1, false },
2501 : { DFCCR, DFCCRBits, 1091, 1, sizeof(DFCCRBits), X86::DFCCRRegClassID, -1, false },
2502 : { GR32_ABCD_and_GR32_BSI, GR32_ABCD_and_GR32_BSIBits, 748, 1, sizeof(GR32_ABCD_and_GR32_BSIBits), X86::GR32_ABCD_and_GR32_BSIRegClassID, 1, true },
2503 : { GR32_AD_and_GR32_DC, GR32_AD_and_GR32_DCBits, 317, 1, sizeof(GR32_AD_and_GR32_DCBits), X86::GR32_AD_and_GR32_DCRegClassID, 1, true },
2504 : { GR32_BPSP_and_GR32_DIBP, GR32_BPSP_and_GR32_DIBPBits, 918, 1, sizeof(GR32_BPSP_and_GR32_DIBPBits), X86::GR32_BPSP_and_GR32_DIBPRegClassID, 1, true },
2505 : { GR32_BSI_and_GR32_SIDI, GR32_BSI_and_GR32_SIDIBits, 622, 1, sizeof(GR32_BSI_and_GR32_SIDIBits), X86::GR32_BSI_and_GR32_SIDIRegClassID, 1, true },
2506 : { GR32_CB_and_GR32_DC, GR32_CB_and_GR32_DCBits, 274, 1, sizeof(GR32_CB_and_GR32_DCBits), X86::GR32_CB_and_GR32_DCRegClassID, 1, true },
2507 : { GR32_DIBP_and_GR32_SIDI, GR32_DIBP_and_GR32_SIDIBits, 668, 1, sizeof(GR32_DIBP_and_GR32_SIDIBits), X86::GR32_DIBP_and_GR32_SIDIRegClassID, 1, true },
2508 : { LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit, LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitBits, 1352, 1, sizeof(LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitBits), X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClassID, 1, true },
2509 : { LOW32_ADDR_ACCESS_with_sub_32bit, LOW32_ADDR_ACCESS_with_sub_32bitBits, 1319, 1, sizeof(LOW32_ADDR_ACCESS_with_sub_32bitBits), X86::LOW32_ADDR_ACCESS_with_sub_32bitRegClassID, 1, true },
2510 : { RFP64, RFP64Bits, 68, 7, sizeof(RFP64Bits), X86::RFP64RegClassID, 1, true },
2511 : { FR64X, FR64XBits, 1145, 32, sizeof(FR64XBits), X86::FR64XRegClassID, 1, true },
2512 : { GR64, GR64Bits, 79, 17, sizeof(GR64Bits), X86::GR64RegClassID, 1, true },
2513 : { CONTROL_REG, CONTROL_REGBits, 528, 16, sizeof(CONTROL_REGBits), X86::CONTROL_REGRegClassID, 1, true },
2514 : { FR64, FR64Bits, 74, 16, sizeof(FR64Bits), X86::FR64RegClassID, 1, true },
2515 : { GR64_with_sub_8bit, GR64_with_sub_8bitBits, 1403, 16, sizeof(GR64_with_sub_8bitBits), X86::GR64_with_sub_8bitRegClassID, 1, true },
2516 : { GR64_NOSP, GR64_NOSPBits, 1016, 15, sizeof(GR64_NOSPBits), X86::GR64_NOSPRegClassID, 1, true },
2517 : { GR64_NOREX, GR64_NOREXBits, 1176, 9, sizeof(GR64_NOREXBits), X86::GR64_NOREXRegClassID, 1, true },
2518 : { GR64_TC, GR64_TCBits, 413, 9, sizeof(GR64_TCBits), X86::GR64_TCRegClassID, 1, true },
2519 : { GR64_NOSP_and_GR64_TC, GR64_NOSP_and_GR64_TCBits, 399, 8, sizeof(GR64_NOSP_and_GR64_TCBits), X86::GR64_NOSP_and_GR64_TCRegClassID, 1, true },
2520 : { GR64_TCW64, GR64_TCW64Bits, 101, 8, sizeof(GR64_TCW64Bits), X86::GR64_TCW64RegClassID, 1, true },
2521 : { GR64_with_sub_16bit_in_GR16_NOREX, GR64_with_sub_16bit_in_GR16_NOREXBits, 1187, 8, sizeof(GR64_with_sub_16bit_in_GR16_NOREXBits), X86::GR64_with_sub_16bit_in_GR16_NOREXRegClassID, 1, true },
2522 : { VK64, VK64Bits, 63, 8, sizeof(VK64Bits), X86::VK64RegClassID, 1, true },
2523 : { VR64, VR64Bits, 84, 8, sizeof(VR64Bits), X86::VR64RegClassID, 1, true },
2524 : { GR64_NOREX_NOSP, GR64_NOREX_NOSPBits, 1042, 7, sizeof(GR64_NOREX_NOSPBits), X86::GR64_NOREX_NOSPRegClassID, 1, true },
2525 : { GR64_NOSP_and_GR64_TCW64, GR64_NOSP_and_GR64_TCW64Bits, 124, 7, sizeof(GR64_NOSP_and_GR64_TCW64Bits), X86::GR64_NOSP_and_GR64_TCW64RegClassID, 1, true },
2526 : { GR64_TC_and_GR64_TCW64, GR64_TC_and_GR64_TCW64Bits, 89, 7, sizeof(GR64_TC_and_GR64_TCW64Bits), X86::GR64_TC_and_GR64_TCW64RegClassID, 1, true },
2527 : { VK64WM, VK64WMBits, 869, 7, sizeof(VK64WMBits), X86::VK64WMRegClassID, 1, true },
2528 : { GR64_NOREX_and_GR64_TC, GR64_NOREX_and_GR64_TCBits, 449, 6, sizeof(GR64_NOREX_and_GR64_TCBits), X86::GR64_NOREX_and_GR64_TCRegClassID, 1, true },
2529 : { GR64_TC_and_GR64_NOSP_and_GR64_TCW64, GR64_TC_and_GR64_NOSP_and_GR64_TCW64Bits, 112, 6, sizeof(GR64_TC_and_GR64_NOSP_and_GR64_TCW64Bits), X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClassID, 1, true },
2530 : { GR64_NOREX_NOSP_and_GR64_TC, GR64_NOREX_NOSP_and_GR64_TCBits, 421, 5, sizeof(GR64_NOREX_NOSP_and_GR64_TCBits), X86::GR64_NOREX_NOSP_and_GR64_TCRegClassID, 1, true },
2531 : { GR64_ABCD, GR64_ABCDBits, 498, 4, sizeof(GR64_ABCDBits), X86::GR64_ABCDRegClassID, 1, true },
2532 : { GR64_NOREX_and_GR64_TCW64, GR64_NOREX_and_GR64_TCW64Bits, 149, 4, sizeof(GR64_NOREX_and_GR64_TCW64Bits), X86::GR64_NOREX_and_GR64_TCW64RegClassID, 1, true },
2533 : { GR64_with_sub_32bit_in_GR32_TC, GR64_with_sub_32bit_in_GR32_TCBits, 368, 3, sizeof(GR64_with_sub_32bit_in_GR32_TCBits), X86::GR64_with_sub_32bit_in_GR32_TCRegClassID, 1, true },
2534 : { GR64_AD, GR64_ADBits, 480, 2, sizeof(GR64_ADBits), X86::GR64_ADRegClassID, 1, true },
2535 : { GR64_and_LOW32_ADDR_ACCESS_RBP, GR64_and_LOW32_ADDR_ACCESS_RBPBits, 975, 2, sizeof(GR64_and_LOW32_ADDR_ACCESS_RBPBits), X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClassID, 1, true },
2536 : { GR64_with_sub_32bit_in_GR32_BPSP, GR64_with_sub_32bit_in_GR32_BPSPBits, 1058, 2, sizeof(GR64_with_sub_32bit_in_GR32_BPSPBits), X86::GR64_with_sub_32bit_in_GR32_BPSPRegClassID, 1, true },
2537 : { GR64_with_sub_32bit_in_GR32_BSI, GR64_with_sub_32bit_in_GR32_BSIBits, 771, 2, sizeof(GR64_with_sub_32bit_in_GR32_BSIBits), X86::GR64_with_sub_32bit_in_GR32_BSIRegClassID, 1, true },
2538 : { GR64_with_sub_32bit_in_GR32_CB, GR64_with_sub_32bit_in_GR32_CBBits, 220, 2, sizeof(GR64_with_sub_32bit_in_GR32_CBBits), X86::GR64_with_sub_32bit_in_GR32_CBRegClassID, 1, true },
2539 : { GR64_with_sub_32bit_in_GR32_DC, GR64_with_sub_32bit_in_GR32_DCBits, 337, 2, sizeof(GR64_with_sub_32bit_in_GR32_DCBits), X86::GR64_with_sub_32bit_in_GR32_DCRegClassID, 1, true },
2540 : { GR64_with_sub_32bit_in_GR32_DIBP, GR64_with_sub_32bit_in_GR32_DIBPBits, 942, 2, sizeof(GR64_with_sub_32bit_in_GR32_DIBPBits), X86::GR64_with_sub_32bit_in_GR32_DIBPRegClassID, 1, true },
2541 : { GR64_with_sub_32bit_in_GR32_SIDI, GR64_with_sub_32bit_in_GR32_SIDIBits, 692, 2, sizeof(GR64_with_sub_32bit_in_GR32_SIDIBits), X86::GR64_with_sub_32bit_in_GR32_SIDIRegClassID, 1, true },
2542 : { GR64_and_LOW32_ADDR_ACCESS, GR64_and_LOW32_ADDR_ACCESSBits, 1108, 1, sizeof(GR64_and_LOW32_ADDR_ACCESSBits), X86::GR64_and_LOW32_ADDR_ACCESSRegClassID, 1, true },
2543 : { GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI, GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIBits, 725, 1, sizeof(GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIBits), X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClassID, 1, true },
2544 : { GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC, GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCBits, 294, 1, sizeof(GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCBits), X86::GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClassID, 1, true },
2545 : { GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP, GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPBits, 895, 1, sizeof(GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPBits), X86::GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClassID, 1, true },
2546 : { GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI, GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIBits, 599, 1, sizeof(GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIBits), X86::GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClassID, 1, true },
2547 : { GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC, GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCBits, 251, 1, sizeof(GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCBits), X86::GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClassID, 1, true },
2548 : { GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI, GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIBits, 645, 1, sizeof(GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIBits), X86::GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClassID, 1, true },
2549 : { RST, RSTBits, 1135, 8, sizeof(RSTBits), X86::RSTRegClassID, 1, false },
2550 : { RFP80, RFP80Bits, 0, 7, sizeof(RFP80Bits), X86::RFP80RegClassID, 1, true },
2551 : { VR128X, VR128XBits, 1158, 32, sizeof(VR128XBits), X86::VR128XRegClassID, 1, true },
2552 : { VR128, VR128Bits, 201, 16, sizeof(VR128Bits), X86::VR128RegClassID, 1, true },
2553 : { VR128H, VR128HBits, 581, 8, sizeof(VR128HBits), X86::VR128HRegClassID, 1, true },
2554 : { VR128L, VR128LBits, 832, 8, sizeof(VR128LBits), X86::VR128LRegClassID, 1, true },
2555 : { BNDR, BNDRBits, 1103, 4, sizeof(BNDRBits), X86::BNDRRegClassID, 1, true },
2556 : { VR256X, VR256XBits, 1151, 32, sizeof(VR256XBits), X86::VR256XRegClassID, 1, true },
2557 : { VR256, VR256Bits, 195, 16, sizeof(VR256Bits), X86::VR256RegClassID, 1, true },
2558 : { VR256H, VR256HBits, 552, 8, sizeof(VR256HBits), X86::VR256HRegClassID, 1, true },
2559 : { VR256L, VR256LBits, 803, 8, sizeof(VR256LBits), X86::VR256LRegClassID, 1, true },
2560 : { VR512, VR512Bits, 10, 32, sizeof(VR512Bits), X86::VR512RegClassID, 1, true },
2561 : { 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, 1, true },
2562 : { VR512_with_sub_xmm_in_VR128H, VR512_with_sub_xmm_in_VR128HBits, 559, 8, sizeof(VR512_with_sub_xmm_in_VR128HBits), X86::VR512_with_sub_xmm_in_VR128HRegClassID, 1, true },
2563 : { VR512_with_sub_xmm_in_VR128L, VR512_with_sub_xmm_in_VR128LBits, 810, 8, sizeof(VR512_with_sub_xmm_in_VR128LBits), X86::VR512_with_sub_xmm_in_VR128LRegClassID, 1, true },
2564 : };
2565 :
2566 : // X86 Dwarf<->LLVM register mappings.
2567 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour0Dwarf2L[] = {
2568 : { 0U, X86::RAX },
2569 : { 1U, X86::RDX },
2570 : { 2U, X86::RCX },
2571 : { 3U, X86::RBX },
2572 : { 4U, X86::RSI },
2573 : { 5U, X86::RDI },
2574 : { 6U, X86::RBP },
2575 : { 7U, X86::RSP },
2576 : { 8U, X86::R8 },
2577 : { 9U, X86::R9 },
2578 : { 10U, X86::R10 },
2579 : { 11U, X86::R11 },
2580 : { 12U, X86::R12 },
2581 : { 13U, X86::R13 },
2582 : { 14U, X86::R14 },
2583 : { 15U, X86::R15 },
2584 : { 16U, X86::RIP },
2585 : { 17U, X86::XMM0 },
2586 : { 18U, X86::XMM1 },
2587 : { 19U, X86::XMM2 },
2588 : { 20U, X86::XMM3 },
2589 : { 21U, X86::XMM4 },
2590 : { 22U, X86::XMM5 },
2591 : { 23U, X86::XMM6 },
2592 : { 24U, X86::XMM7 },
2593 : { 25U, X86::XMM8 },
2594 : { 26U, X86::XMM9 },
2595 : { 27U, X86::XMM10 },
2596 : { 28U, X86::XMM11 },
2597 : { 29U, X86::XMM12 },
2598 : { 30U, X86::XMM13 },
2599 : { 31U, X86::XMM14 },
2600 : { 32U, X86::XMM15 },
2601 : { 33U, X86::ST0 },
2602 : { 34U, X86::ST1 },
2603 : { 35U, X86::ST2 },
2604 : { 36U, X86::ST3 },
2605 : { 37U, X86::ST4 },
2606 : { 38U, X86::ST5 },
2607 : { 39U, X86::ST6 },
2608 : { 40U, X86::ST7 },
2609 : { 41U, X86::MM0 },
2610 : { 42U, X86::MM1 },
2611 : { 43U, X86::MM2 },
2612 : { 44U, X86::MM3 },
2613 : { 45U, X86::MM4 },
2614 : { 46U, X86::MM5 },
2615 : { 47U, X86::MM6 },
2616 : { 48U, X86::MM7 },
2617 : { 67U, X86::XMM16 },
2618 : { 68U, X86::XMM17 },
2619 : { 69U, X86::XMM18 },
2620 : { 70U, X86::XMM19 },
2621 : { 71U, X86::XMM20 },
2622 : { 72U, X86::XMM21 },
2623 : { 73U, X86::XMM22 },
2624 : { 74U, X86::XMM23 },
2625 : { 75U, X86::XMM24 },
2626 : { 76U, X86::XMM25 },
2627 : { 77U, X86::XMM26 },
2628 : { 78U, X86::XMM27 },
2629 : { 79U, X86::XMM28 },
2630 : { 80U, X86::XMM29 },
2631 : { 81U, X86::XMM30 },
2632 : { 82U, X86::XMM31 },
2633 : { 118U, X86::K0 },
2634 : { 119U, X86::K1 },
2635 : { 120U, X86::K2 },
2636 : { 121U, X86::K3 },
2637 : { 122U, X86::K4 },
2638 : { 123U, X86::K5 },
2639 : { 124U, X86::K6 },
2640 : { 125U, X86::K7 },
2641 : };
2642 : extern const unsigned X86DwarfFlavour0Dwarf2LSize = array_lengthof(X86DwarfFlavour0Dwarf2L);
2643 :
2644 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour1Dwarf2L[] = {
2645 : { 0U, X86::EAX },
2646 : { 1U, X86::ECX },
2647 : { 2U, X86::EDX },
2648 : { 3U, X86::EBX },
2649 : { 4U, X86::EBP },
2650 : { 5U, X86::ESP },
2651 : { 6U, X86::ESI },
2652 : { 7U, X86::EDI },
2653 : { 8U, X86::EIP },
2654 : { 12U, X86::ST0 },
2655 : { 13U, X86::ST1 },
2656 : { 14U, X86::ST2 },
2657 : { 15U, X86::ST3 },
2658 : { 16U, X86::ST4 },
2659 : { 17U, X86::ST5 },
2660 : { 18U, X86::ST6 },
2661 : { 19U, X86::ST7 },
2662 : { 21U, X86::XMM0 },
2663 : { 22U, X86::XMM1 },
2664 : { 23U, X86::XMM2 },
2665 : { 24U, X86::XMM3 },
2666 : { 25U, X86::XMM4 },
2667 : { 26U, X86::XMM5 },
2668 : { 27U, X86::XMM6 },
2669 : { 28U, X86::XMM7 },
2670 : { 29U, X86::MM0 },
2671 : { 30U, X86::MM1 },
2672 : { 31U, X86::MM2 },
2673 : { 32U, X86::MM3 },
2674 : { 33U, X86::MM4 },
2675 : { 34U, X86::MM5 },
2676 : { 35U, X86::MM6 },
2677 : { 36U, X86::MM7 },
2678 : { 93U, X86::K0 },
2679 : { 94U, X86::K1 },
2680 : { 95U, X86::K2 },
2681 : { 96U, X86::K3 },
2682 : { 97U, X86::K4 },
2683 : { 98U, X86::K5 },
2684 : { 99U, X86::K6 },
2685 : { 100U, X86::K7 },
2686 : };
2687 : extern const unsigned X86DwarfFlavour1Dwarf2LSize = array_lengthof(X86DwarfFlavour1Dwarf2L);
2688 :
2689 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour2Dwarf2L[] = {
2690 : { 0U, X86::EAX },
2691 : { 1U, X86::ECX },
2692 : { 2U, X86::EDX },
2693 : { 3U, X86::EBX },
2694 : { 4U, X86::ESP },
2695 : { 5U, X86::EBP },
2696 : { 6U, X86::ESI },
2697 : { 7U, X86::EDI },
2698 : { 8U, X86::EIP },
2699 : { 11U, X86::ST0 },
2700 : { 12U, X86::ST1 },
2701 : { 13U, X86::ST2 },
2702 : { 14U, X86::ST3 },
2703 : { 15U, X86::ST4 },
2704 : { 16U, X86::ST5 },
2705 : { 17U, X86::ST6 },
2706 : { 18U, X86::ST7 },
2707 : { 21U, X86::XMM0 },
2708 : { 22U, X86::XMM1 },
2709 : { 23U, X86::XMM2 },
2710 : { 24U, X86::XMM3 },
2711 : { 25U, X86::XMM4 },
2712 : { 26U, X86::XMM5 },
2713 : { 27U, X86::XMM6 },
2714 : { 28U, X86::XMM7 },
2715 : { 29U, X86::MM0 },
2716 : { 30U, X86::MM1 },
2717 : { 31U, X86::MM2 },
2718 : { 32U, X86::MM3 },
2719 : { 33U, X86::MM4 },
2720 : { 34U, X86::MM5 },
2721 : { 35U, X86::MM6 },
2722 : { 36U, X86::MM7 },
2723 : { 93U, X86::K0 },
2724 : { 94U, X86::K1 },
2725 : { 95U, X86::K2 },
2726 : { 96U, X86::K3 },
2727 : { 97U, X86::K4 },
2728 : { 98U, X86::K5 },
2729 : { 99U, X86::K6 },
2730 : { 100U, X86::K7 },
2731 : };
2732 : extern const unsigned X86DwarfFlavour2Dwarf2LSize = array_lengthof(X86DwarfFlavour2Dwarf2L);
2733 :
2734 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour0Dwarf2L[] = {
2735 : { 0U, X86::RAX },
2736 : { 1U, X86::RDX },
2737 : { 2U, X86::RCX },
2738 : { 3U, X86::RBX },
2739 : { 4U, X86::RSI },
2740 : { 5U, X86::RDI },
2741 : { 6U, X86::RBP },
2742 : { 7U, X86::RSP },
2743 : { 8U, X86::R8 },
2744 : { 9U, X86::R9 },
2745 : { 10U, X86::R10 },
2746 : { 11U, X86::R11 },
2747 : { 12U, X86::R12 },
2748 : { 13U, X86::R13 },
2749 : { 14U, X86::R14 },
2750 : { 15U, X86::R15 },
2751 : { 16U, X86::RIP },
2752 : { 17U, X86::XMM0 },
2753 : { 18U, X86::XMM1 },
2754 : { 19U, X86::XMM2 },
2755 : { 20U, X86::XMM3 },
2756 : { 21U, X86::XMM4 },
2757 : { 22U, X86::XMM5 },
2758 : { 23U, X86::XMM6 },
2759 : { 24U, X86::XMM7 },
2760 : { 25U, X86::XMM8 },
2761 : { 26U, X86::XMM9 },
2762 : { 27U, X86::XMM10 },
2763 : { 28U, X86::XMM11 },
2764 : { 29U, X86::XMM12 },
2765 : { 30U, X86::XMM13 },
2766 : { 31U, X86::XMM14 },
2767 : { 32U, X86::XMM15 },
2768 : { 33U, X86::ST0 },
2769 : { 34U, X86::ST1 },
2770 : { 35U, X86::ST2 },
2771 : { 36U, X86::ST3 },
2772 : { 37U, X86::ST4 },
2773 : { 38U, X86::ST5 },
2774 : { 39U, X86::ST6 },
2775 : { 40U, X86::ST7 },
2776 : { 41U, X86::MM0 },
2777 : { 42U, X86::MM1 },
2778 : { 43U, X86::MM2 },
2779 : { 44U, X86::MM3 },
2780 : { 45U, X86::MM4 },
2781 : { 46U, X86::MM5 },
2782 : { 47U, X86::MM6 },
2783 : { 48U, X86::MM7 },
2784 : { 67U, X86::XMM16 },
2785 : { 68U, X86::XMM17 },
2786 : { 69U, X86::XMM18 },
2787 : { 70U, X86::XMM19 },
2788 : { 71U, X86::XMM20 },
2789 : { 72U, X86::XMM21 },
2790 : { 73U, X86::XMM22 },
2791 : { 74U, X86::XMM23 },
2792 : { 75U, X86::XMM24 },
2793 : { 76U, X86::XMM25 },
2794 : { 77U, X86::XMM26 },
2795 : { 78U, X86::XMM27 },
2796 : { 79U, X86::XMM28 },
2797 : { 80U, X86::XMM29 },
2798 : { 81U, X86::XMM30 },
2799 : { 82U, X86::XMM31 },
2800 : { 118U, X86::K0 },
2801 : { 119U, X86::K1 },
2802 : { 120U, X86::K2 },
2803 : { 121U, X86::K3 },
2804 : { 122U, X86::K4 },
2805 : { 123U, X86::K5 },
2806 : { 124U, X86::K6 },
2807 : { 125U, X86::K7 },
2808 : };
2809 : extern const unsigned X86EHFlavour0Dwarf2LSize = array_lengthof(X86EHFlavour0Dwarf2L);
2810 :
2811 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour1Dwarf2L[] = {
2812 : { 0U, X86::EAX },
2813 : { 1U, X86::ECX },
2814 : { 2U, X86::EDX },
2815 : { 3U, X86::EBX },
2816 : { 4U, X86::EBP },
2817 : { 5U, X86::ESP },
2818 : { 6U, X86::ESI },
2819 : { 7U, X86::EDI },
2820 : { 8U, X86::EIP },
2821 : { 12U, X86::ST0 },
2822 : { 13U, X86::ST1 },
2823 : { 14U, X86::ST2 },
2824 : { 15U, X86::ST3 },
2825 : { 16U, X86::ST4 },
2826 : { 17U, X86::ST5 },
2827 : { 18U, X86::ST6 },
2828 : { 19U, X86::ST7 },
2829 : { 21U, X86::XMM0 },
2830 : { 22U, X86::XMM1 },
2831 : { 23U, X86::XMM2 },
2832 : { 24U, X86::XMM3 },
2833 : { 25U, X86::XMM4 },
2834 : { 26U, X86::XMM5 },
2835 : { 27U, X86::XMM6 },
2836 : { 28U, X86::XMM7 },
2837 : { 29U, X86::MM0 },
2838 : { 30U, X86::MM1 },
2839 : { 31U, X86::MM2 },
2840 : { 32U, X86::MM3 },
2841 : { 33U, X86::MM4 },
2842 : { 34U, X86::MM5 },
2843 : { 35U, X86::MM6 },
2844 : { 36U, X86::MM7 },
2845 : { 93U, X86::K0 },
2846 : { 94U, X86::K1 },
2847 : { 95U, X86::K2 },
2848 : { 96U, X86::K3 },
2849 : { 97U, X86::K4 },
2850 : { 98U, X86::K5 },
2851 : { 99U, X86::K6 },
2852 : { 100U, X86::K7 },
2853 : };
2854 : extern const unsigned X86EHFlavour1Dwarf2LSize = array_lengthof(X86EHFlavour1Dwarf2L);
2855 :
2856 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour2Dwarf2L[] = {
2857 : { 0U, X86::EAX },
2858 : { 1U, X86::ECX },
2859 : { 2U, X86::EDX },
2860 : { 3U, X86::EBX },
2861 : { 4U, X86::ESP },
2862 : { 5U, X86::EBP },
2863 : { 6U, X86::ESI },
2864 : { 7U, X86::EDI },
2865 : { 8U, X86::EIP },
2866 : { 11U, X86::ST0 },
2867 : { 12U, X86::ST1 },
2868 : { 13U, X86::ST2 },
2869 : { 14U, X86::ST3 },
2870 : { 15U, X86::ST4 },
2871 : { 16U, X86::ST5 },
2872 : { 17U, X86::ST6 },
2873 : { 18U, X86::ST7 },
2874 : { 21U, X86::XMM0 },
2875 : { 22U, X86::XMM1 },
2876 : { 23U, X86::XMM2 },
2877 : { 24U, X86::XMM3 },
2878 : { 25U, X86::XMM4 },
2879 : { 26U, X86::XMM5 },
2880 : { 27U, X86::XMM6 },
2881 : { 28U, X86::XMM7 },
2882 : { 29U, X86::MM0 },
2883 : { 30U, X86::MM1 },
2884 : { 31U, X86::MM2 },
2885 : { 32U, X86::MM3 },
2886 : { 33U, X86::MM4 },
2887 : { 34U, X86::MM5 },
2888 : { 35U, X86::MM6 },
2889 : { 36U, X86::MM7 },
2890 : { 93U, X86::K0 },
2891 : { 94U, X86::K1 },
2892 : { 95U, X86::K2 },
2893 : { 96U, X86::K3 },
2894 : { 97U, X86::K4 },
2895 : { 98U, X86::K5 },
2896 : { 99U, X86::K6 },
2897 : { 100U, X86::K7 },
2898 : };
2899 : extern const unsigned X86EHFlavour2Dwarf2LSize = array_lengthof(X86EHFlavour2Dwarf2L);
2900 :
2901 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour0L2Dwarf[] = {
2902 : { X86::EAX, -2U },
2903 : { X86::EBP, -2U },
2904 : { X86::EBX, -2U },
2905 : { X86::ECX, -2U },
2906 : { X86::EDI, -2U },
2907 : { X86::EDX, -2U },
2908 : { X86::EIP, -2U },
2909 : { X86::ESI, -2U },
2910 : { X86::ESP, -2U },
2911 : { X86::RAX, 0U },
2912 : { X86::RBP, 6U },
2913 : { X86::RBX, 3U },
2914 : { X86::RCX, 2U },
2915 : { X86::RDI, 5U },
2916 : { X86::RDX, 1U },
2917 : { X86::RIP, 16U },
2918 : { X86::RSI, 4U },
2919 : { X86::RSP, 7U },
2920 : { X86::K0, 118U },
2921 : { X86::K1, 119U },
2922 : { X86::K2, 120U },
2923 : { X86::K3, 121U },
2924 : { X86::K4, 122U },
2925 : { X86::K5, 123U },
2926 : { X86::K6, 124U },
2927 : { X86::K7, 125U },
2928 : { X86::MM0, 41U },
2929 : { X86::MM1, 42U },
2930 : { X86::MM2, 43U },
2931 : { X86::MM3, 44U },
2932 : { X86::MM4, 45U },
2933 : { X86::MM5, 46U },
2934 : { X86::MM6, 47U },
2935 : { X86::MM7, 48U },
2936 : { X86::R8, 8U },
2937 : { X86::R9, 9U },
2938 : { X86::R10, 10U },
2939 : { X86::R11, 11U },
2940 : { X86::R12, 12U },
2941 : { X86::R13, 13U },
2942 : { X86::R14, 14U },
2943 : { X86::R15, 15U },
2944 : { X86::ST0, 33U },
2945 : { X86::ST1, 34U },
2946 : { X86::ST2, 35U },
2947 : { X86::ST3, 36U },
2948 : { X86::ST4, 37U },
2949 : { X86::ST5, 38U },
2950 : { X86::ST6, 39U },
2951 : { X86::ST7, 40U },
2952 : { X86::XMM0, 17U },
2953 : { X86::XMM1, 18U },
2954 : { X86::XMM2, 19U },
2955 : { X86::XMM3, 20U },
2956 : { X86::XMM4, 21U },
2957 : { X86::XMM5, 22U },
2958 : { X86::XMM6, 23U },
2959 : { X86::XMM7, 24U },
2960 : { X86::XMM8, 25U },
2961 : { X86::XMM9, 26U },
2962 : { X86::XMM10, 27U },
2963 : { X86::XMM11, 28U },
2964 : { X86::XMM12, 29U },
2965 : { X86::XMM13, 30U },
2966 : { X86::XMM14, 31U },
2967 : { X86::XMM15, 32U },
2968 : { X86::XMM16, 67U },
2969 : { X86::XMM17, 68U },
2970 : { X86::XMM18, 69U },
2971 : { X86::XMM19, 70U },
2972 : { X86::XMM20, 71U },
2973 : { X86::XMM21, 72U },
2974 : { X86::XMM22, 73U },
2975 : { X86::XMM23, 74U },
2976 : { X86::XMM24, 75U },
2977 : { X86::XMM25, 76U },
2978 : { X86::XMM26, 77U },
2979 : { X86::XMM27, 78U },
2980 : { X86::XMM28, 79U },
2981 : { X86::XMM29, 80U },
2982 : { X86::XMM30, 81U },
2983 : { X86::XMM31, 82U },
2984 : { X86::YMM0, 17U },
2985 : { X86::YMM1, 18U },
2986 : { X86::YMM2, 19U },
2987 : { X86::YMM3, 20U },
2988 : { X86::YMM4, 21U },
2989 : { X86::YMM5, 22U },
2990 : { X86::YMM6, 23U },
2991 : { X86::YMM7, 24U },
2992 : { X86::YMM8, 25U },
2993 : { X86::YMM9, 26U },
2994 : { X86::YMM10, 27U },
2995 : { X86::YMM11, 28U },
2996 : { X86::YMM12, 29U },
2997 : { X86::YMM13, 30U },
2998 : { X86::YMM14, 31U },
2999 : { X86::YMM15, 32U },
3000 : { X86::YMM16, 67U },
3001 : { X86::YMM17, 68U },
3002 : { X86::YMM18, 69U },
3003 : { X86::YMM19, 70U },
3004 : { X86::YMM20, 71U },
3005 : { X86::YMM21, 72U },
3006 : { X86::YMM22, 73U },
3007 : { X86::YMM23, 74U },
3008 : { X86::YMM24, 75U },
3009 : { X86::YMM25, 76U },
3010 : { X86::YMM26, 77U },
3011 : { X86::YMM27, 78U },
3012 : { X86::YMM28, 79U },
3013 : { X86::YMM29, 80U },
3014 : { X86::YMM30, 81U },
3015 : { X86::YMM31, 82U },
3016 : { X86::ZMM0, 17U },
3017 : { X86::ZMM1, 18U },
3018 : { X86::ZMM2, 19U },
3019 : { X86::ZMM3, 20U },
3020 : { X86::ZMM4, 21U },
3021 : { X86::ZMM5, 22U },
3022 : { X86::ZMM6, 23U },
3023 : { X86::ZMM7, 24U },
3024 : { X86::ZMM8, 25U },
3025 : { X86::ZMM9, 26U },
3026 : { X86::ZMM10, 27U },
3027 : { X86::ZMM11, 28U },
3028 : { X86::ZMM12, 29U },
3029 : { X86::ZMM13, 30U },
3030 : { X86::ZMM14, 31U },
3031 : { X86::ZMM15, 32U },
3032 : { X86::ZMM16, 67U },
3033 : { X86::ZMM17, 68U },
3034 : { X86::ZMM18, 69U },
3035 : { X86::ZMM19, 70U },
3036 : { X86::ZMM20, 71U },
3037 : { X86::ZMM21, 72U },
3038 : { X86::ZMM22, 73U },
3039 : { X86::ZMM23, 74U },
3040 : { X86::ZMM24, 75U },
3041 : { X86::ZMM25, 76U },
3042 : { X86::ZMM26, 77U },
3043 : { X86::ZMM27, 78U },
3044 : { X86::ZMM28, 79U },
3045 : { X86::ZMM29, 80U },
3046 : { X86::ZMM30, 81U },
3047 : { X86::ZMM31, 82U },
3048 : };
3049 : extern const unsigned X86DwarfFlavour0L2DwarfSize = array_lengthof(X86DwarfFlavour0L2Dwarf);
3050 :
3051 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour1L2Dwarf[] = {
3052 : { X86::EAX, 0U },
3053 : { X86::EBP, 4U },
3054 : { X86::EBX, 3U },
3055 : { X86::ECX, 1U },
3056 : { X86::EDI, 7U },
3057 : { X86::EDX, 2U },
3058 : { X86::EIP, 8U },
3059 : { X86::ESI, 6U },
3060 : { X86::ESP, 5U },
3061 : { X86::RAX, -2U },
3062 : { X86::RBP, -2U },
3063 : { X86::RBX, -2U },
3064 : { X86::RCX, -2U },
3065 : { X86::RDI, -2U },
3066 : { X86::RDX, -2U },
3067 : { X86::RIP, -2U },
3068 : { X86::RSI, -2U },
3069 : { X86::RSP, -2U },
3070 : { X86::K0, 93U },
3071 : { X86::K1, 94U },
3072 : { X86::K2, 95U },
3073 : { X86::K3, 96U },
3074 : { X86::K4, 97U },
3075 : { X86::K5, 98U },
3076 : { X86::K6, 99U },
3077 : { X86::K7, 100U },
3078 : { X86::MM0, 29U },
3079 : { X86::MM1, 30U },
3080 : { X86::MM2, 31U },
3081 : { X86::MM3, 32U },
3082 : { X86::MM4, 33U },
3083 : { X86::MM5, 34U },
3084 : { X86::MM6, 35U },
3085 : { X86::MM7, 36U },
3086 : { X86::R8, -2U },
3087 : { X86::R9, -2U },
3088 : { X86::R10, -2U },
3089 : { X86::R11, -2U },
3090 : { X86::R12, -2U },
3091 : { X86::R13, -2U },
3092 : { X86::R14, -2U },
3093 : { X86::R15, -2U },
3094 : { X86::ST0, 12U },
3095 : { X86::ST1, 13U },
3096 : { X86::ST2, 14U },
3097 : { X86::ST3, 15U },
3098 : { X86::ST4, 16U },
3099 : { X86::ST5, 17U },
3100 : { X86::ST6, 18U },
3101 : { X86::ST7, 19U },
3102 : { X86::XMM0, 21U },
3103 : { X86::XMM1, 22U },
3104 : { X86::XMM2, 23U },
3105 : { X86::XMM3, 24U },
3106 : { X86::XMM4, 25U },
3107 : { X86::XMM5, 26U },
3108 : { X86::XMM6, 27U },
3109 : { X86::XMM7, 28U },
3110 : { X86::XMM8, -2U },
3111 : { X86::XMM9, -2U },
3112 : { X86::XMM10, -2U },
3113 : { X86::XMM11, -2U },
3114 : { X86::XMM12, -2U },
3115 : { X86::XMM13, -2U },
3116 : { X86::XMM14, -2U },
3117 : { X86::XMM15, -2U },
3118 : { X86::XMM16, -2U },
3119 : { X86::XMM17, -2U },
3120 : { X86::XMM18, -2U },
3121 : { X86::XMM19, -2U },
3122 : { X86::XMM20, -2U },
3123 : { X86::XMM21, -2U },
3124 : { X86::XMM22, -2U },
3125 : { X86::XMM23, -2U },
3126 : { X86::XMM24, -2U },
3127 : { X86::XMM25, -2U },
3128 : { X86::XMM26, -2U },
3129 : { X86::XMM27, -2U },
3130 : { X86::XMM28, -2U },
3131 : { X86::XMM29, -2U },
3132 : { X86::XMM30, -2U },
3133 : { X86::XMM31, -2U },
3134 : { X86::YMM0, 21U },
3135 : { X86::YMM1, 22U },
3136 : { X86::YMM2, 23U },
3137 : { X86::YMM3, 24U },
3138 : { X86::YMM4, 25U },
3139 : { X86::YMM5, 26U },
3140 : { X86::YMM6, 27U },
3141 : { X86::YMM7, 28U },
3142 : { X86::YMM8, -2U },
3143 : { X86::YMM9, -2U },
3144 : { X86::YMM10, -2U },
3145 : { X86::YMM11, -2U },
3146 : { X86::YMM12, -2U },
3147 : { X86::YMM13, -2U },
3148 : { X86::YMM14, -2U },
3149 : { X86::YMM15, -2U },
3150 : { X86::YMM16, -2U },
3151 : { X86::YMM17, -2U },
3152 : { X86::YMM18, -2U },
3153 : { X86::YMM19, -2U },
3154 : { X86::YMM20, -2U },
3155 : { X86::YMM21, -2U },
3156 : { X86::YMM22, -2U },
3157 : { X86::YMM23, -2U },
3158 : { X86::YMM24, -2U },
3159 : { X86::YMM25, -2U },
3160 : { X86::YMM26, -2U },
3161 : { X86::YMM27, -2U },
3162 : { X86::YMM28, -2U },
3163 : { X86::YMM29, -2U },
3164 : { X86::YMM30, -2U },
3165 : { X86::YMM31, -2U },
3166 : { X86::ZMM0, 21U },
3167 : { X86::ZMM1, 22U },
3168 : { X86::ZMM2, 23U },
3169 : { X86::ZMM3, 24U },
3170 : { X86::ZMM4, 25U },
3171 : { X86::ZMM5, 26U },
3172 : { X86::ZMM6, 27U },
3173 : { X86::ZMM7, 28U },
3174 : { X86::ZMM8, -2U },
3175 : { X86::ZMM9, -2U },
3176 : { X86::ZMM10, -2U },
3177 : { X86::ZMM11, -2U },
3178 : { X86::ZMM12, -2U },
3179 : { X86::ZMM13, -2U },
3180 : { X86::ZMM14, -2U },
3181 : { X86::ZMM15, -2U },
3182 : { X86::ZMM16, -2U },
3183 : { X86::ZMM17, -2U },
3184 : { X86::ZMM18, -2U },
3185 : { X86::ZMM19, -2U },
3186 : { X86::ZMM20, -2U },
3187 : { X86::ZMM21, -2U },
3188 : { X86::ZMM22, -2U },
3189 : { X86::ZMM23, -2U },
3190 : { X86::ZMM24, -2U },
3191 : { X86::ZMM25, -2U },
3192 : { X86::ZMM26, -2U },
3193 : { X86::ZMM27, -2U },
3194 : { X86::ZMM28, -2U },
3195 : { X86::ZMM29, -2U },
3196 : { X86::ZMM30, -2U },
3197 : { X86::ZMM31, -2U },
3198 : };
3199 : extern const unsigned X86DwarfFlavour1L2DwarfSize = array_lengthof(X86DwarfFlavour1L2Dwarf);
3200 :
3201 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour2L2Dwarf[] = {
3202 : { X86::EAX, 0U },
3203 : { X86::EBP, 5U },
3204 : { X86::EBX, 3U },
3205 : { X86::ECX, 1U },
3206 : { X86::EDI, 7U },
3207 : { X86::EDX, 2U },
3208 : { X86::EIP, 8U },
3209 : { X86::ESI, 6U },
3210 : { X86::ESP, 4U },
3211 : { X86::RAX, -2U },
3212 : { X86::RBP, -2U },
3213 : { X86::RBX, -2U },
3214 : { X86::RCX, -2U },
3215 : { X86::RDI, -2U },
3216 : { X86::RDX, -2U },
3217 : { X86::RIP, -2U },
3218 : { X86::RSI, -2U },
3219 : { X86::RSP, -2U },
3220 : { X86::K0, 93U },
3221 : { X86::K1, 94U },
3222 : { X86::K2, 95U },
3223 : { X86::K3, 96U },
3224 : { X86::K4, 97U },
3225 : { X86::K5, 98U },
3226 : { X86::K6, 99U },
3227 : { X86::K7, 100U },
3228 : { X86::MM0, 29U },
3229 : { X86::MM1, 30U },
3230 : { X86::MM2, 31U },
3231 : { X86::MM3, 32U },
3232 : { X86::MM4, 33U },
3233 : { X86::MM5, 34U },
3234 : { X86::MM6, 35U },
3235 : { X86::MM7, 36U },
3236 : { X86::R8, -2U },
3237 : { X86::R9, -2U },
3238 : { X86::R10, -2U },
3239 : { X86::R11, -2U },
3240 : { X86::R12, -2U },
3241 : { X86::R13, -2U },
3242 : { X86::R14, -2U },
3243 : { X86::R15, -2U },
3244 : { X86::ST0, 11U },
3245 : { X86::ST1, 12U },
3246 : { X86::ST2, 13U },
3247 : { X86::ST3, 14U },
3248 : { X86::ST4, 15U },
3249 : { X86::ST5, 16U },
3250 : { X86::ST6, 17U },
3251 : { X86::ST7, 18U },
3252 : { X86::XMM0, 21U },
3253 : { X86::XMM1, 22U },
3254 : { X86::XMM2, 23U },
3255 : { X86::XMM3, 24U },
3256 : { X86::XMM4, 25U },
3257 : { X86::XMM5, 26U },
3258 : { X86::XMM6, 27U },
3259 : { X86::XMM7, 28U },
3260 : { X86::XMM8, -2U },
3261 : { X86::XMM9, -2U },
3262 : { X86::XMM10, -2U },
3263 : { X86::XMM11, -2U },
3264 : { X86::XMM12, -2U },
3265 : { X86::XMM13, -2U },
3266 : { X86::XMM14, -2U },
3267 : { X86::XMM15, -2U },
3268 : { X86::XMM16, -2U },
3269 : { X86::XMM17, -2U },
3270 : { X86::XMM18, -2U },
3271 : { X86::XMM19, -2U },
3272 : { X86::XMM20, -2U },
3273 : { X86::XMM21, -2U },
3274 : { X86::XMM22, -2U },
3275 : { X86::XMM23, -2U },
3276 : { X86::XMM24, -2U },
3277 : { X86::XMM25, -2U },
3278 : { X86::XMM26, -2U },
3279 : { X86::XMM27, -2U },
3280 : { X86::XMM28, -2U },
3281 : { X86::XMM29, -2U },
3282 : { X86::XMM30, -2U },
3283 : { X86::XMM31, -2U },
3284 : { X86::YMM0, 21U },
3285 : { X86::YMM1, 22U },
3286 : { X86::YMM2, 23U },
3287 : { X86::YMM3, 24U },
3288 : { X86::YMM4, 25U },
3289 : { X86::YMM5, 26U },
3290 : { X86::YMM6, 27U },
3291 : { X86::YMM7, 28U },
3292 : { X86::YMM8, -2U },
3293 : { X86::YMM9, -2U },
3294 : { X86::YMM10, -2U },
3295 : { X86::YMM11, -2U },
3296 : { X86::YMM12, -2U },
3297 : { X86::YMM13, -2U },
3298 : { X86::YMM14, -2U },
3299 : { X86::YMM15, -2U },
3300 : { X86::YMM16, -2U },
3301 : { X86::YMM17, -2U },
3302 : { X86::YMM18, -2U },
3303 : { X86::YMM19, -2U },
3304 : { X86::YMM20, -2U },
3305 : { X86::YMM21, -2U },
3306 : { X86::YMM22, -2U },
3307 : { X86::YMM23, -2U },
3308 : { X86::YMM24, -2U },
3309 : { X86::YMM25, -2U },
3310 : { X86::YMM26, -2U },
3311 : { X86::YMM27, -2U },
3312 : { X86::YMM28, -2U },
3313 : { X86::YMM29, -2U },
3314 : { X86::YMM30, -2U },
3315 : { X86::YMM31, -2U },
3316 : { X86::ZMM0, 21U },
3317 : { X86::ZMM1, 22U },
3318 : { X86::ZMM2, 23U },
3319 : { X86::ZMM3, 24U },
3320 : { X86::ZMM4, 25U },
3321 : { X86::ZMM5, 26U },
3322 : { X86::ZMM6, 27U },
3323 : { X86::ZMM7, 28U },
3324 : { X86::ZMM8, -2U },
3325 : { X86::ZMM9, -2U },
3326 : { X86::ZMM10, -2U },
3327 : { X86::ZMM11, -2U },
3328 : { X86::ZMM12, -2U },
3329 : { X86::ZMM13, -2U },
3330 : { X86::ZMM14, -2U },
3331 : { X86::ZMM15, -2U },
3332 : { X86::ZMM16, -2U },
3333 : { X86::ZMM17, -2U },
3334 : { X86::ZMM18, -2U },
3335 : { X86::ZMM19, -2U },
3336 : { X86::ZMM20, -2U },
3337 : { X86::ZMM21, -2U },
3338 : { X86::ZMM22, -2U },
3339 : { X86::ZMM23, -2U },
3340 : { X86::ZMM24, -2U },
3341 : { X86::ZMM25, -2U },
3342 : { X86::ZMM26, -2U },
3343 : { X86::ZMM27, -2U },
3344 : { X86::ZMM28, -2U },
3345 : { X86::ZMM29, -2U },
3346 : { X86::ZMM30, -2U },
3347 : { X86::ZMM31, -2U },
3348 : };
3349 : extern const unsigned X86DwarfFlavour2L2DwarfSize = array_lengthof(X86DwarfFlavour2L2Dwarf);
3350 :
3351 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour0L2Dwarf[] = {
3352 : { X86::EAX, -2U },
3353 : { X86::EBP, -2U },
3354 : { X86::EBX, -2U },
3355 : { X86::ECX, -2U },
3356 : { X86::EDI, -2U },
3357 : { X86::EDX, -2U },
3358 : { X86::EIP, -2U },
3359 : { X86::ESI, -2U },
3360 : { X86::ESP, -2U },
3361 : { X86::RAX, 0U },
3362 : { X86::RBP, 6U },
3363 : { X86::RBX, 3U },
3364 : { X86::RCX, 2U },
3365 : { X86::RDI, 5U },
3366 : { X86::RDX, 1U },
3367 : { X86::RIP, 16U },
3368 : { X86::RSI, 4U },
3369 : { X86::RSP, 7U },
3370 : { X86::K0, 118U },
3371 : { X86::K1, 119U },
3372 : { X86::K2, 120U },
3373 : { X86::K3, 121U },
3374 : { X86::K4, 122U },
3375 : { X86::K5, 123U },
3376 : { X86::K6, 124U },
3377 : { X86::K7, 125U },
3378 : { X86::MM0, 41U },
3379 : { X86::MM1, 42U },
3380 : { X86::MM2, 43U },
3381 : { X86::MM3, 44U },
3382 : { X86::MM4, 45U },
3383 : { X86::MM5, 46U },
3384 : { X86::MM6, 47U },
3385 : { X86::MM7, 48U },
3386 : { X86::R8, 8U },
3387 : { X86::R9, 9U },
3388 : { X86::R10, 10U },
3389 : { X86::R11, 11U },
3390 : { X86::R12, 12U },
3391 : { X86::R13, 13U },
3392 : { X86::R14, 14U },
3393 : { X86::R15, 15U },
3394 : { X86::ST0, 33U },
3395 : { X86::ST1, 34U },
3396 : { X86::ST2, 35U },
3397 : { X86::ST3, 36U },
3398 : { X86::ST4, 37U },
3399 : { X86::ST5, 38U },
3400 : { X86::ST6, 39U },
3401 : { X86::ST7, 40U },
3402 : { X86::XMM0, 17U },
3403 : { X86::XMM1, 18U },
3404 : { X86::XMM2, 19U },
3405 : { X86::XMM3, 20U },
3406 : { X86::XMM4, 21U },
3407 : { X86::XMM5, 22U },
3408 : { X86::XMM6, 23U },
3409 : { X86::XMM7, 24U },
3410 : { X86::XMM8, 25U },
3411 : { X86::XMM9, 26U },
3412 : { X86::XMM10, 27U },
3413 : { X86::XMM11, 28U },
3414 : { X86::XMM12, 29U },
3415 : { X86::XMM13, 30U },
3416 : { X86::XMM14, 31U },
3417 : { X86::XMM15, 32U },
3418 : { X86::XMM16, 67U },
3419 : { X86::XMM17, 68U },
3420 : { X86::XMM18, 69U },
3421 : { X86::XMM19, 70U },
3422 : { X86::XMM20, 71U },
3423 : { X86::XMM21, 72U },
3424 : { X86::XMM22, 73U },
3425 : { X86::XMM23, 74U },
3426 : { X86::XMM24, 75U },
3427 : { X86::XMM25, 76U },
3428 : { X86::XMM26, 77U },
3429 : { X86::XMM27, 78U },
3430 : { X86::XMM28, 79U },
3431 : { X86::XMM29, 80U },
3432 : { X86::XMM30, 81U },
3433 : { X86::XMM31, 82U },
3434 : { X86::YMM0, 17U },
3435 : { X86::YMM1, 18U },
3436 : { X86::YMM2, 19U },
3437 : { X86::YMM3, 20U },
3438 : { X86::YMM4, 21U },
3439 : { X86::YMM5, 22U },
3440 : { X86::YMM6, 23U },
3441 : { X86::YMM7, 24U },
3442 : { X86::YMM8, 25U },
3443 : { X86::YMM9, 26U },
3444 : { X86::YMM10, 27U },
3445 : { X86::YMM11, 28U },
3446 : { X86::YMM12, 29U },
3447 : { X86::YMM13, 30U },
3448 : { X86::YMM14, 31U },
3449 : { X86::YMM15, 32U },
3450 : { X86::YMM16, 67U },
3451 : { X86::YMM17, 68U },
3452 : { X86::YMM18, 69U },
3453 : { X86::YMM19, 70U },
3454 : { X86::YMM20, 71U },
3455 : { X86::YMM21, 72U },
3456 : { X86::YMM22, 73U },
3457 : { X86::YMM23, 74U },
3458 : { X86::YMM24, 75U },
3459 : { X86::YMM25, 76U },
3460 : { X86::YMM26, 77U },
3461 : { X86::YMM27, 78U },
3462 : { X86::YMM28, 79U },
3463 : { X86::YMM29, 80U },
3464 : { X86::YMM30, 81U },
3465 : { X86::YMM31, 82U },
3466 : { X86::ZMM0, 17U },
3467 : { X86::ZMM1, 18U },
3468 : { X86::ZMM2, 19U },
3469 : { X86::ZMM3, 20U },
3470 : { X86::ZMM4, 21U },
3471 : { X86::ZMM5, 22U },
3472 : { X86::ZMM6, 23U },
3473 : { X86::ZMM7, 24U },
3474 : { X86::ZMM8, 25U },
3475 : { X86::ZMM9, 26U },
3476 : { X86::ZMM10, 27U },
3477 : { X86::ZMM11, 28U },
3478 : { X86::ZMM12, 29U },
3479 : { X86::ZMM13, 30U },
3480 : { X86::ZMM14, 31U },
3481 : { X86::ZMM15, 32U },
3482 : { X86::ZMM16, 67U },
3483 : { X86::ZMM17, 68U },
3484 : { X86::ZMM18, 69U },
3485 : { X86::ZMM19, 70U },
3486 : { X86::ZMM20, 71U },
3487 : { X86::ZMM21, 72U },
3488 : { X86::ZMM22, 73U },
3489 : { X86::ZMM23, 74U },
3490 : { X86::ZMM24, 75U },
3491 : { X86::ZMM25, 76U },
3492 : { X86::ZMM26, 77U },
3493 : { X86::ZMM27, 78U },
3494 : { X86::ZMM28, 79U },
3495 : { X86::ZMM29, 80U },
3496 : { X86::ZMM30, 81U },
3497 : { X86::ZMM31, 82U },
3498 : };
3499 : extern const unsigned X86EHFlavour0L2DwarfSize = array_lengthof(X86EHFlavour0L2Dwarf);
3500 :
3501 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour1L2Dwarf[] = {
3502 : { X86::EAX, 0U },
3503 : { X86::EBP, 4U },
3504 : { X86::EBX, 3U },
3505 : { X86::ECX, 1U },
3506 : { X86::EDI, 7U },
3507 : { X86::EDX, 2U },
3508 : { X86::EIP, 8U },
3509 : { X86::ESI, 6U },
3510 : { X86::ESP, 5U },
3511 : { X86::RAX, -2U },
3512 : { X86::RBP, -2U },
3513 : { X86::RBX, -2U },
3514 : { X86::RCX, -2U },
3515 : { X86::RDI, -2U },
3516 : { X86::RDX, -2U },
3517 : { X86::RIP, -2U },
3518 : { X86::RSI, -2U },
3519 : { X86::RSP, -2U },
3520 : { X86::K0, 93U },
3521 : { X86::K1, 94U },
3522 : { X86::K2, 95U },
3523 : { X86::K3, 96U },
3524 : { X86::K4, 97U },
3525 : { X86::K5, 98U },
3526 : { X86::K6, 99U },
3527 : { X86::K7, 100U },
3528 : { X86::MM0, 29U },
3529 : { X86::MM1, 30U },
3530 : { X86::MM2, 31U },
3531 : { X86::MM3, 32U },
3532 : { X86::MM4, 33U },
3533 : { X86::MM5, 34U },
3534 : { X86::MM6, 35U },
3535 : { X86::MM7, 36U },
3536 : { X86::R8, -2U },
3537 : { X86::R9, -2U },
3538 : { X86::R10, -2U },
3539 : { X86::R11, -2U },
3540 : { X86::R12, -2U },
3541 : { X86::R13, -2U },
3542 : { X86::R14, -2U },
3543 : { X86::R15, -2U },
3544 : { X86::ST0, 12U },
3545 : { X86::ST1, 13U },
3546 : { X86::ST2, 14U },
3547 : { X86::ST3, 15U },
3548 : { X86::ST4, 16U },
3549 : { X86::ST5, 17U },
3550 : { X86::ST6, 18U },
3551 : { X86::ST7, 19U },
3552 : { X86::XMM0, 21U },
3553 : { X86::XMM1, 22U },
3554 : { X86::XMM2, 23U },
3555 : { X86::XMM3, 24U },
3556 : { X86::XMM4, 25U },
3557 : { X86::XMM5, 26U },
3558 : { X86::XMM6, 27U },
3559 : { X86::XMM7, 28U },
3560 : { X86::XMM8, -2U },
3561 : { X86::XMM9, -2U },
3562 : { X86::XMM10, -2U },
3563 : { X86::XMM11, -2U },
3564 : { X86::XMM12, -2U },
3565 : { X86::XMM13, -2U },
3566 : { X86::XMM14, -2U },
3567 : { X86::XMM15, -2U },
3568 : { X86::XMM16, -2U },
3569 : { X86::XMM17, -2U },
3570 : { X86::XMM18, -2U },
3571 : { X86::XMM19, -2U },
3572 : { X86::XMM20, -2U },
3573 : { X86::XMM21, -2U },
3574 : { X86::XMM22, -2U },
3575 : { X86::XMM23, -2U },
3576 : { X86::XMM24, -2U },
3577 : { X86::XMM25, -2U },
3578 : { X86::XMM26, -2U },
3579 : { X86::XMM27, -2U },
3580 : { X86::XMM28, -2U },
3581 : { X86::XMM29, -2U },
3582 : { X86::XMM30, -2U },
3583 : { X86::XMM31, -2U },
3584 : { X86::YMM0, 21U },
3585 : { X86::YMM1, 22U },
3586 : { X86::YMM2, 23U },
3587 : { X86::YMM3, 24U },
3588 : { X86::YMM4, 25U },
3589 : { X86::YMM5, 26U },
3590 : { X86::YMM6, 27U },
3591 : { X86::YMM7, 28U },
3592 : { X86::YMM8, -2U },
3593 : { X86::YMM9, -2U },
3594 : { X86::YMM10, -2U },
3595 : { X86::YMM11, -2U },
3596 : { X86::YMM12, -2U },
3597 : { X86::YMM13, -2U },
3598 : { X86::YMM14, -2U },
3599 : { X86::YMM15, -2U },
3600 : { X86::YMM16, -2U },
3601 : { X86::YMM17, -2U },
3602 : { X86::YMM18, -2U },
3603 : { X86::YMM19, -2U },
3604 : { X86::YMM20, -2U },
3605 : { X86::YMM21, -2U },
3606 : { X86::YMM22, -2U },
3607 : { X86::YMM23, -2U },
3608 : { X86::YMM24, -2U },
3609 : { X86::YMM25, -2U },
3610 : { X86::YMM26, -2U },
3611 : { X86::YMM27, -2U },
3612 : { X86::YMM28, -2U },
3613 : { X86::YMM29, -2U },
3614 : { X86::YMM30, -2U },
3615 : { X86::YMM31, -2U },
3616 : { X86::ZMM0, 21U },
3617 : { X86::ZMM1, 22U },
3618 : { X86::ZMM2, 23U },
3619 : { X86::ZMM3, 24U },
3620 : { X86::ZMM4, 25U },
3621 : { X86::ZMM5, 26U },
3622 : { X86::ZMM6, 27U },
3623 : { X86::ZMM7, 28U },
3624 : { X86::ZMM8, -2U },
3625 : { X86::ZMM9, -2U },
3626 : { X86::ZMM10, -2U },
3627 : { X86::ZMM11, -2U },
3628 : { X86::ZMM12, -2U },
3629 : { X86::ZMM13, -2U },
3630 : { X86::ZMM14, -2U },
3631 : { X86::ZMM15, -2U },
3632 : { X86::ZMM16, -2U },
3633 : { X86::ZMM17, -2U },
3634 : { X86::ZMM18, -2U },
3635 : { X86::ZMM19, -2U },
3636 : { X86::ZMM20, -2U },
3637 : { X86::ZMM21, -2U },
3638 : { X86::ZMM22, -2U },
3639 : { X86::ZMM23, -2U },
3640 : { X86::ZMM24, -2U },
3641 : { X86::ZMM25, -2U },
3642 : { X86::ZMM26, -2U },
3643 : { X86::ZMM27, -2U },
3644 : { X86::ZMM28, -2U },
3645 : { X86::ZMM29, -2U },
3646 : { X86::ZMM30, -2U },
3647 : { X86::ZMM31, -2U },
3648 : };
3649 : extern const unsigned X86EHFlavour1L2DwarfSize = array_lengthof(X86EHFlavour1L2Dwarf);
3650 :
3651 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour2L2Dwarf[] = {
3652 : { X86::EAX, 0U },
3653 : { X86::EBP, 5U },
3654 : { X86::EBX, 3U },
3655 : { X86::ECX, 1U },
3656 : { X86::EDI, 7U },
3657 : { X86::EDX, 2U },
3658 : { X86::EIP, 8U },
3659 : { X86::ESI, 6U },
3660 : { X86::ESP, 4U },
3661 : { X86::RAX, -2U },
3662 : { X86::RBP, -2U },
3663 : { X86::RBX, -2U },
3664 : { X86::RCX, -2U },
3665 : { X86::RDI, -2U },
3666 : { X86::RDX, -2U },
3667 : { X86::RIP, -2U },
3668 : { X86::RSI, -2U },
3669 : { X86::RSP, -2U },
3670 : { X86::K0, 93U },
3671 : { X86::K1, 94U },
3672 : { X86::K2, 95U },
3673 : { X86::K3, 96U },
3674 : { X86::K4, 97U },
3675 : { X86::K5, 98U },
3676 : { X86::K6, 99U },
3677 : { X86::K7, 100U },
3678 : { X86::MM0, 29U },
3679 : { X86::MM1, 30U },
3680 : { X86::MM2, 31U },
3681 : { X86::MM3, 32U },
3682 : { X86::MM4, 33U },
3683 : { X86::MM5, 34U },
3684 : { X86::MM6, 35U },
3685 : { X86::MM7, 36U },
3686 : { X86::R8, -2U },
3687 : { X86::R9, -2U },
3688 : { X86::R10, -2U },
3689 : { X86::R11, -2U },
3690 : { X86::R12, -2U },
3691 : { X86::R13, -2U },
3692 : { X86::R14, -2U },
3693 : { X86::R15, -2U },
3694 : { X86::ST0, 11U },
3695 : { X86::ST1, 12U },
3696 : { X86::ST2, 13U },
3697 : { X86::ST3, 14U },
3698 : { X86::ST4, 15U },
3699 : { X86::ST5, 16U },
3700 : { X86::ST6, 17U },
3701 : { X86::ST7, 18U },
3702 : { X86::XMM0, 21U },
3703 : { X86::XMM1, 22U },
3704 : { X86::XMM2, 23U },
3705 : { X86::XMM3, 24U },
3706 : { X86::XMM4, 25U },
3707 : { X86::XMM5, 26U },
3708 : { X86::XMM6, 27U },
3709 : { X86::XMM7, 28U },
3710 : { X86::XMM8, -2U },
3711 : { X86::XMM9, -2U },
3712 : { X86::XMM10, -2U },
3713 : { X86::XMM11, -2U },
3714 : { X86::XMM12, -2U },
3715 : { X86::XMM13, -2U },
3716 : { X86::XMM14, -2U },
3717 : { X86::XMM15, -2U },
3718 : { X86::XMM16, -2U },
3719 : { X86::XMM17, -2U },
3720 : { X86::XMM18, -2U },
3721 : { X86::XMM19, -2U },
3722 : { X86::XMM20, -2U },
3723 : { X86::XMM21, -2U },
3724 : { X86::XMM22, -2U },
3725 : { X86::XMM23, -2U },
3726 : { X86::XMM24, -2U },
3727 : { X86::XMM25, -2U },
3728 : { X86::XMM26, -2U },
3729 : { X86::XMM27, -2U },
3730 : { X86::XMM28, -2U },
3731 : { X86::XMM29, -2U },
3732 : { X86::XMM30, -2U },
3733 : { X86::XMM31, -2U },
3734 : { X86::YMM0, 21U },
3735 : { X86::YMM1, 22U },
3736 : { X86::YMM2, 23U },
3737 : { X86::YMM3, 24U },
3738 : { X86::YMM4, 25U },
3739 : { X86::YMM5, 26U },
3740 : { X86::YMM6, 27U },
3741 : { X86::YMM7, 28U },
3742 : { X86::YMM8, -2U },
3743 : { X86::YMM9, -2U },
3744 : { X86::YMM10, -2U },
3745 : { X86::YMM11, -2U },
3746 : { X86::YMM12, -2U },
3747 : { X86::YMM13, -2U },
3748 : { X86::YMM14, -2U },
3749 : { X86::YMM15, -2U },
3750 : { X86::YMM16, -2U },
3751 : { X86::YMM17, -2U },
3752 : { X86::YMM18, -2U },
3753 : { X86::YMM19, -2U },
3754 : { X86::YMM20, -2U },
3755 : { X86::YMM21, -2U },
3756 : { X86::YMM22, -2U },
3757 : { X86::YMM23, -2U },
3758 : { X86::YMM24, -2U },
3759 : { X86::YMM25, -2U },
3760 : { X86::YMM26, -2U },
3761 : { X86::YMM27, -2U },
3762 : { X86::YMM28, -2U },
3763 : { X86::YMM29, -2U },
3764 : { X86::YMM30, -2U },
3765 : { X86::YMM31, -2U },
3766 : { X86::ZMM0, 21U },
3767 : { X86::ZMM1, 22U },
3768 : { X86::ZMM2, 23U },
3769 : { X86::ZMM3, 24U },
3770 : { X86::ZMM4, 25U },
3771 : { X86::ZMM5, 26U },
3772 : { X86::ZMM6, 27U },
3773 : { X86::ZMM7, 28U },
3774 : { X86::ZMM8, -2U },
3775 : { X86::ZMM9, -2U },
3776 : { X86::ZMM10, -2U },
3777 : { X86::ZMM11, -2U },
3778 : { X86::ZMM12, -2U },
3779 : { X86::ZMM13, -2U },
3780 : { X86::ZMM14, -2U },
3781 : { X86::ZMM15, -2U },
3782 : { X86::ZMM16, -2U },
3783 : { X86::ZMM17, -2U },
3784 : { X86::ZMM18, -2U },
3785 : { X86::ZMM19, -2U },
3786 : { X86::ZMM20, -2U },
3787 : { X86::ZMM21, -2U },
3788 : { X86::ZMM22, -2U },
3789 : { X86::ZMM23, -2U },
3790 : { X86::ZMM24, -2U },
3791 : { X86::ZMM25, -2U },
3792 : { X86::ZMM26, -2U },
3793 : { X86::ZMM27, -2U },
3794 : { X86::ZMM28, -2U },
3795 : { X86::ZMM29, -2U },
3796 : { X86::ZMM30, -2U },
3797 : { X86::ZMM31, -2U },
3798 : };
3799 : extern const unsigned X86EHFlavour2L2DwarfSize = array_lengthof(X86EHFlavour2L2Dwarf);
3800 :
3801 : extern const uint16_t X86RegEncodingTable[] = {
3802 : 0,
3803 : 4,
3804 : 0,
3805 : 0,
3806 : 7,
3807 : 3,
3808 : 5,
3809 : 65535,
3810 : 5,
3811 : 3,
3812 : 5,
3813 : 1,
3814 : 1,
3815 : 1,
3816 : 0,
3817 : 6,
3818 : 7,
3819 : 65535,
3820 : 7,
3821 : 2,
3822 : 3,
3823 : 2,
3824 : 0,
3825 : 5,
3826 : 3,
3827 : 1,
3828 : 7,
3829 : 2,
3830 : 0,
3831 : 0,
3832 : 4,
3833 : 0,
3834 : 6,
3835 : 4,
3836 : 0,
3837 : 4,
3838 : 5,
3839 : 65535,
3840 : 65535,
3841 : 65535,
3842 : 65535,
3843 : 65535,
3844 : 65535,
3845 : 65535,
3846 : 65535,
3847 : 65535,
3848 : 0,
3849 : 0,
3850 : 5,
3851 : 3,
3852 : 1,
3853 : 7,
3854 : 2,
3855 : 0,
3856 : 4,
3857 : 6,
3858 : 4,
3859 : 6,
3860 : 65535,
3861 : 6,
3862 : 4,
3863 : 65535,
3864 : 4,
3865 : 2,
3866 : 0,
3867 : 0,
3868 : 1,
3869 : 2,
3870 : 3,
3871 : 0,
3872 : 1,
3873 : 2,
3874 : 3,
3875 : 4,
3876 : 5,
3877 : 6,
3878 : 7,
3879 : 8,
3880 : 9,
3881 : 10,
3882 : 11,
3883 : 12,
3884 : 13,
3885 : 14,
3886 : 15,
3887 : 0,
3888 : 1,
3889 : 2,
3890 : 3,
3891 : 4,
3892 : 5,
3893 : 6,
3894 : 7,
3895 : 8,
3896 : 9,
3897 : 10,
3898 : 11,
3899 : 12,
3900 : 13,
3901 : 14,
3902 : 15,
3903 : 0,
3904 : 0,
3905 : 0,
3906 : 0,
3907 : 0,
3908 : 0,
3909 : 0,
3910 : 0,
3911 : 0,
3912 : 1,
3913 : 2,
3914 : 3,
3915 : 4,
3916 : 5,
3917 : 6,
3918 : 7,
3919 : 0,
3920 : 1,
3921 : 2,
3922 : 3,
3923 : 4,
3924 : 5,
3925 : 6,
3926 : 7,
3927 : 8,
3928 : 9,
3929 : 10,
3930 : 11,
3931 : 12,
3932 : 13,
3933 : 14,
3934 : 15,
3935 : 0,
3936 : 1,
3937 : 2,
3938 : 3,
3939 : 4,
3940 : 5,
3941 : 6,
3942 : 7,
3943 : 0,
3944 : 1,
3945 : 2,
3946 : 3,
3947 : 4,
3948 : 5,
3949 : 6,
3950 : 7,
3951 : 8,
3952 : 9,
3953 : 10,
3954 : 11,
3955 : 12,
3956 : 13,
3957 : 14,
3958 : 15,
3959 : 16,
3960 : 17,
3961 : 18,
3962 : 19,
3963 : 20,
3964 : 21,
3965 : 22,
3966 : 23,
3967 : 24,
3968 : 25,
3969 : 26,
3970 : 27,
3971 : 28,
3972 : 29,
3973 : 30,
3974 : 31,
3975 : 0,
3976 : 1,
3977 : 2,
3978 : 3,
3979 : 4,
3980 : 5,
3981 : 6,
3982 : 7,
3983 : 8,
3984 : 9,
3985 : 10,
3986 : 11,
3987 : 12,
3988 : 13,
3989 : 14,
3990 : 15,
3991 : 16,
3992 : 17,
3993 : 18,
3994 : 19,
3995 : 20,
3996 : 21,
3997 : 22,
3998 : 23,
3999 : 24,
4000 : 25,
4001 : 26,
4002 : 27,
4003 : 28,
4004 : 29,
4005 : 30,
4006 : 31,
4007 : 0,
4008 : 1,
4009 : 2,
4010 : 3,
4011 : 4,
4012 : 5,
4013 : 6,
4014 : 7,
4015 : 8,
4016 : 9,
4017 : 10,
4018 : 11,
4019 : 12,
4020 : 13,
4021 : 14,
4022 : 15,
4023 : 16,
4024 : 17,
4025 : 18,
4026 : 19,
4027 : 20,
4028 : 21,
4029 : 22,
4030 : 23,
4031 : 24,
4032 : 25,
4033 : 26,
4034 : 27,
4035 : 28,
4036 : 29,
4037 : 30,
4038 : 31,
4039 : 8,
4040 : 9,
4041 : 10,
4042 : 11,
4043 : 12,
4044 : 13,
4045 : 14,
4046 : 15,
4047 : 65535,
4048 : 65535,
4049 : 65535,
4050 : 65535,
4051 : 65535,
4052 : 65535,
4053 : 65535,
4054 : 65535,
4055 : 8,
4056 : 9,
4057 : 10,
4058 : 11,
4059 : 12,
4060 : 13,
4061 : 14,
4062 : 15,
4063 : 8,
4064 : 9,
4065 : 10,
4066 : 11,
4067 : 12,
4068 : 13,
4069 : 14,
4070 : 15,
4071 : 65535,
4072 : 65535,
4073 : 65535,
4074 : 65535,
4075 : 65535,
4076 : 65535,
4077 : 65535,
4078 : 65535,
4079 : };
4080 28625 : static inline void InitX86MCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
4081 : RI->InitMCRegisterInfo(X86RegDesc, 277, RA, PC, X86MCRegisterClasses, 109, X86RegUnitRoots, 162, X86RegDiffLists, X86LaneMaskLists, X86RegStrings, X86RegClassStrings, X86SubRegIdxLists, 9,
4082 : X86SubRegIdxRanges, X86RegEncodingTable);
4083 :
4084 28625 : switch (DwarfFlavour) {
4085 0 : default:
4086 0 : llvm_unreachable("Unknown DWARF flavour");
4087 : case 0:
4088 : RI->mapDwarfRegsToLLVMRegs(X86DwarfFlavour0Dwarf2L, X86DwarfFlavour0Dwarf2LSize, false);
4089 : break;
4090 : case 1:
4091 : RI->mapDwarfRegsToLLVMRegs(X86DwarfFlavour1Dwarf2L, X86DwarfFlavour1Dwarf2LSize, false);
4092 : break;
4093 : case 2:
4094 : RI->mapDwarfRegsToLLVMRegs(X86DwarfFlavour2Dwarf2L, X86DwarfFlavour2Dwarf2LSize, false);
4095 : break;
4096 : }
4097 28625 : switch (EHFlavour) {
4098 0 : default:
4099 0 : llvm_unreachable("Unknown DWARF flavour");
4100 : case 0:
4101 : RI->mapDwarfRegsToLLVMRegs(X86EHFlavour0Dwarf2L, X86EHFlavour0Dwarf2LSize, true);
4102 : break;
4103 : case 1:
4104 : RI->mapDwarfRegsToLLVMRegs(X86EHFlavour1Dwarf2L, X86EHFlavour1Dwarf2LSize, true);
4105 : break;
4106 : case 2:
4107 : RI->mapDwarfRegsToLLVMRegs(X86EHFlavour2Dwarf2L, X86EHFlavour2Dwarf2LSize, true);
4108 : break;
4109 : }
4110 28625 : switch (DwarfFlavour) {
4111 0 : default:
4112 0 : llvm_unreachable("Unknown DWARF flavour");
4113 : case 0:
4114 : RI->mapLLVMRegsToDwarfRegs(X86DwarfFlavour0L2Dwarf, X86DwarfFlavour0L2DwarfSize, false);
4115 : break;
4116 : case 1:
4117 : RI->mapLLVMRegsToDwarfRegs(X86DwarfFlavour1L2Dwarf, X86DwarfFlavour1L2DwarfSize, false);
4118 : break;
4119 : case 2:
4120 : RI->mapLLVMRegsToDwarfRegs(X86DwarfFlavour2L2Dwarf, X86DwarfFlavour2L2DwarfSize, false);
4121 : break;
4122 : }
4123 28625 : switch (EHFlavour) {
4124 0 : default:
4125 0 : llvm_unreachable("Unknown DWARF flavour");
4126 : case 0:
4127 : RI->mapLLVMRegsToDwarfRegs(X86EHFlavour0L2Dwarf, X86EHFlavour0L2DwarfSize, true);
4128 : break;
4129 : case 1:
4130 : RI->mapLLVMRegsToDwarfRegs(X86EHFlavour1L2Dwarf, X86EHFlavour1L2DwarfSize, true);
4131 : break;
4132 : case 2:
4133 : RI->mapLLVMRegsToDwarfRegs(X86EHFlavour2L2Dwarf, X86EHFlavour2L2DwarfSize, true);
4134 : break;
4135 : }
4136 28625 : }
4137 :
4138 : } // end namespace llvm
4139 :
4140 : #endif // GET_REGINFO_MC_DESC
4141 :
4142 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
4143 : |* *|
4144 : |* Register Information Header Fragment *|
4145 : |* *|
4146 : |* Automatically generated file, do not edit! *|
4147 : |* *|
4148 : \*===----------------------------------------------------------------------===*/
4149 :
4150 :
4151 : #ifdef GET_REGINFO_HEADER
4152 : #undef GET_REGINFO_HEADER
4153 :
4154 : #include "llvm/CodeGen/TargetRegisterInfo.h"
4155 :
4156 : namespace llvm {
4157 :
4158 : class X86FrameLowering;
4159 :
4160 : struct X86GenRegisterInfo : public TargetRegisterInfo {
4161 : explicit X86GenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
4162 : unsigned PC = 0, unsigned HwMode = 0);
4163 : unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override;
4164 : LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
4165 : LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
4166 : const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass*, unsigned) const override;
4167 : const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
4168 : unsigned getRegUnitWeight(unsigned RegUnit) const override;
4169 : unsigned getNumRegPressureSets() const override;
4170 : const char *getRegPressureSetName(unsigned Idx) const override;
4171 : unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
4172 : const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
4173 : const int *getRegUnitPressureSets(unsigned RegUnit) const override;
4174 : ArrayRef<const char *> getRegMaskNames() const override;
4175 : ArrayRef<const uint32_t *> getRegMasks() const override;
4176 : /// Devirtualized TargetFrameLowering.
4177 : static const X86FrameLowering *getFrameLowering(
4178 : const MachineFunction &MF);
4179 : };
4180 :
4181 : namespace X86 { // Register classes
4182 : extern const TargetRegisterClass GR8RegClass;
4183 : extern const TargetRegisterClass GRH8RegClass;
4184 : extern const TargetRegisterClass GR8_NOREXRegClass;
4185 : extern const TargetRegisterClass GR8_ABCD_HRegClass;
4186 : extern const TargetRegisterClass GR8_ABCD_LRegClass;
4187 : extern const TargetRegisterClass GRH16RegClass;
4188 : extern const TargetRegisterClass GR16RegClass;
4189 : extern const TargetRegisterClass GR16_NOREXRegClass;
4190 : extern const TargetRegisterClass VK1RegClass;
4191 : extern const TargetRegisterClass VK16RegClass;
4192 : extern const TargetRegisterClass VK2RegClass;
4193 : extern const TargetRegisterClass VK4RegClass;
4194 : extern const TargetRegisterClass VK8RegClass;
4195 : extern const TargetRegisterClass VK16WMRegClass;
4196 : extern const TargetRegisterClass VK1WMRegClass;
4197 : extern const TargetRegisterClass VK2WMRegClass;
4198 : extern const TargetRegisterClass VK4WMRegClass;
4199 : extern const TargetRegisterClass VK8WMRegClass;
4200 : extern const TargetRegisterClass SEGMENT_REGRegClass;
4201 : extern const TargetRegisterClass GR16_ABCDRegClass;
4202 : extern const TargetRegisterClass FPCCRRegClass;
4203 : extern const TargetRegisterClass FR32XRegClass;
4204 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBPRegClass;
4205 : extern const TargetRegisterClass LOW32_ADDR_ACCESSRegClass;
4206 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass;
4207 : extern const TargetRegisterClass DEBUG_REGRegClass;
4208 : extern const TargetRegisterClass FR32RegClass;
4209 : extern const TargetRegisterClass GR32RegClass;
4210 : extern const TargetRegisterClass GR32_NOSPRegClass;
4211 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass;
4212 : extern const TargetRegisterClass GR32_NOREXRegClass;
4213 : extern const TargetRegisterClass VK32RegClass;
4214 : extern const TargetRegisterClass GR32_NOREX_NOSPRegClass;
4215 : extern const TargetRegisterClass RFP32RegClass;
4216 : extern const TargetRegisterClass VK32WMRegClass;
4217 : extern const TargetRegisterClass GR32_ABCDRegClass;
4218 : extern const TargetRegisterClass GR32_TCRegClass;
4219 : extern const TargetRegisterClass GR32_ADRegClass;
4220 : extern const TargetRegisterClass GR32_BPSPRegClass;
4221 : extern const TargetRegisterClass GR32_BSIRegClass;
4222 : extern const TargetRegisterClass GR32_CBRegClass;
4223 : extern const TargetRegisterClass GR32_DCRegClass;
4224 : extern const TargetRegisterClass GR32_DIBPRegClass;
4225 : extern const TargetRegisterClass GR32_SIDIRegClass;
4226 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass;
4227 : extern const TargetRegisterClass CCRRegClass;
4228 : extern const TargetRegisterClass DFCCRRegClass;
4229 : extern const TargetRegisterClass GR32_ABCD_and_GR32_BSIRegClass;
4230 : extern const TargetRegisterClass GR32_AD_and_GR32_DCRegClass;
4231 : extern const TargetRegisterClass GR32_BPSP_and_GR32_DIBPRegClass;
4232 : extern const TargetRegisterClass GR32_BSI_and_GR32_SIDIRegClass;
4233 : extern const TargetRegisterClass GR32_CB_and_GR32_DCRegClass;
4234 : extern const TargetRegisterClass GR32_DIBP_and_GR32_SIDIRegClass;
4235 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClass;
4236 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_with_sub_32bitRegClass;
4237 : extern const TargetRegisterClass RFP64RegClass;
4238 : extern const TargetRegisterClass FR64XRegClass;
4239 : extern const TargetRegisterClass GR64RegClass;
4240 : extern const TargetRegisterClass CONTROL_REGRegClass;
4241 : extern const TargetRegisterClass FR64RegClass;
4242 : extern const TargetRegisterClass GR64_with_sub_8bitRegClass;
4243 : extern const TargetRegisterClass GR64_NOSPRegClass;
4244 : extern const TargetRegisterClass GR64_NOREXRegClass;
4245 : extern const TargetRegisterClass GR64_TCRegClass;
4246 : extern const TargetRegisterClass GR64_NOSP_and_GR64_TCRegClass;
4247 : extern const TargetRegisterClass GR64_TCW64RegClass;
4248 : extern const TargetRegisterClass GR64_with_sub_16bit_in_GR16_NOREXRegClass;
4249 : extern const TargetRegisterClass VK64RegClass;
4250 : extern const TargetRegisterClass VR64RegClass;
4251 : extern const TargetRegisterClass GR64_NOREX_NOSPRegClass;
4252 : extern const TargetRegisterClass GR64_NOSP_and_GR64_TCW64RegClass;
4253 : extern const TargetRegisterClass GR64_TC_and_GR64_TCW64RegClass;
4254 : extern const TargetRegisterClass VK64WMRegClass;
4255 : extern const TargetRegisterClass GR64_NOREX_and_GR64_TCRegClass;
4256 : extern const TargetRegisterClass GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass;
4257 : extern const TargetRegisterClass GR64_NOREX_NOSP_and_GR64_TCRegClass;
4258 : extern const TargetRegisterClass GR64_ABCDRegClass;
4259 : extern const TargetRegisterClass GR64_NOREX_and_GR64_TCW64RegClass;
4260 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_TCRegClass;
4261 : extern const TargetRegisterClass GR64_ADRegClass;
4262 : extern const TargetRegisterClass GR64_and_LOW32_ADDR_ACCESS_RBPRegClass;
4263 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSPRegClass;
4264 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BSIRegClass;
4265 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_CBRegClass;
4266 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DCRegClass;
4267 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DIBPRegClass;
4268 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_SIDIRegClass;
4269 : extern const TargetRegisterClass GR64_and_LOW32_ADDR_ACCESSRegClass;
4270 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClass;
4271 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClass;
4272 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClass;
4273 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClass;
4274 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClass;
4275 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClass;
4276 : extern const TargetRegisterClass RSTRegClass;
4277 : extern const TargetRegisterClass RFP80RegClass;
4278 : extern const TargetRegisterClass VR128XRegClass;
4279 : extern const TargetRegisterClass VR128RegClass;
4280 : extern const TargetRegisterClass VR128HRegClass;
4281 : extern const TargetRegisterClass VR128LRegClass;
4282 : extern const TargetRegisterClass BNDRRegClass;
4283 : extern const TargetRegisterClass VR256XRegClass;
4284 : extern const TargetRegisterClass VR256RegClass;
4285 : extern const TargetRegisterClass VR256HRegClass;
4286 : extern const TargetRegisterClass VR256LRegClass;
4287 : extern const TargetRegisterClass VR512RegClass;
4288 : extern const TargetRegisterClass VR512_with_sub_xmm_in_FR32RegClass;
4289 : extern const TargetRegisterClass VR512_with_sub_xmm_in_VR128HRegClass;
4290 : extern const TargetRegisterClass VR512_with_sub_xmm_in_VR128LRegClass;
4291 : } // end namespace X86
4292 :
4293 : } // end namespace llvm
4294 :
4295 : #endif // GET_REGINFO_HEADER
4296 :
4297 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
4298 : |* *|
4299 : |* Target Register and Register Classes Information *|
4300 : |* *|
4301 : |* Automatically generated file, do not edit! *|
4302 : |* *|
4303 : \*===----------------------------------------------------------------------===*/
4304 :
4305 :
4306 : #ifdef GET_REGINFO_TARGET_DESC
4307 : #undef GET_REGINFO_TARGET_DESC
4308 :
4309 : namespace llvm {
4310 :
4311 : extern const MCRegisterClass X86MCRegisterClasses[];
4312 :
4313 : static const MVT::SimpleValueType VTLists[] = {
4314 : /* 0 */ MVT::i8, MVT::Other,
4315 : /* 2 */ MVT::i16, MVT::Other,
4316 : /* 4 */ MVT::i32, MVT::Other,
4317 : /* 6 */ MVT::i64, MVT::Other,
4318 : /* 8 */ MVT::f80, MVT::f64, MVT::f32, MVT::Other,
4319 : /* 12 */ MVT::f64, MVT::Other,
4320 : /* 14 */ MVT::f80, MVT::Other,
4321 : /* 16 */ MVT::v4f32, MVT::v2f64, MVT::v16i8, MVT::v8i16, MVT::v4i32, MVT::v2i64, MVT::f128, MVT::Other,
4322 : /* 24 */ MVT::v1i1, MVT::Other,
4323 : /* 26 */ MVT::v2i1, MVT::Other,
4324 : /* 28 */ MVT::v4i1, MVT::Other,
4325 : /* 30 */ MVT::v8i1, MVT::Other,
4326 : /* 32 */ MVT::v16i1, MVT::Other,
4327 : /* 34 */ MVT::v32i1, MVT::Other,
4328 : /* 36 */ MVT::v64i1, MVT::Other,
4329 : /* 38 */ MVT::v2i64, MVT::Other,
4330 : /* 40 */ MVT::v8f32, MVT::v4f64, MVT::v32i8, MVT::v16i16, MVT::v8i32, MVT::v4i64, MVT::Other,
4331 : /* 47 */ MVT::v16f32, MVT::v8f64, MVT::v64i8, MVT::v32i16, MVT::v16i32, MVT::v8i64, MVT::Other,
4332 : /* 54 */ MVT::x86mmx, MVT::Other,
4333 : };
4334 :
4335 : static const char *const SubRegIndexNameTable[] = { "sub_8bit", "sub_8bit_hi", "sub_8bit_hi_phony", "sub_16bit", "sub_16bit_hi", "sub_32bit", "sub_xmm", "sub_ymm", "" };
4336 :
4337 :
4338 : static const LaneBitmask SubRegIndexLaneMaskTable[] = {
4339 : LaneBitmask::getAll(),
4340 : LaneBitmask(0x00000001), // sub_8bit
4341 : LaneBitmask(0x00000002), // sub_8bit_hi
4342 : LaneBitmask(0x00000004), // sub_8bit_hi_phony
4343 : LaneBitmask(0x00000007), // sub_16bit
4344 : LaneBitmask(0x00000008), // sub_16bit_hi
4345 : LaneBitmask(0x0000000F), // sub_32bit
4346 : LaneBitmask(0x00000010), // sub_xmm
4347 : LaneBitmask(0x00000010), // sub_ymm
4348 : };
4349 :
4350 :
4351 :
4352 : static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = {
4353 : // Mode = 0 (Default)
4354 : { 8, 8, 8, VTLists+0 }, // GR8
4355 : { 8, 8, 8, VTLists+0 }, // GRH8
4356 : { 8, 8, 8, VTLists+0 }, // GR8_NOREX
4357 : { 8, 8, 8, VTLists+0 }, // GR8_ABCD_H
4358 : { 8, 8, 8, VTLists+0 }, // GR8_ABCD_L
4359 : { 16, 16, 16, VTLists+2 }, // GRH16
4360 : { 16, 16, 16, VTLists+2 }, // GR16
4361 : { 16, 16, 16, VTLists+2 }, // GR16_NOREX
4362 : { 16, 16, 16, VTLists+24 }, // VK1
4363 : { 16, 16, 16, VTLists+32 }, // VK16
4364 : { 16, 16, 16, VTLists+26 }, // VK2
4365 : { 16, 16, 16, VTLists+28 }, // VK4
4366 : { 16, 16, 16, VTLists+30 }, // VK8
4367 : { 16, 16, 16, VTLists+32 }, // VK16WM
4368 : { 16, 16, 16, VTLists+24 }, // VK1WM
4369 : { 16, 16, 16, VTLists+26 }, // VK2WM
4370 : { 16, 16, 16, VTLists+28 }, // VK4WM
4371 : { 16, 16, 16, VTLists+30 }, // VK8WM
4372 : { 16, 16, 16, VTLists+2 }, // SEGMENT_REG
4373 : { 16, 16, 16, VTLists+2 }, // GR16_ABCD
4374 : { 16, 16, 16, VTLists+2 }, // FPCCR
4375 : { 32, 32, 32, VTLists+10 }, // FR32X
4376 : { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP
4377 : { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS
4378 : { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit
4379 : { 32, 32, 32, VTLists+4 }, // DEBUG_REG
4380 : { 32, 32, 32, VTLists+10 }, // FR32
4381 : { 32, 32, 32, VTLists+4 }, // GR32
4382 : { 32, 32, 32, VTLists+4 }, // GR32_NOSP
4383 : { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX
4384 : { 32, 32, 32, VTLists+4 }, // GR32_NOREX
4385 : { 32, 32, 32, VTLists+34 }, // VK32
4386 : { 32, 32, 32, VTLists+4 }, // GR32_NOREX_NOSP
4387 : { 32, 32, 32, VTLists+10 }, // RFP32
4388 : { 32, 32, 32, VTLists+34 }, // VK32WM
4389 : { 32, 32, 32, VTLists+4 }, // GR32_ABCD
4390 : { 32, 32, 32, VTLists+4 }, // GR32_TC
4391 : { 32, 32, 32, VTLists+4 }, // GR32_AD
4392 : { 32, 32, 32, VTLists+4 }, // GR32_BPSP
4393 : { 32, 32, 32, VTLists+4 }, // GR32_BSI
4394 : { 32, 32, 32, VTLists+4 }, // GR32_CB
4395 : { 32, 32, 32, VTLists+4 }, // GR32_DC
4396 : { 32, 32, 32, VTLists+4 }, // GR32_DIBP
4397 : { 32, 32, 32, VTLists+4 }, // GR32_SIDI
4398 : { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit
4399 : { 32, 32, 32, VTLists+4 }, // CCR
4400 : { 32, 32, 32, VTLists+4 }, // DFCCR
4401 : { 32, 32, 32, VTLists+4 }, // GR32_ABCD_and_GR32_BSI
4402 : { 32, 32, 32, VTLists+4 }, // GR32_AD_and_GR32_DC
4403 : { 32, 32, 32, VTLists+4 }, // GR32_BPSP_and_GR32_DIBP
4404 : { 32, 32, 32, VTLists+4 }, // GR32_BSI_and_GR32_SIDI
4405 : { 32, 32, 32, VTLists+4 }, // GR32_CB_and_GR32_DC
4406 : { 32, 32, 32, VTLists+4 }, // GR32_DIBP_and_GR32_SIDI
4407 : { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
4408 : { 32, 32, 32, VTLists+4 }, // LOW32_ADDR_ACCESS_with_sub_32bit
4409 : { 64, 64, 32, VTLists+12 }, // RFP64
4410 : { 64, 64, 64, VTLists+12 }, // FR64X
4411 : { 64, 64, 64, VTLists+6 }, // GR64
4412 : { 64, 64, 64, VTLists+6 }, // CONTROL_REG
4413 : { 64, 64, 64, VTLists+12 }, // FR64
4414 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_8bit
4415 : { 64, 64, 64, VTLists+6 }, // GR64_NOSP
4416 : { 64, 64, 64, VTLists+6 }, // GR64_NOREX
4417 : { 64, 64, 64, VTLists+6 }, // GR64_TC
4418 : { 64, 64, 64, VTLists+6 }, // GR64_NOSP_and_GR64_TC
4419 : { 64, 64, 64, VTLists+6 }, // GR64_TCW64
4420 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_16bit_in_GR16_NOREX
4421 : { 64, 64, 64, VTLists+36 }, // VK64
4422 : { 64, 64, 64, VTLists+54 }, // VR64
4423 : { 64, 64, 64, VTLists+6 }, // GR64_NOREX_NOSP
4424 : { 64, 64, 64, VTLists+6 }, // GR64_NOSP_and_GR64_TCW64
4425 : { 64, 64, 64, VTLists+6 }, // GR64_TC_and_GR64_TCW64
4426 : { 64, 64, 64, VTLists+36 }, // VK64WM
4427 : { 64, 64, 64, VTLists+6 }, // GR64_NOREX_and_GR64_TC
4428 : { 64, 64, 64, VTLists+6 }, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64
4429 : { 64, 64, 64, VTLists+6 }, // GR64_NOREX_NOSP_and_GR64_TC
4430 : { 64, 64, 64, VTLists+6 }, // GR64_ABCD
4431 : { 64, 64, 64, VTLists+6 }, // GR64_NOREX_and_GR64_TCW64
4432 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_TC
4433 : { 64, 64, 64, VTLists+6 }, // GR64_AD
4434 : { 64, 64, 64, VTLists+6 }, // GR64_and_LOW32_ADDR_ACCESS_RBP
4435 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BPSP
4436 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BSI
4437 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_CB
4438 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_DC
4439 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_DIBP
4440 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_SIDI
4441 : { 64, 64, 64, VTLists+6 }, // GR64_and_LOW32_ADDR_ACCESS
4442 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI
4443 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC
4444 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP
4445 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI
4446 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC
4447 : { 64, 64, 64, VTLists+6 }, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI
4448 : { 80, 80, 32, VTLists+8 }, // RST
4449 : { 80, 80, 32, VTLists+14 }, // RFP80
4450 : { 128, 128, 128, VTLists+16 }, // VR128X
4451 : { 128, 128, 128, VTLists+16 }, // VR128
4452 : { 128, 128, 128, VTLists+16 }, // VR128H
4453 : { 128, 128, 128, VTLists+16 }, // VR128L
4454 : { 128, 128, 128, VTLists+38 }, // BNDR
4455 : { 256, 256, 256, VTLists+40 }, // VR256X
4456 : { 256, 256, 256, VTLists+40 }, // VR256
4457 : { 256, 256, 256, VTLists+40 }, // VR256H
4458 : { 256, 256, 256, VTLists+40 }, // VR256L
4459 : { 512, 512, 512, VTLists+47 }, // VR512
4460 : { 512, 512, 512, VTLists+47 }, // VR512_with_sub_xmm_in_FR32
4461 : { 512, 512, 512, VTLists+47 }, // VR512_with_sub_xmm_in_VR128H
4462 : { 512, 512, 512, VTLists+47 }, // VR512_with_sub_xmm_in_VR128L
4463 : };
4464 :
4465 : static const TargetRegisterClass *const NullRegClasses[] = { nullptr };
4466 :
4467 : static const uint32_t GR8SubClassMask[] = {
4468 : 0x0000001d, 0x00000000, 0x00000000, 0x00000000,
4469 : 0x790800c0, 0x303f8ff9, 0x3f7edc65, 0x00000000, // sub_8bit
4470 : 0x00080000, 0x00098338, 0x1318d000, 0x00000000, // sub_8bit_hi
4471 : };
4472 :
4473 : static const uint32_t GRH8SubClassMask[] = {
4474 : 0x00000002, 0x00000000, 0x00000000, 0x00000000,
4475 : };
4476 :
4477 : static const uint32_t GR8_NOREXSubClassMask[] = {
4478 : 0x0000001c, 0x00000000, 0x00000000, 0x00000000,
4479 : 0x00080000, 0x00098338, 0x1318d000, 0x00000000, // sub_8bit
4480 : 0x00080000, 0x00098338, 0x1318d000, 0x00000000, // sub_8bit_hi
4481 : };
4482 :
4483 : static const uint32_t GR8_ABCD_HSubClassMask[] = {
4484 : 0x00000008, 0x00000000, 0x00000000, 0x00000000,
4485 : 0x00080000, 0x00098338, 0x1318d000, 0x00000000, // sub_8bit_hi
4486 : };
4487 :
4488 : static const uint32_t GR8_ABCD_LSubClassMask[] = {
4489 : 0x00000010, 0x00000000, 0x00000000, 0x00000000,
4490 : 0x00080000, 0x00098338, 0x1318d000, 0x00000000, // sub_8bit
4491 : };
4492 :
4493 : static const uint32_t GRH16SubClassMask[] = {
4494 : 0x00000020, 0x00000000, 0x00000000, 0x00000000,
4495 : };
4496 :
4497 : static const uint32_t GR16SubClassMask[] = {
4498 : 0x000800c0, 0x00000000, 0x00000000, 0x00000000,
4499 : 0x79000000, 0x303f8ff9, 0x3f7edc65, 0x00000000, // sub_16bit
4500 : };
4501 :
4502 : static const uint32_t GR16_NOREXSubClassMask[] = {
4503 : 0x00080080, 0x00000000, 0x00000000, 0x00000000,
4504 : 0x60000000, 0x003f8ff9, 0x3f7ed824, 0x00000000, // sub_16bit
4505 : };
4506 :
4507 : static const uint32_t VK1SubClassMask[] = {
4508 : 0x8003ff00, 0x00000004, 0x00000108, 0x00000000,
4509 : };
4510 :
4511 : static const uint32_t VK16SubClassMask[] = {
4512 : 0x8003ff00, 0x00000004, 0x00000108, 0x00000000,
4513 : };
4514 :
4515 : static const uint32_t VK2SubClassMask[] = {
4516 : 0x8003ff00, 0x00000004, 0x00000108, 0x00000000,
4517 : };
4518 :
4519 : static const uint32_t VK4SubClassMask[] = {
4520 : 0x8003ff00, 0x00000004, 0x00000108, 0x00000000,
4521 : };
4522 :
4523 : static const uint32_t VK8SubClassMask[] = {
4524 : 0x8003ff00, 0x00000004, 0x00000108, 0x00000000,
4525 : };
4526 :
4527 : static const uint32_t VK16WMSubClassMask[] = {
4528 : 0x0003e000, 0x00000004, 0x00000100, 0x00000000,
4529 : };
4530 :
4531 : static const uint32_t VK1WMSubClassMask[] = {
4532 : 0x0003e000, 0x00000004, 0x00000100, 0x00000000,
4533 : };
4534 :
4535 : static const uint32_t VK2WMSubClassMask[] = {
4536 : 0x0003e000, 0x00000004, 0x00000100, 0x00000000,
4537 : };
4538 :
4539 : static const uint32_t VK4WMSubClassMask[] = {
4540 : 0x0003e000, 0x00000004, 0x00000100, 0x00000000,
4541 : };
4542 :
4543 : static const uint32_t VK8WMSubClassMask[] = {
4544 : 0x0003e000, 0x00000004, 0x00000100, 0x00000000,
4545 : };
4546 :
4547 : static const uint32_t SEGMENT_REGSubClassMask[] = {
4548 : 0x00040000, 0x00000000, 0x00000000, 0x00000000,
4549 : };
4550 :
4551 : static const uint32_t GR16_ABCDSubClassMask[] = {
4552 : 0x00080000, 0x00000000, 0x00000000, 0x00000000,
4553 : 0x00000000, 0x00098338, 0x1318d000, 0x00000000, // sub_16bit
4554 : };
4555 :
4556 : static const uint32_t FPCCRSubClassMask[] = {
4557 : 0x00100000, 0x00000000, 0x00000000, 0x00000000,
4558 : };
4559 :
4560 : static const uint32_t FR32XSubClassMask[] = {
4561 : 0x04200000, 0x09000000, 0x00000000, 0x0000000f,
4562 : 0x00000000, 0x00000000, 0x00000000, 0x00001fe0, // sub_xmm
4563 : };
4564 :
4565 : static const uint32_t LOW32_ADDR_ACCESS_RBPSubClassMask[] = {
4566 : 0x79c00000, 0x007f9ff9, 0x04810000, 0x00000000,
4567 : 0x00000000, 0x30200000, 0x3f7edc65, 0x00000000, // sub_32bit
4568 : };
4569 :
4570 : static const uint32_t LOW32_ADDR_ACCESSSubClassMask[] = {
4571 : 0x58800000, 0x005f8ff9, 0x00800000, 0x00000000,
4572 : 0x00000000, 0x30200000, 0x3f7edc65, 0x00000000, // sub_32bit
4573 : };
4574 :
4575 : static const uint32_t LOW32_ADDR_ACCESS_RBP_with_sub_8bitSubClassMask[] = {
4576 : 0x79000000, 0x003f8ff9, 0x04000000, 0x00000000,
4577 : 0x00000000, 0x30200000, 0x3f7edc65, 0x00000000, // sub_32bit
4578 : };
4579 :
4580 : static const uint32_t DEBUG_REGSubClassMask[] = {
4581 : 0x02000000, 0x00000000, 0x00000000, 0x00000000,
4582 : };
4583 :
4584 : static const uint32_t FR32SubClassMask[] = {
4585 : 0x04000000, 0x08000000, 0x00000000, 0x0000000e,
4586 : 0x00000000, 0x00000000, 0x00000000, 0x00001dc0, // sub_xmm
4587 : };
4588 :
4589 : static const uint32_t GR32SubClassMask[] = {
4590 : 0x58000000, 0x001f8ff9, 0x00000000, 0x00000000,
4591 : 0x00000000, 0x30200000, 0x3f7edc65, 0x00000000, // sub_32bit
4592 : };
4593 :
4594 : static const uint32_t GR32_NOSPSubClassMask[] = {
4595 : 0x10000000, 0x001f8fb9, 0x00000000, 0x00000000,
4596 : 0x00000000, 0x20200000, 0x3f7cdc61, 0x00000000, // sub_32bit
4597 : };
4598 :
4599 : static const uint32_t LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXSubClassMask[] = {
4600 : 0x60000000, 0x003f8ff9, 0x04000000, 0x00000000,
4601 : 0x00000000, 0x00200000, 0x3f7ed824, 0x00000000, // sub_32bit
4602 : };
4603 :
4604 : static const uint32_t GR32_NOREXSubClassMask[] = {
4605 : 0x40000000, 0x001f8ff9, 0x00000000, 0x00000000,
4606 : 0x00000000, 0x00200000, 0x3f7ed824, 0x00000000, // sub_32bit
4607 : };
4608 :
4609 : static const uint32_t VK32SubClassMask[] = {
4610 : 0x80000000, 0x00000004, 0x00000108, 0x00000000,
4611 : };
4612 :
4613 : static const uint32_t GR32_NOREX_NOSPSubClassMask[] = {
4614 : 0x00000000, 0x001f8fb9, 0x00000000, 0x00000000,
4615 : 0x00000000, 0x00200000, 0x3f7cd820, 0x00000000, // sub_32bit
4616 : };
4617 :
4618 : static const uint32_t RFP32SubClassMask[] = {
4619 : 0x00000000, 0x00800002, 0x80000000, 0x00000000,
4620 : };
4621 :
4622 : static const uint32_t VK32WMSubClassMask[] = {
4623 : 0x00000000, 0x00000004, 0x00000100, 0x00000000,
4624 : };
4625 :
4626 : static const uint32_t GR32_ABCDSubClassMask[] = {
4627 : 0x00000000, 0x00098338, 0x00000000, 0x00000000,
4628 : 0x00000000, 0x00000000, 0x1318d000, 0x00000000, // sub_32bit
4629 : };
4630 :
4631 : static const uint32_t GR32_TCSubClassMask[] = {
4632 : 0x00000000, 0x00090230, 0x00000000, 0x00000000,
4633 : 0x00000000, 0x00000000, 0x1210c000, 0x00000000, // sub_32bit
4634 : };
4635 :
4636 : static const uint32_t GR32_ADSubClassMask[] = {
4637 : 0x00000000, 0x00010020, 0x00000000, 0x00000000,
4638 : 0x00000000, 0x00000000, 0x02008000, 0x00000000, // sub_32bit
4639 : };
4640 :
4641 : static const uint32_t GR32_BPSPSubClassMask[] = {
4642 : 0x00000000, 0x00020040, 0x00000000, 0x00000000,
4643 : 0x00000000, 0x00200000, 0x04020000, 0x00000000, // sub_32bit
4644 : };
4645 :
4646 : static const uint32_t GR32_BSISubClassMask[] = {
4647 : 0x00000000, 0x00048080, 0x00000000, 0x00000000,
4648 : 0x00000000, 0x00000000, 0x09040000, 0x00000000, // sub_32bit
4649 : };
4650 :
4651 : static const uint32_t GR32_CBSubClassMask[] = {
4652 : 0x00000000, 0x00088100, 0x00000000, 0x00000000,
4653 : 0x00000000, 0x00000000, 0x11080000, 0x00000000, // sub_32bit
4654 : };
4655 :
4656 : static const uint32_t GR32_DCSubClassMask[] = {
4657 : 0x00000000, 0x00090200, 0x00000000, 0x00000000,
4658 : 0x00000000, 0x00000000, 0x12100000, 0x00000000, // sub_32bit
4659 : };
4660 :
4661 : static const uint32_t GR32_DIBPSubClassMask[] = {
4662 : 0x00000000, 0x00120400, 0x00000000, 0x00000000,
4663 : 0x00000000, 0x00200000, 0x24200000, 0x00000000, // sub_32bit
4664 : };
4665 :
4666 : static const uint32_t GR32_SIDISubClassMask[] = {
4667 : 0x00000000, 0x00140800, 0x00000000, 0x00000000,
4668 : 0x00000000, 0x00000000, 0x28400000, 0x00000000, // sub_32bit
4669 : };
4670 :
4671 : static const uint32_t LOW32_ADDR_ACCESS_RBP_with_sub_32bitSubClassMask[] = {
4672 : 0x00000000, 0x00601000, 0x04810000, 0x00000000,
4673 : };
4674 :
4675 : static const uint32_t CCRSubClassMask[] = {
4676 : 0x00000000, 0x00002000, 0x00000000, 0x00000000,
4677 : };
4678 :
4679 : static const uint32_t DFCCRSubClassMask[] = {
4680 : 0x00000000, 0x00004000, 0x00000000, 0x00000000,
4681 : };
4682 :
4683 : static const uint32_t GR32_ABCD_and_GR32_BSISubClassMask[] = {
4684 : 0x00000000, 0x00008000, 0x00000000, 0x00000000,
4685 : 0x00000000, 0x00000000, 0x01000000, 0x00000000, // sub_32bit
4686 : };
4687 :
4688 : static const uint32_t GR32_AD_and_GR32_DCSubClassMask[] = {
4689 : 0x00000000, 0x00010000, 0x00000000, 0x00000000,
4690 : 0x00000000, 0x00000000, 0x02000000, 0x00000000, // sub_32bit
4691 : };
4692 :
4693 : static const uint32_t GR32_BPSP_and_GR32_DIBPSubClassMask[] = {
4694 : 0x00000000, 0x00020000, 0x00000000, 0x00000000,
4695 : 0x00000000, 0x00200000, 0x04000000, 0x00000000, // sub_32bit
4696 : };
4697 :
4698 : static const uint32_t GR32_BSI_and_GR32_SIDISubClassMask[] = {
4699 : 0x00000000, 0x00040000, 0x00000000, 0x00000000,
4700 : 0x00000000, 0x00000000, 0x08000000, 0x00000000, // sub_32bit
4701 : };
4702 :
4703 : static const uint32_t GR32_CB_and_GR32_DCSubClassMask[] = {
4704 : 0x00000000, 0x00080000, 0x00000000, 0x00000000,
4705 : 0x00000000, 0x00000000, 0x10000000, 0x00000000, // sub_32bit
4706 : };
4707 :
4708 : static const uint32_t GR32_DIBP_and_GR32_SIDISubClassMask[] = {
4709 : 0x00000000, 0x00100000, 0x00000000, 0x00000000,
4710 : 0x00000000, 0x00000000, 0x20000000, 0x00000000, // sub_32bit
4711 : };
4712 :
4713 : static const uint32_t LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitSubClassMask[] = {
4714 : 0x00000000, 0x00200000, 0x04000000, 0x00000000,
4715 : };
4716 :
4717 : static const uint32_t LOW32_ADDR_ACCESS_with_sub_32bitSubClassMask[] = {
4718 : 0x00000000, 0x00400000, 0x00800000, 0x00000000,
4719 : };
4720 :
4721 : static const uint32_t RFP64SubClassMask[] = {
4722 : 0x00000000, 0x00800000, 0x80000000, 0x00000000,
4723 : };
4724 :
4725 : static const uint32_t FR64XSubClassMask[] = {
4726 : 0x00000000, 0x09000000, 0x00000000, 0x0000000f,
4727 : 0x00000000, 0x00000000, 0x00000000, 0x00001fe0, // sub_xmm
4728 : };
4729 :
4730 : static const uint32_t GR64SubClassMask[] = {
4731 : 0x00000000, 0xf2000000, 0x3ffffee7, 0x00000000,
4732 : };
4733 :
4734 : static const uint32_t CONTROL_REGSubClassMask[] = {
4735 : 0x00000000, 0x04000000, 0x00000000, 0x00000000,
4736 : };
4737 :
4738 : static const uint32_t FR64SubClassMask[] = {
4739 : 0x00000000, 0x08000000, 0x00000000, 0x0000000e,
4740 : 0x00000000, 0x00000000, 0x00000000, 0x00001dc0, // sub_xmm
4741 : };
4742 :
4743 : static const uint32_t GR64_with_sub_8bitSubClassMask[] = {
4744 : 0x00000000, 0x30000000, 0x3f7edc65, 0x00000000,
4745 : };
4746 :
4747 : static const uint32_t GR64_NOSPSubClassMask[] = {
4748 : 0x00000000, 0x20000000, 0x3f7cdc61, 0x00000000,
4749 : };
4750 :
4751 : static const uint32_t GR64_NOREXSubClassMask[] = {
4752 : 0x00000000, 0x40000000, 0x3ffffa24, 0x00000000,
4753 : };
4754 :
4755 : static const uint32_t GR64_TCSubClassMask[] = {
4756 : 0x00000000, 0x80000000, 0x3ad0ee81, 0x00000000,
4757 : };
4758 :
4759 : static const uint32_t GR64_NOSP_and_GR64_TCSubClassMask[] = {
4760 : 0x00000000, 0x00000000, 0x3a50cc01, 0x00000000,
4761 : };
4762 :
4763 : static const uint32_t GR64_TCW64SubClassMask[] = {
4764 : 0x00000000, 0x00000000, 0x1290e4c2, 0x00000000,
4765 : };
4766 :
4767 : static const uint32_t GR64_with_sub_16bit_in_GR16_NOREXSubClassMask[] = {
4768 : 0x00000000, 0x00000000, 0x3f7ed824, 0x00000000,
4769 : };
4770 :
4771 : static const uint32_t VK64SubClassMask[] = {
4772 : 0x00000000, 0x00000000, 0x00000108, 0x00000000,
4773 : };
4774 :
4775 : static const uint32_t VR64SubClassMask[] = {
4776 : 0x00000000, 0x00000000, 0x00000010, 0x00000000,
4777 : };
4778 :
4779 : static const uint32_t GR64_NOREX_NOSPSubClassMask[] = {
4780 : 0x00000000, 0x00000000, 0x3f7cd820, 0x00000000,
4781 : };
4782 :
4783 : static const uint32_t GR64_NOSP_and_GR64_TCW64SubClassMask[] = {
4784 : 0x00000000, 0x00000000, 0x1210c440, 0x00000000,
4785 : };
4786 :
4787 : static const uint32_t GR64_TC_and_GR64_TCW64SubClassMask[] = {
4788 : 0x00000000, 0x00000000, 0x1290e480, 0x00000000,
4789 : };
4790 :
4791 : static const uint32_t VK64WMSubClassMask[] = {
4792 : 0x00000000, 0x00000000, 0x00000100, 0x00000000,
4793 : };
4794 :
4795 : static const uint32_t GR64_NOREX_and_GR64_TCSubClassMask[] = {
4796 : 0x00000000, 0x00000000, 0x3ad0ea00, 0x00000000,
4797 : };
4798 :
4799 : static const uint32_t GR64_TC_and_GR64_NOSP_and_GR64_TCW64SubClassMask[] = {
4800 : 0x00000000, 0x00000000, 0x1210c400, 0x00000000,
4801 : };
4802 :
4803 : static const uint32_t GR64_NOREX_NOSP_and_GR64_TCSubClassMask[] = {
4804 : 0x00000000, 0x00000000, 0x3a50c800, 0x00000000,
4805 : };
4806 :
4807 : static const uint32_t GR64_ABCDSubClassMask[] = {
4808 : 0x00000000, 0x00000000, 0x1318d000, 0x00000000,
4809 : };
4810 :
4811 : static const uint32_t GR64_NOREX_and_GR64_TCW64SubClassMask[] = {
4812 : 0x00000000, 0x00000000, 0x1290e000, 0x00000000,
4813 : };
4814 :
4815 : static const uint32_t GR64_with_sub_32bit_in_GR32_TCSubClassMask[] = {
4816 : 0x00000000, 0x00000000, 0x1210c000, 0x00000000,
4817 : };
4818 :
4819 : static const uint32_t GR64_ADSubClassMask[] = {
4820 : 0x00000000, 0x00000000, 0x02008000, 0x00000000,
4821 : };
4822 :
4823 : static const uint32_t GR64_and_LOW32_ADDR_ACCESS_RBPSubClassMask[] = {
4824 : 0x00000000, 0x00000000, 0x04810000, 0x00000000,
4825 : };
4826 :
4827 : static const uint32_t GR64_with_sub_32bit_in_GR32_BPSPSubClassMask[] = {
4828 : 0x00000000, 0x00000000, 0x04020000, 0x00000000,
4829 : };
4830 :
4831 : static const uint32_t GR64_with_sub_32bit_in_GR32_BSISubClassMask[] = {
4832 : 0x00000000, 0x00000000, 0x09040000, 0x00000000,
4833 : };
4834 :
4835 : static const uint32_t GR64_with_sub_32bit_in_GR32_CBSubClassMask[] = {
4836 : 0x00000000, 0x00000000, 0x11080000, 0x00000000,
4837 : };
4838 :
4839 : static const uint32_t GR64_with_sub_32bit_in_GR32_DCSubClassMask[] = {
4840 : 0x00000000, 0x00000000, 0x12100000, 0x00000000,
4841 : };
4842 :
4843 : static const uint32_t GR64_with_sub_32bit_in_GR32_DIBPSubClassMask[] = {
4844 : 0x00000000, 0x00000000, 0x24200000, 0x00000000,
4845 : };
4846 :
4847 : static const uint32_t GR64_with_sub_32bit_in_GR32_SIDISubClassMask[] = {
4848 : 0x00000000, 0x00000000, 0x28400000, 0x00000000,
4849 : };
4850 :
4851 : static const uint32_t GR64_and_LOW32_ADDR_ACCESSSubClassMask[] = {
4852 : 0x00000000, 0x00000000, 0x00800000, 0x00000000,
4853 : };
4854 :
4855 : static const uint32_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSISubClassMask[] = {
4856 : 0x00000000, 0x00000000, 0x01000000, 0x00000000,
4857 : };
4858 :
4859 : static const uint32_t GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCSubClassMask[] = {
4860 : 0x00000000, 0x00000000, 0x02000000, 0x00000000,
4861 : };
4862 :
4863 : static const uint32_t GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPSubClassMask[] = {
4864 : 0x00000000, 0x00000000, 0x04000000, 0x00000000,
4865 : };
4866 :
4867 : static const uint32_t GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDISubClassMask[] = {
4868 : 0x00000000, 0x00000000, 0x08000000, 0x00000000,
4869 : };
4870 :
4871 : static const uint32_t GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCSubClassMask[] = {
4872 : 0x00000000, 0x00000000, 0x10000000, 0x00000000,
4873 : };
4874 :
4875 : static const uint32_t GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDISubClassMask[] = {
4876 : 0x00000000, 0x00000000, 0x20000000, 0x00000000,
4877 : };
4878 :
4879 : static const uint32_t RSTSubClassMask[] = {
4880 : 0x00000000, 0x00000000, 0x40000000, 0x00000000,
4881 : };
4882 :
4883 : static const uint32_t RFP80SubClassMask[] = {
4884 : 0x00000000, 0x00000000, 0x80000000, 0x00000000,
4885 : };
4886 :
4887 : static const uint32_t VR128XSubClassMask[] = {
4888 : 0x00000000, 0x00000000, 0x00000000, 0x0000000f,
4889 : 0x00000000, 0x00000000, 0x00000000, 0x00001fe0, // sub_xmm
4890 : };
4891 :
4892 : static const uint32_t VR128SubClassMask[] = {
4893 : 0x00000000, 0x00000000, 0x00000000, 0x0000000e,
4894 : 0x00000000, 0x00000000, 0x00000000, 0x00001dc0, // sub_xmm
4895 : };
4896 :
4897 : static const uint32_t VR128HSubClassMask[] = {
4898 : 0x00000000, 0x00000000, 0x00000000, 0x00000004,
4899 : 0x00000000, 0x00000000, 0x00000000, 0x00000880, // sub_xmm
4900 : };
4901 :
4902 : static const uint32_t VR128LSubClassMask[] = {
4903 : 0x00000000, 0x00000000, 0x00000000, 0x00000008,
4904 : 0x00000000, 0x00000000, 0x00000000, 0x00001100, // sub_xmm
4905 : };
4906 :
4907 : static const uint32_t BNDRSubClassMask[] = {
4908 : 0x00000000, 0x00000000, 0x00000000, 0x00000010,
4909 : };
4910 :
4911 : static const uint32_t VR256XSubClassMask[] = {
4912 : 0x00000000, 0x00000000, 0x00000000, 0x000001e0,
4913 : 0x00000000, 0x00000000, 0x00000000, 0x00001e00, // sub_ymm
4914 : };
4915 :
4916 : static const uint32_t VR256SubClassMask[] = {
4917 : 0x00000000, 0x00000000, 0x00000000, 0x000001c0,
4918 : 0x00000000, 0x00000000, 0x00000000, 0x00001c00, // sub_ymm
4919 : };
4920 :
4921 : static const uint32_t VR256HSubClassMask[] = {
4922 : 0x00000000, 0x00000000, 0x00000000, 0x00000080,
4923 : 0x00000000, 0x00000000, 0x00000000, 0x00000800, // sub_ymm
4924 : };
4925 :
4926 : static const uint32_t VR256LSubClassMask[] = {
4927 : 0x00000000, 0x00000000, 0x00000000, 0x00000100,
4928 : 0x00000000, 0x00000000, 0x00000000, 0x00001000, // sub_ymm
4929 : };
4930 :
4931 : static const uint32_t VR512SubClassMask[] = {
4932 : 0x00000000, 0x00000000, 0x00000000, 0x00001e00,
4933 : };
4934 :
4935 : static const uint32_t VR512_with_sub_xmm_in_FR32SubClassMask[] = {
4936 : 0x00000000, 0x00000000, 0x00000000, 0x00001c00,
4937 : };
4938 :
4939 : static const uint32_t VR512_with_sub_xmm_in_VR128HSubClassMask[] = {
4940 : 0x00000000, 0x00000000, 0x00000000, 0x00000800,
4941 : };
4942 :
4943 : static const uint32_t VR512_with_sub_xmm_in_VR128LSubClassMask[] = {
4944 : 0x00000000, 0x00000000, 0x00000000, 0x00001000,
4945 : };
4946 :
4947 : static const uint16_t SuperRegIdxSeqs[] = {
4948 : /* 0 */ 1, 0,
4949 : /* 2 */ 1, 2, 0,
4950 : /* 5 */ 4, 0,
4951 : /* 7 */ 6, 0,
4952 : /* 9 */ 7, 0,
4953 : /* 11 */ 8, 0,
4954 : };
4955 :
4956 : static const TargetRegisterClass *const GR8_NOREXSuperclasses[] = {
4957 : &X86::GR8RegClass,
4958 : nullptr
4959 : };
4960 :
4961 : static const TargetRegisterClass *const GR8_ABCD_HSuperclasses[] = {
4962 : &X86::GR8RegClass,
4963 : &X86::GR8_NOREXRegClass,
4964 : nullptr
4965 : };
4966 :
4967 : static const TargetRegisterClass *const GR8_ABCD_LSuperclasses[] = {
4968 : &X86::GR8RegClass,
4969 : &X86::GR8_NOREXRegClass,
4970 : nullptr
4971 : };
4972 :
4973 : static const TargetRegisterClass *const GR16_NOREXSuperclasses[] = {
4974 : &X86::GR16RegClass,
4975 : nullptr
4976 : };
4977 :
4978 : static const TargetRegisterClass *const VK1Superclasses[] = {
4979 : &X86::VK16RegClass,
4980 : &X86::VK2RegClass,
4981 : &X86::VK4RegClass,
4982 : &X86::VK8RegClass,
4983 : nullptr
4984 : };
4985 :
4986 : static const TargetRegisterClass *const VK16Superclasses[] = {
4987 : &X86::VK1RegClass,
4988 : &X86::VK2RegClass,
4989 : &X86::VK4RegClass,
4990 : &X86::VK8RegClass,
4991 : nullptr
4992 : };
4993 :
4994 : static const TargetRegisterClass *const VK2Superclasses[] = {
4995 : &X86::VK1RegClass,
4996 : &X86::VK16RegClass,
4997 : &X86::VK4RegClass,
4998 : &X86::VK8RegClass,
4999 : nullptr
5000 : };
5001 :
5002 : static const TargetRegisterClass *const VK4Superclasses[] = {
5003 : &X86::VK1RegClass,
5004 : &X86::VK16RegClass,
5005 : &X86::VK2RegClass,
5006 : &X86::VK8RegClass,
5007 : nullptr
5008 : };
5009 :
5010 : static const TargetRegisterClass *const VK8Superclasses[] = {
5011 : &X86::VK1RegClass,
5012 : &X86::VK16RegClass,
5013 : &X86::VK2RegClass,
5014 : &X86::VK4RegClass,
5015 : nullptr
5016 : };
5017 :
5018 : static const TargetRegisterClass *const VK16WMSuperclasses[] = {
5019 : &X86::VK1RegClass,
5020 : &X86::VK16RegClass,
5021 : &X86::VK2RegClass,
5022 : &X86::VK4RegClass,
5023 : &X86::VK8RegClass,
5024 : &X86::VK1WMRegClass,
5025 : &X86::VK2WMRegClass,
5026 : &X86::VK4WMRegClass,
5027 : &X86::VK8WMRegClass,
5028 : nullptr
5029 : };
5030 :
5031 : static const TargetRegisterClass *const VK1WMSuperclasses[] = {
5032 : &X86::VK1RegClass,
5033 : &X86::VK16RegClass,
5034 : &X86::VK2RegClass,
5035 : &X86::VK4RegClass,
5036 : &X86::VK8RegClass,
5037 : &X86::VK16WMRegClass,
5038 : &X86::VK2WMRegClass,
5039 : &X86::VK4WMRegClass,
5040 : &X86::VK8WMRegClass,
5041 : nullptr
5042 : };
5043 :
5044 : static const TargetRegisterClass *const VK2WMSuperclasses[] = {
5045 : &X86::VK1RegClass,
5046 : &X86::VK16RegClass,
5047 : &X86::VK2RegClass,
5048 : &X86::VK4RegClass,
5049 : &X86::VK8RegClass,
5050 : &X86::VK16WMRegClass,
5051 : &X86::VK1WMRegClass,
5052 : &X86::VK4WMRegClass,
5053 : &X86::VK8WMRegClass,
5054 : nullptr
5055 : };
5056 :
5057 : static const TargetRegisterClass *const VK4WMSuperclasses[] = {
5058 : &X86::VK1RegClass,
5059 : &X86::VK16RegClass,
5060 : &X86::VK2RegClass,
5061 : &X86::VK4RegClass,
5062 : &X86::VK8RegClass,
5063 : &X86::VK16WMRegClass,
5064 : &X86::VK1WMRegClass,
5065 : &X86::VK2WMRegClass,
5066 : &X86::VK8WMRegClass,
5067 : nullptr
5068 : };
5069 :
5070 : static const TargetRegisterClass *const VK8WMSuperclasses[] = {
5071 : &X86::VK1RegClass,
5072 : &X86::VK16RegClass,
5073 : &X86::VK2RegClass,
5074 : &X86::VK4RegClass,
5075 : &X86::VK8RegClass,
5076 : &X86::VK16WMRegClass,
5077 : &X86::VK1WMRegClass,
5078 : &X86::VK2WMRegClass,
5079 : &X86::VK4WMRegClass,
5080 : nullptr
5081 : };
5082 :
5083 : static const TargetRegisterClass *const GR16_ABCDSuperclasses[] = {
5084 : &X86::GR16RegClass,
5085 : &X86::GR16_NOREXRegClass,
5086 : nullptr
5087 : };
5088 :
5089 : static const TargetRegisterClass *const LOW32_ADDR_ACCESSSuperclasses[] = {
5090 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5091 : nullptr
5092 : };
5093 :
5094 : static const TargetRegisterClass *const LOW32_ADDR_ACCESS_RBP_with_sub_8bitSuperclasses[] = {
5095 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5096 : nullptr
5097 : };
5098 :
5099 : static const TargetRegisterClass *const FR32Superclasses[] = {
5100 : &X86::FR32XRegClass,
5101 : nullptr
5102 : };
5103 :
5104 : static const TargetRegisterClass *const GR32Superclasses[] = {
5105 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5106 : &X86::LOW32_ADDR_ACCESSRegClass,
5107 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5108 : nullptr
5109 : };
5110 :
5111 : static const TargetRegisterClass *const GR32_NOSPSuperclasses[] = {
5112 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5113 : &X86::LOW32_ADDR_ACCESSRegClass,
5114 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5115 : &X86::GR32RegClass,
5116 : nullptr
5117 : };
5118 :
5119 : static const TargetRegisterClass *const LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXSuperclasses[] = {
5120 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5121 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5122 : nullptr
5123 : };
5124 :
5125 : static const TargetRegisterClass *const GR32_NOREXSuperclasses[] = {
5126 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5127 : &X86::LOW32_ADDR_ACCESSRegClass,
5128 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5129 : &X86::GR32RegClass,
5130 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5131 : nullptr
5132 : };
5133 :
5134 : static const TargetRegisterClass *const VK32Superclasses[] = {
5135 : &X86::VK1RegClass,
5136 : &X86::VK16RegClass,
5137 : &X86::VK2RegClass,
5138 : &X86::VK4RegClass,
5139 : &X86::VK8RegClass,
5140 : nullptr
5141 : };
5142 :
5143 : static const TargetRegisterClass *const GR32_NOREX_NOSPSuperclasses[] = {
5144 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5145 : &X86::LOW32_ADDR_ACCESSRegClass,
5146 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5147 : &X86::GR32RegClass,
5148 : &X86::GR32_NOSPRegClass,
5149 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5150 : &X86::GR32_NOREXRegClass,
5151 : nullptr
5152 : };
5153 :
5154 : static const TargetRegisterClass *const VK32WMSuperclasses[] = {
5155 : &X86::VK1RegClass,
5156 : &X86::VK16RegClass,
5157 : &X86::VK2RegClass,
5158 : &X86::VK4RegClass,
5159 : &X86::VK8RegClass,
5160 : &X86::VK16WMRegClass,
5161 : &X86::VK1WMRegClass,
5162 : &X86::VK2WMRegClass,
5163 : &X86::VK4WMRegClass,
5164 : &X86::VK8WMRegClass,
5165 : &X86::VK32RegClass,
5166 : nullptr
5167 : };
5168 :
5169 : static const TargetRegisterClass *const GR32_ABCDSuperclasses[] = {
5170 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5171 : &X86::LOW32_ADDR_ACCESSRegClass,
5172 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5173 : &X86::GR32RegClass,
5174 : &X86::GR32_NOSPRegClass,
5175 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5176 : &X86::GR32_NOREXRegClass,
5177 : &X86::GR32_NOREX_NOSPRegClass,
5178 : nullptr
5179 : };
5180 :
5181 : static const TargetRegisterClass *const GR32_TCSuperclasses[] = {
5182 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5183 : &X86::LOW32_ADDR_ACCESSRegClass,
5184 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5185 : &X86::GR32RegClass,
5186 : &X86::GR32_NOSPRegClass,
5187 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5188 : &X86::GR32_NOREXRegClass,
5189 : &X86::GR32_NOREX_NOSPRegClass,
5190 : &X86::GR32_ABCDRegClass,
5191 : nullptr
5192 : };
5193 :
5194 : static const TargetRegisterClass *const GR32_ADSuperclasses[] = {
5195 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5196 : &X86::LOW32_ADDR_ACCESSRegClass,
5197 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5198 : &X86::GR32RegClass,
5199 : &X86::GR32_NOSPRegClass,
5200 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5201 : &X86::GR32_NOREXRegClass,
5202 : &X86::GR32_NOREX_NOSPRegClass,
5203 : &X86::GR32_ABCDRegClass,
5204 : &X86::GR32_TCRegClass,
5205 : nullptr
5206 : };
5207 :
5208 : static const TargetRegisterClass *const GR32_BPSPSuperclasses[] = {
5209 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5210 : &X86::LOW32_ADDR_ACCESSRegClass,
5211 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5212 : &X86::GR32RegClass,
5213 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5214 : &X86::GR32_NOREXRegClass,
5215 : nullptr
5216 : };
5217 :
5218 : static const TargetRegisterClass *const GR32_BSISuperclasses[] = {
5219 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5220 : &X86::LOW32_ADDR_ACCESSRegClass,
5221 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5222 : &X86::GR32RegClass,
5223 : &X86::GR32_NOSPRegClass,
5224 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5225 : &X86::GR32_NOREXRegClass,
5226 : &X86::GR32_NOREX_NOSPRegClass,
5227 : nullptr
5228 : };
5229 :
5230 : static const TargetRegisterClass *const GR32_CBSuperclasses[] = {
5231 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5232 : &X86::LOW32_ADDR_ACCESSRegClass,
5233 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5234 : &X86::GR32RegClass,
5235 : &X86::GR32_NOSPRegClass,
5236 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5237 : &X86::GR32_NOREXRegClass,
5238 : &X86::GR32_NOREX_NOSPRegClass,
5239 : &X86::GR32_ABCDRegClass,
5240 : nullptr
5241 : };
5242 :
5243 : static const TargetRegisterClass *const GR32_DCSuperclasses[] = {
5244 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5245 : &X86::LOW32_ADDR_ACCESSRegClass,
5246 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5247 : &X86::GR32RegClass,
5248 : &X86::GR32_NOSPRegClass,
5249 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5250 : &X86::GR32_NOREXRegClass,
5251 : &X86::GR32_NOREX_NOSPRegClass,
5252 : &X86::GR32_ABCDRegClass,
5253 : &X86::GR32_TCRegClass,
5254 : nullptr
5255 : };
5256 :
5257 : static const TargetRegisterClass *const GR32_DIBPSuperclasses[] = {
5258 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5259 : &X86::LOW32_ADDR_ACCESSRegClass,
5260 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5261 : &X86::GR32RegClass,
5262 : &X86::GR32_NOSPRegClass,
5263 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5264 : &X86::GR32_NOREXRegClass,
5265 : &X86::GR32_NOREX_NOSPRegClass,
5266 : nullptr
5267 : };
5268 :
5269 : static const TargetRegisterClass *const GR32_SIDISuperclasses[] = {
5270 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5271 : &X86::LOW32_ADDR_ACCESSRegClass,
5272 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5273 : &X86::GR32RegClass,
5274 : &X86::GR32_NOSPRegClass,
5275 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5276 : &X86::GR32_NOREXRegClass,
5277 : &X86::GR32_NOREX_NOSPRegClass,
5278 : nullptr
5279 : };
5280 :
5281 : static const TargetRegisterClass *const LOW32_ADDR_ACCESS_RBP_with_sub_32bitSuperclasses[] = {
5282 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5283 : nullptr
5284 : };
5285 :
5286 : static const TargetRegisterClass *const GR32_ABCD_and_GR32_BSISuperclasses[] = {
5287 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5288 : &X86::LOW32_ADDR_ACCESSRegClass,
5289 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5290 : &X86::GR32RegClass,
5291 : &X86::GR32_NOSPRegClass,
5292 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5293 : &X86::GR32_NOREXRegClass,
5294 : &X86::GR32_NOREX_NOSPRegClass,
5295 : &X86::GR32_ABCDRegClass,
5296 : &X86::GR32_BSIRegClass,
5297 : &X86::GR32_CBRegClass,
5298 : nullptr
5299 : };
5300 :
5301 : static const TargetRegisterClass *const GR32_AD_and_GR32_DCSuperclasses[] = {
5302 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5303 : &X86::LOW32_ADDR_ACCESSRegClass,
5304 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5305 : &X86::GR32RegClass,
5306 : &X86::GR32_NOSPRegClass,
5307 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5308 : &X86::GR32_NOREXRegClass,
5309 : &X86::GR32_NOREX_NOSPRegClass,
5310 : &X86::GR32_ABCDRegClass,
5311 : &X86::GR32_TCRegClass,
5312 : &X86::GR32_ADRegClass,
5313 : &X86::GR32_DCRegClass,
5314 : nullptr
5315 : };
5316 :
5317 : static const TargetRegisterClass *const GR32_BPSP_and_GR32_DIBPSuperclasses[] = {
5318 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5319 : &X86::LOW32_ADDR_ACCESSRegClass,
5320 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5321 : &X86::GR32RegClass,
5322 : &X86::GR32_NOSPRegClass,
5323 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5324 : &X86::GR32_NOREXRegClass,
5325 : &X86::GR32_NOREX_NOSPRegClass,
5326 : &X86::GR32_BPSPRegClass,
5327 : &X86::GR32_DIBPRegClass,
5328 : nullptr
5329 : };
5330 :
5331 : static const TargetRegisterClass *const GR32_BSI_and_GR32_SIDISuperclasses[] = {
5332 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5333 : &X86::LOW32_ADDR_ACCESSRegClass,
5334 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5335 : &X86::GR32RegClass,
5336 : &X86::GR32_NOSPRegClass,
5337 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5338 : &X86::GR32_NOREXRegClass,
5339 : &X86::GR32_NOREX_NOSPRegClass,
5340 : &X86::GR32_BSIRegClass,
5341 : &X86::GR32_SIDIRegClass,
5342 : nullptr
5343 : };
5344 :
5345 : static const TargetRegisterClass *const GR32_CB_and_GR32_DCSuperclasses[] = {
5346 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5347 : &X86::LOW32_ADDR_ACCESSRegClass,
5348 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5349 : &X86::GR32RegClass,
5350 : &X86::GR32_NOSPRegClass,
5351 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5352 : &X86::GR32_NOREXRegClass,
5353 : &X86::GR32_NOREX_NOSPRegClass,
5354 : &X86::GR32_ABCDRegClass,
5355 : &X86::GR32_TCRegClass,
5356 : &X86::GR32_CBRegClass,
5357 : &X86::GR32_DCRegClass,
5358 : nullptr
5359 : };
5360 :
5361 : static const TargetRegisterClass *const GR32_DIBP_and_GR32_SIDISuperclasses[] = {
5362 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5363 : &X86::LOW32_ADDR_ACCESSRegClass,
5364 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5365 : &X86::GR32RegClass,
5366 : &X86::GR32_NOSPRegClass,
5367 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5368 : &X86::GR32_NOREXRegClass,
5369 : &X86::GR32_NOREX_NOSPRegClass,
5370 : &X86::GR32_DIBPRegClass,
5371 : &X86::GR32_SIDIRegClass,
5372 : nullptr
5373 : };
5374 :
5375 : static const TargetRegisterClass *const LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitSuperclasses[] = {
5376 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5377 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5378 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5379 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass,
5380 : nullptr
5381 : };
5382 :
5383 : static const TargetRegisterClass *const LOW32_ADDR_ACCESS_with_sub_32bitSuperclasses[] = {
5384 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5385 : &X86::LOW32_ADDR_ACCESSRegClass,
5386 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass,
5387 : nullptr
5388 : };
5389 :
5390 : static const TargetRegisterClass *const RFP64Superclasses[] = {
5391 : &X86::RFP32RegClass,
5392 : nullptr
5393 : };
5394 :
5395 : static const TargetRegisterClass *const FR64XSuperclasses[] = {
5396 : &X86::FR32XRegClass,
5397 : nullptr
5398 : };
5399 :
5400 : static const TargetRegisterClass *const FR64Superclasses[] = {
5401 : &X86::FR32XRegClass,
5402 : &X86::FR32RegClass,
5403 : &X86::FR64XRegClass,
5404 : nullptr
5405 : };
5406 :
5407 : static const TargetRegisterClass *const GR64_with_sub_8bitSuperclasses[] = {
5408 : &X86::GR64RegClass,
5409 : nullptr
5410 : };
5411 :
5412 : static const TargetRegisterClass *const GR64_NOSPSuperclasses[] = {
5413 : &X86::GR64RegClass,
5414 : &X86::GR64_with_sub_8bitRegClass,
5415 : nullptr
5416 : };
5417 :
5418 : static const TargetRegisterClass *const GR64_NOREXSuperclasses[] = {
5419 : &X86::GR64RegClass,
5420 : nullptr
5421 : };
5422 :
5423 : static const TargetRegisterClass *const GR64_TCSuperclasses[] = {
5424 : &X86::GR64RegClass,
5425 : nullptr
5426 : };
5427 :
5428 : static const TargetRegisterClass *const GR64_NOSP_and_GR64_TCSuperclasses[] = {
5429 : &X86::GR64RegClass,
5430 : &X86::GR64_with_sub_8bitRegClass,
5431 : &X86::GR64_NOSPRegClass,
5432 : &X86::GR64_TCRegClass,
5433 : nullptr
5434 : };
5435 :
5436 : static const TargetRegisterClass *const GR64_TCW64Superclasses[] = {
5437 : &X86::GR64RegClass,
5438 : nullptr
5439 : };
5440 :
5441 : static const TargetRegisterClass *const GR64_with_sub_16bit_in_GR16_NOREXSuperclasses[] = {
5442 : &X86::GR64RegClass,
5443 : &X86::GR64_with_sub_8bitRegClass,
5444 : &X86::GR64_NOREXRegClass,
5445 : nullptr
5446 : };
5447 :
5448 : static const TargetRegisterClass *const VK64Superclasses[] = {
5449 : &X86::VK1RegClass,
5450 : &X86::VK16RegClass,
5451 : &X86::VK2RegClass,
5452 : &X86::VK4RegClass,
5453 : &X86::VK8RegClass,
5454 : &X86::VK32RegClass,
5455 : nullptr
5456 : };
5457 :
5458 : static const TargetRegisterClass *const GR64_NOREX_NOSPSuperclasses[] = {
5459 : &X86::GR64RegClass,
5460 : &X86::GR64_with_sub_8bitRegClass,
5461 : &X86::GR64_NOSPRegClass,
5462 : &X86::GR64_NOREXRegClass,
5463 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5464 : nullptr
5465 : };
5466 :
5467 : static const TargetRegisterClass *const GR64_NOSP_and_GR64_TCW64Superclasses[] = {
5468 : &X86::GR64RegClass,
5469 : &X86::GR64_with_sub_8bitRegClass,
5470 : &X86::GR64_NOSPRegClass,
5471 : &X86::GR64_TCW64RegClass,
5472 : nullptr
5473 : };
5474 :
5475 : static const TargetRegisterClass *const GR64_TC_and_GR64_TCW64Superclasses[] = {
5476 : &X86::GR64RegClass,
5477 : &X86::GR64_TCRegClass,
5478 : &X86::GR64_TCW64RegClass,
5479 : nullptr
5480 : };
5481 :
5482 : static const TargetRegisterClass *const VK64WMSuperclasses[] = {
5483 : &X86::VK1RegClass,
5484 : &X86::VK16RegClass,
5485 : &X86::VK2RegClass,
5486 : &X86::VK4RegClass,
5487 : &X86::VK8RegClass,
5488 : &X86::VK16WMRegClass,
5489 : &X86::VK1WMRegClass,
5490 : &X86::VK2WMRegClass,
5491 : &X86::VK4WMRegClass,
5492 : &X86::VK8WMRegClass,
5493 : &X86::VK32RegClass,
5494 : &X86::VK32WMRegClass,
5495 : &X86::VK64RegClass,
5496 : nullptr
5497 : };
5498 :
5499 : static const TargetRegisterClass *const GR64_NOREX_and_GR64_TCSuperclasses[] = {
5500 : &X86::GR64RegClass,
5501 : &X86::GR64_NOREXRegClass,
5502 : &X86::GR64_TCRegClass,
5503 : nullptr
5504 : };
5505 :
5506 : static const TargetRegisterClass *const GR64_TC_and_GR64_NOSP_and_GR64_TCW64Superclasses[] = {
5507 : &X86::GR64RegClass,
5508 : &X86::GR64_with_sub_8bitRegClass,
5509 : &X86::GR64_NOSPRegClass,
5510 : &X86::GR64_TCRegClass,
5511 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5512 : &X86::GR64_TCW64RegClass,
5513 : &X86::GR64_NOSP_and_GR64_TCW64RegClass,
5514 : &X86::GR64_TC_and_GR64_TCW64RegClass,
5515 : nullptr
5516 : };
5517 :
5518 : static const TargetRegisterClass *const GR64_NOREX_NOSP_and_GR64_TCSuperclasses[] = {
5519 : &X86::GR64RegClass,
5520 : &X86::GR64_with_sub_8bitRegClass,
5521 : &X86::GR64_NOSPRegClass,
5522 : &X86::GR64_NOREXRegClass,
5523 : &X86::GR64_TCRegClass,
5524 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5525 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5526 : &X86::GR64_NOREX_NOSPRegClass,
5527 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5528 : nullptr
5529 : };
5530 :
5531 : static const TargetRegisterClass *const GR64_ABCDSuperclasses[] = {
5532 : &X86::GR64RegClass,
5533 : &X86::GR64_with_sub_8bitRegClass,
5534 : &X86::GR64_NOSPRegClass,
5535 : &X86::GR64_NOREXRegClass,
5536 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5537 : &X86::GR64_NOREX_NOSPRegClass,
5538 : nullptr
5539 : };
5540 :
5541 : static const TargetRegisterClass *const GR64_NOREX_and_GR64_TCW64Superclasses[] = {
5542 : &X86::GR64RegClass,
5543 : &X86::GR64_NOREXRegClass,
5544 : &X86::GR64_TCRegClass,
5545 : &X86::GR64_TCW64RegClass,
5546 : &X86::GR64_TC_and_GR64_TCW64RegClass,
5547 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5548 : nullptr
5549 : };
5550 :
5551 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_TCSuperclasses[] = {
5552 : &X86::GR64RegClass,
5553 : &X86::GR64_with_sub_8bitRegClass,
5554 : &X86::GR64_NOSPRegClass,
5555 : &X86::GR64_NOREXRegClass,
5556 : &X86::GR64_TCRegClass,
5557 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5558 : &X86::GR64_TCW64RegClass,
5559 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5560 : &X86::GR64_NOREX_NOSPRegClass,
5561 : &X86::GR64_NOSP_and_GR64_TCW64RegClass,
5562 : &X86::GR64_TC_and_GR64_TCW64RegClass,
5563 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5564 : &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass,
5565 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
5566 : &X86::GR64_ABCDRegClass,
5567 : &X86::GR64_NOREX_and_GR64_TCW64RegClass,
5568 : nullptr
5569 : };
5570 :
5571 : static const TargetRegisterClass *const GR64_ADSuperclasses[] = {
5572 : &X86::GR64RegClass,
5573 : &X86::GR64_with_sub_8bitRegClass,
5574 : &X86::GR64_NOSPRegClass,
5575 : &X86::GR64_NOREXRegClass,
5576 : &X86::GR64_TCRegClass,
5577 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5578 : &X86::GR64_TCW64RegClass,
5579 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5580 : &X86::GR64_NOREX_NOSPRegClass,
5581 : &X86::GR64_NOSP_and_GR64_TCW64RegClass,
5582 : &X86::GR64_TC_and_GR64_TCW64RegClass,
5583 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5584 : &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass,
5585 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
5586 : &X86::GR64_ABCDRegClass,
5587 : &X86::GR64_NOREX_and_GR64_TCW64RegClass,
5588 : &X86::GR64_with_sub_32bit_in_GR32_TCRegClass,
5589 : nullptr
5590 : };
5591 :
5592 : static const TargetRegisterClass *const GR64_and_LOW32_ADDR_ACCESS_RBPSuperclasses[] = {
5593 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5594 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass,
5595 : &X86::GR64RegClass,
5596 : &X86::GR64_NOREXRegClass,
5597 : nullptr
5598 : };
5599 :
5600 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BPSPSuperclasses[] = {
5601 : &X86::GR64RegClass,
5602 : &X86::GR64_with_sub_8bitRegClass,
5603 : &X86::GR64_NOREXRegClass,
5604 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5605 : nullptr
5606 : };
5607 :
5608 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BSISuperclasses[] = {
5609 : &X86::GR64RegClass,
5610 : &X86::GR64_with_sub_8bitRegClass,
5611 : &X86::GR64_NOSPRegClass,
5612 : &X86::GR64_NOREXRegClass,
5613 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5614 : &X86::GR64_NOREX_NOSPRegClass,
5615 : nullptr
5616 : };
5617 :
5618 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_CBSuperclasses[] = {
5619 : &X86::GR64RegClass,
5620 : &X86::GR64_with_sub_8bitRegClass,
5621 : &X86::GR64_NOSPRegClass,
5622 : &X86::GR64_NOREXRegClass,
5623 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5624 : &X86::GR64_NOREX_NOSPRegClass,
5625 : &X86::GR64_ABCDRegClass,
5626 : nullptr
5627 : };
5628 :
5629 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_DCSuperclasses[] = {
5630 : &X86::GR64RegClass,
5631 : &X86::GR64_with_sub_8bitRegClass,
5632 : &X86::GR64_NOSPRegClass,
5633 : &X86::GR64_NOREXRegClass,
5634 : &X86::GR64_TCRegClass,
5635 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5636 : &X86::GR64_TCW64RegClass,
5637 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5638 : &X86::GR64_NOREX_NOSPRegClass,
5639 : &X86::GR64_NOSP_and_GR64_TCW64RegClass,
5640 : &X86::GR64_TC_and_GR64_TCW64RegClass,
5641 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5642 : &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass,
5643 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
5644 : &X86::GR64_ABCDRegClass,
5645 : &X86::GR64_NOREX_and_GR64_TCW64RegClass,
5646 : &X86::GR64_with_sub_32bit_in_GR32_TCRegClass,
5647 : nullptr
5648 : };
5649 :
5650 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_DIBPSuperclasses[] = {
5651 : &X86::GR64RegClass,
5652 : &X86::GR64_with_sub_8bitRegClass,
5653 : &X86::GR64_NOSPRegClass,
5654 : &X86::GR64_NOREXRegClass,
5655 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5656 : &X86::GR64_NOREX_NOSPRegClass,
5657 : nullptr
5658 : };
5659 :
5660 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_SIDISuperclasses[] = {
5661 : &X86::GR64RegClass,
5662 : &X86::GR64_with_sub_8bitRegClass,
5663 : &X86::GR64_NOSPRegClass,
5664 : &X86::GR64_NOREXRegClass,
5665 : &X86::GR64_TCRegClass,
5666 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5667 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5668 : &X86::GR64_NOREX_NOSPRegClass,
5669 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5670 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
5671 : nullptr
5672 : };
5673 :
5674 : static const TargetRegisterClass *const GR64_and_LOW32_ADDR_ACCESSSuperclasses[] = {
5675 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5676 : &X86::LOW32_ADDR_ACCESSRegClass,
5677 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass,
5678 : &X86::LOW32_ADDR_ACCESS_with_sub_32bitRegClass,
5679 : &X86::GR64RegClass,
5680 : &X86::GR64_NOREXRegClass,
5681 : &X86::GR64_TCRegClass,
5682 : &X86::GR64_TCW64RegClass,
5683 : &X86::GR64_TC_and_GR64_TCW64RegClass,
5684 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5685 : &X86::GR64_NOREX_and_GR64_TCW64RegClass,
5686 : &X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClass,
5687 : nullptr
5688 : };
5689 :
5690 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSISuperclasses[] = {
5691 : &X86::GR64RegClass,
5692 : &X86::GR64_with_sub_8bitRegClass,
5693 : &X86::GR64_NOSPRegClass,
5694 : &X86::GR64_NOREXRegClass,
5695 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5696 : &X86::GR64_NOREX_NOSPRegClass,
5697 : &X86::GR64_ABCDRegClass,
5698 : &X86::GR64_with_sub_32bit_in_GR32_BSIRegClass,
5699 : &X86::GR64_with_sub_32bit_in_GR32_CBRegClass,
5700 : nullptr
5701 : };
5702 :
5703 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCSuperclasses[] = {
5704 : &X86::GR64RegClass,
5705 : &X86::GR64_with_sub_8bitRegClass,
5706 : &X86::GR64_NOSPRegClass,
5707 : &X86::GR64_NOREXRegClass,
5708 : &X86::GR64_TCRegClass,
5709 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5710 : &X86::GR64_TCW64RegClass,
5711 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5712 : &X86::GR64_NOREX_NOSPRegClass,
5713 : &X86::GR64_NOSP_and_GR64_TCW64RegClass,
5714 : &X86::GR64_TC_and_GR64_TCW64RegClass,
5715 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5716 : &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass,
5717 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
5718 : &X86::GR64_ABCDRegClass,
5719 : &X86::GR64_NOREX_and_GR64_TCW64RegClass,
5720 : &X86::GR64_with_sub_32bit_in_GR32_TCRegClass,
5721 : &X86::GR64_ADRegClass,
5722 : &X86::GR64_with_sub_32bit_in_GR32_DCRegClass,
5723 : nullptr
5724 : };
5725 :
5726 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPSuperclasses[] = {
5727 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
5728 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
5729 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
5730 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass,
5731 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClass,
5732 : &X86::GR64RegClass,
5733 : &X86::GR64_with_sub_8bitRegClass,
5734 : &X86::GR64_NOSPRegClass,
5735 : &X86::GR64_NOREXRegClass,
5736 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5737 : &X86::GR64_NOREX_NOSPRegClass,
5738 : &X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClass,
5739 : &X86::GR64_with_sub_32bit_in_GR32_BPSPRegClass,
5740 : &X86::GR64_with_sub_32bit_in_GR32_DIBPRegClass,
5741 : nullptr
5742 : };
5743 :
5744 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDISuperclasses[] = {
5745 : &X86::GR64RegClass,
5746 : &X86::GR64_with_sub_8bitRegClass,
5747 : &X86::GR64_NOSPRegClass,
5748 : &X86::GR64_NOREXRegClass,
5749 : &X86::GR64_TCRegClass,
5750 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5751 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5752 : &X86::GR64_NOREX_NOSPRegClass,
5753 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5754 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
5755 : &X86::GR64_with_sub_32bit_in_GR32_BSIRegClass,
5756 : &X86::GR64_with_sub_32bit_in_GR32_SIDIRegClass,
5757 : nullptr
5758 : };
5759 :
5760 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCSuperclasses[] = {
5761 : &X86::GR64RegClass,
5762 : &X86::GR64_with_sub_8bitRegClass,
5763 : &X86::GR64_NOSPRegClass,
5764 : &X86::GR64_NOREXRegClass,
5765 : &X86::GR64_TCRegClass,
5766 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5767 : &X86::GR64_TCW64RegClass,
5768 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5769 : &X86::GR64_NOREX_NOSPRegClass,
5770 : &X86::GR64_NOSP_and_GR64_TCW64RegClass,
5771 : &X86::GR64_TC_and_GR64_TCW64RegClass,
5772 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5773 : &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass,
5774 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
5775 : &X86::GR64_ABCDRegClass,
5776 : &X86::GR64_NOREX_and_GR64_TCW64RegClass,
5777 : &X86::GR64_with_sub_32bit_in_GR32_TCRegClass,
5778 : &X86::GR64_with_sub_32bit_in_GR32_CBRegClass,
5779 : &X86::GR64_with_sub_32bit_in_GR32_DCRegClass,
5780 : nullptr
5781 : };
5782 :
5783 : static const TargetRegisterClass *const GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDISuperclasses[] = {
5784 : &X86::GR64RegClass,
5785 : &X86::GR64_with_sub_8bitRegClass,
5786 : &X86::GR64_NOSPRegClass,
5787 : &X86::GR64_NOREXRegClass,
5788 : &X86::GR64_TCRegClass,
5789 : &X86::GR64_NOSP_and_GR64_TCRegClass,
5790 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
5791 : &X86::GR64_NOREX_NOSPRegClass,
5792 : &X86::GR64_NOREX_and_GR64_TCRegClass,
5793 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
5794 : &X86::GR64_with_sub_32bit_in_GR32_DIBPRegClass,
5795 : &X86::GR64_with_sub_32bit_in_GR32_SIDIRegClass,
5796 : nullptr
5797 : };
5798 :
5799 : static const TargetRegisterClass *const RFP80Superclasses[] = {
5800 : &X86::RFP32RegClass,
5801 : &X86::RFP64RegClass,
5802 : nullptr
5803 : };
5804 :
5805 : static const TargetRegisterClass *const VR128XSuperclasses[] = {
5806 : &X86::FR32XRegClass,
5807 : &X86::FR64XRegClass,
5808 : nullptr
5809 : };
5810 :
5811 : static const TargetRegisterClass *const VR128Superclasses[] = {
5812 : &X86::FR32XRegClass,
5813 : &X86::FR32RegClass,
5814 : &X86::FR64XRegClass,
5815 : &X86::FR64RegClass,
5816 : &X86::VR128XRegClass,
5817 : nullptr
5818 : };
5819 :
5820 : static const TargetRegisterClass *const VR128HSuperclasses[] = {
5821 : &X86::FR32XRegClass,
5822 : &X86::FR32RegClass,
5823 : &X86::FR64XRegClass,
5824 : &X86::FR64RegClass,
5825 : &X86::VR128XRegClass,
5826 : &X86::VR128RegClass,
5827 : nullptr
5828 : };
5829 :
5830 : static const TargetRegisterClass *const VR128LSuperclasses[] = {
5831 : &X86::FR32XRegClass,
5832 : &X86::FR32RegClass,
5833 : &X86::FR64XRegClass,
5834 : &X86::FR64RegClass,
5835 : &X86::VR128XRegClass,
5836 : &X86::VR128RegClass,
5837 : nullptr
5838 : };
5839 :
5840 : static const TargetRegisterClass *const VR256Superclasses[] = {
5841 : &X86::VR256XRegClass,
5842 : nullptr
5843 : };
5844 :
5845 : static const TargetRegisterClass *const VR256HSuperclasses[] = {
5846 : &X86::VR256XRegClass,
5847 : &X86::VR256RegClass,
5848 : nullptr
5849 : };
5850 :
5851 : static const TargetRegisterClass *const VR256LSuperclasses[] = {
5852 : &X86::VR256XRegClass,
5853 : &X86::VR256RegClass,
5854 : nullptr
5855 : };
5856 :
5857 : static const TargetRegisterClass *const VR512_with_sub_xmm_in_FR32Superclasses[] = {
5858 : &X86::VR512RegClass,
5859 : nullptr
5860 : };
5861 :
5862 : static const TargetRegisterClass *const VR512_with_sub_xmm_in_VR128HSuperclasses[] = {
5863 : &X86::VR512RegClass,
5864 : &X86::VR512_with_sub_xmm_in_FR32RegClass,
5865 : nullptr
5866 : };
5867 :
5868 : static const TargetRegisterClass *const VR512_with_sub_xmm_in_VR128LSuperclasses[] = {
5869 : &X86::VR512RegClass,
5870 : &X86::VR512_with_sub_xmm_in_FR32RegClass,
5871 : nullptr
5872 : };
5873 :
5874 :
5875 : static inline unsigned GR8AltOrderSelect(const MachineFunction &MF) {
5876 37414 : return MF.getSubtarget<X86Subtarget>().is64Bit();
5877 : }
5878 :
5879 37414 : static ArrayRef<MCPhysReg> GR8GetRawAllocationOrder(const MachineFunction &MF) {
5880 : static const MCPhysReg AltOrder1[] = { X86::AL, X86::CL, X86::DL, X86::BL, X86::SIL, X86::DIL, X86::BPL, X86::SPL, X86::R8B, X86::R9B, X86::R10B, X86::R11B, X86::R14B, X86::R15B, X86::R12B, X86::R13B };
5881 : const MCRegisterClass &MCR = X86MCRegisterClasses[X86::GR8RegClassID];
5882 : const ArrayRef<MCPhysReg> Order[] = {
5883 37414 : makeArrayRef(MCR.begin(), MCR.getNumRegs()),
5884 37414 : makeArrayRef(AltOrder1)
5885 : };
5886 : const unsigned Select = GR8AltOrderSelect(MF);
5887 : assert(Select < 2);
5888 37414 : return Order[Select];
5889 : }
5890 :
5891 : static inline unsigned GR8_NOREXAltOrderSelect(const MachineFunction &MF) {
5892 7418 : return MF.getSubtarget<X86Subtarget>().is64Bit();
5893 : }
5894 :
5895 7418 : static ArrayRef<MCPhysReg> GR8_NOREXGetRawAllocationOrder(const MachineFunction &MF) {
5896 : static const MCPhysReg AltOrder1[] = { X86::AL, X86::CL, X86::DL, X86::BL };
5897 : const MCRegisterClass &MCR = X86MCRegisterClasses[X86::GR8_NOREXRegClassID];
5898 : const ArrayRef<MCPhysReg> Order[] = {
5899 7418 : makeArrayRef(MCR.begin(), MCR.getNumRegs()),
5900 7418 : makeArrayRef(AltOrder1)
5901 : };
5902 : const unsigned Select = GR8_NOREXAltOrderSelect(MF);
5903 : assert(Select < 2);
5904 7418 : return Order[Select];
5905 : }
5906 :
5907 : namespace X86 { // Register class instances
5908 : extern const TargetRegisterClass GR8RegClass = {
5909 : &X86MCRegisterClasses[GR8RegClassID],
5910 : GR8SubClassMask,
5911 : SuperRegIdxSeqs + 2,
5912 : LaneBitmask(0x00000001),
5913 : 0,
5914 : false, /* HasDisjunctSubRegs */
5915 : false, /* CoveredBySubRegs */
5916 : NullRegClasses,
5917 : GR8GetRawAllocationOrder
5918 : };
5919 :
5920 : extern const TargetRegisterClass GRH8RegClass = {
5921 : &X86MCRegisterClasses[GRH8RegClassID],
5922 : GRH8SubClassMask,
5923 : SuperRegIdxSeqs + 1,
5924 : LaneBitmask(0x00000001),
5925 : 0,
5926 : false, /* HasDisjunctSubRegs */
5927 : false, /* CoveredBySubRegs */
5928 : NullRegClasses,
5929 : nullptr
5930 : };
5931 :
5932 : extern const TargetRegisterClass GR8_NOREXRegClass = {
5933 : &X86MCRegisterClasses[GR8_NOREXRegClassID],
5934 : GR8_NOREXSubClassMask,
5935 : SuperRegIdxSeqs + 2,
5936 : LaneBitmask(0x00000001),
5937 : 0,
5938 : false, /* HasDisjunctSubRegs */
5939 : false, /* CoveredBySubRegs */
5940 : GR8_NOREXSuperclasses,
5941 : GR8_NOREXGetRawAllocationOrder
5942 : };
5943 :
5944 : extern const TargetRegisterClass GR8_ABCD_HRegClass = {
5945 : &X86MCRegisterClasses[GR8_ABCD_HRegClassID],
5946 : GR8_ABCD_HSubClassMask,
5947 : SuperRegIdxSeqs + 3,
5948 : LaneBitmask(0x00000001),
5949 : 0,
5950 : false, /* HasDisjunctSubRegs */
5951 : false, /* CoveredBySubRegs */
5952 : GR8_ABCD_HSuperclasses,
5953 : nullptr
5954 : };
5955 :
5956 : extern const TargetRegisterClass GR8_ABCD_LRegClass = {
5957 : &X86MCRegisterClasses[GR8_ABCD_LRegClassID],
5958 : GR8_ABCD_LSubClassMask,
5959 : SuperRegIdxSeqs + 0,
5960 : LaneBitmask(0x00000001),
5961 : 0,
5962 : false, /* HasDisjunctSubRegs */
5963 : false, /* CoveredBySubRegs */
5964 : GR8_ABCD_LSuperclasses,
5965 : nullptr
5966 : };
5967 :
5968 : extern const TargetRegisterClass GRH16RegClass = {
5969 : &X86MCRegisterClasses[GRH16RegClassID],
5970 : GRH16SubClassMask,
5971 : SuperRegIdxSeqs + 1,
5972 : LaneBitmask(0x00000001),
5973 : 0,
5974 : false, /* HasDisjunctSubRegs */
5975 : false, /* CoveredBySubRegs */
5976 : NullRegClasses,
5977 : nullptr
5978 : };
5979 :
5980 : extern const TargetRegisterClass GR16RegClass = {
5981 : &X86MCRegisterClasses[GR16RegClassID],
5982 : GR16SubClassMask,
5983 : SuperRegIdxSeqs + 5,
5984 : LaneBitmask(0x00000003),
5985 : 0,
5986 : true, /* HasDisjunctSubRegs */
5987 : true, /* CoveredBySubRegs */
5988 : NullRegClasses,
5989 : nullptr
5990 : };
5991 :
5992 : extern const TargetRegisterClass GR16_NOREXRegClass = {
5993 : &X86MCRegisterClasses[GR16_NOREXRegClassID],
5994 : GR16_NOREXSubClassMask,
5995 : SuperRegIdxSeqs + 5,
5996 : LaneBitmask(0x00000003),
5997 : 0,
5998 : true, /* HasDisjunctSubRegs */
5999 : true, /* CoveredBySubRegs */
6000 : GR16_NOREXSuperclasses,
6001 : nullptr
6002 : };
6003 :
6004 : extern const TargetRegisterClass VK1RegClass = {
6005 : &X86MCRegisterClasses[VK1RegClassID],
6006 : VK1SubClassMask,
6007 : SuperRegIdxSeqs + 1,
6008 : LaneBitmask(0x00000001),
6009 : 0,
6010 : false, /* HasDisjunctSubRegs */
6011 : false, /* CoveredBySubRegs */
6012 : VK1Superclasses,
6013 : nullptr
6014 : };
6015 :
6016 : extern const TargetRegisterClass VK16RegClass = {
6017 : &X86MCRegisterClasses[VK16RegClassID],
6018 : VK16SubClassMask,
6019 : SuperRegIdxSeqs + 1,
6020 : LaneBitmask(0x00000001),
6021 : 0,
6022 : false, /* HasDisjunctSubRegs */
6023 : false, /* CoveredBySubRegs */
6024 : VK16Superclasses,
6025 : nullptr
6026 : };
6027 :
6028 : extern const TargetRegisterClass VK2RegClass = {
6029 : &X86MCRegisterClasses[VK2RegClassID],
6030 : VK2SubClassMask,
6031 : SuperRegIdxSeqs + 1,
6032 : LaneBitmask(0x00000001),
6033 : 0,
6034 : false, /* HasDisjunctSubRegs */
6035 : false, /* CoveredBySubRegs */
6036 : VK2Superclasses,
6037 : nullptr
6038 : };
6039 :
6040 : extern const TargetRegisterClass VK4RegClass = {
6041 : &X86MCRegisterClasses[VK4RegClassID],
6042 : VK4SubClassMask,
6043 : SuperRegIdxSeqs + 1,
6044 : LaneBitmask(0x00000001),
6045 : 0,
6046 : false, /* HasDisjunctSubRegs */
6047 : false, /* CoveredBySubRegs */
6048 : VK4Superclasses,
6049 : nullptr
6050 : };
6051 :
6052 : extern const TargetRegisterClass VK8RegClass = {
6053 : &X86MCRegisterClasses[VK8RegClassID],
6054 : VK8SubClassMask,
6055 : SuperRegIdxSeqs + 1,
6056 : LaneBitmask(0x00000001),
6057 : 0,
6058 : false, /* HasDisjunctSubRegs */
6059 : false, /* CoveredBySubRegs */
6060 : VK8Superclasses,
6061 : nullptr
6062 : };
6063 :
6064 : extern const TargetRegisterClass VK16WMRegClass = {
6065 : &X86MCRegisterClasses[VK16WMRegClassID],
6066 : VK16WMSubClassMask,
6067 : SuperRegIdxSeqs + 1,
6068 : LaneBitmask(0x00000001),
6069 : 0,
6070 : false, /* HasDisjunctSubRegs */
6071 : false, /* CoveredBySubRegs */
6072 : VK16WMSuperclasses,
6073 : nullptr
6074 : };
6075 :
6076 : extern const TargetRegisterClass VK1WMRegClass = {
6077 : &X86MCRegisterClasses[VK1WMRegClassID],
6078 : VK1WMSubClassMask,
6079 : SuperRegIdxSeqs + 1,
6080 : LaneBitmask(0x00000001),
6081 : 0,
6082 : false, /* HasDisjunctSubRegs */
6083 : false, /* CoveredBySubRegs */
6084 : VK1WMSuperclasses,
6085 : nullptr
6086 : };
6087 :
6088 : extern const TargetRegisterClass VK2WMRegClass = {
6089 : &X86MCRegisterClasses[VK2WMRegClassID],
6090 : VK2WMSubClassMask,
6091 : SuperRegIdxSeqs + 1,
6092 : LaneBitmask(0x00000001),
6093 : 0,
6094 : false, /* HasDisjunctSubRegs */
6095 : false, /* CoveredBySubRegs */
6096 : VK2WMSuperclasses,
6097 : nullptr
6098 : };
6099 :
6100 : extern const TargetRegisterClass VK4WMRegClass = {
6101 : &X86MCRegisterClasses[VK4WMRegClassID],
6102 : VK4WMSubClassMask,
6103 : SuperRegIdxSeqs + 1,
6104 : LaneBitmask(0x00000001),
6105 : 0,
6106 : false, /* HasDisjunctSubRegs */
6107 : false, /* CoveredBySubRegs */
6108 : VK4WMSuperclasses,
6109 : nullptr
6110 : };
6111 :
6112 : extern const TargetRegisterClass VK8WMRegClass = {
6113 : &X86MCRegisterClasses[VK8WMRegClassID],
6114 : VK8WMSubClassMask,
6115 : SuperRegIdxSeqs + 1,
6116 : LaneBitmask(0x00000001),
6117 : 0,
6118 : false, /* HasDisjunctSubRegs */
6119 : false, /* CoveredBySubRegs */
6120 : VK8WMSuperclasses,
6121 : nullptr
6122 : };
6123 :
6124 : extern const TargetRegisterClass SEGMENT_REGRegClass = {
6125 : &X86MCRegisterClasses[SEGMENT_REGRegClassID],
6126 : SEGMENT_REGSubClassMask,
6127 : SuperRegIdxSeqs + 1,
6128 : LaneBitmask(0x00000001),
6129 : 0,
6130 : false, /* HasDisjunctSubRegs */
6131 : false, /* CoveredBySubRegs */
6132 : NullRegClasses,
6133 : nullptr
6134 : };
6135 :
6136 : extern const TargetRegisterClass GR16_ABCDRegClass = {
6137 : &X86MCRegisterClasses[GR16_ABCDRegClassID],
6138 : GR16_ABCDSubClassMask,
6139 : SuperRegIdxSeqs + 5,
6140 : LaneBitmask(0x00000003),
6141 : 0,
6142 : true, /* HasDisjunctSubRegs */
6143 : true, /* CoveredBySubRegs */
6144 : GR16_ABCDSuperclasses,
6145 : nullptr
6146 : };
6147 :
6148 : extern const TargetRegisterClass FPCCRRegClass = {
6149 : &X86MCRegisterClasses[FPCCRRegClassID],
6150 : FPCCRSubClassMask,
6151 : SuperRegIdxSeqs + 1,
6152 : LaneBitmask(0x00000001),
6153 : 0,
6154 : false, /* HasDisjunctSubRegs */
6155 : false, /* CoveredBySubRegs */
6156 : NullRegClasses,
6157 : nullptr
6158 : };
6159 :
6160 : extern const TargetRegisterClass FR32XRegClass = {
6161 : &X86MCRegisterClasses[FR32XRegClassID],
6162 : FR32XSubClassMask,
6163 : SuperRegIdxSeqs + 9,
6164 : LaneBitmask(0x00000001),
6165 : 0,
6166 : false, /* HasDisjunctSubRegs */
6167 : false, /* CoveredBySubRegs */
6168 : NullRegClasses,
6169 : nullptr
6170 : };
6171 :
6172 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBPRegClass = {
6173 : &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBPRegClassID],
6174 : LOW32_ADDR_ACCESS_RBPSubClassMask,
6175 : SuperRegIdxSeqs + 7,
6176 : LaneBitmask(0x0000000F),
6177 : 0,
6178 : true, /* HasDisjunctSubRegs */
6179 : false, /* CoveredBySubRegs */
6180 : NullRegClasses,
6181 : nullptr
6182 : };
6183 :
6184 : extern const TargetRegisterClass LOW32_ADDR_ACCESSRegClass = {
6185 : &X86MCRegisterClasses[LOW32_ADDR_ACCESSRegClassID],
6186 : LOW32_ADDR_ACCESSSubClassMask,
6187 : SuperRegIdxSeqs + 7,
6188 : LaneBitmask(0x0000000F),
6189 : 0,
6190 : true, /* HasDisjunctSubRegs */
6191 : false, /* CoveredBySubRegs */
6192 : LOW32_ADDR_ACCESSSuperclasses,
6193 : nullptr
6194 : };
6195 :
6196 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass = {
6197 : &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClassID],
6198 : LOW32_ADDR_ACCESS_RBP_with_sub_8bitSubClassMask,
6199 : SuperRegIdxSeqs + 7,
6200 : LaneBitmask(0x0000000F),
6201 : 0,
6202 : true, /* HasDisjunctSubRegs */
6203 : false, /* CoveredBySubRegs */
6204 : LOW32_ADDR_ACCESS_RBP_with_sub_8bitSuperclasses,
6205 : nullptr
6206 : };
6207 :
6208 : extern const TargetRegisterClass DEBUG_REGRegClass = {
6209 : &X86MCRegisterClasses[DEBUG_REGRegClassID],
6210 : DEBUG_REGSubClassMask,
6211 : SuperRegIdxSeqs + 1,
6212 : LaneBitmask(0x00000001),
6213 : 0,
6214 : false, /* HasDisjunctSubRegs */
6215 : false, /* CoveredBySubRegs */
6216 : NullRegClasses,
6217 : nullptr
6218 : };
6219 :
6220 : extern const TargetRegisterClass FR32RegClass = {
6221 : &X86MCRegisterClasses[FR32RegClassID],
6222 : FR32SubClassMask,
6223 : SuperRegIdxSeqs + 9,
6224 : LaneBitmask(0x00000001),
6225 : 0,
6226 : false, /* HasDisjunctSubRegs */
6227 : false, /* CoveredBySubRegs */
6228 : FR32Superclasses,
6229 : nullptr
6230 : };
6231 :
6232 : extern const TargetRegisterClass GR32RegClass = {
6233 : &X86MCRegisterClasses[GR32RegClassID],
6234 : GR32SubClassMask,
6235 : SuperRegIdxSeqs + 7,
6236 : LaneBitmask(0x00000007),
6237 : 0,
6238 : true, /* HasDisjunctSubRegs */
6239 : true, /* CoveredBySubRegs */
6240 : GR32Superclasses,
6241 : nullptr
6242 : };
6243 :
6244 : extern const TargetRegisterClass GR32_NOSPRegClass = {
6245 : &X86MCRegisterClasses[GR32_NOSPRegClassID],
6246 : GR32_NOSPSubClassMask,
6247 : SuperRegIdxSeqs + 7,
6248 : LaneBitmask(0x00000007),
6249 : 0,
6250 : true, /* HasDisjunctSubRegs */
6251 : true, /* CoveredBySubRegs */
6252 : GR32_NOSPSuperclasses,
6253 : nullptr
6254 : };
6255 :
6256 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass = {
6257 : &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClassID],
6258 : LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXSubClassMask,
6259 : SuperRegIdxSeqs + 7,
6260 : LaneBitmask(0x0000000F),
6261 : 0,
6262 : true, /* HasDisjunctSubRegs */
6263 : false, /* CoveredBySubRegs */
6264 : LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXSuperclasses,
6265 : nullptr
6266 : };
6267 :
6268 : extern const TargetRegisterClass GR32_NOREXRegClass = {
6269 : &X86MCRegisterClasses[GR32_NOREXRegClassID],
6270 : GR32_NOREXSubClassMask,
6271 : SuperRegIdxSeqs + 7,
6272 : LaneBitmask(0x00000007),
6273 : 0,
6274 : true, /* HasDisjunctSubRegs */
6275 : true, /* CoveredBySubRegs */
6276 : GR32_NOREXSuperclasses,
6277 : nullptr
6278 : };
6279 :
6280 : extern const TargetRegisterClass VK32RegClass = {
6281 : &X86MCRegisterClasses[VK32RegClassID],
6282 : VK32SubClassMask,
6283 : SuperRegIdxSeqs + 1,
6284 : LaneBitmask(0x00000001),
6285 : 0,
6286 : false, /* HasDisjunctSubRegs */
6287 : false, /* CoveredBySubRegs */
6288 : VK32Superclasses,
6289 : nullptr
6290 : };
6291 :
6292 : extern const TargetRegisterClass GR32_NOREX_NOSPRegClass = {
6293 : &X86MCRegisterClasses[GR32_NOREX_NOSPRegClassID],
6294 : GR32_NOREX_NOSPSubClassMask,
6295 : SuperRegIdxSeqs + 7,
6296 : LaneBitmask(0x00000007),
6297 : 0,
6298 : true, /* HasDisjunctSubRegs */
6299 : true, /* CoveredBySubRegs */
6300 : GR32_NOREX_NOSPSuperclasses,
6301 : nullptr
6302 : };
6303 :
6304 : extern const TargetRegisterClass RFP32RegClass = {
6305 : &X86MCRegisterClasses[RFP32RegClassID],
6306 : RFP32SubClassMask,
6307 : SuperRegIdxSeqs + 1,
6308 : LaneBitmask(0x00000001),
6309 : 0,
6310 : false, /* HasDisjunctSubRegs */
6311 : false, /* CoveredBySubRegs */
6312 : NullRegClasses,
6313 : nullptr
6314 : };
6315 :
6316 : extern const TargetRegisterClass VK32WMRegClass = {
6317 : &X86MCRegisterClasses[VK32WMRegClassID],
6318 : VK32WMSubClassMask,
6319 : SuperRegIdxSeqs + 1,
6320 : LaneBitmask(0x00000001),
6321 : 0,
6322 : false, /* HasDisjunctSubRegs */
6323 : false, /* CoveredBySubRegs */
6324 : VK32WMSuperclasses,
6325 : nullptr
6326 : };
6327 :
6328 : extern const TargetRegisterClass GR32_ABCDRegClass = {
6329 : &X86MCRegisterClasses[GR32_ABCDRegClassID],
6330 : GR32_ABCDSubClassMask,
6331 : SuperRegIdxSeqs + 7,
6332 : LaneBitmask(0x00000007),
6333 : 0,
6334 : true, /* HasDisjunctSubRegs */
6335 : true, /* CoveredBySubRegs */
6336 : GR32_ABCDSuperclasses,
6337 : nullptr
6338 : };
6339 :
6340 : extern const TargetRegisterClass GR32_TCRegClass = {
6341 : &X86MCRegisterClasses[GR32_TCRegClassID],
6342 : GR32_TCSubClassMask,
6343 : SuperRegIdxSeqs + 7,
6344 : LaneBitmask(0x00000007),
6345 : 0,
6346 : true, /* HasDisjunctSubRegs */
6347 : true, /* CoveredBySubRegs */
6348 : GR32_TCSuperclasses,
6349 : nullptr
6350 : };
6351 :
6352 : extern const TargetRegisterClass GR32_ADRegClass = {
6353 : &X86MCRegisterClasses[GR32_ADRegClassID],
6354 : GR32_ADSubClassMask,
6355 : SuperRegIdxSeqs + 7,
6356 : LaneBitmask(0x00000007),
6357 : 0,
6358 : true, /* HasDisjunctSubRegs */
6359 : true, /* CoveredBySubRegs */
6360 : GR32_ADSuperclasses,
6361 : nullptr
6362 : };
6363 :
6364 : extern const TargetRegisterClass GR32_BPSPRegClass = {
6365 : &X86MCRegisterClasses[GR32_BPSPRegClassID],
6366 : GR32_BPSPSubClassMask,
6367 : SuperRegIdxSeqs + 7,
6368 : LaneBitmask(0x00000007),
6369 : 0,
6370 : true, /* HasDisjunctSubRegs */
6371 : true, /* CoveredBySubRegs */
6372 : GR32_BPSPSuperclasses,
6373 : nullptr
6374 : };
6375 :
6376 : extern const TargetRegisterClass GR32_BSIRegClass = {
6377 : &X86MCRegisterClasses[GR32_BSIRegClassID],
6378 : GR32_BSISubClassMask,
6379 : SuperRegIdxSeqs + 7,
6380 : LaneBitmask(0x00000007),
6381 : 0,
6382 : true, /* HasDisjunctSubRegs */
6383 : true, /* CoveredBySubRegs */
6384 : GR32_BSISuperclasses,
6385 : nullptr
6386 : };
6387 :
6388 : extern const TargetRegisterClass GR32_CBRegClass = {
6389 : &X86MCRegisterClasses[GR32_CBRegClassID],
6390 : GR32_CBSubClassMask,
6391 : SuperRegIdxSeqs + 7,
6392 : LaneBitmask(0x00000007),
6393 : 0,
6394 : true, /* HasDisjunctSubRegs */
6395 : true, /* CoveredBySubRegs */
6396 : GR32_CBSuperclasses,
6397 : nullptr
6398 : };
6399 :
6400 : extern const TargetRegisterClass GR32_DCRegClass = {
6401 : &X86MCRegisterClasses[GR32_DCRegClassID],
6402 : GR32_DCSubClassMask,
6403 : SuperRegIdxSeqs + 7,
6404 : LaneBitmask(0x00000007),
6405 : 0,
6406 : true, /* HasDisjunctSubRegs */
6407 : true, /* CoveredBySubRegs */
6408 : GR32_DCSuperclasses,
6409 : nullptr
6410 : };
6411 :
6412 : extern const TargetRegisterClass GR32_DIBPRegClass = {
6413 : &X86MCRegisterClasses[GR32_DIBPRegClassID],
6414 : GR32_DIBPSubClassMask,
6415 : SuperRegIdxSeqs + 7,
6416 : LaneBitmask(0x00000007),
6417 : 0,
6418 : true, /* HasDisjunctSubRegs */
6419 : true, /* CoveredBySubRegs */
6420 : GR32_DIBPSuperclasses,
6421 : nullptr
6422 : };
6423 :
6424 : extern const TargetRegisterClass GR32_SIDIRegClass = {
6425 : &X86MCRegisterClasses[GR32_SIDIRegClassID],
6426 : GR32_SIDISubClassMask,
6427 : SuperRegIdxSeqs + 7,
6428 : LaneBitmask(0x00000007),
6429 : 0,
6430 : true, /* HasDisjunctSubRegs */
6431 : true, /* CoveredBySubRegs */
6432 : GR32_SIDISuperclasses,
6433 : nullptr
6434 : };
6435 :
6436 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass = {
6437 : &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClassID],
6438 : LOW32_ADDR_ACCESS_RBP_with_sub_32bitSubClassMask,
6439 : SuperRegIdxSeqs + 1,
6440 : LaneBitmask(0x0000000F),
6441 : 0,
6442 : true, /* HasDisjunctSubRegs */
6443 : false, /* CoveredBySubRegs */
6444 : LOW32_ADDR_ACCESS_RBP_with_sub_32bitSuperclasses,
6445 : nullptr
6446 : };
6447 :
6448 : extern const TargetRegisterClass CCRRegClass = {
6449 : &X86MCRegisterClasses[CCRRegClassID],
6450 : CCRSubClassMask,
6451 : SuperRegIdxSeqs + 1,
6452 : LaneBitmask(0x00000001),
6453 : 0,
6454 : false, /* HasDisjunctSubRegs */
6455 : false, /* CoveredBySubRegs */
6456 : NullRegClasses,
6457 : nullptr
6458 : };
6459 :
6460 : extern const TargetRegisterClass DFCCRRegClass = {
6461 : &X86MCRegisterClasses[DFCCRRegClassID],
6462 : DFCCRSubClassMask,
6463 : SuperRegIdxSeqs + 1,
6464 : LaneBitmask(0x00000001),
6465 : 0,
6466 : false, /* HasDisjunctSubRegs */
6467 : false, /* CoveredBySubRegs */
6468 : NullRegClasses,
6469 : nullptr
6470 : };
6471 :
6472 : extern const TargetRegisterClass GR32_ABCD_and_GR32_BSIRegClass = {
6473 : &X86MCRegisterClasses[GR32_ABCD_and_GR32_BSIRegClassID],
6474 : GR32_ABCD_and_GR32_BSISubClassMask,
6475 : SuperRegIdxSeqs + 7,
6476 : LaneBitmask(0x00000007),
6477 : 0,
6478 : true, /* HasDisjunctSubRegs */
6479 : true, /* CoveredBySubRegs */
6480 : GR32_ABCD_and_GR32_BSISuperclasses,
6481 : nullptr
6482 : };
6483 :
6484 : extern const TargetRegisterClass GR32_AD_and_GR32_DCRegClass = {
6485 : &X86MCRegisterClasses[GR32_AD_and_GR32_DCRegClassID],
6486 : GR32_AD_and_GR32_DCSubClassMask,
6487 : SuperRegIdxSeqs + 7,
6488 : LaneBitmask(0x00000007),
6489 : 0,
6490 : true, /* HasDisjunctSubRegs */
6491 : true, /* CoveredBySubRegs */
6492 : GR32_AD_and_GR32_DCSuperclasses,
6493 : nullptr
6494 : };
6495 :
6496 : extern const TargetRegisterClass GR32_BPSP_and_GR32_DIBPRegClass = {
6497 : &X86MCRegisterClasses[GR32_BPSP_and_GR32_DIBPRegClassID],
6498 : GR32_BPSP_and_GR32_DIBPSubClassMask,
6499 : SuperRegIdxSeqs + 7,
6500 : LaneBitmask(0x00000007),
6501 : 0,
6502 : true, /* HasDisjunctSubRegs */
6503 : true, /* CoveredBySubRegs */
6504 : GR32_BPSP_and_GR32_DIBPSuperclasses,
6505 : nullptr
6506 : };
6507 :
6508 : extern const TargetRegisterClass GR32_BSI_and_GR32_SIDIRegClass = {
6509 : &X86MCRegisterClasses[GR32_BSI_and_GR32_SIDIRegClassID],
6510 : GR32_BSI_and_GR32_SIDISubClassMask,
6511 : SuperRegIdxSeqs + 7,
6512 : LaneBitmask(0x00000007),
6513 : 0,
6514 : true, /* HasDisjunctSubRegs */
6515 : true, /* CoveredBySubRegs */
6516 : GR32_BSI_and_GR32_SIDISuperclasses,
6517 : nullptr
6518 : };
6519 :
6520 : extern const TargetRegisterClass GR32_CB_and_GR32_DCRegClass = {
6521 : &X86MCRegisterClasses[GR32_CB_and_GR32_DCRegClassID],
6522 : GR32_CB_and_GR32_DCSubClassMask,
6523 : SuperRegIdxSeqs + 7,
6524 : LaneBitmask(0x00000007),
6525 : 0,
6526 : true, /* HasDisjunctSubRegs */
6527 : true, /* CoveredBySubRegs */
6528 : GR32_CB_and_GR32_DCSuperclasses,
6529 : nullptr
6530 : };
6531 :
6532 : extern const TargetRegisterClass GR32_DIBP_and_GR32_SIDIRegClass = {
6533 : &X86MCRegisterClasses[GR32_DIBP_and_GR32_SIDIRegClassID],
6534 : GR32_DIBP_and_GR32_SIDISubClassMask,
6535 : SuperRegIdxSeqs + 7,
6536 : LaneBitmask(0x00000007),
6537 : 0,
6538 : true, /* HasDisjunctSubRegs */
6539 : true, /* CoveredBySubRegs */
6540 : GR32_DIBP_and_GR32_SIDISuperclasses,
6541 : nullptr
6542 : };
6543 :
6544 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClass = {
6545 : &X86MCRegisterClasses[LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClassID],
6546 : LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitSubClassMask,
6547 : SuperRegIdxSeqs + 1,
6548 : LaneBitmask(0x0000000F),
6549 : 0,
6550 : true, /* HasDisjunctSubRegs */
6551 : false, /* CoveredBySubRegs */
6552 : LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitSuperclasses,
6553 : nullptr
6554 : };
6555 :
6556 : extern const TargetRegisterClass LOW32_ADDR_ACCESS_with_sub_32bitRegClass = {
6557 : &X86MCRegisterClasses[LOW32_ADDR_ACCESS_with_sub_32bitRegClassID],
6558 : LOW32_ADDR_ACCESS_with_sub_32bitSubClassMask,
6559 : SuperRegIdxSeqs + 1,
6560 : LaneBitmask(0x0000000F),
6561 : 0,
6562 : true, /* HasDisjunctSubRegs */
6563 : false, /* CoveredBySubRegs */
6564 : LOW32_ADDR_ACCESS_with_sub_32bitSuperclasses,
6565 : nullptr
6566 : };
6567 :
6568 : extern const TargetRegisterClass RFP64RegClass = {
6569 : &X86MCRegisterClasses[RFP64RegClassID],
6570 : RFP64SubClassMask,
6571 : SuperRegIdxSeqs + 1,
6572 : LaneBitmask(0x00000001),
6573 : 0,
6574 : false, /* HasDisjunctSubRegs */
6575 : false, /* CoveredBySubRegs */
6576 : RFP64Superclasses,
6577 : nullptr
6578 : };
6579 :
6580 : extern const TargetRegisterClass FR64XRegClass = {
6581 : &X86MCRegisterClasses[FR64XRegClassID],
6582 : FR64XSubClassMask,
6583 : SuperRegIdxSeqs + 9,
6584 : LaneBitmask(0x00000001),
6585 : 0,
6586 : false, /* HasDisjunctSubRegs */
6587 : false, /* CoveredBySubRegs */
6588 : FR64XSuperclasses,
6589 : nullptr
6590 : };
6591 :
6592 : extern const TargetRegisterClass GR64RegClass = {
6593 : &X86MCRegisterClasses[GR64RegClassID],
6594 : GR64SubClassMask,
6595 : SuperRegIdxSeqs + 1,
6596 : LaneBitmask(0x0000000F),
6597 : 0,
6598 : true, /* HasDisjunctSubRegs */
6599 : false, /* CoveredBySubRegs */
6600 : NullRegClasses,
6601 : nullptr
6602 : };
6603 :
6604 : extern const TargetRegisterClass CONTROL_REGRegClass = {
6605 : &X86MCRegisterClasses[CONTROL_REGRegClassID],
6606 : CONTROL_REGSubClassMask,
6607 : SuperRegIdxSeqs + 1,
6608 : LaneBitmask(0x00000001),
6609 : 0,
6610 : false, /* HasDisjunctSubRegs */
6611 : false, /* CoveredBySubRegs */
6612 : NullRegClasses,
6613 : nullptr
6614 : };
6615 :
6616 : extern const TargetRegisterClass FR64RegClass = {
6617 : &X86MCRegisterClasses[FR64RegClassID],
6618 : FR64SubClassMask,
6619 : SuperRegIdxSeqs + 9,
6620 : LaneBitmask(0x00000001),
6621 : 0,
6622 : false, /* HasDisjunctSubRegs */
6623 : false, /* CoveredBySubRegs */
6624 : FR64Superclasses,
6625 : nullptr
6626 : };
6627 :
6628 : extern const TargetRegisterClass GR64_with_sub_8bitRegClass = {
6629 : &X86MCRegisterClasses[GR64_with_sub_8bitRegClassID],
6630 : GR64_with_sub_8bitSubClassMask,
6631 : SuperRegIdxSeqs + 1,
6632 : LaneBitmask(0x0000000F),
6633 : 0,
6634 : true, /* HasDisjunctSubRegs */
6635 : false, /* CoveredBySubRegs */
6636 : GR64_with_sub_8bitSuperclasses,
6637 : nullptr
6638 : };
6639 :
6640 : extern const TargetRegisterClass GR64_NOSPRegClass = {
6641 : &X86MCRegisterClasses[GR64_NOSPRegClassID],
6642 : GR64_NOSPSubClassMask,
6643 : SuperRegIdxSeqs + 1,
6644 : LaneBitmask(0x0000000F),
6645 : 0,
6646 : true, /* HasDisjunctSubRegs */
6647 : false, /* CoveredBySubRegs */
6648 : GR64_NOSPSuperclasses,
6649 : nullptr
6650 : };
6651 :
6652 : extern const TargetRegisterClass GR64_NOREXRegClass = {
6653 : &X86MCRegisterClasses[GR64_NOREXRegClassID],
6654 : GR64_NOREXSubClassMask,
6655 : SuperRegIdxSeqs + 1,
6656 : LaneBitmask(0x0000000F),
6657 : 0,
6658 : true, /* HasDisjunctSubRegs */
6659 : false, /* CoveredBySubRegs */
6660 : GR64_NOREXSuperclasses,
6661 : nullptr
6662 : };
6663 :
6664 : extern const TargetRegisterClass GR64_TCRegClass = {
6665 : &X86MCRegisterClasses[GR64_TCRegClassID],
6666 : GR64_TCSubClassMask,
6667 : SuperRegIdxSeqs + 1,
6668 : LaneBitmask(0x0000000F),
6669 : 0,
6670 : true, /* HasDisjunctSubRegs */
6671 : false, /* CoveredBySubRegs */
6672 : GR64_TCSuperclasses,
6673 : nullptr
6674 : };
6675 :
6676 : extern const TargetRegisterClass GR64_NOSP_and_GR64_TCRegClass = {
6677 : &X86MCRegisterClasses[GR64_NOSP_and_GR64_TCRegClassID],
6678 : GR64_NOSP_and_GR64_TCSubClassMask,
6679 : SuperRegIdxSeqs + 1,
6680 : LaneBitmask(0x0000000F),
6681 : 0,
6682 : true, /* HasDisjunctSubRegs */
6683 : false, /* CoveredBySubRegs */
6684 : GR64_NOSP_and_GR64_TCSuperclasses,
6685 : nullptr
6686 : };
6687 :
6688 : extern const TargetRegisterClass GR64_TCW64RegClass = {
6689 : &X86MCRegisterClasses[GR64_TCW64RegClassID],
6690 : GR64_TCW64SubClassMask,
6691 : SuperRegIdxSeqs + 1,
6692 : LaneBitmask(0x0000000F),
6693 : 0,
6694 : true, /* HasDisjunctSubRegs */
6695 : false, /* CoveredBySubRegs */
6696 : GR64_TCW64Superclasses,
6697 : nullptr
6698 : };
6699 :
6700 : extern const TargetRegisterClass GR64_with_sub_16bit_in_GR16_NOREXRegClass = {
6701 : &X86MCRegisterClasses[GR64_with_sub_16bit_in_GR16_NOREXRegClassID],
6702 : GR64_with_sub_16bit_in_GR16_NOREXSubClassMask,
6703 : SuperRegIdxSeqs + 1,
6704 : LaneBitmask(0x0000000F),
6705 : 0,
6706 : true, /* HasDisjunctSubRegs */
6707 : false, /* CoveredBySubRegs */
6708 : GR64_with_sub_16bit_in_GR16_NOREXSuperclasses,
6709 : nullptr
6710 : };
6711 :
6712 : extern const TargetRegisterClass VK64RegClass = {
6713 : &X86MCRegisterClasses[VK64RegClassID],
6714 : VK64SubClassMask,
6715 : SuperRegIdxSeqs + 1,
6716 : LaneBitmask(0x00000001),
6717 : 0,
6718 : false, /* HasDisjunctSubRegs */
6719 : false, /* CoveredBySubRegs */
6720 : VK64Superclasses,
6721 : nullptr
6722 : };
6723 :
6724 : extern const TargetRegisterClass VR64RegClass = {
6725 : &X86MCRegisterClasses[VR64RegClassID],
6726 : VR64SubClassMask,
6727 : SuperRegIdxSeqs + 1,
6728 : LaneBitmask(0x00000001),
6729 : 0,
6730 : false, /* HasDisjunctSubRegs */
6731 : false, /* CoveredBySubRegs */
6732 : NullRegClasses,
6733 : nullptr
6734 : };
6735 :
6736 : extern const TargetRegisterClass GR64_NOREX_NOSPRegClass = {
6737 : &X86MCRegisterClasses[GR64_NOREX_NOSPRegClassID],
6738 : GR64_NOREX_NOSPSubClassMask,
6739 : SuperRegIdxSeqs + 1,
6740 : LaneBitmask(0x0000000F),
6741 : 0,
6742 : true, /* HasDisjunctSubRegs */
6743 : false, /* CoveredBySubRegs */
6744 : GR64_NOREX_NOSPSuperclasses,
6745 : nullptr
6746 : };
6747 :
6748 : extern const TargetRegisterClass GR64_NOSP_and_GR64_TCW64RegClass = {
6749 : &X86MCRegisterClasses[GR64_NOSP_and_GR64_TCW64RegClassID],
6750 : GR64_NOSP_and_GR64_TCW64SubClassMask,
6751 : SuperRegIdxSeqs + 1,
6752 : LaneBitmask(0x0000000F),
6753 : 0,
6754 : true, /* HasDisjunctSubRegs */
6755 : false, /* CoveredBySubRegs */
6756 : GR64_NOSP_and_GR64_TCW64Superclasses,
6757 : nullptr
6758 : };
6759 :
6760 : extern const TargetRegisterClass GR64_TC_and_GR64_TCW64RegClass = {
6761 : &X86MCRegisterClasses[GR64_TC_and_GR64_TCW64RegClassID],
6762 : GR64_TC_and_GR64_TCW64SubClassMask,
6763 : SuperRegIdxSeqs + 1,
6764 : LaneBitmask(0x0000000F),
6765 : 0,
6766 : true, /* HasDisjunctSubRegs */
6767 : false, /* CoveredBySubRegs */
6768 : GR64_TC_and_GR64_TCW64Superclasses,
6769 : nullptr
6770 : };
6771 :
6772 : extern const TargetRegisterClass VK64WMRegClass = {
6773 : &X86MCRegisterClasses[VK64WMRegClassID],
6774 : VK64WMSubClassMask,
6775 : SuperRegIdxSeqs + 1,
6776 : LaneBitmask(0x00000001),
6777 : 0,
6778 : false, /* HasDisjunctSubRegs */
6779 : false, /* CoveredBySubRegs */
6780 : VK64WMSuperclasses,
6781 : nullptr
6782 : };
6783 :
6784 : extern const TargetRegisterClass GR64_NOREX_and_GR64_TCRegClass = {
6785 : &X86MCRegisterClasses[GR64_NOREX_and_GR64_TCRegClassID],
6786 : GR64_NOREX_and_GR64_TCSubClassMask,
6787 : SuperRegIdxSeqs + 1,
6788 : LaneBitmask(0x0000000F),
6789 : 0,
6790 : true, /* HasDisjunctSubRegs */
6791 : false, /* CoveredBySubRegs */
6792 : GR64_NOREX_and_GR64_TCSuperclasses,
6793 : nullptr
6794 : };
6795 :
6796 : extern const TargetRegisterClass GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass = {
6797 : &X86MCRegisterClasses[GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClassID],
6798 : GR64_TC_and_GR64_NOSP_and_GR64_TCW64SubClassMask,
6799 : SuperRegIdxSeqs + 1,
6800 : LaneBitmask(0x0000000F),
6801 : 0,
6802 : true, /* HasDisjunctSubRegs */
6803 : false, /* CoveredBySubRegs */
6804 : GR64_TC_and_GR64_NOSP_and_GR64_TCW64Superclasses,
6805 : nullptr
6806 : };
6807 :
6808 : extern const TargetRegisterClass GR64_NOREX_NOSP_and_GR64_TCRegClass = {
6809 : &X86MCRegisterClasses[GR64_NOREX_NOSP_and_GR64_TCRegClassID],
6810 : GR64_NOREX_NOSP_and_GR64_TCSubClassMask,
6811 : SuperRegIdxSeqs + 1,
6812 : LaneBitmask(0x0000000F),
6813 : 0,
6814 : true, /* HasDisjunctSubRegs */
6815 : false, /* CoveredBySubRegs */
6816 : GR64_NOREX_NOSP_and_GR64_TCSuperclasses,
6817 : nullptr
6818 : };
6819 :
6820 : extern const TargetRegisterClass GR64_ABCDRegClass = {
6821 : &X86MCRegisterClasses[GR64_ABCDRegClassID],
6822 : GR64_ABCDSubClassMask,
6823 : SuperRegIdxSeqs + 1,
6824 : LaneBitmask(0x0000000F),
6825 : 0,
6826 : true, /* HasDisjunctSubRegs */
6827 : false, /* CoveredBySubRegs */
6828 : GR64_ABCDSuperclasses,
6829 : nullptr
6830 : };
6831 :
6832 : extern const TargetRegisterClass GR64_NOREX_and_GR64_TCW64RegClass = {
6833 : &X86MCRegisterClasses[GR64_NOREX_and_GR64_TCW64RegClassID],
6834 : GR64_NOREX_and_GR64_TCW64SubClassMask,
6835 : SuperRegIdxSeqs + 1,
6836 : LaneBitmask(0x0000000F),
6837 : 0,
6838 : true, /* HasDisjunctSubRegs */
6839 : false, /* CoveredBySubRegs */
6840 : GR64_NOREX_and_GR64_TCW64Superclasses,
6841 : nullptr
6842 : };
6843 :
6844 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_TCRegClass = {
6845 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_TCRegClassID],
6846 : GR64_with_sub_32bit_in_GR32_TCSubClassMask,
6847 : SuperRegIdxSeqs + 1,
6848 : LaneBitmask(0x0000000F),
6849 : 0,
6850 : true, /* HasDisjunctSubRegs */
6851 : false, /* CoveredBySubRegs */
6852 : GR64_with_sub_32bit_in_GR32_TCSuperclasses,
6853 : nullptr
6854 : };
6855 :
6856 : extern const TargetRegisterClass GR64_ADRegClass = {
6857 : &X86MCRegisterClasses[GR64_ADRegClassID],
6858 : GR64_ADSubClassMask,
6859 : SuperRegIdxSeqs + 1,
6860 : LaneBitmask(0x0000000F),
6861 : 0,
6862 : true, /* HasDisjunctSubRegs */
6863 : false, /* CoveredBySubRegs */
6864 : GR64_ADSuperclasses,
6865 : nullptr
6866 : };
6867 :
6868 : extern const TargetRegisterClass GR64_and_LOW32_ADDR_ACCESS_RBPRegClass = {
6869 : &X86MCRegisterClasses[GR64_and_LOW32_ADDR_ACCESS_RBPRegClassID],
6870 : GR64_and_LOW32_ADDR_ACCESS_RBPSubClassMask,
6871 : SuperRegIdxSeqs + 1,
6872 : LaneBitmask(0x0000000F),
6873 : 0,
6874 : true, /* HasDisjunctSubRegs */
6875 : false, /* CoveredBySubRegs */
6876 : GR64_and_LOW32_ADDR_ACCESS_RBPSuperclasses,
6877 : nullptr
6878 : };
6879 :
6880 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSPRegClass = {
6881 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BPSPRegClassID],
6882 : GR64_with_sub_32bit_in_GR32_BPSPSubClassMask,
6883 : SuperRegIdxSeqs + 1,
6884 : LaneBitmask(0x0000000F),
6885 : 0,
6886 : true, /* HasDisjunctSubRegs */
6887 : false, /* CoveredBySubRegs */
6888 : GR64_with_sub_32bit_in_GR32_BPSPSuperclasses,
6889 : nullptr
6890 : };
6891 :
6892 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BSIRegClass = {
6893 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BSIRegClassID],
6894 : GR64_with_sub_32bit_in_GR32_BSISubClassMask,
6895 : SuperRegIdxSeqs + 1,
6896 : LaneBitmask(0x0000000F),
6897 : 0,
6898 : true, /* HasDisjunctSubRegs */
6899 : false, /* CoveredBySubRegs */
6900 : GR64_with_sub_32bit_in_GR32_BSISuperclasses,
6901 : nullptr
6902 : };
6903 :
6904 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_CBRegClass = {
6905 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_CBRegClassID],
6906 : GR64_with_sub_32bit_in_GR32_CBSubClassMask,
6907 : SuperRegIdxSeqs + 1,
6908 : LaneBitmask(0x0000000F),
6909 : 0,
6910 : true, /* HasDisjunctSubRegs */
6911 : false, /* CoveredBySubRegs */
6912 : GR64_with_sub_32bit_in_GR32_CBSuperclasses,
6913 : nullptr
6914 : };
6915 :
6916 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DCRegClass = {
6917 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_DCRegClassID],
6918 : GR64_with_sub_32bit_in_GR32_DCSubClassMask,
6919 : SuperRegIdxSeqs + 1,
6920 : LaneBitmask(0x0000000F),
6921 : 0,
6922 : true, /* HasDisjunctSubRegs */
6923 : false, /* CoveredBySubRegs */
6924 : GR64_with_sub_32bit_in_GR32_DCSuperclasses,
6925 : nullptr
6926 : };
6927 :
6928 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DIBPRegClass = {
6929 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_DIBPRegClassID],
6930 : GR64_with_sub_32bit_in_GR32_DIBPSubClassMask,
6931 : SuperRegIdxSeqs + 1,
6932 : LaneBitmask(0x0000000F),
6933 : 0,
6934 : true, /* HasDisjunctSubRegs */
6935 : false, /* CoveredBySubRegs */
6936 : GR64_with_sub_32bit_in_GR32_DIBPSuperclasses,
6937 : nullptr
6938 : };
6939 :
6940 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_SIDIRegClass = {
6941 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_SIDIRegClassID],
6942 : GR64_with_sub_32bit_in_GR32_SIDISubClassMask,
6943 : SuperRegIdxSeqs + 1,
6944 : LaneBitmask(0x0000000F),
6945 : 0,
6946 : true, /* HasDisjunctSubRegs */
6947 : false, /* CoveredBySubRegs */
6948 : GR64_with_sub_32bit_in_GR32_SIDISuperclasses,
6949 : nullptr
6950 : };
6951 :
6952 : extern const TargetRegisterClass GR64_and_LOW32_ADDR_ACCESSRegClass = {
6953 : &X86MCRegisterClasses[GR64_and_LOW32_ADDR_ACCESSRegClassID],
6954 : GR64_and_LOW32_ADDR_ACCESSSubClassMask,
6955 : SuperRegIdxSeqs + 1,
6956 : LaneBitmask(0x0000000F),
6957 : 0,
6958 : true, /* HasDisjunctSubRegs */
6959 : false, /* CoveredBySubRegs */
6960 : GR64_and_LOW32_ADDR_ACCESSSuperclasses,
6961 : nullptr
6962 : };
6963 :
6964 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClass = {
6965 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClassID],
6966 : GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSISubClassMask,
6967 : SuperRegIdxSeqs + 1,
6968 : LaneBitmask(0x0000000F),
6969 : 0,
6970 : true, /* HasDisjunctSubRegs */
6971 : false, /* CoveredBySubRegs */
6972 : GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSISuperclasses,
6973 : nullptr
6974 : };
6975 :
6976 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClass = {
6977 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClassID],
6978 : GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCSubClassMask,
6979 : SuperRegIdxSeqs + 1,
6980 : LaneBitmask(0x0000000F),
6981 : 0,
6982 : true, /* HasDisjunctSubRegs */
6983 : false, /* CoveredBySubRegs */
6984 : GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCSuperclasses,
6985 : nullptr
6986 : };
6987 :
6988 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClass = {
6989 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClassID],
6990 : GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPSubClassMask,
6991 : SuperRegIdxSeqs + 1,
6992 : LaneBitmask(0x0000000F),
6993 : 0,
6994 : true, /* HasDisjunctSubRegs */
6995 : false, /* CoveredBySubRegs */
6996 : GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPSuperclasses,
6997 : nullptr
6998 : };
6999 :
7000 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClass = {
7001 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClassID],
7002 : GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDISubClassMask,
7003 : SuperRegIdxSeqs + 1,
7004 : LaneBitmask(0x0000000F),
7005 : 0,
7006 : true, /* HasDisjunctSubRegs */
7007 : false, /* CoveredBySubRegs */
7008 : GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDISuperclasses,
7009 : nullptr
7010 : };
7011 :
7012 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClass = {
7013 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClassID],
7014 : GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCSubClassMask,
7015 : SuperRegIdxSeqs + 1,
7016 : LaneBitmask(0x0000000F),
7017 : 0,
7018 : true, /* HasDisjunctSubRegs */
7019 : false, /* CoveredBySubRegs */
7020 : GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCSuperclasses,
7021 : nullptr
7022 : };
7023 :
7024 : extern const TargetRegisterClass GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClass = {
7025 : &X86MCRegisterClasses[GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClassID],
7026 : GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDISubClassMask,
7027 : SuperRegIdxSeqs + 1,
7028 : LaneBitmask(0x0000000F),
7029 : 0,
7030 : true, /* HasDisjunctSubRegs */
7031 : false, /* CoveredBySubRegs */
7032 : GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDISuperclasses,
7033 : nullptr
7034 : };
7035 :
7036 : extern const TargetRegisterClass RSTRegClass = {
7037 : &X86MCRegisterClasses[RSTRegClassID],
7038 : RSTSubClassMask,
7039 : SuperRegIdxSeqs + 1,
7040 : LaneBitmask(0x00000001),
7041 : 0,
7042 : false, /* HasDisjunctSubRegs */
7043 : false, /* CoveredBySubRegs */
7044 : NullRegClasses,
7045 : nullptr
7046 : };
7047 :
7048 : extern const TargetRegisterClass RFP80RegClass = {
7049 : &X86MCRegisterClasses[RFP80RegClassID],
7050 : RFP80SubClassMask,
7051 : SuperRegIdxSeqs + 1,
7052 : LaneBitmask(0x00000001),
7053 : 0,
7054 : false, /* HasDisjunctSubRegs */
7055 : false, /* CoveredBySubRegs */
7056 : RFP80Superclasses,
7057 : nullptr
7058 : };
7059 :
7060 : extern const TargetRegisterClass VR128XRegClass = {
7061 : &X86MCRegisterClasses[VR128XRegClassID],
7062 : VR128XSubClassMask,
7063 : SuperRegIdxSeqs + 9,
7064 : LaneBitmask(0x00000001),
7065 : 0,
7066 : false, /* HasDisjunctSubRegs */
7067 : false, /* CoveredBySubRegs */
7068 : VR128XSuperclasses,
7069 : nullptr
7070 : };
7071 :
7072 : extern const TargetRegisterClass VR128RegClass = {
7073 : &X86MCRegisterClasses[VR128RegClassID],
7074 : VR128SubClassMask,
7075 : SuperRegIdxSeqs + 9,
7076 : LaneBitmask(0x00000001),
7077 : 0,
7078 : false, /* HasDisjunctSubRegs */
7079 : false, /* CoveredBySubRegs */
7080 : VR128Superclasses,
7081 : nullptr
7082 : };
7083 :
7084 : extern const TargetRegisterClass VR128HRegClass = {
7085 : &X86MCRegisterClasses[VR128HRegClassID],
7086 : VR128HSubClassMask,
7087 : SuperRegIdxSeqs + 9,
7088 : LaneBitmask(0x00000001),
7089 : 0,
7090 : false, /* HasDisjunctSubRegs */
7091 : false, /* CoveredBySubRegs */
7092 : VR128HSuperclasses,
7093 : nullptr
7094 : };
7095 :
7096 : extern const TargetRegisterClass VR128LRegClass = {
7097 : &X86MCRegisterClasses[VR128LRegClassID],
7098 : VR128LSubClassMask,
7099 : SuperRegIdxSeqs + 9,
7100 : LaneBitmask(0x00000001),
7101 : 0,
7102 : false, /* HasDisjunctSubRegs */
7103 : false, /* CoveredBySubRegs */
7104 : VR128LSuperclasses,
7105 : nullptr
7106 : };
7107 :
7108 : extern const TargetRegisterClass BNDRRegClass = {
7109 : &X86MCRegisterClasses[BNDRRegClassID],
7110 : BNDRSubClassMask,
7111 : SuperRegIdxSeqs + 1,
7112 : LaneBitmask(0x00000001),
7113 : 0,
7114 : false, /* HasDisjunctSubRegs */
7115 : false, /* CoveredBySubRegs */
7116 : NullRegClasses,
7117 : nullptr
7118 : };
7119 :
7120 : extern const TargetRegisterClass VR256XRegClass = {
7121 : &X86MCRegisterClasses[VR256XRegClassID],
7122 : VR256XSubClassMask,
7123 : SuperRegIdxSeqs + 11,
7124 : LaneBitmask(0x00000010),
7125 : 0,
7126 : false, /* HasDisjunctSubRegs */
7127 : false, /* CoveredBySubRegs */
7128 : NullRegClasses,
7129 : nullptr
7130 : };
7131 :
7132 : extern const TargetRegisterClass VR256RegClass = {
7133 : &X86MCRegisterClasses[VR256RegClassID],
7134 : VR256SubClassMask,
7135 : SuperRegIdxSeqs + 11,
7136 : LaneBitmask(0x00000010),
7137 : 0,
7138 : false, /* HasDisjunctSubRegs */
7139 : false, /* CoveredBySubRegs */
7140 : VR256Superclasses,
7141 : nullptr
7142 : };
7143 :
7144 : extern const TargetRegisterClass VR256HRegClass = {
7145 : &X86MCRegisterClasses[VR256HRegClassID],
7146 : VR256HSubClassMask,
7147 : SuperRegIdxSeqs + 11,
7148 : LaneBitmask(0x00000010),
7149 : 0,
7150 : false, /* HasDisjunctSubRegs */
7151 : false, /* CoveredBySubRegs */
7152 : VR256HSuperclasses,
7153 : nullptr
7154 : };
7155 :
7156 : extern const TargetRegisterClass VR256LRegClass = {
7157 : &X86MCRegisterClasses[VR256LRegClassID],
7158 : VR256LSubClassMask,
7159 : SuperRegIdxSeqs + 11,
7160 : LaneBitmask(0x00000010),
7161 : 0,
7162 : false, /* HasDisjunctSubRegs */
7163 : false, /* CoveredBySubRegs */
7164 : VR256LSuperclasses,
7165 : nullptr
7166 : };
7167 :
7168 : extern const TargetRegisterClass VR512RegClass = {
7169 : &X86MCRegisterClasses[VR512RegClassID],
7170 : VR512SubClassMask,
7171 : SuperRegIdxSeqs + 1,
7172 : LaneBitmask(0x00000010),
7173 : 0,
7174 : false, /* HasDisjunctSubRegs */
7175 : false, /* CoveredBySubRegs */
7176 : NullRegClasses,
7177 : nullptr
7178 : };
7179 :
7180 : extern const TargetRegisterClass VR512_with_sub_xmm_in_FR32RegClass = {
7181 : &X86MCRegisterClasses[VR512_with_sub_xmm_in_FR32RegClassID],
7182 : VR512_with_sub_xmm_in_FR32SubClassMask,
7183 : SuperRegIdxSeqs + 1,
7184 : LaneBitmask(0x00000010),
7185 : 0,
7186 : false, /* HasDisjunctSubRegs */
7187 : false, /* CoveredBySubRegs */
7188 : VR512_with_sub_xmm_in_FR32Superclasses,
7189 : nullptr
7190 : };
7191 :
7192 : extern const TargetRegisterClass VR512_with_sub_xmm_in_VR128HRegClass = {
7193 : &X86MCRegisterClasses[VR512_with_sub_xmm_in_VR128HRegClassID],
7194 : VR512_with_sub_xmm_in_VR128HSubClassMask,
7195 : SuperRegIdxSeqs + 1,
7196 : LaneBitmask(0x00000010),
7197 : 0,
7198 : false, /* HasDisjunctSubRegs */
7199 : false, /* CoveredBySubRegs */
7200 : VR512_with_sub_xmm_in_VR128HSuperclasses,
7201 : nullptr
7202 : };
7203 :
7204 : extern const TargetRegisterClass VR512_with_sub_xmm_in_VR128LRegClass = {
7205 : &X86MCRegisterClasses[VR512_with_sub_xmm_in_VR128LRegClassID],
7206 : VR512_with_sub_xmm_in_VR128LSubClassMask,
7207 : SuperRegIdxSeqs + 1,
7208 : LaneBitmask(0x00000010),
7209 : 0,
7210 : false, /* HasDisjunctSubRegs */
7211 : false, /* CoveredBySubRegs */
7212 : VR512_with_sub_xmm_in_VR128LSuperclasses,
7213 : nullptr
7214 : };
7215 :
7216 : } // end namespace X86
7217 :
7218 : namespace {
7219 : const TargetRegisterClass* const RegisterClasses[] = {
7220 : &X86::GR8RegClass,
7221 : &X86::GRH8RegClass,
7222 : &X86::GR8_NOREXRegClass,
7223 : &X86::GR8_ABCD_HRegClass,
7224 : &X86::GR8_ABCD_LRegClass,
7225 : &X86::GRH16RegClass,
7226 : &X86::GR16RegClass,
7227 : &X86::GR16_NOREXRegClass,
7228 : &X86::VK1RegClass,
7229 : &X86::VK16RegClass,
7230 : &X86::VK2RegClass,
7231 : &X86::VK4RegClass,
7232 : &X86::VK8RegClass,
7233 : &X86::VK16WMRegClass,
7234 : &X86::VK1WMRegClass,
7235 : &X86::VK2WMRegClass,
7236 : &X86::VK4WMRegClass,
7237 : &X86::VK8WMRegClass,
7238 : &X86::SEGMENT_REGRegClass,
7239 : &X86::GR16_ABCDRegClass,
7240 : &X86::FPCCRRegClass,
7241 : &X86::FR32XRegClass,
7242 : &X86::LOW32_ADDR_ACCESS_RBPRegClass,
7243 : &X86::LOW32_ADDR_ACCESSRegClass,
7244 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClass,
7245 : &X86::DEBUG_REGRegClass,
7246 : &X86::FR32RegClass,
7247 : &X86::GR32RegClass,
7248 : &X86::GR32_NOSPRegClass,
7249 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClass,
7250 : &X86::GR32_NOREXRegClass,
7251 : &X86::VK32RegClass,
7252 : &X86::GR32_NOREX_NOSPRegClass,
7253 : &X86::RFP32RegClass,
7254 : &X86::VK32WMRegClass,
7255 : &X86::GR32_ABCDRegClass,
7256 : &X86::GR32_TCRegClass,
7257 : &X86::GR32_ADRegClass,
7258 : &X86::GR32_BPSPRegClass,
7259 : &X86::GR32_BSIRegClass,
7260 : &X86::GR32_CBRegClass,
7261 : &X86::GR32_DCRegClass,
7262 : &X86::GR32_DIBPRegClass,
7263 : &X86::GR32_SIDIRegClass,
7264 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_32bitRegClass,
7265 : &X86::CCRRegClass,
7266 : &X86::DFCCRRegClass,
7267 : &X86::GR32_ABCD_and_GR32_BSIRegClass,
7268 : &X86::GR32_AD_and_GR32_DCRegClass,
7269 : &X86::GR32_BPSP_and_GR32_DIBPRegClass,
7270 : &X86::GR32_BSI_and_GR32_SIDIRegClass,
7271 : &X86::GR32_CB_and_GR32_DCRegClass,
7272 : &X86::GR32_DIBP_and_GR32_SIDIRegClass,
7273 : &X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bitRegClass,
7274 : &X86::LOW32_ADDR_ACCESS_with_sub_32bitRegClass,
7275 : &X86::RFP64RegClass,
7276 : &X86::FR64XRegClass,
7277 : &X86::GR64RegClass,
7278 : &X86::CONTROL_REGRegClass,
7279 : &X86::FR64RegClass,
7280 : &X86::GR64_with_sub_8bitRegClass,
7281 : &X86::GR64_NOSPRegClass,
7282 : &X86::GR64_NOREXRegClass,
7283 : &X86::GR64_TCRegClass,
7284 : &X86::GR64_NOSP_and_GR64_TCRegClass,
7285 : &X86::GR64_TCW64RegClass,
7286 : &X86::GR64_with_sub_16bit_in_GR16_NOREXRegClass,
7287 : &X86::VK64RegClass,
7288 : &X86::VR64RegClass,
7289 : &X86::GR64_NOREX_NOSPRegClass,
7290 : &X86::GR64_NOSP_and_GR64_TCW64RegClass,
7291 : &X86::GR64_TC_and_GR64_TCW64RegClass,
7292 : &X86::VK64WMRegClass,
7293 : &X86::GR64_NOREX_and_GR64_TCRegClass,
7294 : &X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClass,
7295 : &X86::GR64_NOREX_NOSP_and_GR64_TCRegClass,
7296 : &X86::GR64_ABCDRegClass,
7297 : &X86::GR64_NOREX_and_GR64_TCW64RegClass,
7298 : &X86::GR64_with_sub_32bit_in_GR32_TCRegClass,
7299 : &X86::GR64_ADRegClass,
7300 : &X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClass,
7301 : &X86::GR64_with_sub_32bit_in_GR32_BPSPRegClass,
7302 : &X86::GR64_with_sub_32bit_in_GR32_BSIRegClass,
7303 : &X86::GR64_with_sub_32bit_in_GR32_CBRegClass,
7304 : &X86::GR64_with_sub_32bit_in_GR32_DCRegClass,
7305 : &X86::GR64_with_sub_32bit_in_GR32_DIBPRegClass,
7306 : &X86::GR64_with_sub_32bit_in_GR32_SIDIRegClass,
7307 : &X86::GR64_and_LOW32_ADDR_ACCESSRegClass,
7308 : &X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClass,
7309 : &X86::GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClass,
7310 : &X86::GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClass,
7311 : &X86::GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClass,
7312 : &X86::GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClass,
7313 : &X86::GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClass,
7314 : &X86::RSTRegClass,
7315 : &X86::RFP80RegClass,
7316 : &X86::VR128XRegClass,
7317 : &X86::VR128RegClass,
7318 : &X86::VR128HRegClass,
7319 : &X86::VR128LRegClass,
7320 : &X86::BNDRRegClass,
7321 : &X86::VR256XRegClass,
7322 : &X86::VR256RegClass,
7323 : &X86::VR256HRegClass,
7324 : &X86::VR256LRegClass,
7325 : &X86::VR512RegClass,
7326 : &X86::VR512_with_sub_xmm_in_FR32RegClass,
7327 : &X86::VR512_with_sub_xmm_in_VR128HRegClass,
7328 : &X86::VR512_with_sub_xmm_in_VR128LRegClass,
7329 : };
7330 : } // end anonymous namespace
7331 :
7332 : static const TargetRegisterInfoDesc X86RegInfoDesc[] = { // Extra Descriptors
7333 : { 0, false },
7334 : { 0, true },
7335 : { 0, true },
7336 : { 0, true },
7337 : { 0, true },
7338 : { 0, true },
7339 : { 0, true },
7340 : { 0, false },
7341 : { 1, true },
7342 : { 0, true },
7343 : { 0, true },
7344 : { 0, true },
7345 : { 0, true },
7346 : { 0, true },
7347 : { 0, false },
7348 : { 0, true },
7349 : { 0, true },
7350 : { 0, false },
7351 : { 1, true },
7352 : { 0, true },
7353 : { 0, true },
7354 : { 0, true },
7355 : { 0, true },
7356 : { 0, true },
7357 : { 0, true },
7358 : { 0, true },
7359 : { 0, true },
7360 : { 0, true },
7361 : { 0, false },
7362 : { 0, false },
7363 : { 0, false },
7364 : { 0, true },
7365 : { 0, true },
7366 : { 0, true },
7367 : { 0, false },
7368 : { 0, true },
7369 : { 0, true },
7370 : { 0, false },
7371 : { 0, false },
7372 : { 0, false },
7373 : { 0, false },
7374 : { 0, false },
7375 : { 0, false },
7376 : { 0, false },
7377 : { 0, false },
7378 : { 0, false },
7379 : { 0, false },
7380 : { 0, true },
7381 : { 0, true },
7382 : { 0, true },
7383 : { 0, true },
7384 : { 0, true },
7385 : { 0, true },
7386 : { 1, true },
7387 : { 0, false },
7388 : { 0, true },
7389 : { 0, true },
7390 : { 0, true },
7391 : { 0, false },
7392 : { 1, true },
7393 : { 0, true },
7394 : { 0, false },
7395 : { 1, true },
7396 : { 0, true },
7397 : { 0, false },
7398 : { 0, true },
7399 : { 0, true },
7400 : { 0, true },
7401 : { 0, true },
7402 : { 0, true },
7403 : { 0, true },
7404 : { 0, true },
7405 : { 0, true },
7406 : { 0, true },
7407 : { 0, true },
7408 : { 0, true },
7409 : { 0, true },
7410 : { 0, true },
7411 : { 0, true },
7412 : { 0, true },
7413 : { 0, true },
7414 : { 0, true },
7415 : { 0, true },
7416 : { 0, true },
7417 : { 0, true },
7418 : { 0, true },
7419 : { 0, true },
7420 : { 0, true },
7421 : { 0, true },
7422 : { 0, true },
7423 : { 0, true },
7424 : { 0, true },
7425 : { 0, true },
7426 : { 0, true },
7427 : { 0, true },
7428 : { 0, true },
7429 : { 0, true },
7430 : { 0, true },
7431 : { 0, true },
7432 : { 0, true },
7433 : { 0, true },
7434 : { 0, true },
7435 : { 0, true },
7436 : { 0, true },
7437 : { 0, true },
7438 : { 0, true },
7439 : { 0, true },
7440 : { 0, true },
7441 : { 0, false },
7442 : { 0, true },
7443 : { 0, true },
7444 : { 0, true },
7445 : { 0, true },
7446 : { 0, true },
7447 : { 0, true },
7448 : { 0, true },
7449 : { 0, true },
7450 : { 0, true },
7451 : { 0, true },
7452 : { 0, true },
7453 : { 0, true },
7454 : { 0, true },
7455 : { 0, true },
7456 : { 0, true },
7457 : { 0, true },
7458 : { 1, true },
7459 : { 1, true },
7460 : { 1, true },
7461 : { 1, true },
7462 : { 1, true },
7463 : { 1, true },
7464 : { 1, true },
7465 : { 1, true },
7466 : { 0, false },
7467 : { 0, false },
7468 : { 0, false },
7469 : { 0, false },
7470 : { 0, false },
7471 : { 0, false },
7472 : { 0, false },
7473 : { 0, false },
7474 : { 0, true },
7475 : { 0, true },
7476 : { 0, true },
7477 : { 0, true },
7478 : { 0, true },
7479 : { 0, true },
7480 : { 0, true },
7481 : { 0, true },
7482 : { 1, true },
7483 : { 1, true },
7484 : { 1, true },
7485 : { 1, true },
7486 : { 1, true },
7487 : { 1, true },
7488 : { 1, true },
7489 : { 1, true },
7490 : { 1, true },
7491 : { 1, true },
7492 : { 1, true },
7493 : { 1, true },
7494 : { 1, true },
7495 : { 1, true },
7496 : { 1, true },
7497 : { 1, true },
7498 : { 1, true },
7499 : { 1, true },
7500 : { 1, true },
7501 : { 1, true },
7502 : { 1, true },
7503 : { 1, true },
7504 : { 1, true },
7505 : { 1, true },
7506 : { 0, true },
7507 : { 0, true },
7508 : { 0, true },
7509 : { 0, true },
7510 : { 0, true },
7511 : { 0, true },
7512 : { 0, true },
7513 : { 0, true },
7514 : { 0, true },
7515 : { 0, true },
7516 : { 0, true },
7517 : { 0, true },
7518 : { 0, true },
7519 : { 0, true },
7520 : { 0, true },
7521 : { 0, true },
7522 : { 0, true },
7523 : { 0, true },
7524 : { 0, true },
7525 : { 0, true },
7526 : { 0, true },
7527 : { 0, true },
7528 : { 0, true },
7529 : { 0, true },
7530 : { 0, true },
7531 : { 0, true },
7532 : { 0, true },
7533 : { 0, true },
7534 : { 0, true },
7535 : { 0, true },
7536 : { 0, true },
7537 : { 0, true },
7538 : { 0, true },
7539 : { 0, true },
7540 : { 0, true },
7541 : { 0, true },
7542 : { 0, true },
7543 : { 0, true },
7544 : { 0, true },
7545 : { 0, true },
7546 : { 0, true },
7547 : { 0, true },
7548 : { 0, true },
7549 : { 0, true },
7550 : { 0, true },
7551 : { 0, true },
7552 : { 0, true },
7553 : { 0, true },
7554 : { 0, true },
7555 : { 0, true },
7556 : { 0, true },
7557 : { 0, true },
7558 : { 0, true },
7559 : { 0, true },
7560 : { 0, true },
7561 : { 0, true },
7562 : { 0, true },
7563 : { 0, true },
7564 : { 0, true },
7565 : { 0, true },
7566 : { 0, true },
7567 : { 0, true },
7568 : { 0, true },
7569 : { 0, true },
7570 : { 1, true },
7571 : { 1, true },
7572 : { 1, true },
7573 : { 1, true },
7574 : { 1, true },
7575 : { 1, true },
7576 : { 1, true },
7577 : { 1, true },
7578 : { 0, false },
7579 : { 0, false },
7580 : { 0, false },
7581 : { 0, false },
7582 : { 0, false },
7583 : { 0, false },
7584 : { 0, false },
7585 : { 0, false },
7586 : { 1, true },
7587 : { 1, true },
7588 : { 1, true },
7589 : { 1, true },
7590 : { 1, true },
7591 : { 1, true },
7592 : { 1, true },
7593 : { 1, true },
7594 : { 1, true },
7595 : { 1, true },
7596 : { 1, true },
7597 : { 1, true },
7598 : { 1, true },
7599 : { 1, true },
7600 : { 1, true },
7601 : { 1, true },
7602 : { 0, false },
7603 : { 0, false },
7604 : { 0, false },
7605 : { 0, false },
7606 : { 0, false },
7607 : { 0, false },
7608 : { 0, false },
7609 : { 0, false },
7610 : };
7611 3940 : unsigned X86GenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const {
7612 : static const uint8_t Rows[1][8] = {
7613 : { 1, 2, 3, 4, 5, 0, 7, 0, },
7614 : };
7615 :
7616 : --IdxA; assert(IdxA < 8);
7617 3940 : --IdxB; assert(IdxB < 8);
7618 3940 : return Rows[0][IdxB];
7619 : }
7620 :
7621 : struct MaskRolOp {
7622 : LaneBitmask Mask;
7623 : uint8_t RotateLeft;
7624 : };
7625 : static const MaskRolOp LaneMaskComposeSequences[] = {
7626 : { LaneBitmask(0xFFFFFFFF), 0 }, { LaneBitmask::getNone(), 0 }, // Sequence 0
7627 : { LaneBitmask(0xFFFFFFFF), 1 }, { LaneBitmask::getNone(), 0 }, // Sequence 2
7628 : { LaneBitmask(0xFFFFFFFF), 2 }, { LaneBitmask::getNone(), 0 }, // Sequence 4
7629 : { LaneBitmask(0xFFFFFFFF), 3 }, { LaneBitmask::getNone(), 0 }, // Sequence 6
7630 : { LaneBitmask(0xFFFFFFFF), 4 }, { LaneBitmask::getNone(), 0 } // Sequence 8
7631 : };
7632 : static const MaskRolOp *const CompositeSequences[] = {
7633 : &LaneMaskComposeSequences[0], // to sub_8bit
7634 : &LaneMaskComposeSequences[2], // to sub_8bit_hi
7635 : &LaneMaskComposeSequences[4], // to sub_8bit_hi_phony
7636 : &LaneMaskComposeSequences[0], // to sub_16bit
7637 : &LaneMaskComposeSequences[6], // to sub_16bit_hi
7638 : &LaneMaskComposeSequences[0], // to sub_32bit
7639 : &LaneMaskComposeSequences[8], // to sub_xmm
7640 : &LaneMaskComposeSequences[0] // to sub_ymm
7641 : };
7642 :
7643 0 : LaneBitmask X86GenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
7644 0 : --IdxA; assert(IdxA < 8 && "Subregister index out of bounds");
7645 : LaneBitmask Result;
7646 0 : for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
7647 0 : LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger();
7648 0 : if (unsigned S = Ops->RotateLeft)
7649 0 : Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S)));
7650 : else
7651 : Result |= LaneBitmask(M);
7652 : }
7653 0 : return Result;
7654 : }
7655 :
7656 0 : LaneBitmask X86GenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
7657 0 : LaneMask &= getSubRegIndexLaneMask(IdxA);
7658 0 : --IdxA; assert(IdxA < 8 && "Subregister index out of bounds");
7659 : LaneBitmask Result;
7660 0 : for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
7661 : LaneBitmask::Type M = LaneMask.getAsInteger();
7662 0 : if (unsigned S = Ops->RotateLeft)
7663 0 : Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S)));
7664 : else
7665 : Result |= LaneBitmask(M);
7666 : }
7667 0 : return Result;
7668 : }
7669 :
7670 569561 : const TargetRegisterClass *X86GenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
7671 : static const uint8_t Table[109][8] = {
7672 : { // GR8
7673 : 0, // sub_8bit
7674 : 0, // sub_8bit_hi
7675 : 0, // sub_8bit_hi_phony
7676 : 0, // sub_16bit
7677 : 0, // sub_16bit_hi
7678 : 0, // sub_32bit
7679 : 0, // sub_xmm
7680 : 0, // sub_ymm
7681 : },
7682 : { // GRH8
7683 : 0, // sub_8bit
7684 : 0, // sub_8bit_hi
7685 : 0, // sub_8bit_hi_phony
7686 : 0, // sub_16bit
7687 : 0, // sub_16bit_hi
7688 : 0, // sub_32bit
7689 : 0, // sub_xmm
7690 : 0, // sub_ymm
7691 : },
7692 : { // GR8_NOREX
7693 : 0, // sub_8bit
7694 : 0, // sub_8bit_hi
7695 : 0, // sub_8bit_hi_phony
7696 : 0, // sub_16bit
7697 : 0, // sub_16bit_hi
7698 : 0, // sub_32bit
7699 : 0, // sub_xmm
7700 : 0, // sub_ymm
7701 : },
7702 : { // GR8_ABCD_H
7703 : 0, // sub_8bit
7704 : 0, // sub_8bit_hi
7705 : 0, // sub_8bit_hi_phony
7706 : 0, // sub_16bit
7707 : 0, // sub_16bit_hi
7708 : 0, // sub_32bit
7709 : 0, // sub_xmm
7710 : 0, // sub_ymm
7711 : },
7712 : { // GR8_ABCD_L
7713 : 0, // sub_8bit
7714 : 0, // sub_8bit_hi
7715 : 0, // sub_8bit_hi_phony
7716 : 0, // sub_16bit
7717 : 0, // sub_16bit_hi
7718 : 0, // sub_32bit
7719 : 0, // sub_xmm
7720 : 0, // sub_ymm
7721 : },
7722 : { // GRH16
7723 : 0, // sub_8bit
7724 : 0, // sub_8bit_hi
7725 : 0, // sub_8bit_hi_phony
7726 : 0, // sub_16bit
7727 : 0, // sub_16bit_hi
7728 : 0, // sub_32bit
7729 : 0, // sub_xmm
7730 : 0, // sub_ymm
7731 : },
7732 : { // GR16
7733 : 7, // sub_8bit -> GR16
7734 : 20, // sub_8bit_hi -> GR16_ABCD
7735 : 0, // sub_8bit_hi_phony
7736 : 0, // sub_16bit
7737 : 0, // sub_16bit_hi
7738 : 0, // sub_32bit
7739 : 0, // sub_xmm
7740 : 0, // sub_ymm
7741 : },
7742 : { // GR16_NOREX
7743 : 8, // sub_8bit -> GR16_NOREX
7744 : 20, // sub_8bit_hi -> GR16_ABCD
7745 : 0, // sub_8bit_hi_phony
7746 : 0, // sub_16bit
7747 : 0, // sub_16bit_hi
7748 : 0, // sub_32bit
7749 : 0, // sub_xmm
7750 : 0, // sub_ymm
7751 : },
7752 : { // VK1
7753 : 0, // sub_8bit
7754 : 0, // sub_8bit_hi
7755 : 0, // sub_8bit_hi_phony
7756 : 0, // sub_16bit
7757 : 0, // sub_16bit_hi
7758 : 0, // sub_32bit
7759 : 0, // sub_xmm
7760 : 0, // sub_ymm
7761 : },
7762 : { // VK16
7763 : 0, // sub_8bit
7764 : 0, // sub_8bit_hi
7765 : 0, // sub_8bit_hi_phony
7766 : 0, // sub_16bit
7767 : 0, // sub_16bit_hi
7768 : 0, // sub_32bit
7769 : 0, // sub_xmm
7770 : 0, // sub_ymm
7771 : },
7772 : { // VK2
7773 : 0, // sub_8bit
7774 : 0, // sub_8bit_hi
7775 : 0, // sub_8bit_hi_phony
7776 : 0, // sub_16bit
7777 : 0, // sub_16bit_hi
7778 : 0, // sub_32bit
7779 : 0, // sub_xmm
7780 : 0, // sub_ymm
7781 : },
7782 : { // VK4
7783 : 0, // sub_8bit
7784 : 0, // sub_8bit_hi
7785 : 0, // sub_8bit_hi_phony
7786 : 0, // sub_16bit
7787 : 0, // sub_16bit_hi
7788 : 0, // sub_32bit
7789 : 0, // sub_xmm
7790 : 0, // sub_ymm
7791 : },
7792 : { // VK8
7793 : 0, // sub_8bit
7794 : 0, // sub_8bit_hi
7795 : 0, // sub_8bit_hi_phony
7796 : 0, // sub_16bit
7797 : 0, // sub_16bit_hi
7798 : 0, // sub_32bit
7799 : 0, // sub_xmm
7800 : 0, // sub_ymm
7801 : },
7802 : { // VK16WM
7803 : 0, // sub_8bit
7804 : 0, // sub_8bit_hi
7805 : 0, // sub_8bit_hi_phony
7806 : 0, // sub_16bit
7807 : 0, // sub_16bit_hi
7808 : 0, // sub_32bit
7809 : 0, // sub_xmm
7810 : 0, // sub_ymm
7811 : },
7812 : { // VK1WM
7813 : 0, // sub_8bit
7814 : 0, // sub_8bit_hi
7815 : 0, // sub_8bit_hi_phony
7816 : 0, // sub_16bit
7817 : 0, // sub_16bit_hi
7818 : 0, // sub_32bit
7819 : 0, // sub_xmm
7820 : 0, // sub_ymm
7821 : },
7822 : { // VK2WM
7823 : 0, // sub_8bit
7824 : 0, // sub_8bit_hi
7825 : 0, // sub_8bit_hi_phony
7826 : 0, // sub_16bit
7827 : 0, // sub_16bit_hi
7828 : 0, // sub_32bit
7829 : 0, // sub_xmm
7830 : 0, // sub_ymm
7831 : },
7832 : { // VK4WM
7833 : 0, // sub_8bit
7834 : 0, // sub_8bit_hi
7835 : 0, // sub_8bit_hi_phony
7836 : 0, // sub_16bit
7837 : 0, // sub_16bit_hi
7838 : 0, // sub_32bit
7839 : 0, // sub_xmm
7840 : 0, // sub_ymm
7841 : },
7842 : { // VK8WM
7843 : 0, // sub_8bit
7844 : 0, // sub_8bit_hi
7845 : 0, // sub_8bit_hi_phony
7846 : 0, // sub_16bit
7847 : 0, // sub_16bit_hi
7848 : 0, // sub_32bit
7849 : 0, // sub_xmm
7850 : 0, // sub_ymm
7851 : },
7852 : { // SEGMENT_REG
7853 : 0, // sub_8bit
7854 : 0, // sub_8bit_hi
7855 : 0, // sub_8bit_hi_phony
7856 : 0, // sub_16bit
7857 : 0, // sub_16bit_hi
7858 : 0, // sub_32bit
7859 : 0, // sub_xmm
7860 : 0, // sub_ymm
7861 : },
7862 : { // GR16_ABCD
7863 : 20, // sub_8bit -> GR16_ABCD
7864 : 20, // sub_8bit_hi -> GR16_ABCD
7865 : 0, // sub_8bit_hi_phony
7866 : 0, // sub_16bit
7867 : 0, // sub_16bit_hi
7868 : 0, // sub_32bit
7869 : 0, // sub_xmm
7870 : 0, // sub_ymm
7871 : },
7872 : { // FPCCR
7873 : 0, // sub_8bit
7874 : 0, // sub_8bit_hi
7875 : 0, // sub_8bit_hi_phony
7876 : 0, // sub_16bit
7877 : 0, // sub_16bit_hi
7878 : 0, // sub_32bit
7879 : 0, // sub_xmm
7880 : 0, // sub_ymm
7881 : },
7882 : { // FR32X
7883 : 0, // sub_8bit
7884 : 0, // sub_8bit_hi
7885 : 0, // sub_8bit_hi_phony
7886 : 0, // sub_16bit
7887 : 0, // sub_16bit_hi
7888 : 0, // sub_32bit
7889 : 0, // sub_xmm
7890 : 0, // sub_ymm
7891 : },
7892 : { // LOW32_ADDR_ACCESS_RBP
7893 : 25, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit
7894 : 36, // sub_8bit_hi -> GR32_ABCD
7895 : 0, // sub_8bit_hi_phony
7896 : 23, // sub_16bit -> LOW32_ADDR_ACCESS_RBP
7897 : 0, // sub_16bit_hi
7898 : 45, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_32bit
7899 : 0, // sub_xmm
7900 : 0, // sub_ymm
7901 : },
7902 : { // LOW32_ADDR_ACCESS
7903 : 28, // sub_8bit -> GR32
7904 : 36, // sub_8bit_hi -> GR32_ABCD
7905 : 0, // sub_8bit_hi_phony
7906 : 24, // sub_16bit -> LOW32_ADDR_ACCESS
7907 : 0, // sub_16bit_hi
7908 : 55, // sub_32bit -> LOW32_ADDR_ACCESS_with_sub_32bit
7909 : 0, // sub_xmm
7910 : 0, // sub_ymm
7911 : },
7912 : { // LOW32_ADDR_ACCESS_RBP_with_sub_8bit
7913 : 25, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit
7914 : 36, // sub_8bit_hi -> GR32_ABCD
7915 : 0, // sub_8bit_hi_phony
7916 : 25, // sub_16bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit
7917 : 0, // sub_16bit_hi
7918 : 54, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
7919 : 0, // sub_xmm
7920 : 0, // sub_ymm
7921 : },
7922 : { // DEBUG_REG
7923 : 0, // sub_8bit
7924 : 0, // sub_8bit_hi
7925 : 0, // sub_8bit_hi_phony
7926 : 0, // sub_16bit
7927 : 0, // sub_16bit_hi
7928 : 0, // sub_32bit
7929 : 0, // sub_xmm
7930 : 0, // sub_ymm
7931 : },
7932 : { // FR32
7933 : 0, // sub_8bit
7934 : 0, // sub_8bit_hi
7935 : 0, // sub_8bit_hi_phony
7936 : 0, // sub_16bit
7937 : 0, // sub_16bit_hi
7938 : 0, // sub_32bit
7939 : 0, // sub_xmm
7940 : 0, // sub_ymm
7941 : },
7942 : { // GR32
7943 : 28, // sub_8bit -> GR32
7944 : 36, // sub_8bit_hi -> GR32_ABCD
7945 : 0, // sub_8bit_hi_phony
7946 : 28, // sub_16bit -> GR32
7947 : 0, // sub_16bit_hi
7948 : 0, // sub_32bit
7949 : 0, // sub_xmm
7950 : 0, // sub_ymm
7951 : },
7952 : { // GR32_NOSP
7953 : 29, // sub_8bit -> GR32_NOSP
7954 : 36, // sub_8bit_hi -> GR32_ABCD
7955 : 0, // sub_8bit_hi_phony
7956 : 29, // sub_16bit -> GR32_NOSP
7957 : 0, // sub_16bit_hi
7958 : 0, // sub_32bit
7959 : 0, // sub_xmm
7960 : 0, // sub_ymm
7961 : },
7962 : { // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX
7963 : 30, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX
7964 : 36, // sub_8bit_hi -> GR32_ABCD
7965 : 0, // sub_8bit_hi_phony
7966 : 30, // sub_16bit -> LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX
7967 : 0, // sub_16bit_hi
7968 : 54, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
7969 : 0, // sub_xmm
7970 : 0, // sub_ymm
7971 : },
7972 : { // GR32_NOREX
7973 : 31, // sub_8bit -> GR32_NOREX
7974 : 36, // sub_8bit_hi -> GR32_ABCD
7975 : 0, // sub_8bit_hi_phony
7976 : 31, // sub_16bit -> GR32_NOREX
7977 : 0, // sub_16bit_hi
7978 : 0, // sub_32bit
7979 : 0, // sub_xmm
7980 : 0, // sub_ymm
7981 : },
7982 : { // VK32
7983 : 0, // sub_8bit
7984 : 0, // sub_8bit_hi
7985 : 0, // sub_8bit_hi_phony
7986 : 0, // sub_16bit
7987 : 0, // sub_16bit_hi
7988 : 0, // sub_32bit
7989 : 0, // sub_xmm
7990 : 0, // sub_ymm
7991 : },
7992 : { // GR32_NOREX_NOSP
7993 : 33, // sub_8bit -> GR32_NOREX_NOSP
7994 : 36, // sub_8bit_hi -> GR32_ABCD
7995 : 0, // sub_8bit_hi_phony
7996 : 33, // sub_16bit -> GR32_NOREX_NOSP
7997 : 0, // sub_16bit_hi
7998 : 0, // sub_32bit
7999 : 0, // sub_xmm
8000 : 0, // sub_ymm
8001 : },
8002 : { // RFP32
8003 : 0, // sub_8bit
8004 : 0, // sub_8bit_hi
8005 : 0, // sub_8bit_hi_phony
8006 : 0, // sub_16bit
8007 : 0, // sub_16bit_hi
8008 : 0, // sub_32bit
8009 : 0, // sub_xmm
8010 : 0, // sub_ymm
8011 : },
8012 : { // VK32WM
8013 : 0, // sub_8bit
8014 : 0, // sub_8bit_hi
8015 : 0, // sub_8bit_hi_phony
8016 : 0, // sub_16bit
8017 : 0, // sub_16bit_hi
8018 : 0, // sub_32bit
8019 : 0, // sub_xmm
8020 : 0, // sub_ymm
8021 : },
8022 : { // GR32_ABCD
8023 : 36, // sub_8bit -> GR32_ABCD
8024 : 36, // sub_8bit_hi -> GR32_ABCD
8025 : 0, // sub_8bit_hi_phony
8026 : 36, // sub_16bit -> GR32_ABCD
8027 : 0, // sub_16bit_hi
8028 : 0, // sub_32bit
8029 : 0, // sub_xmm
8030 : 0, // sub_ymm
8031 : },
8032 : { // GR32_TC
8033 : 37, // sub_8bit -> GR32_TC
8034 : 37, // sub_8bit_hi -> GR32_TC
8035 : 0, // sub_8bit_hi_phony
8036 : 37, // sub_16bit -> GR32_TC
8037 : 0, // sub_16bit_hi
8038 : 0, // sub_32bit
8039 : 0, // sub_xmm
8040 : 0, // sub_ymm
8041 : },
8042 : { // GR32_AD
8043 : 38, // sub_8bit -> GR32_AD
8044 : 38, // sub_8bit_hi -> GR32_AD
8045 : 0, // sub_8bit_hi_phony
8046 : 38, // sub_16bit -> GR32_AD
8047 : 0, // sub_16bit_hi
8048 : 0, // sub_32bit
8049 : 0, // sub_xmm
8050 : 0, // sub_ymm
8051 : },
8052 : { // GR32_BPSP
8053 : 39, // sub_8bit -> GR32_BPSP
8054 : 0, // sub_8bit_hi
8055 : 0, // sub_8bit_hi_phony
8056 : 39, // sub_16bit -> GR32_BPSP
8057 : 0, // sub_16bit_hi
8058 : 0, // sub_32bit
8059 : 0, // sub_xmm
8060 : 0, // sub_ymm
8061 : },
8062 : { // GR32_BSI
8063 : 40, // sub_8bit -> GR32_BSI
8064 : 48, // sub_8bit_hi -> GR32_ABCD_and_GR32_BSI
8065 : 0, // sub_8bit_hi_phony
8066 : 40, // sub_16bit -> GR32_BSI
8067 : 0, // sub_16bit_hi
8068 : 0, // sub_32bit
8069 : 0, // sub_xmm
8070 : 0, // sub_ymm
8071 : },
8072 : { // GR32_CB
8073 : 41, // sub_8bit -> GR32_CB
8074 : 41, // sub_8bit_hi -> GR32_CB
8075 : 0, // sub_8bit_hi_phony
8076 : 41, // sub_16bit -> GR32_CB
8077 : 0, // sub_16bit_hi
8078 : 0, // sub_32bit
8079 : 0, // sub_xmm
8080 : 0, // sub_ymm
8081 : },
8082 : { // GR32_DC
8083 : 42, // sub_8bit -> GR32_DC
8084 : 42, // sub_8bit_hi -> GR32_DC
8085 : 0, // sub_8bit_hi_phony
8086 : 42, // sub_16bit -> GR32_DC
8087 : 0, // sub_16bit_hi
8088 : 0, // sub_32bit
8089 : 0, // sub_xmm
8090 : 0, // sub_ymm
8091 : },
8092 : { // GR32_DIBP
8093 : 43, // sub_8bit -> GR32_DIBP
8094 : 0, // sub_8bit_hi
8095 : 0, // sub_8bit_hi_phony
8096 : 43, // sub_16bit -> GR32_DIBP
8097 : 0, // sub_16bit_hi
8098 : 0, // sub_32bit
8099 : 0, // sub_xmm
8100 : 0, // sub_ymm
8101 : },
8102 : { // GR32_SIDI
8103 : 44, // sub_8bit -> GR32_SIDI
8104 : 0, // sub_8bit_hi
8105 : 0, // sub_8bit_hi_phony
8106 : 44, // sub_16bit -> GR32_SIDI
8107 : 0, // sub_16bit_hi
8108 : 0, // sub_32bit
8109 : 0, // sub_xmm
8110 : 0, // sub_ymm
8111 : },
8112 : { // LOW32_ADDR_ACCESS_RBP_with_sub_32bit
8113 : 54, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
8114 : 0, // sub_8bit_hi
8115 : 0, // sub_8bit_hi_phony
8116 : 45, // sub_16bit -> LOW32_ADDR_ACCESS_RBP_with_sub_32bit
8117 : 0, // sub_16bit_hi
8118 : 45, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_32bit
8119 : 0, // sub_xmm
8120 : 0, // sub_ymm
8121 : },
8122 : { // CCR
8123 : 0, // sub_8bit
8124 : 0, // sub_8bit_hi
8125 : 0, // sub_8bit_hi_phony
8126 : 0, // sub_16bit
8127 : 0, // sub_16bit_hi
8128 : 0, // sub_32bit
8129 : 0, // sub_xmm
8130 : 0, // sub_ymm
8131 : },
8132 : { // DFCCR
8133 : 0, // sub_8bit
8134 : 0, // sub_8bit_hi
8135 : 0, // sub_8bit_hi_phony
8136 : 0, // sub_16bit
8137 : 0, // sub_16bit_hi
8138 : 0, // sub_32bit
8139 : 0, // sub_xmm
8140 : 0, // sub_ymm
8141 : },
8142 : { // GR32_ABCD_and_GR32_BSI
8143 : 48, // sub_8bit -> GR32_ABCD_and_GR32_BSI
8144 : 48, // sub_8bit_hi -> GR32_ABCD_and_GR32_BSI
8145 : 0, // sub_8bit_hi_phony
8146 : 48, // sub_16bit -> GR32_ABCD_and_GR32_BSI
8147 : 0, // sub_16bit_hi
8148 : 0, // sub_32bit
8149 : 0, // sub_xmm
8150 : 0, // sub_ymm
8151 : },
8152 : { // GR32_AD_and_GR32_DC
8153 : 49, // sub_8bit -> GR32_AD_and_GR32_DC
8154 : 49, // sub_8bit_hi -> GR32_AD_and_GR32_DC
8155 : 0, // sub_8bit_hi_phony
8156 : 49, // sub_16bit -> GR32_AD_and_GR32_DC
8157 : 0, // sub_16bit_hi
8158 : 0, // sub_32bit
8159 : 0, // sub_xmm
8160 : 0, // sub_ymm
8161 : },
8162 : { // GR32_BPSP_and_GR32_DIBP
8163 : 50, // sub_8bit -> GR32_BPSP_and_GR32_DIBP
8164 : 0, // sub_8bit_hi
8165 : 0, // sub_8bit_hi_phony
8166 : 50, // sub_16bit -> GR32_BPSP_and_GR32_DIBP
8167 : 0, // sub_16bit_hi
8168 : 0, // sub_32bit
8169 : 0, // sub_xmm
8170 : 0, // sub_ymm
8171 : },
8172 : { // GR32_BSI_and_GR32_SIDI
8173 : 51, // sub_8bit -> GR32_BSI_and_GR32_SIDI
8174 : 0, // sub_8bit_hi
8175 : 0, // sub_8bit_hi_phony
8176 : 51, // sub_16bit -> GR32_BSI_and_GR32_SIDI
8177 : 0, // sub_16bit_hi
8178 : 0, // sub_32bit
8179 : 0, // sub_xmm
8180 : 0, // sub_ymm
8181 : },
8182 : { // GR32_CB_and_GR32_DC
8183 : 52, // sub_8bit -> GR32_CB_and_GR32_DC
8184 : 52, // sub_8bit_hi -> GR32_CB_and_GR32_DC
8185 : 0, // sub_8bit_hi_phony
8186 : 52, // sub_16bit -> GR32_CB_and_GR32_DC
8187 : 0, // sub_16bit_hi
8188 : 0, // sub_32bit
8189 : 0, // sub_xmm
8190 : 0, // sub_ymm
8191 : },
8192 : { // GR32_DIBP_and_GR32_SIDI
8193 : 53, // sub_8bit -> GR32_DIBP_and_GR32_SIDI
8194 : 0, // sub_8bit_hi
8195 : 0, // sub_8bit_hi_phony
8196 : 53, // sub_16bit -> GR32_DIBP_and_GR32_SIDI
8197 : 0, // sub_16bit_hi
8198 : 0, // sub_32bit
8199 : 0, // sub_xmm
8200 : 0, // sub_ymm
8201 : },
8202 : { // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
8203 : 54, // sub_8bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
8204 : 0, // sub_8bit_hi
8205 : 0, // sub_8bit_hi_phony
8206 : 54, // sub_16bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
8207 : 0, // sub_16bit_hi
8208 : 54, // sub_32bit -> LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
8209 : 0, // sub_xmm
8210 : 0, // sub_ymm
8211 : },
8212 : { // LOW32_ADDR_ACCESS_with_sub_32bit
8213 : 0, // sub_8bit
8214 : 0, // sub_8bit_hi
8215 : 0, // sub_8bit_hi_phony
8216 : 55, // sub_16bit -> LOW32_ADDR_ACCESS_with_sub_32bit
8217 : 0, // sub_16bit_hi
8218 : 55, // sub_32bit -> LOW32_ADDR_ACCESS_with_sub_32bit
8219 : 0, // sub_xmm
8220 : 0, // sub_ymm
8221 : },
8222 : { // RFP64
8223 : 0, // sub_8bit
8224 : 0, // sub_8bit_hi
8225 : 0, // sub_8bit_hi_phony
8226 : 0, // sub_16bit
8227 : 0, // sub_16bit_hi
8228 : 0, // sub_32bit
8229 : 0, // sub_xmm
8230 : 0, // sub_ymm
8231 : },
8232 : { // FR64X
8233 : 0, // sub_8bit
8234 : 0, // sub_8bit_hi
8235 : 0, // sub_8bit_hi_phony
8236 : 0, // sub_16bit
8237 : 0, // sub_16bit_hi
8238 : 0, // sub_32bit
8239 : 0, // sub_xmm
8240 : 0, // sub_ymm
8241 : },
8242 : { // GR64
8243 : 61, // sub_8bit -> GR64_with_sub_8bit
8244 : 77, // sub_8bit_hi -> GR64_ABCD
8245 : 0, // sub_8bit_hi_phony
8246 : 58, // sub_16bit -> GR64
8247 : 0, // sub_16bit_hi
8248 : 58, // sub_32bit -> GR64
8249 : 0, // sub_xmm
8250 : 0, // sub_ymm
8251 : },
8252 : { // CONTROL_REG
8253 : 0, // sub_8bit
8254 : 0, // sub_8bit_hi
8255 : 0, // sub_8bit_hi_phony
8256 : 0, // sub_16bit
8257 : 0, // sub_16bit_hi
8258 : 0, // sub_32bit
8259 : 0, // sub_xmm
8260 : 0, // sub_ymm
8261 : },
8262 : { // FR64
8263 : 0, // sub_8bit
8264 : 0, // sub_8bit_hi
8265 : 0, // sub_8bit_hi_phony
8266 : 0, // sub_16bit
8267 : 0, // sub_16bit_hi
8268 : 0, // sub_32bit
8269 : 0, // sub_xmm
8270 : 0, // sub_ymm
8271 : },
8272 : { // GR64_with_sub_8bit
8273 : 61, // sub_8bit -> GR64_with_sub_8bit
8274 : 77, // sub_8bit_hi -> GR64_ABCD
8275 : 0, // sub_8bit_hi_phony
8276 : 61, // sub_16bit -> GR64_with_sub_8bit
8277 : 0, // sub_16bit_hi
8278 : 61, // sub_32bit -> GR64_with_sub_8bit
8279 : 0, // sub_xmm
8280 : 0, // sub_ymm
8281 : },
8282 : { // GR64_NOSP
8283 : 62, // sub_8bit -> GR64_NOSP
8284 : 77, // sub_8bit_hi -> GR64_ABCD
8285 : 0, // sub_8bit_hi_phony
8286 : 62, // sub_16bit -> GR64_NOSP
8287 : 0, // sub_16bit_hi
8288 : 62, // sub_32bit -> GR64_NOSP
8289 : 0, // sub_xmm
8290 : 0, // sub_ymm
8291 : },
8292 : { // GR64_NOREX
8293 : 67, // sub_8bit -> GR64_with_sub_16bit_in_GR16_NOREX
8294 : 77, // sub_8bit_hi -> GR64_ABCD
8295 : 0, // sub_8bit_hi_phony
8296 : 63, // sub_16bit -> GR64_NOREX
8297 : 0, // sub_16bit_hi
8298 : 63, // sub_32bit -> GR64_NOREX
8299 : 0, // sub_xmm
8300 : 0, // sub_ymm
8301 : },
8302 : { // GR64_TC
8303 : 65, // sub_8bit -> GR64_NOSP_and_GR64_TC
8304 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8305 : 0, // sub_8bit_hi_phony
8306 : 64, // sub_16bit -> GR64_TC
8307 : 0, // sub_16bit_hi
8308 : 64, // sub_32bit -> GR64_TC
8309 : 0, // sub_xmm
8310 : 0, // sub_ymm
8311 : },
8312 : { // GR64_NOSP_and_GR64_TC
8313 : 65, // sub_8bit -> GR64_NOSP_and_GR64_TC
8314 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8315 : 0, // sub_8bit_hi_phony
8316 : 65, // sub_16bit -> GR64_NOSP_and_GR64_TC
8317 : 0, // sub_16bit_hi
8318 : 65, // sub_32bit -> GR64_NOSP_and_GR64_TC
8319 : 0, // sub_xmm
8320 : 0, // sub_ymm
8321 : },
8322 : { // GR64_TCW64
8323 : 71, // sub_8bit -> GR64_NOSP_and_GR64_TCW64
8324 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8325 : 0, // sub_8bit_hi_phony
8326 : 66, // sub_16bit -> GR64_TCW64
8327 : 0, // sub_16bit_hi
8328 : 66, // sub_32bit -> GR64_TCW64
8329 : 0, // sub_xmm
8330 : 0, // sub_ymm
8331 : },
8332 : { // GR64_with_sub_16bit_in_GR16_NOREX
8333 : 67, // sub_8bit -> GR64_with_sub_16bit_in_GR16_NOREX
8334 : 77, // sub_8bit_hi -> GR64_ABCD
8335 : 0, // sub_8bit_hi_phony
8336 : 67, // sub_16bit -> GR64_with_sub_16bit_in_GR16_NOREX
8337 : 0, // sub_16bit_hi
8338 : 67, // sub_32bit -> GR64_with_sub_16bit_in_GR16_NOREX
8339 : 0, // sub_xmm
8340 : 0, // sub_ymm
8341 : },
8342 : { // VK64
8343 : 0, // sub_8bit
8344 : 0, // sub_8bit_hi
8345 : 0, // sub_8bit_hi_phony
8346 : 0, // sub_16bit
8347 : 0, // sub_16bit_hi
8348 : 0, // sub_32bit
8349 : 0, // sub_xmm
8350 : 0, // sub_ymm
8351 : },
8352 : { // VR64
8353 : 0, // sub_8bit
8354 : 0, // sub_8bit_hi
8355 : 0, // sub_8bit_hi_phony
8356 : 0, // sub_16bit
8357 : 0, // sub_16bit_hi
8358 : 0, // sub_32bit
8359 : 0, // sub_xmm
8360 : 0, // sub_ymm
8361 : },
8362 : { // GR64_NOREX_NOSP
8363 : 70, // sub_8bit -> GR64_NOREX_NOSP
8364 : 77, // sub_8bit_hi -> GR64_ABCD
8365 : 0, // sub_8bit_hi_phony
8366 : 70, // sub_16bit -> GR64_NOREX_NOSP
8367 : 0, // sub_16bit_hi
8368 : 70, // sub_32bit -> GR64_NOREX_NOSP
8369 : 0, // sub_xmm
8370 : 0, // sub_ymm
8371 : },
8372 : { // GR64_NOSP_and_GR64_TCW64
8373 : 71, // sub_8bit -> GR64_NOSP_and_GR64_TCW64
8374 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8375 : 0, // sub_8bit_hi_phony
8376 : 71, // sub_16bit -> GR64_NOSP_and_GR64_TCW64
8377 : 0, // sub_16bit_hi
8378 : 71, // sub_32bit -> GR64_NOSP_and_GR64_TCW64
8379 : 0, // sub_xmm
8380 : 0, // sub_ymm
8381 : },
8382 : { // GR64_TC_and_GR64_TCW64
8383 : 75, // sub_8bit -> GR64_TC_and_GR64_NOSP_and_GR64_TCW64
8384 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8385 : 0, // sub_8bit_hi_phony
8386 : 72, // sub_16bit -> GR64_TC_and_GR64_TCW64
8387 : 0, // sub_16bit_hi
8388 : 72, // sub_32bit -> GR64_TC_and_GR64_TCW64
8389 : 0, // sub_xmm
8390 : 0, // sub_ymm
8391 : },
8392 : { // VK64WM
8393 : 0, // sub_8bit
8394 : 0, // sub_8bit_hi
8395 : 0, // sub_8bit_hi_phony
8396 : 0, // sub_16bit
8397 : 0, // sub_16bit_hi
8398 : 0, // sub_32bit
8399 : 0, // sub_xmm
8400 : 0, // sub_ymm
8401 : },
8402 : { // GR64_NOREX_and_GR64_TC
8403 : 76, // sub_8bit -> GR64_NOREX_NOSP_and_GR64_TC
8404 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8405 : 0, // sub_8bit_hi_phony
8406 : 74, // sub_16bit -> GR64_NOREX_and_GR64_TC
8407 : 0, // sub_16bit_hi
8408 : 74, // sub_32bit -> GR64_NOREX_and_GR64_TC
8409 : 0, // sub_xmm
8410 : 0, // sub_ymm
8411 : },
8412 : { // GR64_TC_and_GR64_NOSP_and_GR64_TCW64
8413 : 75, // sub_8bit -> GR64_TC_and_GR64_NOSP_and_GR64_TCW64
8414 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8415 : 0, // sub_8bit_hi_phony
8416 : 75, // sub_16bit -> GR64_TC_and_GR64_NOSP_and_GR64_TCW64
8417 : 0, // sub_16bit_hi
8418 : 75, // sub_32bit -> GR64_TC_and_GR64_NOSP_and_GR64_TCW64
8419 : 0, // sub_xmm
8420 : 0, // sub_ymm
8421 : },
8422 : { // GR64_NOREX_NOSP_and_GR64_TC
8423 : 76, // sub_8bit -> GR64_NOREX_NOSP_and_GR64_TC
8424 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8425 : 0, // sub_8bit_hi_phony
8426 : 76, // sub_16bit -> GR64_NOREX_NOSP_and_GR64_TC
8427 : 0, // sub_16bit_hi
8428 : 76, // sub_32bit -> GR64_NOREX_NOSP_and_GR64_TC
8429 : 0, // sub_xmm
8430 : 0, // sub_ymm
8431 : },
8432 : { // GR64_ABCD
8433 : 77, // sub_8bit -> GR64_ABCD
8434 : 77, // sub_8bit_hi -> GR64_ABCD
8435 : 0, // sub_8bit_hi_phony
8436 : 77, // sub_16bit -> GR64_ABCD
8437 : 0, // sub_16bit_hi
8438 : 77, // sub_32bit -> GR64_ABCD
8439 : 0, // sub_xmm
8440 : 0, // sub_ymm
8441 : },
8442 : { // GR64_NOREX_and_GR64_TCW64
8443 : 79, // sub_8bit -> GR64_with_sub_32bit_in_GR32_TC
8444 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8445 : 0, // sub_8bit_hi_phony
8446 : 78, // sub_16bit -> GR64_NOREX_and_GR64_TCW64
8447 : 0, // sub_16bit_hi
8448 : 78, // sub_32bit -> GR64_NOREX_and_GR64_TCW64
8449 : 0, // sub_xmm
8450 : 0, // sub_ymm
8451 : },
8452 : { // GR64_with_sub_32bit_in_GR32_TC
8453 : 79, // sub_8bit -> GR64_with_sub_32bit_in_GR32_TC
8454 : 79, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_TC
8455 : 0, // sub_8bit_hi_phony
8456 : 79, // sub_16bit -> GR64_with_sub_32bit_in_GR32_TC
8457 : 0, // sub_16bit_hi
8458 : 79, // sub_32bit -> GR64_with_sub_32bit_in_GR32_TC
8459 : 0, // sub_xmm
8460 : 0, // sub_ymm
8461 : },
8462 : { // GR64_AD
8463 : 80, // sub_8bit -> GR64_AD
8464 : 80, // sub_8bit_hi -> GR64_AD
8465 : 0, // sub_8bit_hi_phony
8466 : 80, // sub_16bit -> GR64_AD
8467 : 0, // sub_16bit_hi
8468 : 80, // sub_32bit -> GR64_AD
8469 : 0, // sub_xmm
8470 : 0, // sub_ymm
8471 : },
8472 : { // GR64_and_LOW32_ADDR_ACCESS_RBP
8473 : 91, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP
8474 : 0, // sub_8bit_hi
8475 : 0, // sub_8bit_hi_phony
8476 : 81, // sub_16bit -> GR64_and_LOW32_ADDR_ACCESS_RBP
8477 : 0, // sub_16bit_hi
8478 : 81, // sub_32bit -> GR64_and_LOW32_ADDR_ACCESS_RBP
8479 : 0, // sub_xmm
8480 : 0, // sub_ymm
8481 : },
8482 : { // GR64_with_sub_32bit_in_GR32_BPSP
8483 : 82, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BPSP
8484 : 0, // sub_8bit_hi
8485 : 0, // sub_8bit_hi_phony
8486 : 82, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BPSP
8487 : 0, // sub_16bit_hi
8488 : 82, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BPSP
8489 : 0, // sub_xmm
8490 : 0, // sub_ymm
8491 : },
8492 : { // GR64_with_sub_32bit_in_GR32_BSI
8493 : 83, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BSI
8494 : 89, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI
8495 : 0, // sub_8bit_hi_phony
8496 : 83, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BSI
8497 : 0, // sub_16bit_hi
8498 : 83, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BSI
8499 : 0, // sub_xmm
8500 : 0, // sub_ymm
8501 : },
8502 : { // GR64_with_sub_32bit_in_GR32_CB
8503 : 84, // sub_8bit -> GR64_with_sub_32bit_in_GR32_CB
8504 : 84, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_CB
8505 : 0, // sub_8bit_hi_phony
8506 : 84, // sub_16bit -> GR64_with_sub_32bit_in_GR32_CB
8507 : 0, // sub_16bit_hi
8508 : 84, // sub_32bit -> GR64_with_sub_32bit_in_GR32_CB
8509 : 0, // sub_xmm
8510 : 0, // sub_ymm
8511 : },
8512 : { // GR64_with_sub_32bit_in_GR32_DC
8513 : 85, // sub_8bit -> GR64_with_sub_32bit_in_GR32_DC
8514 : 85, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_DC
8515 : 0, // sub_8bit_hi_phony
8516 : 85, // sub_16bit -> GR64_with_sub_32bit_in_GR32_DC
8517 : 0, // sub_16bit_hi
8518 : 85, // sub_32bit -> GR64_with_sub_32bit_in_GR32_DC
8519 : 0, // sub_xmm
8520 : 0, // sub_ymm
8521 : },
8522 : { // GR64_with_sub_32bit_in_GR32_DIBP
8523 : 86, // sub_8bit -> GR64_with_sub_32bit_in_GR32_DIBP
8524 : 0, // sub_8bit_hi
8525 : 0, // sub_8bit_hi_phony
8526 : 86, // sub_16bit -> GR64_with_sub_32bit_in_GR32_DIBP
8527 : 0, // sub_16bit_hi
8528 : 86, // sub_32bit -> GR64_with_sub_32bit_in_GR32_DIBP
8529 : 0, // sub_xmm
8530 : 0, // sub_ymm
8531 : },
8532 : { // GR64_with_sub_32bit_in_GR32_SIDI
8533 : 87, // sub_8bit -> GR64_with_sub_32bit_in_GR32_SIDI
8534 : 0, // sub_8bit_hi
8535 : 0, // sub_8bit_hi_phony
8536 : 87, // sub_16bit -> GR64_with_sub_32bit_in_GR32_SIDI
8537 : 0, // sub_16bit_hi
8538 : 87, // sub_32bit -> GR64_with_sub_32bit_in_GR32_SIDI
8539 : 0, // sub_xmm
8540 : 0, // sub_ymm
8541 : },
8542 : { // GR64_and_LOW32_ADDR_ACCESS
8543 : 0, // sub_8bit
8544 : 0, // sub_8bit_hi
8545 : 0, // sub_8bit_hi_phony
8546 : 88, // sub_16bit -> GR64_and_LOW32_ADDR_ACCESS
8547 : 0, // sub_16bit_hi
8548 : 88, // sub_32bit -> GR64_and_LOW32_ADDR_ACCESS
8549 : 0, // sub_xmm
8550 : 0, // sub_ymm
8551 : },
8552 : { // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI
8553 : 89, // sub_8bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI
8554 : 89, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI
8555 : 0, // sub_8bit_hi_phony
8556 : 89, // sub_16bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI
8557 : 0, // sub_16bit_hi
8558 : 89, // sub_32bit -> GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI
8559 : 0, // sub_xmm
8560 : 0, // sub_ymm
8561 : },
8562 : { // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC
8563 : 90, // sub_8bit -> GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC
8564 : 90, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC
8565 : 0, // sub_8bit_hi_phony
8566 : 90, // sub_16bit -> GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC
8567 : 0, // sub_16bit_hi
8568 : 90, // sub_32bit -> GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC
8569 : 0, // sub_xmm
8570 : 0, // sub_ymm
8571 : },
8572 : { // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP
8573 : 91, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP
8574 : 0, // sub_8bit_hi
8575 : 0, // sub_8bit_hi_phony
8576 : 91, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP
8577 : 0, // sub_16bit_hi
8578 : 91, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP
8579 : 0, // sub_xmm
8580 : 0, // sub_ymm
8581 : },
8582 : { // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI
8583 : 92, // sub_8bit -> GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI
8584 : 0, // sub_8bit_hi
8585 : 0, // sub_8bit_hi_phony
8586 : 92, // sub_16bit -> GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI
8587 : 0, // sub_16bit_hi
8588 : 92, // sub_32bit -> GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI
8589 : 0, // sub_xmm
8590 : 0, // sub_ymm
8591 : },
8592 : { // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC
8593 : 93, // sub_8bit -> GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC
8594 : 93, // sub_8bit_hi -> GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC
8595 : 0, // sub_8bit_hi_phony
8596 : 93, // sub_16bit -> GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC
8597 : 0, // sub_16bit_hi
8598 : 93, // sub_32bit -> GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC
8599 : 0, // sub_xmm
8600 : 0, // sub_ymm
8601 : },
8602 : { // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI
8603 : 94, // sub_8bit -> GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI
8604 : 0, // sub_8bit_hi
8605 : 0, // sub_8bit_hi_phony
8606 : 94, // sub_16bit -> GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI
8607 : 0, // sub_16bit_hi
8608 : 94, // sub_32bit -> GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI
8609 : 0, // sub_xmm
8610 : 0, // sub_ymm
8611 : },
8612 : { // RST
8613 : 0, // sub_8bit
8614 : 0, // sub_8bit_hi
8615 : 0, // sub_8bit_hi_phony
8616 : 0, // sub_16bit
8617 : 0, // sub_16bit_hi
8618 : 0, // sub_32bit
8619 : 0, // sub_xmm
8620 : 0, // sub_ymm
8621 : },
8622 : { // RFP80
8623 : 0, // sub_8bit
8624 : 0, // sub_8bit_hi
8625 : 0, // sub_8bit_hi_phony
8626 : 0, // sub_16bit
8627 : 0, // sub_16bit_hi
8628 : 0, // sub_32bit
8629 : 0, // sub_xmm
8630 : 0, // sub_ymm
8631 : },
8632 : { // VR128X
8633 : 0, // sub_8bit
8634 : 0, // sub_8bit_hi
8635 : 0, // sub_8bit_hi_phony
8636 : 0, // sub_16bit
8637 : 0, // sub_16bit_hi
8638 : 0, // sub_32bit
8639 : 0, // sub_xmm
8640 : 0, // sub_ymm
8641 : },
8642 : { // VR128
8643 : 0, // sub_8bit
8644 : 0, // sub_8bit_hi
8645 : 0, // sub_8bit_hi_phony
8646 : 0, // sub_16bit
8647 : 0, // sub_16bit_hi
8648 : 0, // sub_32bit
8649 : 0, // sub_xmm
8650 : 0, // sub_ymm
8651 : },
8652 : { // VR128H
8653 : 0, // sub_8bit
8654 : 0, // sub_8bit_hi
8655 : 0, // sub_8bit_hi_phony
8656 : 0, // sub_16bit
8657 : 0, // sub_16bit_hi
8658 : 0, // sub_32bit
8659 : 0, // sub_xmm
8660 : 0, // sub_ymm
8661 : },
8662 : { // VR128L
8663 : 0, // sub_8bit
8664 : 0, // sub_8bit_hi
8665 : 0, // sub_8bit_hi_phony
8666 : 0, // sub_16bit
8667 : 0, // sub_16bit_hi
8668 : 0, // sub_32bit
8669 : 0, // sub_xmm
8670 : 0, // sub_ymm
8671 : },
8672 : { // BNDR
8673 : 0, // sub_8bit
8674 : 0, // sub_8bit_hi
8675 : 0, // sub_8bit_hi_phony
8676 : 0, // sub_16bit
8677 : 0, // sub_16bit_hi
8678 : 0, // sub_32bit
8679 : 0, // sub_xmm
8680 : 0, // sub_ymm
8681 : },
8682 : { // VR256X
8683 : 0, // sub_8bit
8684 : 0, // sub_8bit_hi
8685 : 0, // sub_8bit_hi_phony
8686 : 0, // sub_16bit
8687 : 0, // sub_16bit_hi
8688 : 0, // sub_32bit
8689 : 102, // sub_xmm -> VR256X
8690 : 0, // sub_ymm
8691 : },
8692 : { // VR256
8693 : 0, // sub_8bit
8694 : 0, // sub_8bit_hi
8695 : 0, // sub_8bit_hi_phony
8696 : 0, // sub_16bit
8697 : 0, // sub_16bit_hi
8698 : 0, // sub_32bit
8699 : 103, // sub_xmm -> VR256
8700 : 0, // sub_ymm
8701 : },
8702 : { // VR256H
8703 : 0, // sub_8bit
8704 : 0, // sub_8bit_hi
8705 : 0, // sub_8bit_hi_phony
8706 : 0, // sub_16bit
8707 : 0, // sub_16bit_hi
8708 : 0, // sub_32bit
8709 : 104, // sub_xmm -> VR256H
8710 : 0, // sub_ymm
8711 : },
8712 : { // VR256L
8713 : 0, // sub_8bit
8714 : 0, // sub_8bit_hi
8715 : 0, // sub_8bit_hi_phony
8716 : 0, // sub_16bit
8717 : 0, // sub_16bit_hi
8718 : 0, // sub_32bit
8719 : 105, // sub_xmm -> VR256L
8720 : 0, // sub_ymm
8721 : },
8722 : { // VR512
8723 : 0, // sub_8bit
8724 : 0, // sub_8bit_hi
8725 : 0, // sub_8bit_hi_phony
8726 : 0, // sub_16bit
8727 : 0, // sub_16bit_hi
8728 : 0, // sub_32bit
8729 : 106, // sub_xmm -> VR512
8730 : 106, // sub_ymm -> VR512
8731 : },
8732 : { // VR512_with_sub_xmm_in_FR32
8733 : 0, // sub_8bit
8734 : 0, // sub_8bit_hi
8735 : 0, // sub_8bit_hi_phony
8736 : 0, // sub_16bit
8737 : 0, // sub_16bit_hi
8738 : 0, // sub_32bit
8739 : 107, // sub_xmm -> VR512_with_sub_xmm_in_FR32
8740 : 107, // sub_ymm -> VR512_with_sub_xmm_in_FR32
8741 : },
8742 : { // VR512_with_sub_xmm_in_VR128H
8743 : 0, // sub_8bit
8744 : 0, // sub_8bit_hi
8745 : 0, // sub_8bit_hi_phony
8746 : 0, // sub_16bit
8747 : 0, // sub_16bit_hi
8748 : 0, // sub_32bit
8749 : 108, // sub_xmm -> VR512_with_sub_xmm_in_VR128H
8750 : 108, // sub_ymm -> VR512_with_sub_xmm_in_VR128H
8751 : },
8752 : { // VR512_with_sub_xmm_in_VR128L
8753 : 0, // sub_8bit
8754 : 0, // sub_8bit_hi
8755 : 0, // sub_8bit_hi_phony
8756 : 0, // sub_16bit
8757 : 0, // sub_16bit_hi
8758 : 0, // sub_32bit
8759 : 109, // sub_xmm -> VR512_with_sub_xmm_in_VR128L
8760 : 109, // sub_ymm -> VR512_with_sub_xmm_in_VR128L
8761 : },
8762 : };
8763 : assert(RC && "Missing regclass");
8764 569561 : if (!Idx) return RC;
8765 569557 : --Idx;
8766 : assert(Idx < 8 && "Bad subreg");
8767 569557 : unsigned TV = Table[RC->getID()][Idx];
8768 569557 : return TV ? getRegClass(TV - 1) : nullptr;
8769 : }
8770 :
8771 : /// Get the weight in units of pressure for this register class.
8772 9372000 : const RegClassWeight &X86GenRegisterInfo::
8773 : getRegClassWeight(const TargetRegisterClass *RC) const {
8774 : static const RegClassWeight RCWeightTable[] = {
8775 : {1, 20}, // GR8
8776 : {0, 0}, // GRH8
8777 : {1, 8}, // GR8_NOREX
8778 : {1, 4}, // GR8_ABCD_H
8779 : {1, 4}, // GR8_ABCD_L
8780 : {0, 0}, // GRH16
8781 : {2, 32}, // GR16
8782 : {2, 16}, // GR16_NOREX
8783 : {1, 8}, // VK1
8784 : {1, 8}, // VK16
8785 : {1, 8}, // VK2
8786 : {1, 8}, // VK4
8787 : {1, 8}, // VK8
8788 : {1, 7}, // VK16WM
8789 : {1, 7}, // VK1WM
8790 : {1, 7}, // VK2WM
8791 : {1, 7}, // VK4WM
8792 : {1, 7}, // VK8WM
8793 : {1, 6}, // SEGMENT_REG
8794 : {2, 8}, // GR16_ABCD
8795 : {0, 0}, // FPCCR
8796 : {1, 32}, // FR32X
8797 : {2, 34}, // LOW32_ADDR_ACCESS_RBP
8798 : {2, 34}, // LOW32_ADDR_ACCESS
8799 : {2, 32}, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit
8800 : {1, 16}, // DEBUG_REG
8801 : {1, 16}, // FR32
8802 : {2, 32}, // GR32
8803 : {2, 30}, // GR32_NOSP
8804 : {2, 16}, // LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREX
8805 : {2, 16}, // GR32_NOREX
8806 : {1, 8}, // VK32
8807 : {2, 14}, // GR32_NOREX_NOSP
8808 : {1, 7}, // RFP32
8809 : {1, 7}, // VK32WM
8810 : {2, 8}, // GR32_ABCD
8811 : {2, 6}, // GR32_TC
8812 : {2, 4}, // GR32_AD
8813 : {2, 4}, // GR32_BPSP
8814 : {2, 4}, // GR32_BSI
8815 : {2, 4}, // GR32_CB
8816 : {2, 4}, // GR32_DC
8817 : {2, 4}, // GR32_DIBP
8818 : {2, 4}, // GR32_SIDI
8819 : {2, 4}, // LOW32_ADDR_ACCESS_RBP_with_sub_32bit
8820 : {0, 0}, // CCR
8821 : {0, 0}, // DFCCR
8822 : {2, 2}, // GR32_ABCD_and_GR32_BSI
8823 : {2, 2}, // GR32_AD_and_GR32_DC
8824 : {2, 2}, // GR32_BPSP_and_GR32_DIBP
8825 : {2, 2}, // GR32_BSI_and_GR32_SIDI
8826 : {2, 2}, // GR32_CB_and_GR32_DC
8827 : {2, 2}, // GR32_DIBP_and_GR32_SIDI
8828 : {2, 2}, // LOW32_ADDR_ACCESS_RBP_with_sub_8bit_with_sub_32bit
8829 : {2, 2}, // LOW32_ADDR_ACCESS_with_sub_32bit
8830 : {1, 7}, // RFP64
8831 : {1, 32}, // FR64X
8832 : {2, 34}, // GR64
8833 : {1, 16}, // CONTROL_REG
8834 : {1, 16}, // FR64
8835 : {2, 32}, // GR64_with_sub_8bit
8836 : {2, 30}, // GR64_NOSP
8837 : {2, 18}, // GR64_NOREX
8838 : {2, 18}, // GR64_TC
8839 : {2, 16}, // GR64_NOSP_and_GR64_TC
8840 : {2, 16}, // GR64_TCW64
8841 : {2, 16}, // GR64_with_sub_16bit_in_GR16_NOREX
8842 : {1, 8}, // VK64
8843 : {1, 8}, // VR64
8844 : {2, 14}, // GR64_NOREX_NOSP
8845 : {2, 14}, // GR64_NOSP_and_GR64_TCW64
8846 : {2, 14}, // GR64_TC_and_GR64_TCW64
8847 : {1, 7}, // VK64WM
8848 : {2, 12}, // GR64_NOREX_and_GR64_TC
8849 : {2, 12}, // GR64_TC_and_GR64_NOSP_and_GR64_TCW64
8850 : {2, 10}, // GR64_NOREX_NOSP_and_GR64_TC
8851 : {2, 8}, // GR64_ABCD
8852 : {2, 8}, // GR64_NOREX_and_GR64_TCW64
8853 : {2, 6}, // GR64_with_sub_32bit_in_GR32_TC
8854 : {2, 4}, // GR64_AD
8855 : {2, 4}, // GR64_and_LOW32_ADDR_ACCESS_RBP
8856 : {2, 4}, // GR64_with_sub_32bit_in_GR32_BPSP
8857 : {2, 4}, // GR64_with_sub_32bit_in_GR32_BSI
8858 : {2, 4}, // GR64_with_sub_32bit_in_GR32_CB
8859 : {2, 4}, // GR64_with_sub_32bit_in_GR32_DC
8860 : {2, 4}, // GR64_with_sub_32bit_in_GR32_DIBP
8861 : {2, 4}, // GR64_with_sub_32bit_in_GR32_SIDI
8862 : {2, 2}, // GR64_and_LOW32_ADDR_ACCESS
8863 : {2, 2}, // GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSI
8864 : {2, 2}, // GR64_with_sub_32bit_in_GR32_AD_and_GR32_DC
8865 : {2, 2}, // GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBP
8866 : {2, 2}, // GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDI
8867 : {2, 2}, // GR64_with_sub_32bit_in_GR32_CB_and_GR32_DC
8868 : {2, 2}, // GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDI
8869 : {0, 0}, // RST
8870 : {1, 7}, // RFP80
8871 : {1, 32}, // VR128X
8872 : {1, 16}, // VR128
8873 : {1, 8}, // VR128H
8874 : {1, 8}, // VR128L
8875 : {1, 4}, // BNDR
8876 : {1, 32}, // VR256X
8877 : {1, 16}, // VR256
8878 : {1, 8}, // VR256H
8879 : {1, 8}, // VR256L
8880 : {1, 32}, // VR512
8881 : {1, 16}, // VR512_with_sub_xmm_in_FR32
8882 : {1, 8}, // VR512_with_sub_xmm_in_VR128H
8883 : {1, 8}, // VR512_with_sub_xmm_in_VR128L
8884 : };
8885 18744000 : return RCWeightTable[RC->getID()];
8886 : }
8887 :
8888 : /// Get the weight in units of pressure for this register unit.
8889 1070064 : unsigned X86GenRegisterInfo::
8890 : getRegUnitWeight(unsigned RegUnit) const {
8891 : assert(RegUnit < 162 && "invalid register unit");
8892 : // All register units have unit weight.
8893 1070064 : return 1;
8894 : }
8895 :
8896 :
8897 : // Get the number of dimensions of register pressure.
8898 512127 : unsigned X86GenRegisterInfo::getNumRegPressureSets() const {
8899 512127 : return 38;
8900 : }
8901 :
8902 : // Get the name of this register unit pressure set.
8903 0 : const char *X86GenRegisterInfo::
8904 : getRegPressureSetName(unsigned Idx) const {
8905 : static const char *const PressureNameTable[] = {
8906 : "BNDR",
8907 : "SEGMENT_REG",
8908 : "GR32_BPSP",
8909 : "LOW32_ADDR_ACCESS_with_sub_32bit",
8910 : "GR32_BSI",
8911 : "GR32_SIDI",
8912 : "GR32_DIBP+GR32_SIDI",
8913 : "GR32_DIBP+LOW32_ADDR_ACCESS_with_sub_32bit",
8914 : "RFP32",
8915 : "GR8_ABCD_H+GR32_BSI",
8916 : "GR8_ABCD_L+GR32_BSI",
8917 : "VK1",
8918 : "VR64",
8919 : "VR128H",
8920 : "VR128L",
8921 : "GR32_TC",
8922 : "GR64_NOREX_and_GR64_TCW64",
8923 : "LOW32_ADDR_ACCESS_with_sub_32bit+GR64_NOREX_and_GR64_TCW64",
8924 : "GR64_NOREX_and_GR64_TC",
8925 : "GR32_DIBP+GR64_NOREX_and_GR64_TC",
8926 : "DEBUG_REG",
8927 : "FR32",
8928 : "CONTROL_REG",
8929 : "GR64_NOREX",
8930 : "GR64_TCW64",
8931 : "LOW32_ADDR_ACCESS_with_sub_32bit+GR64_TCW64",
8932 : "GR64_TC",
8933 : "GR32_DIBP+GR64_TC",
8934 : "GR64_TC+GR64_TCW64",
8935 : "GR8",
8936 : "GR8+GR32_DIBP",
8937 : "GR8+GR64_NOREX_and_GR64_TCW64",
8938 : "GR8+GR32_BSI",
8939 : "GR8+GR64_TCW64",
8940 : "GR64_NOREX+GR64_TC",
8941 : "GR8+GR64_TC",
8942 : "FR32X",
8943 : "GR16",
8944 : };
8945 0 : return PressureNameTable[Idx];
8946 : }
8947 :
8948 : // Get the register unit pressure limit for this dimension.
8949 : // This limit must be adjusted dynamically for reserved registers.
8950 4502690 : unsigned X86GenRegisterInfo::
8951 : getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
8952 : static const uint8_t PressureLimitTable[] = {
8953 : 4, // 0: BNDR
8954 : 6, // 1: SEGMENT_REG
8955 : 6, // 2: GR32_BPSP
8956 : 6, // 3: LOW32_ADDR_ACCESS_with_sub_32bit
8957 : 6, // 4: GR32_BSI
8958 : 6, // 5: GR32_SIDI
8959 : 6, // 6: GR32_DIBP+GR32_SIDI
8960 : 6, // 7: GR32_DIBP+LOW32_ADDR_ACCESS_with_sub_32bit
8961 : 7, // 8: RFP32
8962 : 7, // 9: GR8_ABCD_H+GR32_BSI
8963 : 7, // 10: GR8_ABCD_L+GR32_BSI
8964 : 8, // 11: VK1
8965 : 8, // 12: VR64
8966 : 8, // 13: VR128H
8967 : 8, // 14: VR128L
8968 : 10, // 15: GR32_TC
8969 : 10, // 16: GR64_NOREX_and_GR64_TCW64
8970 : 10, // 17: LOW32_ADDR_ACCESS_with_sub_32bit+GR64_NOREX_and_GR64_TCW64
8971 : 14, // 18: GR64_NOREX_and_GR64_TC
8972 : 14, // 19: GR32_DIBP+GR64_NOREX_and_GR64_TC
8973 : 16, // 20: DEBUG_REG
8974 : 16, // 21: FR32
8975 : 16, // 22: CONTROL_REG
8976 : 18, // 23: GR64_NOREX
8977 : 18, // 24: GR64_TCW64
8978 : 18, // 25: LOW32_ADDR_ACCESS_with_sub_32bit+GR64_TCW64
8979 : 20, // 26: GR64_TC
8980 : 20, // 27: GR32_DIBP+GR64_TC
8981 : 20, // 28: GR64_TC+GR64_TCW64
8982 : 22, // 29: GR8
8983 : 22, // 30: GR8+GR32_DIBP
8984 : 23, // 31: GR8+GR64_NOREX_and_GR64_TCW64
8985 : 26, // 32: GR8+GR32_BSI
8986 : 26, // 33: GR8+GR64_TCW64
8987 : 26, // 34: GR64_NOREX+GR64_TC
8988 : 27, // 35: GR8+GR64_TC
8989 : 32, // 36: FR32X
8990 : 34, // 37: GR16
8991 : };
8992 4502690 : return PressureLimitTable[Idx];
8993 : }
8994 :
8995 : /// Table of pressure sets per register class or unit.
8996 : static const int RCSetsTable[] = {
8997 : /* 0 */ 0, -1,
8998 : /* 2 */ 1, -1,
8999 : /* 4 */ 8, -1,
9000 : /* 6 */ 11, -1,
9001 : /* 8 */ 12, -1,
9002 : /* 10 */ 20, -1,
9003 : /* 12 */ 22, -1,
9004 : /* 14 */ 13, 21, 36, -1,
9005 : /* 18 */ 14, 21, 36, -1,
9006 : /* 22 */ 23, 32, 34, 37, -1,
9007 : /* 27 */ 2, 3, 23, 29, 32, 34, 37, -1,
9008 : /* 35 */ 2, 6, 7, 19, 23, 27, 30, 32, 34, 37, -1,
9009 : /* 46 */ 3, 7, 17, 19, 23, 25, 27, 31, 32, 34, 37, -1,
9010 : /* 58 */ 2, 3, 6, 7, 17, 19, 23, 25, 27, 29, 30, 31, 32, 34, 37, -1,
9011 : /* 74 */ 24, 25, 28, 33, 34, 37, -1,
9012 : /* 81 */ 29, 30, 31, 32, 33, 35, 37, -1,
9013 : /* 89 */ 26, 27, 28, 34, 35, 37, -1,
9014 : /* 96 */ 4, 5, 9, 10, 15, 18, 23, 26, 32, 34, 35, 37, -1,
9015 : /* 109 */ 5, 6, 18, 19, 23, 26, 27, 28, 32, 34, 35, 37, -1,
9016 : /* 122 */ 4, 5, 6, 9, 10, 15, 18, 19, 23, 26, 27, 28, 32, 34, 35, 37, -1,
9017 : /* 139 */ 2, 5, 6, 7, 18, 19, 23, 26, 27, 28, 30, 32, 34, 35, 37, -1,
9018 : /* 155 */ 24, 25, 26, 27, 28, 33, 34, 35, 37, -1,
9019 : /* 165 */ 3, 7, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 37, -1,
9020 : /* 184 */ 2, 3, 23, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9021 : /* 196 */ 4, 15, 16, 18, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9022 : /* 212 */ 9, 15, 16, 18, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9023 : /* 228 */ 4, 5, 9, 10, 15, 16, 18, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9024 : /* 247 */ 2, 3, 6, 7, 17, 19, 23, 25, 27, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9025 : /* 265 */ 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9026 : /* 277 */ 2, 5, 6, 7, 18, 19, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9027 : /* 296 */ 4, 5, 6, 9, 10, 15, 18, 19, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9028 : /* 317 */ 4, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9029 : /* 338 */ 4, 9, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9030 : /* 360 */ 4, 10, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, -1,
9031 : };
9032 :
9033 : /// Get the dimensions of register pressure impacted by this register class.
9034 : /// Returns a -1 terminated array of pressure set IDs
9035 34754195 : const int* X86GenRegisterInfo::
9036 : getRegClassPressureSets(const TargetRegisterClass *RC) const {
9037 : static const uint16_t RCSetStartTable[] = {
9038 : 81,1,197,212,231,1,25,22,6,6,6,6,6,6,6,6,6,6,2,197,1,16,25,25,25,10,15,25,25,22,22,6,22,4,6,197,318,318,27,96,196,318,35,109,46,1,1,228,318,58,122,317,139,58,165,4,16,25,12,15,25,25,22,89,89,74,22,6,8,22,74,155,6,111,155,111,197,167,318,318,46,27,96,196,318,35,109,165,228,318,58,122,317,139,1,4,16,15,14,18,0,16,15,14,18,16,15,14,18,};
9039 69508390 : return &RCSetsTable[RCSetStartTable[RC->getID()]];
9040 : }
9041 :
9042 : /// Get the dimensions of register pressure impacted by this register unit.
9043 : /// Returns a -1 terminated array of pressure set IDs
9044 1070064 : const int* X86GenRegisterInfo::
9045 : getRegUnitPressureSets(unsigned RegUnit) const {
9046 : assert(RegUnit < 162 && "invalid register unit");
9047 : static const uint16_t RUSetStartTable[] = {
9048 : 339,361,228,228,247,1,338,360,2,1,339,277,1,361,2,1,1,1,1,1,1,1,165,1,1,2,296,1,1,184,1,1,1,2,2,1,2,1,0,0,0,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,1,6,6,6,6,6,6,6,6,8,8,8,8,8,8,8,8,324,1,1,324,1,1,265,1,1,324,1,1,81,1,1,81,1,1,81,1,1,81,1,1,1,1,1,1,1,1,1,1,18,18,18,18,18,18,18,18,14,14,14,14,14,14,14,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,};
9049 1070064 : return &RCSetsTable[RUSetStartTable[RegUnit]];
9050 : }
9051 :
9052 : extern const MCRegisterDesc X86RegDesc[];
9053 : extern const MCPhysReg X86RegDiffLists[];
9054 : extern const LaneBitmask X86LaneMaskLists[];
9055 : extern const char X86RegStrings[];
9056 : extern const char X86RegClassStrings[];
9057 : extern const MCPhysReg X86RegUnitRoots[][2];
9058 : extern const uint16_t X86SubRegIdxLists[];
9059 : extern const MCRegisterInfo::SubRegCoveredBits X86SubRegIdxRanges[];
9060 : extern const uint16_t X86RegEncodingTable[];
9061 : // X86 Dwarf<->LLVM register mappings.
9062 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour0Dwarf2L[];
9063 : extern const unsigned X86DwarfFlavour0Dwarf2LSize;
9064 :
9065 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour1Dwarf2L[];
9066 : extern const unsigned X86DwarfFlavour1Dwarf2LSize;
9067 :
9068 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour2Dwarf2L[];
9069 : extern const unsigned X86DwarfFlavour2Dwarf2LSize;
9070 :
9071 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour0Dwarf2L[];
9072 : extern const unsigned X86EHFlavour0Dwarf2LSize;
9073 :
9074 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour1Dwarf2L[];
9075 : extern const unsigned X86EHFlavour1Dwarf2LSize;
9076 :
9077 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour2Dwarf2L[];
9078 : extern const unsigned X86EHFlavour2Dwarf2LSize;
9079 :
9080 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour0L2Dwarf[];
9081 : extern const unsigned X86DwarfFlavour0L2DwarfSize;
9082 :
9083 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour1L2Dwarf[];
9084 : extern const unsigned X86DwarfFlavour1L2DwarfSize;
9085 :
9086 : extern const MCRegisterInfo::DwarfLLVMRegPair X86DwarfFlavour2L2Dwarf[];
9087 : extern const unsigned X86DwarfFlavour2L2DwarfSize;
9088 :
9089 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour0L2Dwarf[];
9090 : extern const unsigned X86EHFlavour0L2DwarfSize;
9091 :
9092 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour1L2Dwarf[];
9093 : extern const unsigned X86EHFlavour1L2DwarfSize;
9094 :
9095 : extern const MCRegisterInfo::DwarfLLVMRegPair X86EHFlavour2L2Dwarf[];
9096 : extern const unsigned X86EHFlavour2L2DwarfSize;
9097 :
9098 16283 : X86GenRegisterInfo::
9099 : X86GenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour,
9100 16283 : unsigned PC, unsigned HwMode)
9101 : : TargetRegisterInfo(X86RegInfoDesc, RegisterClasses, RegisterClasses+109,
9102 : SubRegIndexNameTable, SubRegIndexLaneMaskTable,
9103 32566 : LaneBitmask(0xFFFFFFE0), RegClassInfos, HwMode) {
9104 : InitMCRegisterInfo(X86RegDesc, 277, RA, PC,
9105 : X86MCRegisterClasses, 109,
9106 : X86RegUnitRoots,
9107 : 162,
9108 : X86RegDiffLists,
9109 : X86LaneMaskLists,
9110 : X86RegStrings,
9111 : X86RegClassStrings,
9112 : X86SubRegIdxLists,
9113 : 9,
9114 : X86SubRegIdxRanges,
9115 : X86RegEncodingTable);
9116 :
9117 16283 : switch (DwarfFlavour) {
9118 0 : default:
9119 0 : llvm_unreachable("Unknown DWARF flavour");
9120 13838 : case 0:
9121 13838 : mapDwarfRegsToLLVMRegs(X86DwarfFlavour0Dwarf2L, X86DwarfFlavour0Dwarf2LSize, false);
9122 : break;
9123 0 : case 1:
9124 0 : mapDwarfRegsToLLVMRegs(X86DwarfFlavour1Dwarf2L, X86DwarfFlavour1Dwarf2LSize, false);
9125 : break;
9126 2445 : case 2:
9127 2445 : mapDwarfRegsToLLVMRegs(X86DwarfFlavour2Dwarf2L, X86DwarfFlavour2Dwarf2LSize, false);
9128 : break;
9129 : }
9130 16283 : switch (EHFlavour) {
9131 0 : default:
9132 0 : llvm_unreachable("Unknown DWARF flavour");
9133 13838 : case 0:
9134 13838 : mapDwarfRegsToLLVMRegs(X86EHFlavour0Dwarf2L, X86EHFlavour0Dwarf2LSize, true);
9135 : break;
9136 476 : case 1:
9137 476 : mapDwarfRegsToLLVMRegs(X86EHFlavour1Dwarf2L, X86EHFlavour1Dwarf2LSize, true);
9138 : break;
9139 1969 : case 2:
9140 1969 : mapDwarfRegsToLLVMRegs(X86EHFlavour2Dwarf2L, X86EHFlavour2Dwarf2LSize, true);
9141 : break;
9142 : }
9143 16283 : switch (DwarfFlavour) {
9144 0 : default:
9145 0 : llvm_unreachable("Unknown DWARF flavour");
9146 13838 : case 0:
9147 13838 : mapLLVMRegsToDwarfRegs(X86DwarfFlavour0L2Dwarf, X86DwarfFlavour0L2DwarfSize, false);
9148 : break;
9149 0 : case 1:
9150 0 : mapLLVMRegsToDwarfRegs(X86DwarfFlavour1L2Dwarf, X86DwarfFlavour1L2DwarfSize, false);
9151 : break;
9152 2445 : case 2:
9153 2445 : mapLLVMRegsToDwarfRegs(X86DwarfFlavour2L2Dwarf, X86DwarfFlavour2L2DwarfSize, false);
9154 : break;
9155 : }
9156 16283 : switch (EHFlavour) {
9157 0 : default:
9158 0 : llvm_unreachable("Unknown DWARF flavour");
9159 13838 : case 0:
9160 13838 : mapLLVMRegsToDwarfRegs(X86EHFlavour0L2Dwarf, X86EHFlavour0L2DwarfSize, true);
9161 : break;
9162 476 : case 1:
9163 476 : mapLLVMRegsToDwarfRegs(X86EHFlavour1L2Dwarf, X86EHFlavour1L2DwarfSize, true);
9164 : break;
9165 1969 : case 2:
9166 1969 : mapLLVMRegsToDwarfRegs(X86EHFlavour2L2Dwarf, X86EHFlavour2L2DwarfSize, true);
9167 : break;
9168 : }
9169 16283 : }
9170 :
9171 : static const MCPhysReg CSR_32_SaveList[] = { X86::ESI, X86::EDI, X86::EBX, X86::EBP, 0 };
9172 : static const uint32_t CSR_32_RegMask[] = { 0x058703f0, 0x0e0012c1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
9173 : static const MCPhysReg CSR_32EHRet_SaveList[] = { X86::EAX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, 0 };
9174 : static const uint32_t CSR_32EHRet_RegMask[] = { 0x0def83fe, 0x0e0016e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
9175 : static const MCPhysReg CSR_32_AllRegs_SaveList[] = { X86::EAX, X86::EBX, X86::ECX, X86::EDX, X86::EBP, X86::ESI, X86::EDI, 0 };
9176 : static const uint32_t CSR_32_AllRegs_RegMask[] = { 0x0fefaffe, 0x0e0017e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
9177 : static const MCPhysReg CSR_32_AllRegs_AVX_SaveList[] = { X86::EAX, X86::EBX, X86::ECX, X86::EDX, X86::EBP, X86::ESI, X86::EDI, X86::YMM0, X86::YMM1, X86::YMM2, X86::YMM3, X86::YMM4, X86::YMM5, X86::YMM6, X86::YMM7, 0 };
9178 : static const uint32_t CSR_32_AllRegs_AVX_RegMask[] = { 0x0fefaffe, 0x0e0017e1, 0x00000000, 0x00000000, 0x001fe000, 0x001fe000, 0x00000000, 0x00000000, 0x00000000, };
9179 : static const MCPhysReg CSR_32_AllRegs_AVX512_SaveList[] = { X86::EAX, X86::EBX, X86::ECX, X86::EDX, X86::EBP, X86::ESI, X86::EDI, X86::ZMM0, X86::ZMM1, X86::ZMM2, X86::ZMM3, X86::ZMM4, X86::ZMM5, X86::ZMM6, X86::ZMM7, X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, 0 };
9180 : static const uint32_t CSR_32_AllRegs_AVX512_RegMask[] = { 0x0fefaffe, 0x0e0017e1, 0x00000000, 0x001fe000, 0x001fe000, 0x001fe000, 0x001fe000, 0x00000000, 0x00000000, };
9181 : static const MCPhysReg CSR_32_AllRegs_SSE_SaveList[] = { X86::EAX, X86::EBX, X86::ECX, X86::EDX, X86::EBP, X86::ESI, X86::EDI, X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, 0 };
9182 : static const uint32_t CSR_32_AllRegs_SSE_RegMask[] = { 0x0fefaffe, 0x0e0017e1, 0x00000000, 0x00000000, 0x001fe000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
9183 : static const MCPhysReg CSR_32_RegCall_SaveList[] = { X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, 0 };
9184 : static const uint32_t CSR_32_RegCall_RegMask[] = { 0x058703f0, 0x7e0032c3, 0x00000000, 0x00000000, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
9185 : static const MCPhysReg CSR_32_RegCall_NoSSE_SaveList[] = { X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, 0 };
9186 : static const uint32_t CSR_32_RegCall_NoSSE_RegMask[] = { 0x058703f0, 0x7e0032c3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
9187 : static const MCPhysReg CSR_64_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 0 };
9188 : static const uint32_t CSR_64_RegMask[] = { 0x018003f0, 0x000300c0, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9189 : static const MCPhysReg CSR_64EHRet_SaveList[] = { X86::RAX, X86::RDX, X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 0 };
9190 : static const uint32_t CSR_64EHRet_RegMask[] = { 0x09e883fe, 0x001384e0, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9191 : static const MCPhysReg CSR_64_AllRegs_SaveList[] = { X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 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::RAX, 0 };
9192 : static const uint32_t CSR_64_AllRegs_RegMask[] = { 0x0fefaffe, 0x0e9f97e1, 0x00000000, 0xe0000000, 0x1fffe01f, 0x00000000, 0x00000000, 0xffffe000, 0x001fffff, };
9193 : static const MCPhysReg CSR_64_AllRegs_AVX_SaveList[] = { X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, 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, 0 };
9194 : static const uint32_t CSR_64_AllRegs_AVX_RegMask[] = { 0x0fefaffe, 0x0e9f97e1, 0x00000000, 0xe0000000, 0x1fffe01f, 0x1fffe000, 0x00000000, 0xffffe000, 0x001fffff, };
9195 : static const MCPhysReg CSR_64_AllRegs_AVX512_SaveList[] = { X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, 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, X86::K0, X86::K1, X86::K2, X86::K3, X86::K4, X86::K5, X86::K6, X86::K7, 0 };
9196 : static const uint32_t CSR_64_AllRegs_AVX512_RegMask[] = { 0x0fefaffe, 0x0e9f97e1, 0x00000000, 0xe01fe000, 0xffffe01f, 0xffffffff, 0xffffffff, 0xffffffff, 0x001fffff, };
9197 : static const MCPhysReg CSR_64_AllRegs_NoSSE_SaveList[] = { X86::RAX, X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 0 };
9198 : static const uint32_t CSR_64_AllRegs_NoSSE_RegMask[] = { 0x0fefaffe, 0x0e9f97e1, 0x00000000, 0xe0000000, 0x0000001f, 0x00000000, 0x00000000, 0xffffe000, 0x001fffff, };
9199 : static const MCPhysReg CSR_64_CXX_TLS_Darwin_PE_SaveList[] = { X86::RBP, 0 };
9200 : static const uint32_t CSR_64_CXX_TLS_Darwin_PE_RegMask[] = { 0x008001c0, 0x00010040, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
9201 : static const MCPhysReg CSR_64_CXX_TLS_Darwin_ViaCopy_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RCX, X86::RDX, X86::RSI, X86::R8, X86::R9, X86::R10, X86::R11, 0 };
9202 : static const uint32_t CSR_64_CXX_TLS_Darwin_ViaCopy_RegMask[] = { 0x0b28ae30, 0x0e961581, 0x00000000, 0xe0000000, 0x0000001f, 0x00000000, 0x00000000, 0xffffe000, 0x001fffff, };
9203 : static const MCPhysReg CSR_64_HHVM_SaveList[] = { X86::R12, 0 };
9204 : static const uint32_t CSR_64_HHVM_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x02020000, 0x00020202, };
9205 : static const MCPhysReg CSR_64_Intel_OCL_BI_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 };
9206 : static const uint32_t CSR_64_Intel_OCL_BI_RegMask[] = { 0x018003f0, 0x000300c0, 0x00000000, 0x00000000, 0x1fe0001e, 0x00000000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9207 : static const MCPhysReg CSR_64_Intel_OCL_BI_AVX_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::YMM8, X86::YMM9, X86::YMM10, X86::YMM11, X86::YMM12, X86::YMM13, X86::YMM14, X86::YMM15, 0 };
9208 : static const uint32_t CSR_64_Intel_OCL_BI_AVX_RegMask[] = { 0x018003f0, 0x000300c0, 0x00000000, 0x00000000, 0x1fe0001e, 0x1fe00000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9209 : static const MCPhysReg CSR_64_Intel_OCL_BI_AVX512_SaveList[] = { X86::RBX, X86::RDI, X86::RSI, X86::R14, X86::R15, 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, X86::K4, X86::K5, X86::K6, X86::K7, 0 };
9210 : static const uint32_t CSR_64_Intel_OCL_BI_AVX512_RegMask[] = { 0x05070230, 0x0e8a1281, 0x00000000, 0x001e0000, 0xe0000018, 0xe0001fff, 0xe0001fff, 0x18181fff, 0x00181818, };
9211 : static const MCPhysReg CSR_64_MostRegs_SaveList[] = { X86::RBX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, 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, 0 };
9212 : static const uint32_t CSR_64_MostRegs_RegMask[] = { 0x0fafaff0, 0x0e9f17c1, 0x00000000, 0xe0000000, 0x1fffe01f, 0x00000000, 0x00000000, 0xffffe000, 0x001fffff, };
9213 : static const MCPhysReg CSR_64_RT_AllRegs_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::RSP, 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, 0 };
9214 : static const uint32_t CSR_64_RT_AllRegs_RegMask[] = { 0x0fefaffe, 0x7f9fb7e3, 0x00000000, 0xe0000000, 0x1fffe01e, 0x00000000, 0x00000000, 0xfefee000, 0x001efefe, };
9215 : static const MCPhysReg CSR_64_RT_AllRegs_AVX_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::RSP, 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, 0 };
9216 : static const uint32_t CSR_64_RT_AllRegs_AVX_RegMask[] = { 0x0fefaffe, 0x7f9fb7e3, 0x00000000, 0xe0000000, 0x1fffe01e, 0x1fffe000, 0x00000000, 0xfefee000, 0x001efefe, };
9217 : static const MCPhysReg CSR_64_RT_MostRegs_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::RSP, 0 };
9218 : static const uint32_t CSR_64_RT_MostRegs_RegMask[] = { 0x0fefaffe, 0x7f9fb7e3, 0x00000000, 0xe0000000, 0x0000001e, 0x00000000, 0x00000000, 0xfefee000, 0x001efefe, };
9219 : static const MCPhysReg CSR_64_SwiftError_SaveList[] = { X86::RBX, X86::R13, X86::R14, X86::R15, X86::RBP, 0 };
9220 : static const uint32_t CSR_64_SwiftError_RegMask[] = { 0x018003f0, 0x000300c0, 0x00000000, 0x00000000, 0x0000001c, 0x00000000, 0x00000000, 0x1c1c0000, 0x001c1c1c, };
9221 : static const MCPhysReg CSR_64_TLS_Darwin_SaveList[] = { X86::RBX, X86::R12, X86::R13, X86::R14, X86::R15, X86::RBP, X86::RCX, X86::RDX, X86::RSI, X86::R8, X86::R9, X86::R10, X86::R11, 0 };
9222 : static const uint32_t CSR_64_TLS_Darwin_RegMask[] = { 0x0ba8aff0, 0x0e9715c1, 0x00000000, 0xe0000000, 0x0000001f, 0x00000000, 0x00000000, 0xffffe000, 0x001fffff, };
9223 : static const MCPhysReg CSR_NoRegs_SaveList[] = { 0 };
9224 : static const uint32_t CSR_NoRegs_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
9225 : static const MCPhysReg CSR_SysV64_RegCall_SaveList[] = { X86::RBX, X86::RBP, X86::RSP, X86::R12, X86::R13, X86::R14, X86::R15, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 };
9226 : static const uint32_t CSR_SysV64_RegCall_RegMask[] = { 0x018003f0, 0x710320c2, 0x00000000, 0x00000000, 0x1fe0001e, 0x00000000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9227 : static const MCPhysReg CSR_SysV64_RegCall_NoSSE_SaveList[] = { X86::RBX, X86::RBP, X86::RSP, X86::R12, X86::R13, X86::R14, X86::R15, 0 };
9228 : static const uint32_t CSR_SysV64_RegCall_NoSSE_RegMask[] = { 0x018003f0, 0x710320c2, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9229 : static const MCPhysReg CSR_Win64_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R13, X86::R14, X86::R15, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 };
9230 : static const uint32_t CSR_Win64_RegMask[] = { 0x058703f0, 0x0e8b12c1, 0x00000000, 0x00000000, 0x1ff8001e, 0x00000000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9231 : static const MCPhysReg CSR_Win64_Intel_OCL_BI_AVX_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R13, X86::R14, X86::R15, X86::YMM6, X86::YMM7, X86::YMM8, X86::YMM9, X86::YMM10, X86::YMM11, X86::YMM12, X86::YMM13, X86::YMM14, X86::YMM15, 0 };
9232 : static const uint32_t CSR_Win64_Intel_OCL_BI_AVX_RegMask[] = { 0x058703f0, 0x0e8b12c1, 0x00000000, 0x00000000, 0x1ff8001e, 0x1ff80000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9233 : static const MCPhysReg CSR_Win64_Intel_OCL_BI_AVX512_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R13, X86::R14, X86::R15, 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::K4, X86::K5, X86::K6, X86::K7, 0 };
9234 : static const uint32_t CSR_Win64_Intel_OCL_BI_AVX512_RegMask[] = { 0x058703f0, 0x0e8b12c1, 0x00000000, 0x001e0000, 0xfff8001e, 0xfff80007, 0xfff80007, 0x1e1e0007, 0x001e1e1e, };
9235 : static const MCPhysReg CSR_Win64_NoSSE_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R12, X86::R13, X86::R14, X86::R15, 0 };
9236 : static const uint32_t CSR_Win64_NoSSE_RegMask[] = { 0x058703f0, 0x0e8b12c1, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x00000000, 0x1e1e0000, 0x001e1e1e, };
9237 : static const MCPhysReg CSR_Win64_RegCall_SaveList[] = { X86::RBX, X86::RBP, X86::RSP, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 };
9238 : static const uint32_t CSR_Win64_RegCall_RegMask[] = { 0x018003f0, 0x710320c2, 0x00000000, 0x80000000, 0x1fe0001f, 0x00000000, 0x00000000, 0x9f9f8000, 0x001f9f9f, };
9239 : static const MCPhysReg CSR_Win64_RegCall_NoSSE_SaveList[] = { X86::RBX, X86::RBP, X86::RSP, X86::R10, X86::R11, X86::R12, X86::R13, X86::R14, X86::R15, 0 };
9240 : static const uint32_t CSR_Win64_RegCall_NoSSE_RegMask[] = { 0x018003f0, 0x710320c2, 0x00000000, 0x80000000, 0x0000001f, 0x00000000, 0x00000000, 0x9f9f8000, 0x001f9f9f, };
9241 : static const MCPhysReg CSR_Win64_SwiftError_SaveList[] = { X86::RBX, X86::RBP, X86::RDI, X86::RSI, X86::R13, X86::R14, X86::R15, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 0 };
9242 : static const uint32_t CSR_Win64_SwiftError_RegMask[] = { 0x058703f0, 0x0e8b12c1, 0x00000000, 0x00000000, 0x1ff8001c, 0x00000000, 0x00000000, 0x1c1c0000, 0x001c1c1c, };
9243 :
9244 :
9245 1640 : ArrayRef<const uint32_t *> X86GenRegisterInfo::getRegMasks() const {
9246 : static const uint32_t *const Masks[] = {
9247 : CSR_32_RegMask,
9248 : CSR_32EHRet_RegMask,
9249 : CSR_32_AllRegs_RegMask,
9250 : CSR_32_AllRegs_AVX_RegMask,
9251 : CSR_32_AllRegs_AVX512_RegMask,
9252 : CSR_32_AllRegs_SSE_RegMask,
9253 : CSR_32_RegCall_RegMask,
9254 : CSR_32_RegCall_NoSSE_RegMask,
9255 : CSR_64_RegMask,
9256 : CSR_64EHRet_RegMask,
9257 : CSR_64_AllRegs_RegMask,
9258 : CSR_64_AllRegs_AVX_RegMask,
9259 : CSR_64_AllRegs_AVX512_RegMask,
9260 : CSR_64_AllRegs_NoSSE_RegMask,
9261 : CSR_64_CXX_TLS_Darwin_PE_RegMask,
9262 : CSR_64_CXX_TLS_Darwin_ViaCopy_RegMask,
9263 : CSR_64_HHVM_RegMask,
9264 : CSR_64_Intel_OCL_BI_RegMask,
9265 : CSR_64_Intel_OCL_BI_AVX_RegMask,
9266 : CSR_64_Intel_OCL_BI_AVX512_RegMask,
9267 : CSR_64_MostRegs_RegMask,
9268 : CSR_64_RT_AllRegs_RegMask,
9269 : CSR_64_RT_AllRegs_AVX_RegMask,
9270 : CSR_64_RT_MostRegs_RegMask,
9271 : CSR_64_SwiftError_RegMask,
9272 : CSR_64_TLS_Darwin_RegMask,
9273 : CSR_NoRegs_RegMask,
9274 : CSR_SysV64_RegCall_RegMask,
9275 : CSR_SysV64_RegCall_NoSSE_RegMask,
9276 : CSR_Win64_RegMask,
9277 : CSR_Win64_Intel_OCL_BI_AVX_RegMask,
9278 : CSR_Win64_Intel_OCL_BI_AVX512_RegMask,
9279 : CSR_Win64_NoSSE_RegMask,
9280 : CSR_Win64_RegCall_RegMask,
9281 : CSR_Win64_RegCall_NoSSE_RegMask,
9282 : CSR_Win64_SwiftError_RegMask,
9283 : };
9284 1640 : return makeArrayRef(Masks);
9285 : }
9286 :
9287 330 : ArrayRef<const char *> X86GenRegisterInfo::getRegMaskNames() const {
9288 : static const char *const Names[] = {
9289 : "CSR_32",
9290 : "CSR_32EHRet",
9291 : "CSR_32_AllRegs",
9292 : "CSR_32_AllRegs_AVX",
9293 : "CSR_32_AllRegs_AVX512",
9294 : "CSR_32_AllRegs_SSE",
9295 : "CSR_32_RegCall",
9296 : "CSR_32_RegCall_NoSSE",
9297 : "CSR_64",
9298 : "CSR_64EHRet",
9299 : "CSR_64_AllRegs",
9300 : "CSR_64_AllRegs_AVX",
9301 : "CSR_64_AllRegs_AVX512",
9302 : "CSR_64_AllRegs_NoSSE",
9303 : "CSR_64_CXX_TLS_Darwin_PE",
9304 : "CSR_64_CXX_TLS_Darwin_ViaCopy",
9305 : "CSR_64_HHVM",
9306 : "CSR_64_Intel_OCL_BI",
9307 : "CSR_64_Intel_OCL_BI_AVX",
9308 : "CSR_64_Intel_OCL_BI_AVX512",
9309 : "CSR_64_MostRegs",
9310 : "CSR_64_RT_AllRegs",
9311 : "CSR_64_RT_AllRegs_AVX",
9312 : "CSR_64_RT_MostRegs",
9313 : "CSR_64_SwiftError",
9314 : "CSR_64_TLS_Darwin",
9315 : "CSR_NoRegs",
9316 : "CSR_SysV64_RegCall",
9317 : "CSR_SysV64_RegCall_NoSSE",
9318 : "CSR_Win64",
9319 : "CSR_Win64_Intel_OCL_BI_AVX",
9320 : "CSR_Win64_Intel_OCL_BI_AVX512",
9321 : "CSR_Win64_NoSSE",
9322 : "CSR_Win64_RegCall",
9323 : "CSR_Win64_RegCall_NoSSE",
9324 : "CSR_Win64_SwiftError",
9325 : };
9326 330 : return makeArrayRef(Names);
9327 : }
9328 :
9329 : const X86FrameLowering *
9330 35937006 : X86GenRegisterInfo::getFrameLowering(const MachineFunction &MF) {
9331 : return static_cast<const X86FrameLowering *>(
9332 35937006 : MF.getSubtarget().getFrameLowering());
9333 : }
9334 :
9335 : } // end namespace llvm
9336 :
9337 : #endif // GET_REGINFO_TARGET_DESC
9338 :
|