Coverage Report

Created: 2026-06-08 07:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/keystone/llvm/lib/Target/AArch64/AArch64GenRegisterInfo.inc
Line
Count
Source
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
namespace llvm_ks {
13
14
class MCRegisterClass;
15
extern const MCRegisterClass AArch64MCRegisterClasses[];
16
17
namespace AArch64 {
18
enum {
19
  NoRegister,
20
  FP = 1,
21
  LR = 2,
22
  NZCV = 3,
23
  SP = 4,
24
  WSP = 5,
25
  WZR = 6,
26
  XZR = 7,
27
  B0 = 8,
28
  B1 = 9,
29
  B2 = 10,
30
  B3 = 11,
31
  B4 = 12,
32
  B5 = 13,
33
  B6 = 14,
34
  B7 = 15,
35
  B8 = 16,
36
  B9 = 17,
37
  B10 = 18,
38
  B11 = 19,
39
  B12 = 20,
40
  B13 = 21,
41
  B14 = 22,
42
  B15 = 23,
43
  B16 = 24,
44
  B17 = 25,
45
  B18 = 26,
46
  B19 = 27,
47
  B20 = 28,
48
  B21 = 29,
49
  B22 = 30,
50
  B23 = 31,
51
  B24 = 32,
52
  B25 = 33,
53
  B26 = 34,
54
  B27 = 35,
55
  B28 = 36,
56
  B29 = 37,
57
  B30 = 38,
58
  B31 = 39,
59
  D0 = 40,
60
  D1 = 41,
61
  D2 = 42,
62
  D3 = 43,
63
  D4 = 44,
64
  D5 = 45,
65
  D6 = 46,
66
  D7 = 47,
67
  D8 = 48,
68
  D9 = 49,
69
  D10 = 50,
70
  D11 = 51,
71
  D12 = 52,
72
  D13 = 53,
73
  D14 = 54,
74
  D15 = 55,
75
  D16 = 56,
76
  D17 = 57,
77
  D18 = 58,
78
  D19 = 59,
79
  D20 = 60,
80
  D21 = 61,
81
  D22 = 62,
82
  D23 = 63,
83
  D24 = 64,
84
  D25 = 65,
85
  D26 = 66,
86
  D27 = 67,
87
  D28 = 68,
88
  D29 = 69,
89
  D30 = 70,
90
  D31 = 71,
91
  H0 = 72,
92
  H1 = 73,
93
  H2 = 74,
94
  H3 = 75,
95
  H4 = 76,
96
  H5 = 77,
97
  H6 = 78,
98
  H7 = 79,
99
  H8 = 80,
100
  H9 = 81,
101
  H10 = 82,
102
  H11 = 83,
103
  H12 = 84,
104
  H13 = 85,
105
  H14 = 86,
106
  H15 = 87,
107
  H16 = 88,
108
  H17 = 89,
109
  H18 = 90,
110
  H19 = 91,
111
  H20 = 92,
112
  H21 = 93,
113
  H22 = 94,
114
  H23 = 95,
115
  H24 = 96,
116
  H25 = 97,
117
  H26 = 98,
118
  H27 = 99,
119
  H28 = 100,
120
  H29 = 101,
121
  H30 = 102,
122
  H31 = 103,
123
  Q0 = 104,
124
  Q1 = 105,
125
  Q2 = 106,
126
  Q3 = 107,
127
  Q4 = 108,
128
  Q5 = 109,
129
  Q6 = 110,
130
  Q7 = 111,
131
  Q8 = 112,
132
  Q9 = 113,
133
  Q10 = 114,
134
  Q11 = 115,
135
  Q12 = 116,
136
  Q13 = 117,
137
  Q14 = 118,
138
  Q15 = 119,
139
  Q16 = 120,
140
  Q17 = 121,
141
  Q18 = 122,
142
  Q19 = 123,
143
  Q20 = 124,
144
  Q21 = 125,
145
  Q22 = 126,
146
  Q23 = 127,
147
  Q24 = 128,
148
  Q25 = 129,
149
  Q26 = 130,
150
  Q27 = 131,
151
  Q28 = 132,
152
  Q29 = 133,
153
  Q30 = 134,
154
  Q31 = 135,
155
  S0 = 136,
156
  S1 = 137,
157
  S2 = 138,
158
  S3 = 139,
159
  S4 = 140,
160
  S5 = 141,
161
  S6 = 142,
162
  S7 = 143,
163
  S8 = 144,
164
  S9 = 145,
165
  S10 = 146,
166
  S11 = 147,
167
  S12 = 148,
168
  S13 = 149,
169
  S14 = 150,
170
  S15 = 151,
171
  S16 = 152,
172
  S17 = 153,
173
  S18 = 154,
174
  S19 = 155,
175
  S20 = 156,
176
  S21 = 157,
177
  S22 = 158,
178
  S23 = 159,
179
  S24 = 160,
180
  S25 = 161,
181
  S26 = 162,
182
  S27 = 163,
183
  S28 = 164,
184
  S29 = 165,
185
  S30 = 166,
186
  S31 = 167,
187
  W0 = 168,
188
  W1 = 169,
189
  W2 = 170,
190
  W3 = 171,
191
  W4 = 172,
192
  W5 = 173,
193
  W6 = 174,
194
  W7 = 175,
195
  W8 = 176,
196
  W9 = 177,
197
  W10 = 178,
198
  W11 = 179,
199
  W12 = 180,
200
  W13 = 181,
201
  W14 = 182,
202
  W15 = 183,
203
  W16 = 184,
204
  W17 = 185,
205
  W18 = 186,
206
  W19 = 187,
207
  W20 = 188,
208
  W21 = 189,
209
  W22 = 190,
210
  W23 = 191,
211
  W24 = 192,
212
  W25 = 193,
213
  W26 = 194,
214
  W27 = 195,
215
  W28 = 196,
216
  W29 = 197,
217
  W30 = 198,
218
  X0 = 199,
219
  X1 = 200,
220
  X2 = 201,
221
  X3 = 202,
222
  X4 = 203,
223
  X5 = 204,
224
  X6 = 205,
225
  X7 = 206,
226
  X8 = 207,
227
  X9 = 208,
228
  X10 = 209,
229
  X11 = 210,
230
  X12 = 211,
231
  X13 = 212,
232
  X14 = 213,
233
  X15 = 214,
234
  X16 = 215,
235
  X17 = 216,
236
  X18 = 217,
237
  X19 = 218,
238
  X20 = 219,
239
  X21 = 220,
240
  X22 = 221,
241
  X23 = 222,
242
  X24 = 223,
243
  X25 = 224,
244
  X26 = 225,
245
  X27 = 226,
246
  X28 = 227,
247
  D0_D1 = 228,
248
  D1_D2 = 229,
249
  D2_D3 = 230,
250
  D3_D4 = 231,
251
  D4_D5 = 232,
252
  D5_D6 = 233,
253
  D6_D7 = 234,
254
  D7_D8 = 235,
255
  D8_D9 = 236,
256
  D9_D10 = 237,
257
  D10_D11 = 238,
258
  D11_D12 = 239,
259
  D12_D13 = 240,
260
  D13_D14 = 241,
261
  D14_D15 = 242,
262
  D15_D16 = 243,
263
  D16_D17 = 244,
264
  D17_D18 = 245,
265
  D18_D19 = 246,
266
  D19_D20 = 247,
267
  D20_D21 = 248,
268
  D21_D22 = 249,
269
  D22_D23 = 250,
270
  D23_D24 = 251,
271
  D24_D25 = 252,
272
  D25_D26 = 253,
273
  D26_D27 = 254,
274
  D27_D28 = 255,
275
  D28_D29 = 256,
276
  D29_D30 = 257,
277
  D30_D31 = 258,
278
  D31_D0 = 259,
279
  D0_D1_D2_D3 = 260,
280
  D1_D2_D3_D4 = 261,
281
  D2_D3_D4_D5 = 262,
282
  D3_D4_D5_D6 = 263,
283
  D4_D5_D6_D7 = 264,
284
  D5_D6_D7_D8 = 265,
285
  D6_D7_D8_D9 = 266,
286
  D7_D8_D9_D10 = 267,
287
  D8_D9_D10_D11 = 268,
288
  D9_D10_D11_D12 = 269,
289
  D10_D11_D12_D13 = 270,
290
  D11_D12_D13_D14 = 271,
291
  D12_D13_D14_D15 = 272,
292
  D13_D14_D15_D16 = 273,
293
  D14_D15_D16_D17 = 274,
294
  D15_D16_D17_D18 = 275,
295
  D16_D17_D18_D19 = 276,
296
  D17_D18_D19_D20 = 277,
297
  D18_D19_D20_D21 = 278,
298
  D19_D20_D21_D22 = 279,
299
  D20_D21_D22_D23 = 280,
300
  D21_D22_D23_D24 = 281,
301
  D22_D23_D24_D25 = 282,
302
  D23_D24_D25_D26 = 283,
303
  D24_D25_D26_D27 = 284,
304
  D25_D26_D27_D28 = 285,
305
  D26_D27_D28_D29 = 286,
306
  D27_D28_D29_D30 = 287,
307
  D28_D29_D30_D31 = 288,
308
  D29_D30_D31_D0 = 289,
309
  D30_D31_D0_D1 = 290,
310
  D31_D0_D1_D2 = 291,
311
  D0_D1_D2 = 292,
312
  D1_D2_D3 = 293,
313
  D2_D3_D4 = 294,
314
  D3_D4_D5 = 295,
315
  D4_D5_D6 = 296,
316
  D5_D6_D7 = 297,
317
  D6_D7_D8 = 298,
318
  D7_D8_D9 = 299,
319
  D8_D9_D10 = 300,
320
  D9_D10_D11 = 301,
321
  D10_D11_D12 = 302,
322
  D11_D12_D13 = 303,
323
  D12_D13_D14 = 304,
324
  D13_D14_D15 = 305,
325
  D14_D15_D16 = 306,
326
  D15_D16_D17 = 307,
327
  D16_D17_D18 = 308,
328
  D17_D18_D19 = 309,
329
  D18_D19_D20 = 310,
330
  D19_D20_D21 = 311,
331
  D20_D21_D22 = 312,
332
  D21_D22_D23 = 313,
333
  D22_D23_D24 = 314,
334
  D23_D24_D25 = 315,
335
  D24_D25_D26 = 316,
336
  D25_D26_D27 = 317,
337
  D26_D27_D28 = 318,
338
  D27_D28_D29 = 319,
339
  D28_D29_D30 = 320,
340
  D29_D30_D31 = 321,
341
  D30_D31_D0 = 322,
342
  D31_D0_D1 = 323,
343
  Q0_Q1 = 324,
344
  Q1_Q2 = 325,
345
  Q2_Q3 = 326,
346
  Q3_Q4 = 327,
347
  Q4_Q5 = 328,
348
  Q5_Q6 = 329,
349
  Q6_Q7 = 330,
350
  Q7_Q8 = 331,
351
  Q8_Q9 = 332,
352
  Q9_Q10 = 333,
353
  Q10_Q11 = 334,
354
  Q11_Q12 = 335,
355
  Q12_Q13 = 336,
356
  Q13_Q14 = 337,
357
  Q14_Q15 = 338,
358
  Q15_Q16 = 339,
359
  Q16_Q17 = 340,
360
  Q17_Q18 = 341,
361
  Q18_Q19 = 342,
362
  Q19_Q20 = 343,
363
  Q20_Q21 = 344,
364
  Q21_Q22 = 345,
365
  Q22_Q23 = 346,
366
  Q23_Q24 = 347,
367
  Q24_Q25 = 348,
368
  Q25_Q26 = 349,
369
  Q26_Q27 = 350,
370
  Q27_Q28 = 351,
371
  Q28_Q29 = 352,
372
  Q29_Q30 = 353,
373
  Q30_Q31 = 354,
374
  Q31_Q0 = 355,
375
  Q0_Q1_Q2_Q3 = 356,
376
  Q1_Q2_Q3_Q4 = 357,
377
  Q2_Q3_Q4_Q5 = 358,
378
  Q3_Q4_Q5_Q6 = 359,
379
  Q4_Q5_Q6_Q7 = 360,
380
  Q5_Q6_Q7_Q8 = 361,
381
  Q6_Q7_Q8_Q9 = 362,
382
  Q7_Q8_Q9_Q10 = 363,
383
  Q8_Q9_Q10_Q11 = 364,
384
  Q9_Q10_Q11_Q12 = 365,
385
  Q10_Q11_Q12_Q13 = 366,
386
  Q11_Q12_Q13_Q14 = 367,
387
  Q12_Q13_Q14_Q15 = 368,
388
  Q13_Q14_Q15_Q16 = 369,
389
  Q14_Q15_Q16_Q17 = 370,
390
  Q15_Q16_Q17_Q18 = 371,
391
  Q16_Q17_Q18_Q19 = 372,
392
  Q17_Q18_Q19_Q20 = 373,
393
  Q18_Q19_Q20_Q21 = 374,
394
  Q19_Q20_Q21_Q22 = 375,
395
  Q20_Q21_Q22_Q23 = 376,
396
  Q21_Q22_Q23_Q24 = 377,
397
  Q22_Q23_Q24_Q25 = 378,
398
  Q23_Q24_Q25_Q26 = 379,
399
  Q24_Q25_Q26_Q27 = 380,
400
  Q25_Q26_Q27_Q28 = 381,
401
  Q26_Q27_Q28_Q29 = 382,
402
  Q27_Q28_Q29_Q30 = 383,
403
  Q28_Q29_Q30_Q31 = 384,
404
  Q29_Q30_Q31_Q0 = 385,
405
  Q30_Q31_Q0_Q1 = 386,
406
  Q31_Q0_Q1_Q2 = 387,
407
  Q0_Q1_Q2 = 388,
408
  Q1_Q2_Q3 = 389,
409
  Q2_Q3_Q4 = 390,
410
  Q3_Q4_Q5 = 391,
411
  Q4_Q5_Q6 = 392,
412
  Q5_Q6_Q7 = 393,
413
  Q6_Q7_Q8 = 394,
414
  Q7_Q8_Q9 = 395,
415
  Q8_Q9_Q10 = 396,
416
  Q9_Q10_Q11 = 397,
417
  Q10_Q11_Q12 = 398,
418
  Q11_Q12_Q13 = 399,
419
  Q12_Q13_Q14 = 400,
420
  Q13_Q14_Q15 = 401,
421
  Q14_Q15_Q16 = 402,
422
  Q15_Q16_Q17 = 403,
423
  Q16_Q17_Q18 = 404,
424
  Q17_Q18_Q19 = 405,
425
  Q18_Q19_Q20 = 406,
426
  Q19_Q20_Q21 = 407,
427
  Q20_Q21_Q22 = 408,
428
  Q21_Q22_Q23 = 409,
429
  Q22_Q23_Q24 = 410,
430
  Q23_Q24_Q25 = 411,
431
  Q24_Q25_Q26 = 412,
432
  Q25_Q26_Q27 = 413,
433
  Q26_Q27_Q28 = 414,
434
  Q27_Q28_Q29 = 415,
435
  Q28_Q29_Q30 = 416,
436
  Q29_Q30_Q31 = 417,
437
  Q30_Q31_Q0 = 418,
438
  Q31_Q0_Q1 = 419,
439
  WZR_W0 = 420,
440
  W30_WZR = 421,
441
  W0_W1 = 422,
442
  W1_W2 = 423,
443
  W2_W3 = 424,
444
  W3_W4 = 425,
445
  W4_W5 = 426,
446
  W5_W6 = 427,
447
  W6_W7 = 428,
448
  W7_W8 = 429,
449
  W8_W9 = 430,
450
  W9_W10 = 431,
451
  W10_W11 = 432,
452
  W11_W12 = 433,
453
  W12_W13 = 434,
454
  W13_W14 = 435,
455
  W14_W15 = 436,
456
  W15_W16 = 437,
457
  W16_W17 = 438,
458
  W17_W18 = 439,
459
  W18_W19 = 440,
460
  W19_W20 = 441,
461
  W20_W21 = 442,
462
  W21_W22 = 443,
463
  W22_W23 = 444,
464
  W23_W24 = 445,
465
  W24_W25 = 446,
466
  W25_W26 = 447,
467
  W26_W27 = 448,
468
  W27_W28 = 449,
469
  W28_W29 = 450,
470
  W29_W30 = 451,
471
  FP_LR = 452,
472
  LR_XZR = 453,
473
  XZR_X0 = 454,
474
  X28_FP = 455,
475
  X0_X1 = 456,
476
  X1_X2 = 457,
477
  X2_X3 = 458,
478
  X3_X4 = 459,
479
  X4_X5 = 460,
480
  X5_X6 = 461,
481
  X6_X7 = 462,
482
  X7_X8 = 463,
483
  X8_X9 = 464,
484
  X9_X10 = 465,
485
  X10_X11 = 466,
486
  X11_X12 = 467,
487
  X12_X13 = 468,
488
  X13_X14 = 469,
489
  X14_X15 = 470,
490
  X15_X16 = 471,
491
  X16_X17 = 472,
492
  X17_X18 = 473,
493
  X18_X19 = 474,
494
  X19_X20 = 475,
495
  X20_X21 = 476,
496
  X21_X22 = 477,
497
  X22_X23 = 478,
498
  X23_X24 = 479,
499
  X24_X25 = 480,
500
  X25_X26 = 481,
501
  X26_X27 = 482,
502
  X27_X28 = 483,
503
  NUM_TARGET_REGS   // 484
504
};
505
}
506
507
// Register classes
508
namespace AArch64 {
509
enum {
510
  FPR8RegClassID = 0,
511
  FPR16RegClassID = 1,
512
  GPR32allRegClassID = 2,
513
  FPR32RegClassID = 3,
514
  GPR32RegClassID = 4,
515
  GPR32spRegClassID = 5,
516
  GPR32commonRegClassID = 6,
517
  CCRRegClassID = 7,
518
  GPR32sponlyRegClassID = 8,
519
  WSeqPairsClassRegClassID = 9,
520
  WSeqPairsClass_with_sube32_in_GPR32commonRegClassID = 10,
521
  WSeqPairsClass_with_subo32_in_GPR32commonRegClassID = 11,
522
  WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32commonRegClassID = 12,
523
  GPR64allRegClassID = 13,
524
  FPR64RegClassID = 14,
525
  GPR64RegClassID = 15,
526
  GPR64spRegClassID = 16,
527
  GPR64commonRegClassID = 17,
528
  tcGPR64RegClassID = 18,
529
  GPR64sponlyRegClassID = 19,
530
  DDRegClassID = 20,
531
  XSeqPairsClassRegClassID = 21,
532
  XSeqPairsClass_with_sub_32_in_GPR32commonRegClassID = 22,
533
  XSeqPairsClass_with_subo64_in_GPR64commonRegClassID = 23,
534
  XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64commonRegClassID = 24,
535
  XSeqPairsClass_with_sube64_in_tcGPR64RegClassID = 25,
536
  XSeqPairsClass_with_subo64_in_tcGPR64RegClassID = 26,
537
  XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64RegClassID = 27,
538
  FPR128RegClassID = 28,
539
  FPR128_loRegClassID = 29,
540
  DDDRegClassID = 30,
541
  DDDDRegClassID = 31,
542
  QQRegClassID = 32,
543
  QQ_with_qsub0_in_FPR128_loRegClassID = 33,
544
  QQ_with_qsub1_in_FPR128_loRegClassID = 34,
545
  QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_loRegClassID = 35,
546
  QQQRegClassID = 36,
547
  QQQ_with_qsub0_in_FPR128_loRegClassID = 37,
548
  QQQ_with_qsub1_in_FPR128_loRegClassID = 38,
549
  QQQ_with_qsub2_in_FPR128_loRegClassID = 39,
550
  QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_loRegClassID = 40,
551
  QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loRegClassID = 41,
552
  QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loRegClassID = 42,
553
  QQQQRegClassID = 43,
554
  QQQQ_with_qsub0_in_FPR128_loRegClassID = 44,
555
  QQQQ_with_qsub1_in_FPR128_loRegClassID = 45,
556
  QQQQ_with_qsub2_in_FPR128_loRegClassID = 46,
557
  QQQQ_with_qsub3_in_FPR128_loRegClassID = 47,
558
  QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_loRegClassID = 48,
559
  QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loRegClassID = 49,
560
  QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loRegClassID = 50,
561
  QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loRegClassID = 51,
562
  QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loRegClassID = 52,
563
  QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loRegClassID = 53,
564
565
  };
566
}
567
568
// Register alternate name indices
569
namespace AArch64 {
570
enum {
571
  NoRegAltName, // 0
572
  vlist1, // 1
573
  vreg, // 2
574
  NUM_TARGET_REG_ALT_NAMES = 3
575
};
576
}
577
578
// Subregister indices
579
namespace AArch64 {
580
enum {
581
  NoSubRegister,
582
  bsub, // 1
583
  dsub, // 2
584
  dsub0,  // 3
585
  dsub1,  // 4
586
  dsub2,  // 5
587
  dsub3,  // 6
588
  hsub, // 7
589
  qhisub, // 8
590
  qsub, // 9
591
  qsub0,  // 10
592
  qsub1,  // 11
593
  qsub2,  // 12
594
  qsub3,  // 13
595
  ssub, // 14
596
  sub_32, // 15
597
  sube32, // 16
598
  sube64, // 17
599
  subo32, // 18
600
  subo64, // 19
601
  dsub1_then_bsub,  // 20
602
  dsub1_then_hsub,  // 21
603
  dsub1_then_ssub,  // 22
604
  dsub3_then_bsub,  // 23
605
  dsub3_then_hsub,  // 24
606
  dsub3_then_ssub,  // 25
607
  dsub2_then_bsub,  // 26
608
  dsub2_then_hsub,  // 27
609
  dsub2_then_ssub,  // 28
610
  qsub1_then_bsub,  // 29
611
  qsub1_then_dsub,  // 30
612
  qsub1_then_hsub,  // 31
613
  qsub1_then_ssub,  // 32
614
  qsub3_then_bsub,  // 33
615
  qsub3_then_dsub,  // 34
616
  qsub3_then_hsub,  // 35
617
  qsub3_then_ssub,  // 36
618
  qsub2_then_bsub,  // 37
619
  qsub2_then_dsub,  // 38
620
  qsub2_then_hsub,  // 39
621
  qsub2_then_ssub,  // 40
622
  subo64_then_sub_32, // 41
623
  dsub0_dsub1,  // 42
624
  dsub0_dsub1_dsub2,  // 43
625
  dsub1_dsub2,  // 44
626
  dsub1_dsub2_dsub3,  // 45
627
  dsub2_dsub3,  // 46
628
  dsub_qsub1_then_dsub, // 47
629
  dsub_qsub1_then_dsub_qsub2_then_dsub_qsub3_then_dsub, // 48
630
  dsub_qsub1_then_dsub_qsub2_then_dsub, // 49
631
  qsub0_qsub1,  // 50
632
  qsub0_qsub1_qsub2,  // 51
633
  qsub1_qsub2,  // 52
634
  qsub1_qsub2_qsub3,  // 53
635
  qsub2_qsub3,  // 54
636
  qsub1_then_dsub_qsub2_then_dsub,  // 55
637
  qsub1_then_dsub_qsub2_then_dsub_qsub3_then_dsub,  // 56
638
  qsub2_then_dsub_qsub3_then_dsub,  // 57
639
  sub_32_subo64_then_sub_32,  // 58
640
  NUM_TARGET_SUBREGS
641
};
642
}
643
} // End llvm namespace
644
#endif // GET_REGINFO_ENUM
645
646
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
647
|*                                                                            *|
648
|* MC Register Information                                                    *|
649
|*                                                                            *|
650
|* Automatically generated file, do not edit!                                 *|
651
|*                                                                            *|
652
\*===----------------------------------------------------------------------===*/
653
654
655
#ifdef GET_REGINFO_MC_DESC
656
#undef GET_REGINFO_MC_DESC
657
namespace llvm_ks {
658
659
extern const MCPhysReg AArch64RegDiffLists[] = {
660
  /* 0 */ 0, 1, 0,
661
  /* 3 */ 65185, 1, 1, 1, 0,
662
  /* 8 */ 65281, 1, 1, 1, 0,
663
  /* 13 */ 5, 29, 1, 1, 0,
664
  /* 18 */ 65340, 419, 30, 1, 1, 0,
665
  /* 24 */ 65153, 1, 1, 0,
666
  /* 28 */ 65249, 1, 1, 0,
667
  /* 32 */ 5, 1, 29, 1, 0,
668
  /* 37 */ 5, 30, 1, 0,
669
  /* 41 */ 1, 413, 1, 32, 1, 0,
670
  /* 47 */ 31, 222, 1, 33, 1, 0,
671
  /* 53 */ 65284, 96, 65472, 65472, 33, 96, 65472, 65472, 33, 96, 65472, 65472, 218, 1, 0,
672
  /* 68 */ 65284, 96, 65472, 65472, 33, 96, 65472, 65472, 1, 96, 65472, 65472, 250, 1, 0,
673
  /* 83 */ 256, 1, 0,
674
  /* 86 */ 446, 1, 0,
675
  /* 89 */ 450, 1, 0,
676
  /* 92 */ 65117, 1, 0,
677
  /* 95 */ 65151, 1, 0,
678
  /* 98 */ 65217, 1, 0,
679
  /* 101 */ 65282, 1, 0,
680
  /* 104 */ 65313, 1, 0,
681
  /* 107 */ 64, 64, 65440, 64, 123, 1, 62, 65503, 34, 65503, 34, 65503, 1, 63, 1, 62, 65503, 34, 65503, 34, 65503, 1, 0,
682
  /* 130 */ 219, 1, 62, 65503, 34, 65503, 34, 65503, 1, 0,
683
  /* 140 */ 64, 64, 65440, 64, 124, 31, 33, 65504, 62, 65503, 34, 65503, 1, 33, 31, 33, 65504, 62, 65503, 34, 65503, 1, 0,
684
  /* 163 */ 220, 31, 33, 65504, 62, 65503, 34, 65503, 1, 0,
685
  /* 173 */ 63, 65503, 34, 65503, 1, 64, 63, 65503, 34, 65503, 1, 0,
686
  /* 185 */ 64, 64, 65440, 64, 123, 1, 63, 1, 65503, 1, 62, 65503, 1, 33, 1, 63, 1, 65503, 1, 62, 65503, 1, 0,
687
  /* 208 */ 219, 1, 63, 1, 65503, 1, 62, 65503, 1, 0,
688
  /* 218 */ 64, 65504, 63, 65503, 1, 33, 64, 65504, 63, 65503, 1, 0,
689
  /* 230 */ 65503, 1, 128, 65503, 1, 0,
690
  /* 236 */ 31, 221, 2, 32, 2, 0,
691
  /* 242 */ 255, 2, 0,
692
  /* 245 */ 65340, 449, 1, 1, 3, 0,
693
  /* 251 */ 451, 3, 0,
694
  /* 254 */ 65084, 3, 0,
695
  /* 257 */ 4, 0,
696
  /* 259 */ 5, 0,
697
  /* 261 */ 31, 222, 1, 5, 28, 0,
698
  /* 267 */ 228, 28, 0,
699
  /* 270 */ 5, 1, 1, 29, 0,
700
  /* 275 */ 64, 64, 65440, 64, 123, 1, 62, 1, 65503, 34, 65503, 1, 29, 34, 1, 62, 1, 65503, 34, 65503, 1, 29, 0,
701
  /* 298 */ 219, 1, 62, 1, 65503, 34, 65503, 1, 29, 0,
702
  /* 308 */ 5, 1, 30, 0,
703
  /* 312 */ 63, 1, 65503, 1, 30, 34, 63, 1, 65503, 1, 30, 0,
704
  /* 324 */ 5, 31, 0,
705
  /* 327 */ 65504, 31, 97, 65504, 31, 0,
706
  /* 333 */ 32, 0,
707
  /* 335 */ 4, 33, 0,
708
  /* 338 */ 64178, 33, 0,
709
  /* 341 */ 34, 0,
710
  /* 343 */ 0, 65, 0,
711
  /* 346 */ 96, 0,
712
  /* 348 */ 65122, 162, 0,
713
  /* 351 */ 196, 0,
714
  /* 353 */ 65316, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 219, 0,
715
  /* 365 */ 65316, 65472, 96, 65472, 65472, 65, 65472, 96, 65472, 65472, 251, 0,
716
  /* 377 */ 65089, 65535, 193, 65505, 252, 0,
717
  /* 383 */ 65085, 196, 65341, 196, 253, 0,
718
  /* 389 */ 65308, 65505, 65341, 196, 253, 0,
719
  /* 395 */ 65279, 65505, 32, 65505, 253, 0,
720
  /* 401 */ 65085, 196, 65345, 65535, 415, 0,
721
  /* 407 */ 65339, 0,
722
  /* 409 */ 65313, 65344, 0,
723
  /* 412 */ 65374, 0,
724
  /* 414 */ 65405, 0,
725
  /* 416 */ 65437, 0,
726
  /* 418 */ 65252, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 218, 64, 32, 1, 65440, 0,
727
  /* 439 */ 65252, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 65, 65472, 96, 65472, 65472, 250, 64, 32, 1, 65440, 0,
728
  /* 460 */ 65252, 65472, 96, 65472, 65472, 65, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 250, 64, 32, 65505, 65440, 0,
729
  /* 481 */ 65284, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 65, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 249, 32, 32, 32, 64, 65473, 64, 65441, 65471, 64, 65441, 0,
730
  /* 513 */ 65316, 96, 65472, 65472, 33, 96, 65472, 65472, 1, 96, 65472, 65472, 33, 96, 65472, 65472, 249, 64, 65473, 64, 65441, 0,
731
  /* 535 */ 65469, 0,
732
  /* 537 */ 65348, 96, 65472, 65472, 1, 96, 65472, 65472, 0,
733
  /* 546 */ 65348, 96, 65472, 65472, 33, 96, 65472, 65472, 0,
734
  /* 555 */ 65472, 96, 65472, 65472, 0,
735
  /* 560 */ 65284, 65472, 96, 65472, 65472, 65, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 249, 32, 32, 32, 64, 65441, 64, 65473, 65439, 64, 65473, 0,
736
  /* 592 */ 65284, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 217, 32, 32, 32, 64, 65473, 64, 65473, 65439, 64, 65473, 0,
737
  /* 624 */ 65284, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 97, 65472, 96, 65472, 65472, 65, 65472, 96, 65472, 65472, 249, 32, 32, 32, 64, 65473, 64, 65473, 65439, 64, 65473, 0,
738
  /* 656 */ 65316, 96, 65472, 65472, 1, 96, 65472, 65472, 33, 96, 65472, 65472, 33, 96, 65472, 65472, 249, 64, 65441, 64, 65473, 0,
739
  /* 678 */ 65316, 96, 65472, 65472, 33, 96, 65472, 65472, 33, 96, 65472, 65472, 33, 96, 65472, 65472, 217, 64, 65473, 64, 65473, 0,
740
  /* 700 */ 65316, 96, 65472, 65472, 33, 96, 65472, 65472, 33, 96, 65472, 65472, 1, 96, 65472, 65472, 249, 64, 65473, 64, 65473, 0,
741
  /* 722 */ 65501, 0,
742
  /* 724 */ 65284, 96, 65472, 65472, 1, 96, 65472, 65472, 33, 96, 65472, 65472, 250, 65505, 0,
743
  /* 739 */ 65533, 0,
744
  /* 741 */ 65535, 0,
745
};
746
747
extern const unsigned AArch64LaneMaskLists[] = {
748
  /* 0 */ 0x00000000, ~0u,
749
  /* 2 */ 0x00000040, 0x00000001, ~0u,
750
  /* 5 */ 0x00000040, 0x00000100, 0x00000080, 0x00000001, ~0u,
751
  /* 10 */ 0x00000040, 0x00000100, 0x00000001, ~0u,
752
  /* 14 */ 0x00000200, 0x00000001, ~0u,
753
  /* 17 */ 0x00000200, 0x00000800, 0x00000400, 0x00000001, ~0u,
754
  /* 22 */ 0x00000200, 0x00000800, 0x00000001, ~0u,
755
  /* 26 */ 0x00001000, 0x00000008, ~0u,
756
  /* 29 */ 0x00000020, 0x00000010, ~0u,
757
  /* 32 */ 0x00000010, 0x00000020, ~0u,
758
  /* 35 */ 0x00000100, 0x00000080, 0x00000001, 0x00000040, ~0u,
759
  /* 40 */ 0x00000100, 0x00000001, 0x00000040, ~0u,
760
  /* 44 */ 0x00000001, 0x00000040, 0x00000100, 0x00000080, ~0u,
761
  /* 49 */ 0x00000080, 0x00000001, 0x00000040, 0x00000100, ~0u,
762
  /* 54 */ 0x00000800, 0x00000400, 0x00000001, 0x00000200, ~0u,
763
  /* 59 */ 0x00000800, 0x00000001, 0x00000200, ~0u,
764
  /* 63 */ 0x00000001, 0x00000200, 0x00000800, 0x00000400, ~0u,
765
  /* 68 */ 0x00000400, 0x00000001, 0x00000200, 0x00000800, ~0u,
766
  /* 73 */ 0x00000008, 0x00001000, ~0u,
767
};
768
769
extern const uint16_t AArch64SubRegIdxLists[] = {
770
  /* 0 */ 2, 14, 7, 1, 0,
771
  /* 5 */ 15, 0,
772
  /* 7 */ 16, 18, 0,
773
  /* 10 */ 3, 14, 7, 1, 4, 22, 21, 20, 0,
774
  /* 19 */ 3, 14, 7, 1, 4, 22, 21, 20, 5, 28, 27, 26, 42, 44, 0,
775
  /* 34 */ 3, 14, 7, 1, 4, 22, 21, 20, 5, 28, 27, 26, 6, 25, 24, 23, 42, 43, 44, 45, 46, 0,
776
  /* 56 */ 10, 2, 14, 7, 1, 11, 30, 32, 31, 29, 47, 0,
777
  /* 68 */ 10, 2, 14, 7, 1, 11, 30, 32, 31, 29, 12, 38, 40, 39, 37, 47, 49, 50, 52, 55, 0,
778
  /* 89 */ 10, 2, 14, 7, 1, 11, 30, 32, 31, 29, 12, 38, 40, 39, 37, 13, 34, 36, 35, 33, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0,
779
  /* 121 */ 17, 15, 19, 41, 58, 0,
780
};
781
782
extern const MCRegisterInfo::SubRegCoveredBits AArch64SubRegIdxRanges[] = {
783
  { 65535, 65535 },
784
  { 0, 8 }, // bsub
785
  { 0, 32 },  // dsub
786
  { 0, 64 },  // dsub0
787
  { 0, 64 },  // dsub1
788
  { 0, 64 },  // dsub2
789
  { 0, 64 },  // dsub3
790
  { 0, 16 },  // hsub
791
  { 0, 64 },  // qhisub
792
  { 0, 64 },  // qsub
793
  { 0, 128 }, // qsub0
794
  { 0, 128 }, // qsub1
795
  { 0, 128 }, // qsub2
796
  { 0, 128 }, // qsub3
797
  { 0, 32 },  // ssub
798
  { 0, 32 },  // sub_32
799
  { 0, 32 },  // sube32
800
  { 0, 64 },  // sube64
801
  { 0, 32 },  // subo32
802
  { 0, 64 },  // subo64
803
  { 0, 8 }, // dsub1_then_bsub
804
  { 0, 16 },  // dsub1_then_hsub
805
  { 0, 32 },  // dsub1_then_ssub
806
  { 0, 8 }, // dsub3_then_bsub
807
  { 0, 16 },  // dsub3_then_hsub
808
  { 0, 32 },  // dsub3_then_ssub
809
  { 0, 8 }, // dsub2_then_bsub
810
  { 0, 16 },  // dsub2_then_hsub
811
  { 0, 32 },  // dsub2_then_ssub
812
  { 0, 8 }, // qsub1_then_bsub
813
  { 0, 32 },  // qsub1_then_dsub
814
  { 0, 16 },  // qsub1_then_hsub
815
  { 0, 32 },  // qsub1_then_ssub
816
  { 0, 8 }, // qsub3_then_bsub
817
  { 0, 32 },  // qsub3_then_dsub
818
  { 0, 16 },  // qsub3_then_hsub
819
  { 0, 32 },  // qsub3_then_ssub
820
  { 0, 8 }, // qsub2_then_bsub
821
  { 0, 32 },  // qsub2_then_dsub
822
  { 0, 16 },  // qsub2_then_hsub
823
  { 0, 32 },  // qsub2_then_ssub
824
  { 0, 32 },  // subo64_then_sub_32
825
  { 65535, 128 }, // dsub0_dsub1
826
  { 65535, 192 }, // dsub0_dsub1_dsub2
827
  { 65535, 128 }, // dsub1_dsub2
828
  { 65535, 192 }, // dsub1_dsub2_dsub3
829
  { 65535, 128 }, // dsub2_dsub3
830
  { 65535, 64 },  // dsub_qsub1_then_dsub
831
  { 65535, 128 }, // dsub_qsub1_then_dsub_qsub2_then_dsub_qsub3_then_dsub
832
  { 65535, 96 },  // dsub_qsub1_then_dsub_qsub2_then_dsub
833
  { 65535, 256 }, // qsub0_qsub1
834
  { 65535, 384 }, // qsub0_qsub1_qsub2
835
  { 65535, 256 }, // qsub1_qsub2
836
  { 65535, 384 }, // qsub1_qsub2_qsub3
837
  { 65535, 256 }, // qsub2_qsub3
838
  { 65535, 64 },  // qsub1_then_dsub_qsub2_then_dsub
839
  { 65535, 96 },  // qsub1_then_dsub_qsub2_then_dsub_qsub3_then_dsub
840
  { 65535, 64 },  // qsub2_then_dsub_qsub3_then_dsub
841
  { 65535, 64 },  // sub_32_subo64_then_sub_32
842
};
843
844
extern const char AArch64RegStrings[] = {
845
  /* 0 */ 'B', '1', '0', 0,
846
  /* 4 */ 'D', '7', '_', 'D', '8', '_', 'D', '9', '_', 'D', '1', '0', 0,
847
  /* 17 */ 'H', '1', '0', 0,
848
  /* 21 */ 'Q', '7', '_', 'Q', '8', '_', 'Q', '9', '_', 'Q', '1', '0', 0,
849
  /* 34 */ 'S', '1', '0', 0,
850
  /* 38 */ 'W', '9', '_', 'W', '1', '0', 0,
851
  /* 45 */ 'X', '9', '_', 'X', '1', '0', 0,
852
  /* 52 */ 'B', '2', '0', 0,
853
  /* 56 */ 'D', '1', '7', '_', 'D', '1', '8', '_', 'D', '1', '9', '_', 'D', '2', '0', 0,
854
  /* 72 */ 'H', '2', '0', 0,
855
  /* 76 */ 'Q', '1', '7', '_', 'Q', '1', '8', '_', 'Q', '1', '9', '_', 'Q', '2', '0', 0,
856
  /* 92 */ 'S', '2', '0', 0,
857
  /* 96 */ 'W', '1', '9', '_', 'W', '2', '0', 0,
858
  /* 104 */ 'X', '1', '9', '_', 'X', '2', '0', 0,
859
  /* 112 */ 'B', '3', '0', 0,
860
  /* 116 */ 'D', '2', '7', '_', 'D', '2', '8', '_', 'D', '2', '9', '_', 'D', '3', '0', 0,
861
  /* 132 */ 'H', '3', '0', 0,
862
  /* 136 */ 'Q', '2', '7', '_', 'Q', '2', '8', '_', 'Q', '2', '9', '_', 'Q', '3', '0', 0,
863
  /* 152 */ 'S', '3', '0', 0,
864
  /* 156 */ 'W', '2', '9', '_', 'W', '3', '0', 0,
865
  /* 164 */ 'B', '0', 0,
866
  /* 167 */ 'D', '2', '9', '_', 'D', '3', '0', '_', 'D', '3', '1', '_', 'D', '0', 0,
867
  /* 182 */ 'H', '0', 0,
868
  /* 185 */ 'Q', '2', '9', '_', 'Q', '3', '0', '_', 'Q', '3', '1', '_', 'Q', '0', 0,
869
  /* 200 */ 'S', '0', 0,
870
  /* 203 */ 'W', 'Z', 'R', '_', 'W', '0', 0,
871
  /* 210 */ 'X', 'Z', 'R', '_', 'X', '0', 0,
872
  /* 217 */ 'B', '1', '1', 0,
873
  /* 221 */ 'D', '8', '_', 'D', '9', '_', 'D', '1', '0', '_', 'D', '1', '1', 0,
874
  /* 235 */ 'H', '1', '1', 0,
875
  /* 239 */ 'Q', '8', '_', 'Q', '9', '_', 'Q', '1', '0', '_', 'Q', '1', '1', 0,
876
  /* 253 */ 'S', '1', '1', 0,
877
  /* 257 */ 'W', '1', '0', '_', 'W', '1', '1', 0,
878
  /* 265 */ 'X', '1', '0', '_', 'X', '1', '1', 0,
879
  /* 273 */ 'B', '2', '1', 0,
880
  /* 277 */ 'D', '1', '8', '_', 'D', '1', '9', '_', 'D', '2', '0', '_', 'D', '2', '1', 0,
881
  /* 293 */ 'H', '2', '1', 0,
882
  /* 297 */ 'Q', '1', '8', '_', 'Q', '1', '9', '_', 'Q', '2', '0', '_', 'Q', '2', '1', 0,
883
  /* 313 */ 'S', '2', '1', 0,
884
  /* 317 */ 'W', '2', '0', '_', 'W', '2', '1', 0,
885
  /* 325 */ 'X', '2', '0', '_', 'X', '2', '1', 0,
886
  /* 333 */ 'B', '3', '1', 0,
887
  /* 337 */ 'D', '2', '8', '_', 'D', '2', '9', '_', 'D', '3', '0', '_', 'D', '3', '1', 0,
888
  /* 353 */ 'H', '3', '1', 0,
889
  /* 357 */ 'Q', '2', '8', '_', 'Q', '2', '9', '_', 'Q', '3', '0', '_', 'Q', '3', '1', 0,
890
  /* 373 */ 'S', '3', '1', 0,
891
  /* 377 */ 'B', '1', 0,
892
  /* 380 */ 'D', '3', '0', '_', 'D', '3', '1', '_', 'D', '0', '_', 'D', '1', 0,
893
  /* 394 */ 'H', '1', 0,
894
  /* 397 */ 'Q', '3', '0', '_', 'Q', '3', '1', '_', 'Q', '0', '_', 'Q', '1', 0,
895
  /* 411 */ 'S', '1', 0,
896
  /* 414 */ 'W', '0', '_', 'W', '1', 0,
897
  /* 420 */ 'X', '0', '_', 'X', '1', 0,
898
  /* 426 */ 'B', '1', '2', 0,
899
  /* 430 */ 'D', '9', '_', 'D', '1', '0', '_', 'D', '1', '1', '_', 'D', '1', '2', 0,
900
  /* 445 */ 'H', '1', '2', 0,
901
  /* 449 */ 'Q', '9', '_', 'Q', '1', '0', '_', 'Q', '1', '1', '_', 'Q', '1', '2', 0,
902
  /* 464 */ 'S', '1', '2', 0,
903
  /* 468 */ 'W', '1', '1', '_', 'W', '1', '2', 0,
904
  /* 476 */ 'X', '1', '1', '_', 'X', '1', '2', 0,
905
  /* 484 */ 'B', '2', '2', 0,
906
  /* 488 */ 'D', '1', '9', '_', 'D', '2', '0', '_', 'D', '2', '1', '_', 'D', '2', '2', 0,
907
  /* 504 */ 'H', '2', '2', 0,
908
  /* 508 */ 'Q', '1', '9', '_', 'Q', '2', '0', '_', 'Q', '2', '1', '_', 'Q', '2', '2', 0,
909
  /* 524 */ 'S', '2', '2', 0,
910
  /* 528 */ 'W', '2', '1', '_', 'W', '2', '2', 0,
911
  /* 536 */ 'X', '2', '1', '_', 'X', '2', '2', 0,
912
  /* 544 */ 'B', '2', 0,
913
  /* 547 */ 'D', '3', '1', '_', 'D', '0', '_', 'D', '1', '_', 'D', '2', 0,
914
  /* 560 */ 'H', '2', 0,
915
  /* 563 */ 'Q', '3', '1', '_', 'Q', '0', '_', 'Q', '1', '_', 'Q', '2', 0,
916
  /* 576 */ 'S', '2', 0,
917
  /* 579 */ 'W', '1', '_', 'W', '2', 0,
918
  /* 585 */ 'X', '1', '_', 'X', '2', 0,
919
  /* 591 */ 'B', '1', '3', 0,
920
  /* 595 */ 'D', '1', '0', '_', 'D', '1', '1', '_', 'D', '1', '2', '_', 'D', '1', '3', 0,
921
  /* 611 */ 'H', '1', '3', 0,
922
  /* 615 */ 'Q', '1', '0', '_', 'Q', '1', '1', '_', 'Q', '1', '2', '_', 'Q', '1', '3', 0,
923
  /* 631 */ 'S', '1', '3', 0,
924
  /* 635 */ 'W', '1', '2', '_', 'W', '1', '3', 0,
925
  /* 643 */ 'X', '1', '2', '_', 'X', '1', '3', 0,
926
  /* 651 */ 'B', '2', '3', 0,
927
  /* 655 */ 'D', '2', '0', '_', 'D', '2', '1', '_', 'D', '2', '2', '_', 'D', '2', '3', 0,
928
  /* 671 */ 'H', '2', '3', 0,
929
  /* 675 */ 'Q', '2', '0', '_', 'Q', '2', '1', '_', 'Q', '2', '2', '_', 'Q', '2', '3', 0,
930
  /* 691 */ 'S', '2', '3', 0,
931
  /* 695 */ 'W', '2', '2', '_', 'W', '2', '3', 0,
932
  /* 703 */ 'X', '2', '2', '_', 'X', '2', '3', 0,
933
  /* 711 */ 'B', '3', 0,
934
  /* 714 */ 'D', '0', '_', 'D', '1', '_', 'D', '2', '_', 'D', '3', 0,
935
  /* 726 */ 'H', '3', 0,
936
  /* 729 */ 'Q', '0', '_', 'Q', '1', '_', 'Q', '2', '_', 'Q', '3', 0,
937
  /* 741 */ 'S', '3', 0,
938
  /* 744 */ 'W', '2', '_', 'W', '3', 0,
939
  /* 750 */ 'X', '2', '_', 'X', '3', 0,
940
  /* 756 */ 'B', '1', '4', 0,
941
  /* 760 */ 'D', '1', '1', '_', 'D', '1', '2', '_', 'D', '1', '3', '_', 'D', '1', '4', 0,
942
  /* 776 */ 'H', '1', '4', 0,
943
  /* 780 */ 'Q', '1', '1', '_', 'Q', '1', '2', '_', 'Q', '1', '3', '_', 'Q', '1', '4', 0,
944
  /* 796 */ 'S', '1', '4', 0,
945
  /* 800 */ 'W', '1', '3', '_', 'W', '1', '4', 0,
946
  /* 808 */ 'X', '1', '3', '_', 'X', '1', '4', 0,
947
  /* 816 */ 'B', '2', '4', 0,
948
  /* 820 */ 'D', '2', '1', '_', 'D', '2', '2', '_', 'D', '2', '3', '_', 'D', '2', '4', 0,
949
  /* 836 */ 'H', '2', '4', 0,
950
  /* 840 */ 'Q', '2', '1', '_', 'Q', '2', '2', '_', 'Q', '2', '3', '_', 'Q', '2', '4', 0,
951
  /* 856 */ 'S', '2', '4', 0,
952
  /* 860 */ 'W', '2', '3', '_', 'W', '2', '4', 0,
953
  /* 868 */ 'X', '2', '3', '_', 'X', '2', '4', 0,
954
  /* 876 */ 'B', '4', 0,
955
  /* 879 */ 'D', '1', '_', 'D', '2', '_', 'D', '3', '_', 'D', '4', 0,
956
  /* 891 */ 'H', '4', 0,
957
  /* 894 */ 'Q', '1', '_', 'Q', '2', '_', 'Q', '3', '_', 'Q', '4', 0,
958
  /* 906 */ 'S', '4', 0,
959
  /* 909 */ 'W', '3', '_', 'W', '4', 0,
960
  /* 915 */ 'X', '3', '_', 'X', '4', 0,
961
  /* 921 */ 'B', '1', '5', 0,
962
  /* 925 */ 'D', '1', '2', '_', 'D', '1', '3', '_', 'D', '1', '4', '_', 'D', '1', '5', 0,
963
  /* 941 */ 'H', '1', '5', 0,
964
  /* 945 */ 'Q', '1', '2', '_', 'Q', '1', '3', '_', 'Q', '1', '4', '_', 'Q', '1', '5', 0,
965
  /* 961 */ 'S', '1', '5', 0,
966
  /* 965 */ 'W', '1', '4', '_', 'W', '1', '5', 0,
967
  /* 973 */ 'X', '1', '4', '_', 'X', '1', '5', 0,
968
  /* 981 */ 'B', '2', '5', 0,
969
  /* 985 */ 'D', '2', '2', '_', 'D', '2', '3', '_', 'D', '2', '4', '_', 'D', '2', '5', 0,
970
  /* 1001 */ 'H', '2', '5', 0,
971
  /* 1005 */ 'Q', '2', '2', '_', 'Q', '2', '3', '_', 'Q', '2', '4', '_', 'Q', '2', '5', 0,
972
  /* 1021 */ 'S', '2', '5', 0,
973
  /* 1025 */ 'W', '2', '4', '_', 'W', '2', '5', 0,
974
  /* 1033 */ 'X', '2', '4', '_', 'X', '2', '5', 0,
975
  /* 1041 */ 'B', '5', 0,
976
  /* 1044 */ 'D', '2', '_', 'D', '3', '_', 'D', '4', '_', 'D', '5', 0,
977
  /* 1056 */ 'H', '5', 0,
978
  /* 1059 */ 'Q', '2', '_', 'Q', '3', '_', 'Q', '4', '_', 'Q', '5', 0,
979
  /* 1071 */ 'S', '5', 0,
980
  /* 1074 */ 'W', '4', '_', 'W', '5', 0,
981
  /* 1080 */ 'X', '4', '_', 'X', '5', 0,
982
  /* 1086 */ 'B', '1', '6', 0,
983
  /* 1090 */ 'D', '1', '3', '_', 'D', '1', '4', '_', 'D', '1', '5', '_', 'D', '1', '6', 0,
984
  /* 1106 */ 'H', '1', '6', 0,
985
  /* 1110 */ 'Q', '1', '3', '_', 'Q', '1', '4', '_', 'Q', '1', '5', '_', 'Q', '1', '6', 0,
986
  /* 1126 */ 'S', '1', '6', 0,
987
  /* 1130 */ 'W', '1', '5', '_', 'W', '1', '6', 0,
988
  /* 1138 */ 'X', '1', '5', '_', 'X', '1', '6', 0,
989
  /* 1146 */ 'B', '2', '6', 0,
990
  /* 1150 */ 'D', '2', '3', '_', 'D', '2', '4', '_', 'D', '2', '5', '_', 'D', '2', '6', 0,
991
  /* 1166 */ 'H', '2', '6', 0,
992
  /* 1170 */ 'Q', '2', '3', '_', 'Q', '2', '4', '_', 'Q', '2', '5', '_', 'Q', '2', '6', 0,
993
  /* 1186 */ 'S', '2', '6', 0,
994
  /* 1190 */ 'W', '2', '5', '_', 'W', '2', '6', 0,
995
  /* 1198 */ 'X', '2', '5', '_', 'X', '2', '6', 0,
996
  /* 1206 */ 'B', '6', 0,
997
  /* 1209 */ 'D', '3', '_', 'D', '4', '_', 'D', '5', '_', 'D', '6', 0,
998
  /* 1221 */ 'H', '6', 0,
999
  /* 1224 */ 'Q', '3', '_', 'Q', '4', '_', 'Q', '5', '_', 'Q', '6', 0,
1000
  /* 1236 */ 'S', '6', 0,
1001
  /* 1239 */ 'W', '5', '_', 'W', '6', 0,
1002
  /* 1245 */ 'X', '5', '_', 'X', '6', 0,
1003
  /* 1251 */ 'B', '1', '7', 0,
1004
  /* 1255 */ 'D', '1', '4', '_', 'D', '1', '5', '_', 'D', '1', '6', '_', 'D', '1', '7', 0,
1005
  /* 1271 */ 'H', '1', '7', 0,
1006
  /* 1275 */ 'Q', '1', '4', '_', 'Q', '1', '5', '_', 'Q', '1', '6', '_', 'Q', '1', '7', 0,
1007
  /* 1291 */ 'S', '1', '7', 0,
1008
  /* 1295 */ 'W', '1', '6', '_', 'W', '1', '7', 0,
1009
  /* 1303 */ 'X', '1', '6', '_', 'X', '1', '7', 0,
1010
  /* 1311 */ 'B', '2', '7', 0,
1011
  /* 1315 */ 'D', '2', '4', '_', 'D', '2', '5', '_', 'D', '2', '6', '_', 'D', '2', '7', 0,
1012
  /* 1331 */ 'H', '2', '7', 0,
1013
  /* 1335 */ 'Q', '2', '4', '_', 'Q', '2', '5', '_', 'Q', '2', '6', '_', 'Q', '2', '7', 0,
1014
  /* 1351 */ 'S', '2', '7', 0,
1015
  /* 1355 */ 'W', '2', '6', '_', 'W', '2', '7', 0,
1016
  /* 1363 */ 'X', '2', '6', '_', 'X', '2', '7', 0,
1017
  /* 1371 */ 'B', '7', 0,
1018
  /* 1374 */ 'D', '4', '_', 'D', '5', '_', 'D', '6', '_', 'D', '7', 0,
1019
  /* 1386 */ 'H', '7', 0,
1020
  /* 1389 */ 'Q', '4', '_', 'Q', '5', '_', 'Q', '6', '_', 'Q', '7', 0,
1021
  /* 1401 */ 'S', '7', 0,
1022
  /* 1404 */ 'W', '6', '_', 'W', '7', 0,
1023
  /* 1410 */ 'X', '6', '_', 'X', '7', 0,
1024
  /* 1416 */ 'B', '1', '8', 0,
1025
  /* 1420 */ 'D', '1', '5', '_', 'D', '1', '6', '_', 'D', '1', '7', '_', 'D', '1', '8', 0,
1026
  /* 1436 */ 'H', '1', '8', 0,
1027
  /* 1440 */ 'Q', '1', '5', '_', 'Q', '1', '6', '_', 'Q', '1', '7', '_', 'Q', '1', '8', 0,
1028
  /* 1456 */ 'S', '1', '8', 0,
1029
  /* 1460 */ 'W', '1', '7', '_', 'W', '1', '8', 0,
1030
  /* 1468 */ 'X', '1', '7', '_', 'X', '1', '8', 0,
1031
  /* 1476 */ 'B', '2', '8', 0,
1032
  /* 1480 */ 'D', '2', '5', '_', 'D', '2', '6', '_', 'D', '2', '7', '_', 'D', '2', '8', 0,
1033
  /* 1496 */ 'H', '2', '8', 0,
1034
  /* 1500 */ 'Q', '2', '5', '_', 'Q', '2', '6', '_', 'Q', '2', '7', '_', 'Q', '2', '8', 0,
1035
  /* 1516 */ 'S', '2', '8', 0,
1036
  /* 1520 */ 'W', '2', '7', '_', 'W', '2', '8', 0,
1037
  /* 1528 */ 'X', '2', '7', '_', 'X', '2', '8', 0,
1038
  /* 1536 */ 'B', '8', 0,
1039
  /* 1539 */ 'D', '5', '_', 'D', '6', '_', 'D', '7', '_', 'D', '8', 0,
1040
  /* 1551 */ 'H', '8', 0,
1041
  /* 1554 */ 'Q', '5', '_', 'Q', '6', '_', 'Q', '7', '_', 'Q', '8', 0,
1042
  /* 1566 */ 'S', '8', 0,
1043
  /* 1569 */ 'W', '7', '_', 'W', '8', 0,
1044
  /* 1575 */ 'X', '7', '_', 'X', '8', 0,
1045
  /* 1581 */ 'B', '1', '9', 0,
1046
  /* 1585 */ 'D', '1', '6', '_', 'D', '1', '7', '_', 'D', '1', '8', '_', 'D', '1', '9', 0,
1047
  /* 1601 */ 'H', '1', '9', 0,
1048
  /* 1605 */ 'Q', '1', '6', '_', 'Q', '1', '7', '_', 'Q', '1', '8', '_', 'Q', '1', '9', 0,
1049
  /* 1621 */ 'S', '1', '9', 0,
1050
  /* 1625 */ 'W', '1', '8', '_', 'W', '1', '9', 0,
1051
  /* 1633 */ 'X', '1', '8', '_', 'X', '1', '9', 0,
1052
  /* 1641 */ 'B', '2', '9', 0,
1053
  /* 1645 */ 'D', '2', '6', '_', 'D', '2', '7', '_', 'D', '2', '8', '_', 'D', '2', '9', 0,
1054
  /* 1661 */ 'H', '2', '9', 0,
1055
  /* 1665 */ 'Q', '2', '6', '_', 'Q', '2', '7', '_', 'Q', '2', '8', '_', 'Q', '2', '9', 0,
1056
  /* 1681 */ 'S', '2', '9', 0,
1057
  /* 1685 */ 'W', '2', '8', '_', 'W', '2', '9', 0,
1058
  /* 1693 */ 'B', '9', 0,
1059
  /* 1696 */ 'D', '6', '_', 'D', '7', '_', 'D', '8', '_', 'D', '9', 0,
1060
  /* 1708 */ 'H', '9', 0,
1061
  /* 1711 */ 'Q', '6', '_', 'Q', '7', '_', 'Q', '8', '_', 'Q', '9', 0,
1062
  /* 1723 */ 'S', '9', 0,
1063
  /* 1726 */ 'W', '8', '_', 'W', '9', 0,
1064
  /* 1732 */ 'X', '8', '_', 'X', '9', 0,
1065
  /* 1738 */ 'X', '2', '8', '_', 'F', 'P', 0,
1066
  /* 1745 */ 'W', 'S', 'P', 0,
1067
  /* 1749 */ 'F', 'P', '_', 'L', 'R', 0,
1068
  /* 1755 */ 'W', '3', '0', '_', 'W', 'Z', 'R', 0,
1069
  /* 1763 */ 'L', 'R', '_', 'X', 'Z', 'R', 0,
1070
  /* 1770 */ 'N', 'Z', 'C', 'V', 0,
1071
};
1072
1073
extern const MCRegisterDesc AArch64RegDesc[] = { // Descriptors
1074
  { 3, 0, 0, 0, 0, 0 },
1075
  { 1742, 351, 251, 5, 11857, 27 },
1076
  { 1752, 351, 89, 5, 11857, 27 },
1077
  { 1770, 2, 2, 4, 11857, 0 },
1078
  { 1746, 1, 2, 5, 3984, 27 },
1079
  { 1745, 2, 741, 4, 3984, 0 },
1080
  { 1759, 2, 41, 4, 4112, 0 },
1081
  { 1766, 741, 86, 5, 4112, 27 },
1082
  { 164, 2, 140, 4, 11825, 0 },
1083
  { 377, 2, 185, 4, 11825, 0 },
1084
  { 544, 2, 275, 4, 11825, 0 },
1085
  { 711, 2, 107, 4, 11825, 0 },
1086
  { 876, 2, 107, 4, 11825, 0 },
1087
  { 1041, 2, 107, 4, 11825, 0 },
1088
  { 1206, 2, 107, 4, 11825, 0 },
1089
  { 1371, 2, 107, 4, 11825, 0 },
1090
  { 1536, 2, 107, 4, 11825, 0 },
1091
  { 1693, 2, 107, 4, 11825, 0 },
1092
  { 0, 2, 107, 4, 11825, 0 },
1093
  { 217, 2, 107, 4, 11825, 0 },
1094
  { 426, 2, 107, 4, 11825, 0 },
1095
  { 591, 2, 107, 4, 11825, 0 },
1096
  { 756, 2, 107, 4, 11825, 0 },
1097
  { 921, 2, 107, 4, 11825, 0 },
1098
  { 1086, 2, 107, 4, 11825, 0 },
1099
  { 1251, 2, 107, 4, 11825, 0 },
1100
  { 1416, 2, 107, 4, 11825, 0 },
1101
  { 1581, 2, 107, 4, 11825, 0 },
1102
  { 52, 2, 107, 4, 11825, 0 },
1103
  { 273, 2, 107, 4, 11825, 0 },
1104
  { 484, 2, 107, 4, 11825, 0 },
1105
  { 651, 2, 107, 4, 11825, 0 },
1106
  { 816, 2, 107, 4, 11825, 0 },
1107
  { 981, 2, 107, 4, 11825, 0 },
1108
  { 1146, 2, 107, 4, 11825, 0 },
1109
  { 1311, 2, 107, 4, 11825, 0 },
1110
  { 1476, 2, 107, 4, 11825, 0 },
1111
  { 1641, 2, 107, 4, 11825, 0 },
1112
  { 112, 2, 107, 4, 11825, 0 },
1113
  { 333, 2, 107, 4, 11825, 0 },
1114
  { 179, 542, 143, 1, 11553, 3 },
1115
  { 391, 542, 188, 1, 11553, 3 },
1116
  { 557, 542, 278, 1, 11553, 3 },
1117
  { 723, 542, 110, 1, 11553, 3 },
1118
  { 888, 542, 110, 1, 11553, 3 },
1119
  { 1053, 542, 110, 1, 11553, 3 },
1120
  { 1218, 542, 110, 1, 11553, 3 },
1121
  { 1383, 542, 110, 1, 11553, 3 },
1122
  { 1548, 542, 110, 1, 11553, 3 },
1123
  { 1705, 542, 110, 1, 11553, 3 },
1124
  { 13, 542, 110, 1, 11553, 3 },
1125
  { 231, 542, 110, 1, 11553, 3 },
1126
  { 441, 542, 110, 1, 11553, 3 },
1127
  { 607, 542, 110, 1, 11553, 3 },
1128
  { 772, 542, 110, 1, 11553, 3 },
1129
  { 937, 542, 110, 1, 11553, 3 },
1130
  { 1102, 542, 110, 1, 11553, 3 },
1131
  { 1267, 542, 110, 1, 11553, 3 },
1132
  { 1432, 542, 110, 1, 11553, 3 },
1133
  { 1597, 542, 110, 1, 11553, 3 },
1134
  { 68, 542, 110, 1, 11553, 3 },
1135
  { 289, 542, 110, 1, 11553, 3 },
1136
  { 500, 542, 110, 1, 11553, 3 },
1137
  { 667, 542, 110, 1, 11553, 3 },
1138
  { 832, 542, 110, 1, 11553, 3 },
1139
  { 997, 542, 110, 1, 11553, 3 },
1140
  { 1162, 542, 110, 1, 11553, 3 },
1141
  { 1327, 542, 110, 1, 11553, 3 },
1142
  { 1492, 542, 110, 1, 11553, 3 },
1143
  { 1657, 542, 110, 1, 11553, 3 },
1144
  { 128, 542, 110, 1, 11553, 3 },
1145
  { 349, 542, 110, 1, 11553, 3 },
1146
  { 182, 544, 141, 3, 8561, 3 },
1147
  { 394, 544, 186, 3, 8561, 3 },
1148
  { 560, 544, 276, 3, 8561, 3 },
1149
  { 726, 544, 108, 3, 8561, 3 },
1150
  { 891, 544, 108, 3, 8561, 3 },
1151
  { 1056, 544, 108, 3, 8561, 3 },
1152
  { 1221, 544, 108, 3, 8561, 3 },
1153
  { 1386, 544, 108, 3, 8561, 3 },
1154
  { 1551, 544, 108, 3, 8561, 3 },
1155
  { 1708, 544, 108, 3, 8561, 3 },
1156
  { 17, 544, 108, 3, 8561, 3 },
1157
  { 235, 544, 108, 3, 8561, 3 },
1158
  { 445, 544, 108, 3, 8561, 3 },
1159
  { 611, 544, 108, 3, 8561, 3 },
1160
  { 776, 544, 108, 3, 8561, 3 },
1161
  { 941, 544, 108, 3, 8561, 3 },
1162
  { 1106, 544, 108, 3, 8561, 3 },
1163
  { 1271, 544, 108, 3, 8561, 3 },
1164
  { 1436, 544, 108, 3, 8561, 3 },
1165
  { 1601, 544, 108, 3, 8561, 3 },
1166
  { 72, 544, 108, 3, 8561, 3 },
1167
  { 293, 544, 108, 3, 8561, 3 },
1168
  { 504, 544, 108, 3, 8561, 3 },
1169
  { 671, 544, 108, 3, 8561, 3 },
1170
  { 836, 544, 108, 3, 8561, 3 },
1171
  { 1001, 544, 108, 3, 8561, 3 },
1172
  { 1166, 544, 108, 3, 8561, 3 },
1173
  { 1331, 544, 108, 3, 8561, 3 },
1174
  { 1496, 544, 108, 3, 8561, 3 },
1175
  { 1661, 544, 108, 3, 8561, 3 },
1176
  { 132, 544, 108, 3, 8561, 3 },
1177
  { 353, 544, 108, 3, 8561, 3 },
1178
  { 197, 555, 163, 0, 6657, 3 },
1179
  { 408, 555, 208, 0, 6657, 3 },
1180
  { 573, 555, 298, 0, 6657, 3 },
1181
  { 738, 555, 130, 0, 6657, 3 },
1182
  { 903, 555, 130, 0, 6657, 3 },
1183
  { 1068, 555, 130, 0, 6657, 3 },
1184
  { 1233, 555, 130, 0, 6657, 3 },
1185
  { 1398, 555, 130, 0, 6657, 3 },
1186
  { 1563, 555, 130, 0, 6657, 3 },
1187
  { 1720, 555, 130, 0, 6657, 3 },
1188
  { 30, 555, 130, 0, 6657, 3 },
1189
  { 249, 555, 130, 0, 6657, 3 },
1190
  { 460, 555, 130, 0, 6657, 3 },
1191
  { 627, 555, 130, 0, 6657, 3 },
1192
  { 792, 555, 130, 0, 6657, 3 },
1193
  { 957, 555, 130, 0, 6657, 3 },
1194
  { 1122, 555, 130, 0, 6657, 3 },
1195
  { 1287, 555, 130, 0, 6657, 3 },
1196
  { 1452, 555, 130, 0, 6657, 3 },
1197
  { 1617, 555, 130, 0, 6657, 3 },
1198
  { 88, 555, 130, 0, 6657, 3 },
1199
  { 309, 555, 130, 0, 6657, 3 },
1200
  { 520, 555, 130, 0, 6657, 3 },
1201
  { 687, 555, 130, 0, 6657, 3 },
1202
  { 852, 555, 130, 0, 6657, 3 },
1203
  { 1017, 555, 130, 0, 6657, 3 },
1204
  { 1182, 555, 130, 0, 6657, 3 },
1205
  { 1347, 555, 130, 0, 6657, 3 },
1206
  { 1512, 555, 130, 0, 6657, 3 },
1207
  { 1677, 555, 130, 0, 6657, 3 },
1208
  { 148, 555, 130, 0, 6657, 3 },
1209
  { 369, 555, 130, 0, 6657, 3 },
1210
  { 200, 543, 142, 2, 6625, 3 },
1211
  { 411, 543, 187, 2, 6625, 3 },
1212
  { 576, 543, 277, 2, 6625, 3 },
1213
  { 741, 543, 109, 2, 6625, 3 },
1214
  { 906, 543, 109, 2, 6625, 3 },
1215
  { 1071, 543, 109, 2, 6625, 3 },
1216
  { 1236, 543, 109, 2, 6625, 3 },
1217
  { 1401, 543, 109, 2, 6625, 3 },
1218
  { 1566, 543, 109, 2, 6625, 3 },
1219
  { 1723, 543, 109, 2, 6625, 3 },
1220
  { 34, 543, 109, 2, 6625, 3 },
1221
  { 253, 543, 109, 2, 6625, 3 },
1222
  { 464, 543, 109, 2, 6625, 3 },
1223
  { 631, 543, 109, 2, 6625, 3 },
1224
  { 796, 543, 109, 2, 6625, 3 },
1225
  { 961, 543, 109, 2, 6625, 3 },
1226
  { 1126, 543, 109, 2, 6625, 3 },
1227
  { 1291, 543, 109, 2, 6625, 3 },
1228
  { 1456, 543, 109, 2, 6625, 3 },
1229
  { 1621, 543, 109, 2, 6625, 3 },
1230
  { 92, 543, 109, 2, 6625, 3 },
1231
  { 313, 543, 109, 2, 6625, 3 },
1232
  { 524, 543, 109, 2, 6625, 3 },
1233
  { 691, 543, 109, 2, 6625, 3 },
1234
  { 856, 543, 109, 2, 6625, 3 },
1235
  { 1021, 543, 109, 2, 6625, 3 },
1236
  { 1186, 543, 109, 2, 6625, 3 },
1237
  { 1351, 543, 109, 2, 6625, 3 },
1238
  { 1516, 543, 109, 2, 6625, 3 },
1239
  { 1681, 543, 109, 2, 6625, 3 },
1240
  { 152, 543, 109, 2, 6625, 3 },
1241
  { 373, 543, 109, 2, 6625, 3 },
1242
  { 207, 2, 236, 4, 6625, 0 },
1243
  { 417, 2, 47, 4, 6625, 0 },
1244
  { 582, 2, 47, 4, 6625, 0 },
1245
  { 747, 2, 47, 4, 6625, 0 },
1246
  { 912, 2, 47, 4, 6625, 0 },
1247
  { 1077, 2, 47, 4, 6625, 0 },
1248
  { 1242, 2, 47, 4, 6625, 0 },
1249
  { 1407, 2, 47, 4, 6625, 0 },
1250
  { 1572, 2, 47, 4, 6625, 0 },
1251
  { 1729, 2, 47, 4, 6625, 0 },
1252
  { 41, 2, 47, 4, 6625, 0 },
1253
  { 261, 2, 47, 4, 6625, 0 },
1254
  { 472, 2, 47, 4, 6625, 0 },
1255
  { 639, 2, 47, 4, 6625, 0 },
1256
  { 804, 2, 47, 4, 6625, 0 },
1257
  { 969, 2, 47, 4, 6625, 0 },
1258
  { 1134, 2, 47, 4, 6625, 0 },
1259
  { 1299, 2, 47, 4, 6625, 0 },
1260
  { 1464, 2, 47, 4, 6625, 0 },
1261
  { 1629, 2, 47, 4, 6625, 0 },
1262
  { 100, 2, 47, 4, 6625, 0 },
1263
  { 321, 2, 47, 4, 6625, 0 },
1264
  { 532, 2, 47, 4, 6625, 0 },
1265
  { 699, 2, 47, 4, 6625, 0 },
1266
  { 864, 2, 47, 4, 6625, 0 },
1267
  { 1029, 2, 47, 4, 6625, 0 },
1268
  { 1194, 2, 47, 4, 6625, 0 },
1269
  { 1359, 2, 47, 4, 6625, 0 },
1270
  { 1524, 2, 261, 4, 6625, 0 },
1271
  { 1689, 2, 245, 4, 6513, 0 },
1272
  { 160, 2, 18, 4, 6513, 0 },
1273
  { 214, 737, 242, 5, 6593, 27 },
1274
  { 423, 737, 83, 5, 6593, 27 },
1275
  { 588, 737, 83, 5, 6593, 27 },
1276
  { 753, 737, 83, 5, 6593, 27 },
1277
  { 918, 737, 83, 5, 6593, 27 },
1278
  { 1083, 737, 83, 5, 6593, 27 },
1279
  { 1248, 737, 83, 5, 6593, 27 },
1280
  { 1413, 737, 83, 5, 6593, 27 },
1281
  { 1578, 737, 83, 5, 6593, 27 },
1282
  { 1735, 737, 83, 5, 6593, 27 },
1283
  { 48, 737, 83, 5, 6593, 27 },
1284
  { 269, 737, 83, 5, 6593, 27 },
1285
  { 480, 737, 83, 5, 6593, 27 },
1286
  { 647, 737, 83, 5, 6593, 27 },
1287
  { 812, 737, 83, 5, 6593, 27 },
1288
  { 977, 737, 83, 5, 6593, 27 },
1289
  { 1142, 737, 83, 5, 6593, 27 },
1290
  { 1307, 737, 83, 5, 6593, 27 },
1291
  { 1472, 737, 83, 5, 6593, 27 },
1292
  { 1637, 737, 83, 5, 6593, 27 },
1293
  { 108, 737, 83, 5, 6593, 27 },
1294
  { 329, 737, 83, 5, 6593, 27 },
1295
  { 540, 737, 83, 5, 6593, 27 },
1296
  { 707, 737, 83, 5, 6593, 27 },
1297
  { 872, 737, 83, 5, 6593, 27 },
1298
  { 1037, 737, 83, 5, 6593, 27 },
1299
  { 1202, 737, 83, 5, 6593, 27 },
1300
  { 1367, 737, 83, 5, 6593, 27 },
1301
  { 1532, 737, 267, 5, 6593, 27 },
1302
  { 388, 546, 218, 10, 1665, 37 },
1303
  { 554, 546, 312, 10, 1665, 37 },
1304
  { 720, 546, 173, 10, 1665, 37 },
1305
  { 885, 546, 173, 10, 1665, 37 },
1306
  { 1050, 546, 173, 10, 1665, 37 },
1307
  { 1215, 546, 173, 10, 1665, 37 },
1308
  { 1380, 546, 173, 10, 1665, 37 },
1309
  { 1545, 546, 173, 10, 1665, 37 },
1310
  { 1702, 546, 173, 10, 1665, 37 },
1311
  { 10, 546, 173, 10, 1665, 37 },
1312
  { 227, 546, 173, 10, 1665, 37 },
1313
  { 437, 546, 173, 10, 1665, 37 },
1314
  { 603, 546, 173, 10, 1665, 37 },
1315
  { 768, 546, 173, 10, 1665, 37 },
1316
  { 933, 546, 173, 10, 1665, 37 },
1317
  { 1098, 546, 173, 10, 1665, 37 },
1318
  { 1263, 546, 173, 10, 1665, 37 },
1319
  { 1428, 546, 173, 10, 1665, 37 },
1320
  { 1593, 546, 173, 10, 1665, 37 },
1321
  { 64, 546, 173, 10, 1665, 37 },
1322
  { 285, 546, 173, 10, 1665, 37 },
1323
  { 496, 546, 173, 10, 1665, 37 },
1324
  { 663, 546, 173, 10, 1665, 37 },
1325
  { 828, 546, 173, 10, 1665, 37 },
1326
  { 993, 546, 173, 10, 1665, 37 },
1327
  { 1158, 546, 173, 10, 1665, 37 },
1328
  { 1323, 546, 173, 10, 1665, 37 },
1329
  { 1488, 546, 173, 10, 1665, 37 },
1330
  { 1653, 546, 173, 10, 1665, 37 },
1331
  { 124, 546, 173, 10, 1665, 37 },
1332
  { 345, 546, 173, 10, 1665, 37 },
1333
  { 175, 537, 173, 10, 5184, 2 },
1334
  { 714, 678, 346, 34, 129, 44 },
1335
  { 879, 678, 346, 34, 129, 44 },
1336
  { 1044, 678, 346, 34, 129, 44 },
1337
  { 1209, 678, 346, 34, 129, 44 },
1338
  { 1374, 678, 346, 34, 129, 44 },
1339
  { 1539, 678, 346, 34, 129, 44 },
1340
  { 1696, 678, 346, 34, 129, 44 },
1341
  { 4, 678, 346, 34, 129, 44 },
1342
  { 221, 678, 346, 34, 129, 44 },
1343
  { 430, 678, 346, 34, 129, 44 },
1344
  { 595, 678, 346, 34, 129, 44 },
1345
  { 760, 678, 346, 34, 129, 44 },
1346
  { 925, 678, 346, 34, 129, 44 },
1347
  { 1090, 678, 346, 34, 129, 44 },
1348
  { 1255, 678, 346, 34, 129, 44 },
1349
  { 1420, 678, 346, 34, 129, 44 },
1350
  { 1585, 678, 346, 34, 129, 44 },
1351
  { 56, 678, 346, 34, 129, 44 },
1352
  { 277, 678, 346, 34, 129, 44 },
1353
  { 488, 678, 346, 34, 129, 44 },
1354
  { 655, 678, 346, 34, 129, 44 },
1355
  { 820, 678, 346, 34, 129, 44 },
1356
  { 985, 678, 346, 34, 129, 44 },
1357
  { 1150, 678, 346, 34, 129, 44 },
1358
  { 1315, 678, 346, 34, 129, 44 },
1359
  { 1480, 678, 346, 34, 129, 44 },
1360
  { 1645, 678, 346, 34, 129, 44 },
1361
  { 116, 678, 346, 34, 129, 44 },
1362
  { 337, 678, 346, 34, 129, 44 },
1363
  { 167, 700, 346, 34, 208, 49 },
1364
  { 380, 513, 346, 34, 512, 35 },
1365
  { 547, 656, 346, 34, 4320, 5 },
1366
  { 551, 53, 327, 19, 449, 50 },
1367
  { 717, 53, 230, 19, 449, 50 },
1368
  { 882, 53, 230, 19, 449, 50 },
1369
  { 1047, 53, 230, 19, 449, 50 },
1370
  { 1212, 53, 230, 19, 449, 50 },
1371
  { 1377, 53, 230, 19, 449, 50 },
1372
  { 1542, 53, 230, 19, 449, 50 },
1373
  { 1699, 53, 230, 19, 449, 50 },
1374
  { 7, 53, 230, 19, 449, 50 },
1375
  { 224, 53, 230, 19, 449, 50 },
1376
  { 433, 53, 230, 19, 449, 50 },
1377
  { 599, 53, 230, 19, 449, 50 },
1378
  { 764, 53, 230, 19, 449, 50 },
1379
  { 929, 53, 230, 19, 449, 50 },
1380
  { 1094, 53, 230, 19, 449, 50 },
1381
  { 1259, 53, 230, 19, 449, 50 },
1382
  { 1424, 53, 230, 19, 449, 50 },
1383
  { 1589, 53, 230, 19, 449, 50 },
1384
  { 60, 53, 230, 19, 449, 50 },
1385
  { 281, 53, 230, 19, 449, 50 },
1386
  { 492, 53, 230, 19, 449, 50 },
1387
  { 659, 53, 230, 19, 449, 50 },
1388
  { 824, 53, 230, 19, 449, 50 },
1389
  { 989, 53, 230, 19, 449, 50 },
1390
  { 1154, 53, 230, 19, 449, 50 },
1391
  { 1319, 53, 230, 19, 449, 50 },
1392
  { 1484, 53, 230, 19, 449, 50 },
1393
  { 1649, 53, 230, 19, 449, 50 },
1394
  { 120, 53, 230, 19, 449, 50 },
1395
  { 341, 53, 230, 19, 449, 50 },
1396
  { 171, 68, 230, 19, 592, 40 },
1397
  { 384, 724, 230, 19, 4928, 10 },
1398
  { 405, 353, 224, 56, 1569, 56 },
1399
  { 570, 353, 318, 56, 1569, 56 },
1400
  { 735, 353, 179, 56, 1569, 56 },
1401
  { 900, 353, 179, 56, 1569, 56 },
1402
  { 1065, 353, 179, 56, 1569, 56 },
1403
  { 1230, 353, 179, 56, 1569, 56 },
1404
  { 1395, 353, 179, 56, 1569, 56 },
1405
  { 1560, 353, 179, 56, 1569, 56 },
1406
  { 1717, 353, 179, 56, 1569, 56 },
1407
  { 27, 353, 179, 56, 1569, 56 },
1408
  { 245, 353, 179, 56, 1569, 56 },
1409
  { 456, 353, 179, 56, 1569, 56 },
1410
  { 623, 353, 179, 56, 1569, 56 },
1411
  { 788, 353, 179, 56, 1569, 56 },
1412
  { 953, 353, 179, 56, 1569, 56 },
1413
  { 1118, 353, 179, 56, 1569, 56 },
1414
  { 1283, 353, 179, 56, 1569, 56 },
1415
  { 1448, 353, 179, 56, 1569, 56 },
1416
  { 1613, 353, 179, 56, 1569, 56 },
1417
  { 84, 353, 179, 56, 1569, 56 },
1418
  { 305, 353, 179, 56, 1569, 56 },
1419
  { 516, 353, 179, 56, 1569, 56 },
1420
  { 683, 353, 179, 56, 1569, 56 },
1421
  { 848, 353, 179, 56, 1569, 56 },
1422
  { 1013, 353, 179, 56, 1569, 56 },
1423
  { 1178, 353, 179, 56, 1569, 56 },
1424
  { 1343, 353, 179, 56, 1569, 56 },
1425
  { 1508, 353, 179, 56, 1569, 56 },
1426
  { 1673, 353, 179, 56, 1569, 56 },
1427
  { 144, 353, 179, 56, 1569, 56 },
1428
  { 365, 353, 179, 56, 1569, 56 },
1429
  { 193, 365, 179, 56, 5184, 14 },
1430
  { 729, 592, 2, 89, 49, 63 },
1431
  { 894, 592, 2, 89, 49, 63 },
1432
  { 1059, 592, 2, 89, 49, 63 },
1433
  { 1224, 592, 2, 89, 49, 63 },
1434
  { 1389, 592, 2, 89, 49, 63 },
1435
  { 1554, 592, 2, 89, 49, 63 },
1436
  { 1711, 592, 2, 89, 49, 63 },
1437
  { 21, 592, 2, 89, 49, 63 },
1438
  { 239, 592, 2, 89, 49, 63 },
1439
  { 449, 592, 2, 89, 49, 63 },
1440
  { 615, 592, 2, 89, 49, 63 },
1441
  { 780, 592, 2, 89, 49, 63 },
1442
  { 945, 592, 2, 89, 49, 63 },
1443
  { 1110, 592, 2, 89, 49, 63 },
1444
  { 1275, 592, 2, 89, 49, 63 },
1445
  { 1440, 592, 2, 89, 49, 63 },
1446
  { 1605, 592, 2, 89, 49, 63 },
1447
  { 76, 592, 2, 89, 49, 63 },
1448
  { 297, 592, 2, 89, 49, 63 },
1449
  { 508, 592, 2, 89, 49, 63 },
1450
  { 675, 592, 2, 89, 49, 63 },
1451
  { 840, 592, 2, 89, 49, 63 },
1452
  { 1005, 592, 2, 89, 49, 63 },
1453
  { 1170, 592, 2, 89, 49, 63 },
1454
  { 1335, 592, 2, 89, 49, 63 },
1455
  { 1500, 592, 2, 89, 49, 63 },
1456
  { 1665, 592, 2, 89, 49, 63 },
1457
  { 136, 592, 2, 89, 49, 63 },
1458
  { 357, 592, 2, 89, 49, 63 },
1459
  { 185, 624, 2, 89, 208, 68 },
1460
  { 397, 481, 2, 89, 512, 54 },
1461
  { 563, 560, 2, 89, 4320, 17 },
1462
  { 567, 418, 330, 68, 385, 69 },
1463
  { 732, 418, 127, 68, 385, 69 },
1464
  { 897, 418, 127, 68, 385, 69 },
1465
  { 1062, 418, 127, 68, 385, 69 },
1466
  { 1227, 418, 127, 68, 385, 69 },
1467
  { 1392, 418, 127, 68, 385, 69 },
1468
  { 1557, 418, 127, 68, 385, 69 },
1469
  { 1714, 418, 127, 68, 385, 69 },
1470
  { 24, 418, 127, 68, 385, 69 },
1471
  { 242, 418, 127, 68, 385, 69 },
1472
  { 452, 418, 127, 68, 385, 69 },
1473
  { 619, 418, 127, 68, 385, 69 },
1474
  { 784, 418, 127, 68, 385, 69 },
1475
  { 949, 418, 127, 68, 385, 69 },
1476
  { 1114, 418, 127, 68, 385, 69 },
1477
  { 1279, 418, 127, 68, 385, 69 },
1478
  { 1444, 418, 127, 68, 385, 69 },
1479
  { 1609, 418, 127, 68, 385, 69 },
1480
  { 80, 418, 127, 68, 385, 69 },
1481
  { 301, 418, 127, 68, 385, 69 },
1482
  { 512, 418, 127, 68, 385, 69 },
1483
  { 679, 418, 127, 68, 385, 69 },
1484
  { 844, 418, 127, 68, 385, 69 },
1485
  { 1009, 418, 127, 68, 385, 69 },
1486
  { 1174, 418, 127, 68, 385, 69 },
1487
  { 1339, 418, 127, 68, 385, 69 },
1488
  { 1504, 418, 127, 68, 385, 69 },
1489
  { 1669, 418, 127, 68, 385, 69 },
1490
  { 140, 418, 127, 68, 385, 69 },
1491
  { 361, 418, 127, 68, 385, 69 },
1492
  { 189, 439, 127, 68, 592, 59 },
1493
  { 401, 460, 127, 68, 4928, 22 },
1494
  { 203, 348, 341, 7, 5360, 32 },
1495
  { 1755, 409, 333, 7, 3968, 32 },
1496
  { 414, 101, 341, 7, 1521, 32 },
1497
  { 579, 101, 341, 7, 1521, 32 },
1498
  { 744, 101, 341, 7, 1521, 32 },
1499
  { 909, 101, 341, 7, 1521, 32 },
1500
  { 1074, 101, 341, 7, 1521, 32 },
1501
  { 1239, 101, 341, 7, 1521, 32 },
1502
  { 1404, 101, 341, 7, 1521, 32 },
1503
  { 1569, 101, 341, 7, 1521, 32 },
1504
  { 1726, 101, 341, 7, 1521, 32 },
1505
  { 38, 101, 341, 7, 1521, 32 },
1506
  { 257, 101, 341, 7, 1521, 32 },
1507
  { 468, 101, 341, 7, 1521, 32 },
1508
  { 635, 101, 341, 7, 1521, 32 },
1509
  { 800, 101, 341, 7, 1521, 32 },
1510
  { 965, 101, 341, 7, 1521, 32 },
1511
  { 1130, 101, 341, 7, 1521, 32 },
1512
  { 1295, 101, 341, 7, 1521, 32 },
1513
  { 1460, 101, 341, 7, 1521, 32 },
1514
  { 1625, 101, 341, 7, 1521, 32 },
1515
  { 96, 101, 341, 7, 1521, 32 },
1516
  { 317, 101, 341, 7, 1521, 32 },
1517
  { 528, 101, 341, 7, 1521, 32 },
1518
  { 695, 101, 341, 7, 1521, 32 },
1519
  { 860, 101, 341, 7, 1521, 32 },
1520
  { 1025, 101, 341, 7, 1521, 32 },
1521
  { 1190, 101, 341, 7, 1521, 32 },
1522
  { 1355, 101, 341, 7, 1521, 32 },
1523
  { 1520, 101, 341, 7, 1521, 32 },
1524
  { 1685, 101, 259, 7, 5488, 29 },
1525
  { 156, 101, 1, 7, 0, 32 },
1526
  { 1749, 383, 2, 121, 0, 73 },
1527
  { 1763, 401, 2, 121, 4065, 73 },
1528
  { 210, 377, 2, 121, 5411, 73 },
1529
  { 1738, 389, 2, 121, 5488, 26 },
1530
  { 420, 395, 2, 121, 1473, 73 },
1531
  { 585, 395, 2, 121, 1473, 73 },
1532
  { 750, 395, 2, 121, 1473, 73 },
1533
  { 915, 395, 2, 121, 1473, 73 },
1534
  { 1080, 395, 2, 121, 1473, 73 },
1535
  { 1245, 395, 2, 121, 1473, 73 },
1536
  { 1410, 395, 2, 121, 1473, 73 },
1537
  { 1575, 395, 2, 121, 1473, 73 },
1538
  { 1732, 395, 2, 121, 1473, 73 },
1539
  { 45, 395, 2, 121, 1473, 73 },
1540
  { 265, 395, 2, 121, 1473, 73 },
1541
  { 476, 395, 2, 121, 1473, 73 },
1542
  { 643, 395, 2, 121, 1473, 73 },
1543
  { 808, 395, 2, 121, 1473, 73 },
1544
  { 973, 395, 2, 121, 1473, 73 },
1545
  { 1138, 395, 2, 121, 1473, 73 },
1546
  { 1303, 395, 2, 121, 1473, 73 },
1547
  { 1468, 395, 2, 121, 1473, 73 },
1548
  { 1633, 395, 2, 121, 1473, 73 },
1549
  { 104, 395, 2, 121, 1473, 73 },
1550
  { 325, 395, 2, 121, 1473, 73 },
1551
  { 536, 395, 2, 121, 1473, 73 },
1552
  { 703, 395, 2, 121, 1473, 73 },
1553
  { 868, 395, 2, 121, 1473, 73 },
1554
  { 1033, 395, 2, 121, 1473, 73 },
1555
  { 1198, 395, 2, 121, 1473, 73 },
1556
  { 1363, 395, 2, 121, 1473, 73 },
1557
  { 1528, 395, 2, 121, 1473, 73 },
1558
};
1559
1560
extern const MCPhysReg AArch64RegUnitRoots[][2] = {
1561
  { AArch64::W29 },
1562
  { AArch64::W30 },
1563
  { AArch64::NZCV },
1564
  { AArch64::WSP },
1565
  { AArch64::WZR },
1566
  { AArch64::B0 },
1567
  { AArch64::B1 },
1568
  { AArch64::B2 },
1569
  { AArch64::B3 },
1570
  { AArch64::B4 },
1571
  { AArch64::B5 },
1572
  { AArch64::B6 },
1573
  { AArch64::B7 },
1574
  { AArch64::B8 },
1575
  { AArch64::B9 },
1576
  { AArch64::B10 },
1577
  { AArch64::B11 },
1578
  { AArch64::B12 },
1579
  { AArch64::B13 },
1580
  { AArch64::B14 },
1581
  { AArch64::B15 },
1582
  { AArch64::B16 },
1583
  { AArch64::B17 },
1584
  { AArch64::B18 },
1585
  { AArch64::B19 },
1586
  { AArch64::B20 },
1587
  { AArch64::B21 },
1588
  { AArch64::B22 },
1589
  { AArch64::B23 },
1590
  { AArch64::B24 },
1591
  { AArch64::B25 },
1592
  { AArch64::B26 },
1593
  { AArch64::B27 },
1594
  { AArch64::B28 },
1595
  { AArch64::B29 },
1596
  { AArch64::B30 },
1597
  { AArch64::B31 },
1598
  { AArch64::W0 },
1599
  { AArch64::W1 },
1600
  { AArch64::W2 },
1601
  { AArch64::W3 },
1602
  { AArch64::W4 },
1603
  { AArch64::W5 },
1604
  { AArch64::W6 },
1605
  { AArch64::W7 },
1606
  { AArch64::W8 },
1607
  { AArch64::W9 },
1608
  { AArch64::W10 },
1609
  { AArch64::W11 },
1610
  { AArch64::W12 },
1611
  { AArch64::W13 },
1612
  { AArch64::W14 },
1613
  { AArch64::W15 },
1614
  { AArch64::W16 },
1615
  { AArch64::W17 },
1616
  { AArch64::W18 },
1617
  { AArch64::W19 },
1618
  { AArch64::W20 },
1619
  { AArch64::W21 },
1620
  { AArch64::W22 },
1621
  { AArch64::W23 },
1622
  { AArch64::W24 },
1623
  { AArch64::W25 },
1624
  { AArch64::W26 },
1625
  { AArch64::W27 },
1626
  { AArch64::W28 },
1627
};
1628
1629
namespace {     // Register classes...
1630
  // FPR8 Register Class...
1631
  const MCPhysReg FPR8[] = {
1632
    AArch64::B0, AArch64::B1, AArch64::B2, AArch64::B3, AArch64::B4, AArch64::B5, AArch64::B6, AArch64::B7, AArch64::B8, AArch64::B9, AArch64::B10, AArch64::B11, AArch64::B12, AArch64::B13, AArch64::B14, AArch64::B15, AArch64::B16, AArch64::B17, AArch64::B18, AArch64::B19, AArch64::B20, AArch64::B21, AArch64::B22, AArch64::B23, AArch64::B24, AArch64::B25, AArch64::B26, AArch64::B27, AArch64::B28, AArch64::B29, AArch64::B30, AArch64::B31, 
1633
  };
1634
1635
  // FPR8 Bit set.
1636
  const uint8_t FPR8Bits[] = {
1637
    0x00, 0xff, 0xff, 0xff, 0xff, 
1638
  };
1639
1640
  // FPR16 Register Class...
1641
  const MCPhysReg FPR16[] = {
1642
    AArch64::H0, AArch64::H1, AArch64::H2, AArch64::H3, AArch64::H4, AArch64::H5, AArch64::H6, AArch64::H7, AArch64::H8, AArch64::H9, AArch64::H10, AArch64::H11, AArch64::H12, AArch64::H13, AArch64::H14, AArch64::H15, AArch64::H16, AArch64::H17, AArch64::H18, AArch64::H19, AArch64::H20, AArch64::H21, AArch64::H22, AArch64::H23, AArch64::H24, AArch64::H25, AArch64::H26, AArch64::H27, AArch64::H28, AArch64::H29, AArch64::H30, AArch64::H31, 
1643
  };
1644
1645
  // FPR16 Bit set.
1646
  const uint8_t FPR16Bits[] = {
1647
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
1648
  };
1649
1650
  // GPR32all Register Class...
1651
  const MCPhysReg GPR32all[] = {
1652
    AArch64::W0, AArch64::W1, AArch64::W2, AArch64::W3, AArch64::W4, AArch64::W5, AArch64::W6, AArch64::W7, AArch64::W8, AArch64::W9, AArch64::W10, AArch64::W11, AArch64::W12, AArch64::W13, AArch64::W14, AArch64::W15, AArch64::W16, AArch64::W17, AArch64::W18, AArch64::W19, AArch64::W20, AArch64::W21, AArch64::W22, AArch64::W23, AArch64::W24, AArch64::W25, AArch64::W26, AArch64::W27, AArch64::W28, AArch64::W29, AArch64::W30, AArch64::WZR, AArch64::WSP, 
1653
  };
1654
1655
  // GPR32all Bit set.
1656
  const uint8_t GPR32allBits[] = {
1657
    0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
1658
  };
1659
1660
  // FPR32 Register Class...
1661
  const MCPhysReg FPR32[] = {
1662
    AArch64::S0, AArch64::S1, AArch64::S2, AArch64::S3, AArch64::S4, AArch64::S5, AArch64::S6, AArch64::S7, AArch64::S8, AArch64::S9, AArch64::S10, AArch64::S11, AArch64::S12, AArch64::S13, AArch64::S14, AArch64::S15, AArch64::S16, AArch64::S17, AArch64::S18, AArch64::S19, AArch64::S20, AArch64::S21, AArch64::S22, AArch64::S23, AArch64::S24, AArch64::S25, AArch64::S26, AArch64::S27, AArch64::S28, AArch64::S29, AArch64::S30, AArch64::S31, 
1663
  };
1664
1665
  // FPR32 Bit set.
1666
  const uint8_t FPR32Bits[] = {
1667
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
1668
  };
1669
1670
  // GPR32 Register Class...
1671
  const MCPhysReg GPR32[] = {
1672
    AArch64::W0, AArch64::W1, AArch64::W2, AArch64::W3, AArch64::W4, AArch64::W5, AArch64::W6, AArch64::W7, AArch64::W8, AArch64::W9, AArch64::W10, AArch64::W11, AArch64::W12, AArch64::W13, AArch64::W14, AArch64::W15, AArch64::W16, AArch64::W17, AArch64::W18, AArch64::W19, AArch64::W20, AArch64::W21, AArch64::W22, AArch64::W23, AArch64::W24, AArch64::W25, AArch64::W26, AArch64::W27, AArch64::W28, AArch64::W29, AArch64::W30, AArch64::WZR, 
1673
  };
1674
1675
  // GPR32 Bit set.
1676
  const uint8_t GPR32Bits[] = {
1677
    0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
1678
  };
1679
1680
  // GPR32sp Register Class...
1681
  const MCPhysReg GPR32sp[] = {
1682
    AArch64::W0, AArch64::W1, AArch64::W2, AArch64::W3, AArch64::W4, AArch64::W5, AArch64::W6, AArch64::W7, AArch64::W8, AArch64::W9, AArch64::W10, AArch64::W11, AArch64::W12, AArch64::W13, AArch64::W14, AArch64::W15, AArch64::W16, AArch64::W17, AArch64::W18, AArch64::W19, AArch64::W20, AArch64::W21, AArch64::W22, AArch64::W23, AArch64::W24, AArch64::W25, AArch64::W26, AArch64::W27, AArch64::W28, AArch64::W29, AArch64::W30, AArch64::WSP, 
1683
  };
1684
1685
  // GPR32sp Bit set.
1686
  const uint8_t GPR32spBits[] = {
1687
    0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
1688
  };
1689
1690
  // GPR32common Register Class...
1691
  const MCPhysReg GPR32common[] = {
1692
    AArch64::W0, AArch64::W1, AArch64::W2, AArch64::W3, AArch64::W4, AArch64::W5, AArch64::W6, AArch64::W7, AArch64::W8, AArch64::W9, AArch64::W10, AArch64::W11, AArch64::W12, AArch64::W13, AArch64::W14, AArch64::W15, AArch64::W16, AArch64::W17, AArch64::W18, AArch64::W19, AArch64::W20, AArch64::W21, AArch64::W22, AArch64::W23, AArch64::W24, AArch64::W25, AArch64::W26, AArch64::W27, AArch64::W28, AArch64::W29, AArch64::W30, 
1693
  };
1694
1695
  // GPR32common Bit set.
1696
  const uint8_t GPR32commonBits[] = {
1697
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 
1698
  };
1699
1700
  // CCR Register Class...
1701
  const MCPhysReg CCR[] = {
1702
    AArch64::NZCV, 
1703
  };
1704
1705
  // CCR Bit set.
1706
  const uint8_t CCRBits[] = {
1707
    0x08, 
1708
  };
1709
1710
  // GPR32sponly Register Class...
1711
  const MCPhysReg GPR32sponly[] = {
1712
    AArch64::WSP, 
1713
  };
1714
1715
  // GPR32sponly Bit set.
1716
  const uint8_t GPR32sponlyBits[] = {
1717
    0x20, 
1718
  };
1719
1720
  // WSeqPairsClass Register Class...
1721
  const MCPhysReg WSeqPairsClass[] = {
1722
    AArch64::W0_W1, AArch64::W1_W2, AArch64::W2_W3, AArch64::W3_W4, AArch64::W4_W5, AArch64::W5_W6, AArch64::W6_W7, AArch64::W7_W8, AArch64::W8_W9, AArch64::W9_W10, AArch64::W10_W11, AArch64::W11_W12, AArch64::W12_W13, AArch64::W13_W14, AArch64::W14_W15, AArch64::W15_W16, AArch64::W16_W17, AArch64::W17_W18, AArch64::W18_W19, AArch64::W19_W20, AArch64::W20_W21, AArch64::W21_W22, AArch64::W22_W23, AArch64::W23_W24, AArch64::W24_W25, AArch64::W25_W26, AArch64::W26_W27, AArch64::W27_W28, AArch64::W28_W29, AArch64::W29_W30, AArch64::W30_WZR, AArch64::WZR_W0, 
1723
  };
1724
1725
  // WSeqPairsClass Bit set.
1726
  const uint8_t WSeqPairsClassBits[] = {
1727
    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, 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, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
1728
  };
1729
1730
  // WSeqPairsClass_with_sube32_in_GPR32common Register Class...
1731
  const MCPhysReg WSeqPairsClass_with_sube32_in_GPR32common[] = {
1732
    AArch64::W0_W1, AArch64::W1_W2, AArch64::W2_W3, AArch64::W3_W4, AArch64::W4_W5, AArch64::W5_W6, AArch64::W6_W7, AArch64::W7_W8, AArch64::W8_W9, AArch64::W9_W10, AArch64::W10_W11, AArch64::W11_W12, AArch64::W12_W13, AArch64::W13_W14, AArch64::W14_W15, AArch64::W15_W16, AArch64::W16_W17, AArch64::W17_W18, AArch64::W18_W19, AArch64::W19_W20, AArch64::W20_W21, AArch64::W21_W22, AArch64::W22_W23, AArch64::W23_W24, AArch64::W24_W25, AArch64::W25_W26, AArch64::W26_W27, AArch64::W27_W28, AArch64::W28_W29, AArch64::W29_W30, AArch64::W30_WZR, 
1733
  };
1734
1735
  // WSeqPairsClass_with_sube32_in_GPR32common Bit set.
1736
  const uint8_t WSeqPairsClass_with_sube32_in_GPR32commonBits[] = {
1737
    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, 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, 0x0f, 
1738
  };
1739
1740
  // WSeqPairsClass_with_subo32_in_GPR32common Register Class...
1741
  const MCPhysReg WSeqPairsClass_with_subo32_in_GPR32common[] = {
1742
    AArch64::W0_W1, AArch64::W1_W2, AArch64::W2_W3, AArch64::W3_W4, AArch64::W4_W5, AArch64::W5_W6, AArch64::W6_W7, AArch64::W7_W8, AArch64::W8_W9, AArch64::W9_W10, AArch64::W10_W11, AArch64::W11_W12, AArch64::W12_W13, AArch64::W13_W14, AArch64::W14_W15, AArch64::W15_W16, AArch64::W16_W17, AArch64::W17_W18, AArch64::W18_W19, AArch64::W19_W20, AArch64::W20_W21, AArch64::W21_W22, AArch64::W22_W23, AArch64::W23_W24, AArch64::W24_W25, AArch64::W25_W26, AArch64::W26_W27, AArch64::W27_W28, AArch64::W28_W29, AArch64::W29_W30, AArch64::WZR_W0, 
1743
  };
1744
1745
  // WSeqPairsClass_with_subo32_in_GPR32common Bit set.
1746
  const uint8_t WSeqPairsClass_with_subo32_in_GPR32commonBits[] = {
1747
    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, 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, 0xd0, 0xff, 0xff, 0xff, 0x0f, 
1748
  };
1749
1750
  // WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32common Register Class...
1751
  const MCPhysReg WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32common[] = {
1752
    AArch64::W0_W1, AArch64::W1_W2, AArch64::W2_W3, AArch64::W3_W4, AArch64::W4_W5, AArch64::W5_W6, AArch64::W6_W7, AArch64::W7_W8, AArch64::W8_W9, AArch64::W9_W10, AArch64::W10_W11, AArch64::W11_W12, AArch64::W12_W13, AArch64::W13_W14, AArch64::W14_W15, AArch64::W15_W16, AArch64::W16_W17, AArch64::W17_W18, AArch64::W18_W19, AArch64::W19_W20, AArch64::W20_W21, AArch64::W21_W22, AArch64::W22_W23, AArch64::W23_W24, AArch64::W24_W25, AArch64::W25_W26, AArch64::W26_W27, AArch64::W27_W28, AArch64::W28_W29, AArch64::W29_W30, 
1753
  };
1754
1755
  // WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32common Bit set.
1756
  const uint8_t WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32commonBits[] = {
1757
    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, 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, 0xc0, 0xff, 0xff, 0xff, 0x0f, 
1758
  };
1759
1760
  // GPR64all Register Class...
1761
  const MCPhysReg GPR64all[] = {
1762
    AArch64::X0, AArch64::X1, AArch64::X2, AArch64::X3, AArch64::X4, AArch64::X5, AArch64::X6, AArch64::X7, AArch64::X8, AArch64::X9, AArch64::X10, AArch64::X11, AArch64::X12, AArch64::X13, AArch64::X14, AArch64::X15, AArch64::X16, AArch64::X17, AArch64::X18, AArch64::X19, AArch64::X20, AArch64::X21, AArch64::X22, AArch64::X23, AArch64::X24, AArch64::X25, AArch64::X26, AArch64::X27, AArch64::X28, AArch64::FP, AArch64::LR, AArch64::XZR, AArch64::SP, 
1763
  };
1764
1765
  // GPR64all Bit set.
1766
  const uint8_t GPR64allBits[] = {
1767
    0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 
1768
  };
1769
1770
  // FPR64 Register Class...
1771
  const MCPhysReg FPR64[] = {
1772
    AArch64::D0, AArch64::D1, AArch64::D2, AArch64::D3, AArch64::D4, AArch64::D5, AArch64::D6, AArch64::D7, AArch64::D8, AArch64::D9, AArch64::D10, AArch64::D11, AArch64::D12, AArch64::D13, AArch64::D14, AArch64::D15, AArch64::D16, AArch64::D17, AArch64::D18, AArch64::D19, AArch64::D20, AArch64::D21, AArch64::D22, AArch64::D23, AArch64::D24, AArch64::D25, AArch64::D26, AArch64::D27, AArch64::D28, AArch64::D29, AArch64::D30, AArch64::D31, 
1773
  };
1774
1775
  // FPR64 Bit set.
1776
  const uint8_t FPR64Bits[] = {
1777
    0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
1778
  };
1779
1780
  // GPR64 Register Class...
1781
  const MCPhysReg GPR64[] = {
1782
    AArch64::X0, AArch64::X1, AArch64::X2, AArch64::X3, AArch64::X4, AArch64::X5, AArch64::X6, AArch64::X7, AArch64::X8, AArch64::X9, AArch64::X10, AArch64::X11, AArch64::X12, AArch64::X13, AArch64::X14, AArch64::X15, AArch64::X16, AArch64::X17, AArch64::X18, AArch64::X19, AArch64::X20, AArch64::X21, AArch64::X22, AArch64::X23, AArch64::X24, AArch64::X25, AArch64::X26, AArch64::X27, AArch64::X28, AArch64::FP, AArch64::LR, AArch64::XZR, 
1783
  };
1784
1785
  // GPR64 Bit set.
1786
  const uint8_t GPR64Bits[] = {
1787
    0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 
1788
  };
1789
1790
  // GPR64sp Register Class...
1791
  const MCPhysReg GPR64sp[] = {
1792
    AArch64::X0, AArch64::X1, AArch64::X2, AArch64::X3, AArch64::X4, AArch64::X5, AArch64::X6, AArch64::X7, AArch64::X8, AArch64::X9, AArch64::X10, AArch64::X11, AArch64::X12, AArch64::X13, AArch64::X14, AArch64::X15, AArch64::X16, AArch64::X17, AArch64::X18, AArch64::X19, AArch64::X20, AArch64::X21, AArch64::X22, AArch64::X23, AArch64::X24, AArch64::X25, AArch64::X26, AArch64::X27, AArch64::X28, AArch64::FP, AArch64::LR, AArch64::SP, 
1793
  };
1794
1795
  // GPR64sp Bit set.
1796
  const uint8_t GPR64spBits[] = {
1797
    0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 
1798
  };
1799
1800
  // GPR64common Register Class...
1801
  const MCPhysReg GPR64common[] = {
1802
    AArch64::X0, AArch64::X1, AArch64::X2, AArch64::X3, AArch64::X4, AArch64::X5, AArch64::X6, AArch64::X7, AArch64::X8, AArch64::X9, AArch64::X10, AArch64::X11, AArch64::X12, AArch64::X13, AArch64::X14, AArch64::X15, AArch64::X16, AArch64::X17, AArch64::X18, AArch64::X19, AArch64::X20, AArch64::X21, AArch64::X22, AArch64::X23, AArch64::X24, AArch64::X25, AArch64::X26, AArch64::X27, AArch64::X28, AArch64::FP, AArch64::LR, 
1803
  };
1804
1805
  // GPR64common Bit set.
1806
  const uint8_t GPR64commonBits[] = {
1807
    0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 
1808
  };
1809
1810
  // tcGPR64 Register Class...
1811
  const MCPhysReg tcGPR64[] = {
1812
    AArch64::X0, AArch64::X1, AArch64::X2, AArch64::X3, AArch64::X4, AArch64::X5, AArch64::X6, AArch64::X7, AArch64::X8, AArch64::X9, AArch64::X10, AArch64::X11, AArch64::X12, AArch64::X13, AArch64::X14, AArch64::X15, AArch64::X16, AArch64::X17, AArch64::X18, 
1813
  };
1814
1815
  // tcGPR64 Bit set.
1816
  const uint8_t tcGPR64Bits[] = {
1817
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x03, 
1818
  };
1819
1820
  // GPR64sponly Register Class...
1821
  const MCPhysReg GPR64sponly[] = {
1822
    AArch64::SP, 
1823
  };
1824
1825
  // GPR64sponly Bit set.
1826
  const uint8_t GPR64sponlyBits[] = {
1827
    0x10, 
1828
  };
1829
1830
  // DD Register Class...
1831
  const MCPhysReg DD[] = {
1832
    AArch64::D0_D1, AArch64::D1_D2, AArch64::D2_D3, AArch64::D3_D4, AArch64::D4_D5, AArch64::D5_D6, AArch64::D6_D7, AArch64::D7_D8, AArch64::D8_D9, AArch64::D9_D10, AArch64::D10_D11, AArch64::D11_D12, AArch64::D12_D13, AArch64::D13_D14, AArch64::D14_D15, AArch64::D15_D16, AArch64::D16_D17, AArch64::D17_D18, AArch64::D18_D19, AArch64::D19_D20, AArch64::D20_D21, AArch64::D21_D22, AArch64::D22_D23, AArch64::D23_D24, AArch64::D24_D25, AArch64::D25_D26, AArch64::D26_D27, AArch64::D27_D28, AArch64::D28_D29, AArch64::D29_D30, AArch64::D30_D31, AArch64::D31_D0, 
1833
  };
1834
1835
  // DD Bit set.
1836
  const uint8_t DDBits[] = {
1837
    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, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
1838
  };
1839
1840
  // XSeqPairsClass Register Class...
1841
  const MCPhysReg XSeqPairsClass[] = {
1842
    AArch64::X0_X1, AArch64::X1_X2, AArch64::X2_X3, AArch64::X3_X4, AArch64::X4_X5, AArch64::X5_X6, AArch64::X6_X7, AArch64::X7_X8, AArch64::X8_X9, AArch64::X9_X10, AArch64::X10_X11, AArch64::X11_X12, AArch64::X12_X13, AArch64::X13_X14, AArch64::X14_X15, AArch64::X15_X16, AArch64::X16_X17, AArch64::X17_X18, AArch64::X18_X19, AArch64::X19_X20, AArch64::X20_X21, AArch64::X21_X22, AArch64::X22_X23, AArch64::X23_X24, AArch64::X24_X25, AArch64::X25_X26, AArch64::X26_X27, AArch64::X27_X28, AArch64::X28_FP, AArch64::FP_LR, AArch64::LR_XZR, AArch64::XZR_X0, 
1843
  };
1844
1845
  // XSeqPairsClass Bit set.
1846
  const uint8_t XSeqPairsClassBits[] = {
1847
    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, 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, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
1848
  };
1849
1850
  // XSeqPairsClass_with_sub_32_in_GPR32common Register Class...
1851
  const MCPhysReg XSeqPairsClass_with_sub_32_in_GPR32common[] = {
1852
    AArch64::X0_X1, AArch64::X1_X2, AArch64::X2_X3, AArch64::X3_X4, AArch64::X4_X5, AArch64::X5_X6, AArch64::X6_X7, AArch64::X7_X8, AArch64::X8_X9, AArch64::X9_X10, AArch64::X10_X11, AArch64::X11_X12, AArch64::X12_X13, AArch64::X13_X14, AArch64::X14_X15, AArch64::X15_X16, AArch64::X16_X17, AArch64::X17_X18, AArch64::X18_X19, AArch64::X19_X20, AArch64::X20_X21, AArch64::X21_X22, AArch64::X22_X23, AArch64::X23_X24, AArch64::X24_X25, AArch64::X25_X26, AArch64::X26_X27, AArch64::X27_X28, AArch64::X28_FP, AArch64::FP_LR, AArch64::LR_XZR, 
1853
  };
1854
1855
  // XSeqPairsClass_with_sub_32_in_GPR32common Bit set.
1856
  const uint8_t XSeqPairsClass_with_sub_32_in_GPR32commonBits[] = {
1857
    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, 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, 0x00, 0x00, 0xb0, 0xff, 0xff, 0xff, 0x0f, 
1858
  };
1859
1860
  // XSeqPairsClass_with_subo64_in_GPR64common Register Class...
1861
  const MCPhysReg XSeqPairsClass_with_subo64_in_GPR64common[] = {
1862
    AArch64::X0_X1, AArch64::X1_X2, AArch64::X2_X3, AArch64::X3_X4, AArch64::X4_X5, AArch64::X5_X6, AArch64::X6_X7, AArch64::X7_X8, AArch64::X8_X9, AArch64::X9_X10, AArch64::X10_X11, AArch64::X11_X12, AArch64::X12_X13, AArch64::X13_X14, AArch64::X14_X15, AArch64::X15_X16, AArch64::X16_X17, AArch64::X17_X18, AArch64::X18_X19, AArch64::X19_X20, AArch64::X20_X21, AArch64::X21_X22, AArch64::X22_X23, AArch64::X23_X24, AArch64::X24_X25, AArch64::X25_X26, AArch64::X26_X27, AArch64::X27_X28, AArch64::X28_FP, AArch64::FP_LR, AArch64::XZR_X0, 
1863
  };
1864
1865
  // XSeqPairsClass_with_subo64_in_GPR64common Bit set.
1866
  const uint8_t XSeqPairsClass_with_subo64_in_GPR64commonBits[] = {
1867
    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, 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, 0x00, 0x00, 0xd0, 0xff, 0xff, 0xff, 0x0f, 
1868
  };
1869
1870
  // XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64common Register Class...
1871
  const MCPhysReg XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64common[] = {
1872
    AArch64::X0_X1, AArch64::X1_X2, AArch64::X2_X3, AArch64::X3_X4, AArch64::X4_X5, AArch64::X5_X6, AArch64::X6_X7, AArch64::X7_X8, AArch64::X8_X9, AArch64::X9_X10, AArch64::X10_X11, AArch64::X11_X12, AArch64::X12_X13, AArch64::X13_X14, AArch64::X14_X15, AArch64::X15_X16, AArch64::X16_X17, AArch64::X17_X18, AArch64::X18_X19, AArch64::X19_X20, AArch64::X20_X21, AArch64::X21_X22, AArch64::X22_X23, AArch64::X23_X24, AArch64::X24_X25, AArch64::X25_X26, AArch64::X26_X27, AArch64::X27_X28, AArch64::X28_FP, AArch64::FP_LR, 
1873
  };
1874
1875
  // XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64common Bit set.
1876
  const uint8_t XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64commonBits[] = {
1877
    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, 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, 0x00, 0x00, 0x90, 0xff, 0xff, 0xff, 0x0f, 
1878
  };
1879
1880
  // XSeqPairsClass_with_sube64_in_tcGPR64 Register Class...
1881
  const MCPhysReg XSeqPairsClass_with_sube64_in_tcGPR64[] = {
1882
    AArch64::X0_X1, AArch64::X1_X2, AArch64::X2_X3, AArch64::X3_X4, AArch64::X4_X5, AArch64::X5_X6, AArch64::X6_X7, AArch64::X7_X8, AArch64::X8_X9, AArch64::X9_X10, AArch64::X10_X11, AArch64::X11_X12, AArch64::X12_X13, AArch64::X13_X14, AArch64::X14_X15, AArch64::X15_X16, AArch64::X16_X17, AArch64::X17_X18, AArch64::X18_X19, 
1883
  };
1884
1885
  // XSeqPairsClass_with_sube64_in_tcGPR64 Bit set.
1886
  const uint8_t XSeqPairsClass_with_sube64_in_tcGPR64Bits[] = {
1887
    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, 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, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 
1888
  };
1889
1890
  // XSeqPairsClass_with_subo64_in_tcGPR64 Register Class...
1891
  const MCPhysReg XSeqPairsClass_with_subo64_in_tcGPR64[] = {
1892
    AArch64::X0_X1, AArch64::X1_X2, AArch64::X2_X3, AArch64::X3_X4, AArch64::X4_X5, AArch64::X5_X6, AArch64::X6_X7, AArch64::X7_X8, AArch64::X8_X9, AArch64::X9_X10, AArch64::X10_X11, AArch64::X11_X12, AArch64::X12_X13, AArch64::X13_X14, AArch64::X14_X15, AArch64::X15_X16, AArch64::X16_X17, AArch64::X17_X18, AArch64::XZR_X0, 
1893
  };
1894
1895
  // XSeqPairsClass_with_subo64_in_tcGPR64 Bit set.
1896
  const uint8_t XSeqPairsClass_with_subo64_in_tcGPR64Bits[] = {
1897
    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, 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, 0x00, 0x00, 0x40, 0xff, 0xff, 0x03, 
1898
  };
1899
1900
  // XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64 Register Class...
1901
  const MCPhysReg XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64[] = {
1902
    AArch64::X0_X1, AArch64::X1_X2, AArch64::X2_X3, AArch64::X3_X4, AArch64::X4_X5, AArch64::X5_X6, AArch64::X6_X7, AArch64::X7_X8, AArch64::X8_X9, AArch64::X9_X10, AArch64::X10_X11, AArch64::X11_X12, AArch64::X12_X13, AArch64::X13_X14, AArch64::X14_X15, AArch64::X15_X16, AArch64::X16_X17, AArch64::X17_X18, 
1903
  };
1904
1905
  // XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64 Bit set.
1906
  const uint8_t XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64Bits[] = {
1907
    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, 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, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 
1908
  };
1909
1910
  // FPR128 Register Class...
1911
  const MCPhysReg FPR128[] = {
1912
    AArch64::Q0, AArch64::Q1, AArch64::Q2, AArch64::Q3, AArch64::Q4, AArch64::Q5, AArch64::Q6, AArch64::Q7, AArch64::Q8, AArch64::Q9, AArch64::Q10, AArch64::Q11, AArch64::Q12, AArch64::Q13, AArch64::Q14, AArch64::Q15, AArch64::Q16, AArch64::Q17, AArch64::Q18, AArch64::Q19, AArch64::Q20, AArch64::Q21, AArch64::Q22, AArch64::Q23, AArch64::Q24, AArch64::Q25, AArch64::Q26, AArch64::Q27, AArch64::Q28, AArch64::Q29, AArch64::Q30, AArch64::Q31, 
1913
  };
1914
1915
  // FPR128 Bit set.
1916
  const uint8_t FPR128Bits[] = {
1917
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
1918
  };
1919
1920
  // FPR128_lo Register Class...
1921
  const MCPhysReg FPR128_lo[] = {
1922
    AArch64::Q0, AArch64::Q1, AArch64::Q2, AArch64::Q3, AArch64::Q4, AArch64::Q5, AArch64::Q6, AArch64::Q7, AArch64::Q8, AArch64::Q9, AArch64::Q10, AArch64::Q11, AArch64::Q12, AArch64::Q13, AArch64::Q14, AArch64::Q15, 
1923
  };
1924
1925
  // FPR128_lo Bit set.
1926
  const uint8_t FPR128_loBits[] = {
1927
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 
1928
  };
1929
1930
  // DDD Register Class...
1931
  const MCPhysReg DDD[] = {
1932
    AArch64::D0_D1_D2, AArch64::D1_D2_D3, AArch64::D2_D3_D4, AArch64::D3_D4_D5, AArch64::D4_D5_D6, AArch64::D5_D6_D7, AArch64::D6_D7_D8, AArch64::D7_D8_D9, AArch64::D8_D9_D10, AArch64::D9_D10_D11, AArch64::D10_D11_D12, AArch64::D11_D12_D13, AArch64::D12_D13_D14, AArch64::D13_D14_D15, AArch64::D14_D15_D16, AArch64::D15_D16_D17, AArch64::D16_D17_D18, AArch64::D17_D18_D19, AArch64::D18_D19_D20, AArch64::D19_D20_D21, AArch64::D20_D21_D22, AArch64::D21_D22_D23, AArch64::D22_D23_D24, AArch64::D23_D24_D25, AArch64::D24_D25_D26, AArch64::D25_D26_D27, AArch64::D26_D27_D28, AArch64::D27_D28_D29, AArch64::D28_D29_D30, AArch64::D29_D30_D31, AArch64::D30_D31_D0, AArch64::D31_D0_D1, 
1933
  };
1934
1935
  // DDD Bit set.
1936
  const uint8_t DDDBits[] = {
1937
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
1938
  };
1939
1940
  // DDDD Register Class...
1941
  const MCPhysReg DDDD[] = {
1942
    AArch64::D0_D1_D2_D3, AArch64::D1_D2_D3_D4, AArch64::D2_D3_D4_D5, AArch64::D3_D4_D5_D6, AArch64::D4_D5_D6_D7, AArch64::D5_D6_D7_D8, AArch64::D6_D7_D8_D9, AArch64::D7_D8_D9_D10, AArch64::D8_D9_D10_D11, AArch64::D9_D10_D11_D12, AArch64::D10_D11_D12_D13, AArch64::D11_D12_D13_D14, AArch64::D12_D13_D14_D15, AArch64::D13_D14_D15_D16, AArch64::D14_D15_D16_D17, AArch64::D15_D16_D17_D18, AArch64::D16_D17_D18_D19, AArch64::D17_D18_D19_D20, AArch64::D18_D19_D20_D21, AArch64::D19_D20_D21_D22, AArch64::D20_D21_D22_D23, AArch64::D21_D22_D23_D24, AArch64::D22_D23_D24_D25, AArch64::D23_D24_D25_D26, AArch64::D24_D25_D26_D27, AArch64::D25_D26_D27_D28, AArch64::D26_D27_D28_D29, AArch64::D27_D28_D29_D30, AArch64::D28_D29_D30_D31, AArch64::D29_D30_D31_D0, AArch64::D30_D31_D0_D1, AArch64::D31_D0_D1_D2, 
1943
  };
1944
1945
  // DDDD Bit set.
1946
  const uint8_t DDDDBits[] = {
1947
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
1948
  };
1949
1950
  // QQ Register Class...
1951
  const MCPhysReg QQ[] = {
1952
    AArch64::Q0_Q1, AArch64::Q1_Q2, AArch64::Q2_Q3, AArch64::Q3_Q4, AArch64::Q4_Q5, AArch64::Q5_Q6, AArch64::Q6_Q7, AArch64::Q7_Q8, AArch64::Q8_Q9, AArch64::Q9_Q10, AArch64::Q10_Q11, AArch64::Q11_Q12, AArch64::Q12_Q13, AArch64::Q13_Q14, AArch64::Q14_Q15, AArch64::Q15_Q16, AArch64::Q16_Q17, AArch64::Q17_Q18, AArch64::Q18_Q19, AArch64::Q19_Q20, AArch64::Q20_Q21, AArch64::Q21_Q22, AArch64::Q22_Q23, AArch64::Q23_Q24, AArch64::Q24_Q25, AArch64::Q25_Q26, AArch64::Q26_Q27, AArch64::Q27_Q28, AArch64::Q28_Q29, AArch64::Q29_Q30, AArch64::Q30_Q31, AArch64::Q31_Q0, 
1953
  };
1954
1955
  // QQ Bit set.
1956
  const uint8_t QQBits[] = {
1957
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
1958
  };
1959
1960
  // QQ_with_qsub0_in_FPR128_lo Register Class...
1961
  const MCPhysReg QQ_with_qsub0_in_FPR128_lo[] = {
1962
    AArch64::Q0_Q1, AArch64::Q1_Q2, AArch64::Q2_Q3, AArch64::Q3_Q4, AArch64::Q4_Q5, AArch64::Q5_Q6, AArch64::Q6_Q7, AArch64::Q7_Q8, AArch64::Q8_Q9, AArch64::Q9_Q10, AArch64::Q10_Q11, AArch64::Q11_Q12, AArch64::Q12_Q13, AArch64::Q13_Q14, AArch64::Q14_Q15, AArch64::Q15_Q16, 
1963
  };
1964
1965
  // QQ_with_qsub0_in_FPR128_lo Bit set.
1966
  const uint8_t QQ_with_qsub0_in_FPR128_loBits[] = {
1967
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 
1968
  };
1969
1970
  // QQ_with_qsub1_in_FPR128_lo Register Class...
1971
  const MCPhysReg QQ_with_qsub1_in_FPR128_lo[] = {
1972
    AArch64::Q0_Q1, AArch64::Q1_Q2, AArch64::Q2_Q3, AArch64::Q3_Q4, AArch64::Q4_Q5, AArch64::Q5_Q6, AArch64::Q6_Q7, AArch64::Q7_Q8, AArch64::Q8_Q9, AArch64::Q9_Q10, AArch64::Q10_Q11, AArch64::Q11_Q12, AArch64::Q12_Q13, AArch64::Q13_Q14, AArch64::Q14_Q15, AArch64::Q31_Q0, 
1973
  };
1974
1975
  // QQ_with_qsub1_in_FPR128_lo Bit set.
1976
  const uint8_t QQ_with_qsub1_in_FPR128_loBits[] = {
1977
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x08, 
1978
  };
1979
1980
  // QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_lo Register Class...
1981
  const MCPhysReg QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_lo[] = {
1982
    AArch64::Q0_Q1, AArch64::Q1_Q2, AArch64::Q2_Q3, AArch64::Q3_Q4, AArch64::Q4_Q5, AArch64::Q5_Q6, AArch64::Q6_Q7, AArch64::Q7_Q8, AArch64::Q8_Q9, AArch64::Q9_Q10, AArch64::Q10_Q11, AArch64::Q11_Q12, AArch64::Q12_Q13, AArch64::Q13_Q14, AArch64::Q14_Q15, 
1983
  };
1984
1985
  // QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_lo Bit set.
1986
  const uint8_t QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_loBits[] = {
1987
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 
1988
  };
1989
1990
  // QQQ Register Class...
1991
  const MCPhysReg QQQ[] = {
1992
    AArch64::Q0_Q1_Q2, AArch64::Q1_Q2_Q3, AArch64::Q2_Q3_Q4, AArch64::Q3_Q4_Q5, AArch64::Q4_Q5_Q6, AArch64::Q5_Q6_Q7, AArch64::Q6_Q7_Q8, AArch64::Q7_Q8_Q9, AArch64::Q8_Q9_Q10, AArch64::Q9_Q10_Q11, AArch64::Q10_Q11_Q12, AArch64::Q11_Q12_Q13, AArch64::Q12_Q13_Q14, AArch64::Q13_Q14_Q15, AArch64::Q14_Q15_Q16, AArch64::Q15_Q16_Q17, AArch64::Q16_Q17_Q18, AArch64::Q17_Q18_Q19, AArch64::Q18_Q19_Q20, AArch64::Q19_Q20_Q21, AArch64::Q20_Q21_Q22, AArch64::Q21_Q22_Q23, AArch64::Q22_Q23_Q24, AArch64::Q23_Q24_Q25, AArch64::Q24_Q25_Q26, AArch64::Q25_Q26_Q27, AArch64::Q26_Q27_Q28, AArch64::Q27_Q28_Q29, AArch64::Q28_Q29_Q30, AArch64::Q29_Q30_Q31, AArch64::Q30_Q31_Q0, AArch64::Q31_Q0_Q1, 
1993
  };
1994
1995
  // QQQ Bit set.
1996
  const uint8_t QQQBits[] = {
1997
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
1998
  };
1999
2000
  // QQQ_with_qsub0_in_FPR128_lo Register Class...
2001
  const MCPhysReg QQQ_with_qsub0_in_FPR128_lo[] = {
2002
    AArch64::Q0_Q1_Q2, AArch64::Q1_Q2_Q3, AArch64::Q2_Q3_Q4, AArch64::Q3_Q4_Q5, AArch64::Q4_Q5_Q6, AArch64::Q5_Q6_Q7, AArch64::Q6_Q7_Q8, AArch64::Q7_Q8_Q9, AArch64::Q8_Q9_Q10, AArch64::Q9_Q10_Q11, AArch64::Q10_Q11_Q12, AArch64::Q11_Q12_Q13, AArch64::Q12_Q13_Q14, AArch64::Q13_Q14_Q15, AArch64::Q14_Q15_Q16, AArch64::Q15_Q16_Q17, 
2003
  };
2004
2005
  // QQQ_with_qsub0_in_FPR128_lo Bit set.
2006
  const uint8_t QQQ_with_qsub0_in_FPR128_loBits[] = {
2007
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 
2008
  };
2009
2010
  // QQQ_with_qsub1_in_FPR128_lo Register Class...
2011
  const MCPhysReg QQQ_with_qsub1_in_FPR128_lo[] = {
2012
    AArch64::Q0_Q1_Q2, AArch64::Q1_Q2_Q3, AArch64::Q2_Q3_Q4, AArch64::Q3_Q4_Q5, AArch64::Q4_Q5_Q6, AArch64::Q5_Q6_Q7, AArch64::Q6_Q7_Q8, AArch64::Q7_Q8_Q9, AArch64::Q8_Q9_Q10, AArch64::Q9_Q10_Q11, AArch64::Q10_Q11_Q12, AArch64::Q11_Q12_Q13, AArch64::Q12_Q13_Q14, AArch64::Q13_Q14_Q15, AArch64::Q14_Q15_Q16, AArch64::Q31_Q0_Q1, 
2013
  };
2014
2015
  // QQQ_with_qsub1_in_FPR128_lo Bit set.
2016
  const uint8_t QQQ_with_qsub1_in_FPR128_loBits[] = {
2017
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x08, 
2018
  };
2019
2020
  // QQQ_with_qsub2_in_FPR128_lo Register Class...
2021
  const MCPhysReg QQQ_with_qsub2_in_FPR128_lo[] = {
2022
    AArch64::Q0_Q1_Q2, AArch64::Q1_Q2_Q3, AArch64::Q2_Q3_Q4, AArch64::Q3_Q4_Q5, AArch64::Q4_Q5_Q6, AArch64::Q5_Q6_Q7, AArch64::Q6_Q7_Q8, AArch64::Q7_Q8_Q9, AArch64::Q8_Q9_Q10, AArch64::Q9_Q10_Q11, AArch64::Q10_Q11_Q12, AArch64::Q11_Q12_Q13, AArch64::Q12_Q13_Q14, AArch64::Q13_Q14_Q15, AArch64::Q30_Q31_Q0, AArch64::Q31_Q0_Q1, 
2023
  };
2024
2025
  // QQQ_with_qsub2_in_FPR128_lo Bit set.
2026
  const uint8_t QQQ_with_qsub2_in_FPR128_loBits[] = {
2027
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x0c, 
2028
  };
2029
2030
  // QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_lo Register Class...
2031
  const MCPhysReg QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_lo[] = {
2032
    AArch64::Q0_Q1_Q2, AArch64::Q1_Q2_Q3, AArch64::Q2_Q3_Q4, AArch64::Q3_Q4_Q5, AArch64::Q4_Q5_Q6, AArch64::Q5_Q6_Q7, AArch64::Q6_Q7_Q8, AArch64::Q7_Q8_Q9, AArch64::Q8_Q9_Q10, AArch64::Q9_Q10_Q11, AArch64::Q10_Q11_Q12, AArch64::Q11_Q12_Q13, AArch64::Q12_Q13_Q14, AArch64::Q13_Q14_Q15, AArch64::Q14_Q15_Q16, 
2033
  };
2034
2035
  // QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_lo Bit set.
2036
  const uint8_t QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_loBits[] = {
2037
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 
2038
  };
2039
2040
  // QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_lo Register Class...
2041
  const MCPhysReg QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_lo[] = {
2042
    AArch64::Q0_Q1_Q2, AArch64::Q1_Q2_Q3, AArch64::Q2_Q3_Q4, AArch64::Q3_Q4_Q5, AArch64::Q4_Q5_Q6, AArch64::Q5_Q6_Q7, AArch64::Q6_Q7_Q8, AArch64::Q7_Q8_Q9, AArch64::Q8_Q9_Q10, AArch64::Q9_Q10_Q11, AArch64::Q10_Q11_Q12, AArch64::Q11_Q12_Q13, AArch64::Q12_Q13_Q14, AArch64::Q13_Q14_Q15, AArch64::Q31_Q0_Q1, 
2043
  };
2044
2045
  // QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_lo Bit set.
2046
  const uint8_t QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loBits[] = {
2047
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x08, 
2048
  };
2049
2050
  // QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_lo Register Class...
2051
  const MCPhysReg QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_lo[] = {
2052
    AArch64::Q0_Q1_Q2, AArch64::Q1_Q2_Q3, AArch64::Q2_Q3_Q4, AArch64::Q3_Q4_Q5, AArch64::Q4_Q5_Q6, AArch64::Q5_Q6_Q7, AArch64::Q6_Q7_Q8, AArch64::Q7_Q8_Q9, AArch64::Q8_Q9_Q10, AArch64::Q9_Q10_Q11, AArch64::Q10_Q11_Q12, AArch64::Q11_Q12_Q13, AArch64::Q12_Q13_Q14, AArch64::Q13_Q14_Q15, 
2053
  };
2054
2055
  // QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_lo Bit set.
2056
  const uint8_t QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loBits[] = {
2057
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 
2058
  };
2059
2060
  // QQQQ Register Class...
2061
  const MCPhysReg QQQQ[] = {
2062
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q13_Q14_Q15_Q16, AArch64::Q14_Q15_Q16_Q17, AArch64::Q15_Q16_Q17_Q18, AArch64::Q16_Q17_Q18_Q19, AArch64::Q17_Q18_Q19_Q20, AArch64::Q18_Q19_Q20_Q21, AArch64::Q19_Q20_Q21_Q22, AArch64::Q20_Q21_Q22_Q23, AArch64::Q21_Q22_Q23_Q24, AArch64::Q22_Q23_Q24_Q25, AArch64::Q23_Q24_Q25_Q26, AArch64::Q24_Q25_Q26_Q27, AArch64::Q25_Q26_Q27_Q28, AArch64::Q26_Q27_Q28_Q29, AArch64::Q27_Q28_Q29_Q30, AArch64::Q28_Q29_Q30_Q31, AArch64::Q29_Q30_Q31_Q0, AArch64::Q30_Q31_Q0_Q1, AArch64::Q31_Q0_Q1_Q2, 
2063
  };
2064
2065
  // QQQQ Bit set.
2066
  const uint8_t QQQQBits[] = {
2067
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 
2068
  };
2069
2070
  // QQQQ_with_qsub0_in_FPR128_lo Register Class...
2071
  const MCPhysReg QQQQ_with_qsub0_in_FPR128_lo[] = {
2072
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q13_Q14_Q15_Q16, AArch64::Q14_Q15_Q16_Q17, AArch64::Q15_Q16_Q17_Q18, 
2073
  };
2074
2075
  // QQQQ_with_qsub0_in_FPR128_lo Bit set.
2076
  const uint8_t QQQQ_with_qsub0_in_FPR128_loBits[] = {
2077
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 
2078
  };
2079
2080
  // QQQQ_with_qsub1_in_FPR128_lo Register Class...
2081
  const MCPhysReg QQQQ_with_qsub1_in_FPR128_lo[] = {
2082
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q13_Q14_Q15_Q16, AArch64::Q14_Q15_Q16_Q17, AArch64::Q31_Q0_Q1_Q2, 
2083
  };
2084
2085
  // QQQQ_with_qsub1_in_FPR128_lo Bit set.
2086
  const uint8_t QQQQ_with_qsub1_in_FPR128_loBits[] = {
2087
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x08, 
2088
  };
2089
2090
  // QQQQ_with_qsub2_in_FPR128_lo Register Class...
2091
  const MCPhysReg QQQQ_with_qsub2_in_FPR128_lo[] = {
2092
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q13_Q14_Q15_Q16, AArch64::Q30_Q31_Q0_Q1, AArch64::Q31_Q0_Q1_Q2, 
2093
  };
2094
2095
  // QQQQ_with_qsub2_in_FPR128_lo Bit set.
2096
  const uint8_t QQQQ_with_qsub2_in_FPR128_loBits[] = {
2097
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x0c, 
2098
  };
2099
2100
  // QQQQ_with_qsub3_in_FPR128_lo Register Class...
2101
  const MCPhysReg QQQQ_with_qsub3_in_FPR128_lo[] = {
2102
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q29_Q30_Q31_Q0, AArch64::Q30_Q31_Q0_Q1, AArch64::Q31_Q0_Q1_Q2, 
2103
  };
2104
2105
  // QQQQ_with_qsub3_in_FPR128_lo Bit set.
2106
  const uint8_t QQQQ_with_qsub3_in_FPR128_loBits[] = {
2107
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x0e, 
2108
  };
2109
2110
  // QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_lo Register Class...
2111
  const MCPhysReg QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_lo[] = {
2112
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q13_Q14_Q15_Q16, AArch64::Q14_Q15_Q16_Q17, 
2113
  };
2114
2115
  // QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_lo Bit set.
2116
  const uint8_t QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_loBits[] = {
2117
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 
2118
  };
2119
2120
  // QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_lo Register Class...
2121
  const MCPhysReg QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_lo[] = {
2122
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q13_Q14_Q15_Q16, AArch64::Q31_Q0_Q1_Q2, 
2123
  };
2124
2125
  // QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_lo Bit set.
2126
  const uint8_t QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loBits[] = {
2127
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x08, 
2128
  };
2129
2130
  // QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo Register Class...
2131
  const MCPhysReg QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo[] = {
2132
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q30_Q31_Q0_Q1, AArch64::Q31_Q0_Q1_Q2, 
2133
  };
2134
2135
  // QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo Bit set.
2136
  const uint8_t QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits[] = {
2137
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x0c, 
2138
  };
2139
2140
  // QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_lo Register Class...
2141
  const MCPhysReg QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_lo[] = {
2142
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q13_Q14_Q15_Q16, 
2143
  };
2144
2145
  // QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_lo Bit set.
2146
  const uint8_t QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loBits[] = {
2147
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 
2148
  };
2149
2150
  // QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo Register Class...
2151
  const MCPhysReg QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo[] = {
2152
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, AArch64::Q31_Q0_Q1_Q2, 
2153
  };
2154
2155
  // QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo Bit set.
2156
  const uint8_t QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits[] = {
2157
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x08, 
2158
  };
2159
2160
  // QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo Register Class...
2161
  const MCPhysReg QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo[] = {
2162
    AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5, AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8, AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11, AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14, AArch64::Q12_Q13_Q14_Q15, 
2163
  };
2164
2165
  // QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo Bit set.
2166
  const uint8_t QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits[] = {
2167
    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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x01, 
2168
  };
2169
2170
}
2171
2172
extern const char AArch64RegClassStrings[] = {
2173
  /* 0 */ 'F', 'P', 'R', '3', '2', 0,
2174
  /* 6 */ 'G', 'P', 'R', '3', '2', 0,
2175
  /* 12 */ 'F', 'P', 'R', '6', '4', 0,
2176
  /* 18 */ 'X', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'e', '6', '4', '_', 'i', 'n', '_', 't', 'c', 'G', 'P', 'R', '6', '4', 0,
2177
  /* 56 */ 'X', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'c', 'o', 'm', 'm', 'o', 'n', '_', 'a', 'n', 'd', '_', 'X', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'o', '6', '4', '_', 'i', 'n', '_', 't', 'c', 'G', 'P', 'R', '6', '4', 0,
2178
  /* 140 */ 'F', 'P', 'R', '1', '6', 0,
2179
  /* 146 */ 'F', 'P', 'R', '1', '2', '8', 0,
2180
  /* 153 */ 'F', 'P', 'R', '8', 0,
2181
  /* 158 */ 'D', 'D', 'D', 'D', 0,
2182
  /* 163 */ 'Q', 'Q', 'Q', 'Q', 0,
2183
  /* 168 */ 'C', 'C', 'R', 0,
2184
  /* 172 */ 'G', 'P', 'R', '3', '2', 'a', 'l', 'l', 0,
2185
  /* 181 */ 'G', 'P', 'R', '6', '4', 'a', 'l', 'l', 0,
2186
  /* 190 */ 'X', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'c', 'o', 'm', 'm', 'o', 'n', 0,
2187
  /* 232 */ 'W', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'e', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'c', 'o', 'm', 'm', 'o', 'n', 0,
2188
  /* 274 */ 'W', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'e', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'c', 'o', 'm', 'm', 'o', 'n', '_', 'a', 'n', 'd', '_', 'W', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'o', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'c', 'o', 'm', 'm', 'o', 'n', 0,
2189
  /* 362 */ 'X', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', '_', '3', '2', '_', 'i', 'n', '_', 'G', 'P', 'R', '3', '2', 'c', 'o', 'm', 'm', 'o', 'n', '_', 'a', 'n', 'd', '_', 'X', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', '_', 'w', 'i', 't', 'h', '_', 's', 'u', 'b', 'o', '6', '4', '_', 'i', 'n', '_', 'G', 'P', 'R', '6', '4', 'c', 'o', 'm', 'm', 'o', 'n', 0,
2190
  /* 450 */ 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '0', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2191
  /* 479 */ 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '0', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '1', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2192
  /* 541 */ 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '0', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '1', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2193
  /* 601 */ 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '0', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '1', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2194
  /* 659 */ 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '0', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '2', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2195
  /* 721 */ 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '1', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '2', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2196
  /* 783 */ 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '0', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '2', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2197
  /* 843 */ 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '1', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '2', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2198
  /* 903 */ 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '0', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '3', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2199
  /* 965 */ 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '1', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '3', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2200
  /* 1027 */ 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '2', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', '_', 'a', 'n', 'd', '_', 'Q', 'Q', 'Q', 'Q', '_', 'w', 'i', 't', 'h', '_', 'q', 's', 'u', 'b', '3', '_', 'i', 'n', '_', 'F', 'P', 'R', '1', '2', '8', '_', 'l', 'o', 0,
2201
  /* 1089 */ 'G', 'P', 'R', '3', '2', 's', 'p', 0,
2202
  /* 1097 */ 'G', 'P', 'R', '6', '4', 's', 'p', 0,
2203
  /* 1105 */ 'W', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', 0,
2204
  /* 1120 */ 'X', 'S', 'e', 'q', 'P', 'a', 'i', 'r', 's', 'C', 'l', 'a', 's', 's', 0,
2205
  /* 1135 */ 'G', 'P', 'R', '3', '2', 's', 'p', 'o', 'n', 'l', 'y', 0,
2206
  /* 1147 */ 'G', 'P', 'R', '6', '4', 's', 'p', 'o', 'n', 'l', 'y', 0,
2207
};
2208
2209
extern const MCRegisterClass AArch64MCRegisterClasses[] = {
2210
  { FPR8, FPR8Bits, 153, 32, sizeof(FPR8Bits), AArch64::FPR8RegClassID, 1, 1, 1, 1 },
2211
  { FPR16, FPR16Bits, 140, 32, sizeof(FPR16Bits), AArch64::FPR16RegClassID, 2, 2, 1, 1 },
2212
  { GPR32all, GPR32allBits, 172, 33, sizeof(GPR32allBits), AArch64::GPR32allRegClassID, 4, 4, 1, 1 },
2213
  { FPR32, FPR32Bits, 0, 32, sizeof(FPR32Bits), AArch64::FPR32RegClassID, 4, 4, 1, 1 },
2214
  { GPR32, GPR32Bits, 6, 32, sizeof(GPR32Bits), AArch64::GPR32RegClassID, 4, 4, 1, 1 },
2215
  { GPR32sp, GPR32spBits, 1089, 32, sizeof(GPR32spBits), AArch64::GPR32spRegClassID, 4, 4, 1, 1 },
2216
  { GPR32common, GPR32commonBits, 220, 31, sizeof(GPR32commonBits), AArch64::GPR32commonRegClassID, 4, 4, 1, 1 },
2217
  { CCR, CCRBits, 168, 1, sizeof(CCRBits), AArch64::CCRRegClassID, 4, 4, -1, 0 },
2218
  { GPR32sponly, GPR32sponlyBits, 1135, 1, sizeof(GPR32sponlyBits), AArch64::GPR32sponlyRegClassID, 4, 4, 1, 1 },
2219
  { WSeqPairsClass, WSeqPairsClassBits, 1105, 32, sizeof(WSeqPairsClassBits), AArch64::WSeqPairsClassRegClassID, 8, 4, 1, 1 },
2220
  { WSeqPairsClass_with_sube32_in_GPR32common, WSeqPairsClass_with_sube32_in_GPR32commonBits, 232, 31, sizeof(WSeqPairsClass_with_sube32_in_GPR32commonBits), AArch64::WSeqPairsClass_with_sube32_in_GPR32commonRegClassID, 8, 4, 1, 1 },
2221
  { WSeqPairsClass_with_subo32_in_GPR32common, WSeqPairsClass_with_subo32_in_GPR32commonBits, 320, 31, sizeof(WSeqPairsClass_with_subo32_in_GPR32commonBits), AArch64::WSeqPairsClass_with_subo32_in_GPR32commonRegClassID, 8, 4, 1, 1 },
2222
  { WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32common, WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32commonBits, 274, 30, sizeof(WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32commonBits), AArch64::WSeqPairsClass_with_sube32_in_GPR32common_and_WSeqPairsClass_with_subo32_in_GPR32commonRegClassID, 8, 4, 1, 1 },
2223
  { GPR64all, GPR64allBits, 181, 33, sizeof(GPR64allBits), AArch64::GPR64allRegClassID, 8, 8, 1, 1 },
2224
  { FPR64, FPR64Bits, 12, 32, sizeof(FPR64Bits), AArch64::FPR64RegClassID, 8, 8, 1, 1 },
2225
  { GPR64, GPR64Bits, 50, 32, sizeof(GPR64Bits), AArch64::GPR64RegClassID, 8, 8, 1, 1 },
2226
  { GPR64sp, GPR64spBits, 1097, 32, sizeof(GPR64spBits), AArch64::GPR64spRegClassID, 8, 8, 1, 1 },
2227
  { GPR64common, GPR64commonBits, 438, 31, sizeof(GPR64commonBits), AArch64::GPR64commonRegClassID, 8, 8, 1, 1 },
2228
  { tcGPR64, tcGPR64Bits, 48, 19, sizeof(tcGPR64Bits), AArch64::tcGPR64RegClassID, 8, 8, 1, 1 },
2229
  { GPR64sponly, GPR64sponlyBits, 1147, 1, sizeof(GPR64sponlyBits), AArch64::GPR64sponlyRegClassID, 8, 8, 1, 1 },
2230
  { DD, DDBits, 160, 32, sizeof(DDBits), AArch64::DDRegClassID, 16, 8, 1, 1 },
2231
  { XSeqPairsClass, XSeqPairsClassBits, 1120, 32, sizeof(XSeqPairsClassBits), AArch64::XSeqPairsClassRegClassID, 16, 8, 1, 1 },
2232
  { XSeqPairsClass_with_sub_32_in_GPR32common, XSeqPairsClass_with_sub_32_in_GPR32commonBits, 190, 31, sizeof(XSeqPairsClass_with_sub_32_in_GPR32commonBits), AArch64::XSeqPairsClass_with_sub_32_in_GPR32commonRegClassID, 16, 8, 1, 1 },
2233
  { XSeqPairsClass_with_subo64_in_GPR64common, XSeqPairsClass_with_subo64_in_GPR64commonBits, 408, 31, sizeof(XSeqPairsClass_with_subo64_in_GPR64commonBits), AArch64::XSeqPairsClass_with_subo64_in_GPR64commonRegClassID, 16, 8, 1, 1 },
2234
  { XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64common, XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64commonBits, 362, 30, sizeof(XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64commonBits), AArch64::XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_GPR64commonRegClassID, 16, 8, 1, 1 },
2235
  { XSeqPairsClass_with_sube64_in_tcGPR64, XSeqPairsClass_with_sube64_in_tcGPR64Bits, 18, 19, sizeof(XSeqPairsClass_with_sube64_in_tcGPR64Bits), AArch64::XSeqPairsClass_with_sube64_in_tcGPR64RegClassID, 16, 8, 1, 1 },
2236
  { XSeqPairsClass_with_subo64_in_tcGPR64, XSeqPairsClass_with_subo64_in_tcGPR64Bits, 102, 19, sizeof(XSeqPairsClass_with_subo64_in_tcGPR64Bits), AArch64::XSeqPairsClass_with_subo64_in_tcGPR64RegClassID, 16, 8, 1, 1 },
2237
  { XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64, XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64Bits, 56, 18, sizeof(XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64Bits), AArch64::XSeqPairsClass_with_sub_32_in_GPR32common_and_XSeqPairsClass_with_subo64_in_tcGPR64RegClassID, 16, 8, 1, 1 },
2238
  { FPR128, FPR128Bits, 146, 32, sizeof(FPR128Bits), AArch64::FPR128RegClassID, 16, 16, 1, 1 },
2239
  { FPR128_lo, FPR128_loBits, 469, 16, sizeof(FPR128_loBits), AArch64::FPR128_loRegClassID, 16, 16, 1, 1 },
2240
  { DDD, DDDBits, 159, 32, sizeof(DDDBits), AArch64::DDDRegClassID, 24, 8, 1, 1 },
2241
  { DDDD, DDDDBits, 158, 32, sizeof(DDDDBits), AArch64::DDDDRegClassID, 32, 8, 1, 1 },
2242
  { QQ, QQBits, 165, 32, sizeof(QQBits), AArch64::QQRegClassID, 32, 16, 1, 1 },
2243
  { QQ_with_qsub0_in_FPR128_lo, QQ_with_qsub0_in_FPR128_loBits, 452, 16, sizeof(QQ_with_qsub0_in_FPR128_loBits), AArch64::QQ_with_qsub0_in_FPR128_loRegClassID, 32, 16, 1, 1 },
2244
  { QQ_with_qsub1_in_FPR128_lo, QQ_with_qsub1_in_FPR128_loBits, 514, 16, sizeof(QQ_with_qsub1_in_FPR128_loBits), AArch64::QQ_with_qsub1_in_FPR128_loRegClassID, 32, 16, 1, 1 },
2245
  { QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_lo, QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_loBits, 601, 15, sizeof(QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_loBits), AArch64::QQ_with_qsub0_in_FPR128_lo_and_QQ_with_qsub1_in_FPR128_loRegClassID, 32, 16, 1, 1 },
2246
  { QQQ, QQQBits, 164, 32, sizeof(QQQBits), AArch64::QQQRegClassID, 48, 16, 1, 1 },
2247
  { QQQ_with_qsub0_in_FPR128_lo, QQQ_with_qsub0_in_FPR128_loBits, 451, 16, sizeof(QQQ_with_qsub0_in_FPR128_loBits), AArch64::QQQ_with_qsub0_in_FPR128_loRegClassID, 48, 16, 1, 1 },
2248
  { QQQ_with_qsub1_in_FPR128_lo, QQQ_with_qsub1_in_FPR128_loBits, 513, 16, sizeof(QQQ_with_qsub1_in_FPR128_loBits), AArch64::QQQ_with_qsub1_in_FPR128_loRegClassID, 48, 16, 1, 1 },
2249
  { QQQ_with_qsub2_in_FPR128_lo, QQQ_with_qsub2_in_FPR128_loBits, 693, 16, sizeof(QQQ_with_qsub2_in_FPR128_loBits), AArch64::QQQ_with_qsub2_in_FPR128_loRegClassID, 48, 16, 1, 1 },
2250
  { QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_lo, QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_loBits, 541, 15, sizeof(QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_loBits), AArch64::QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub1_in_FPR128_loRegClassID, 48, 16, 1, 1 },
2251
  { QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_lo, QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loBits, 843, 15, sizeof(QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loBits), AArch64::QQQ_with_qsub1_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loRegClassID, 48, 16, 1, 1 },
2252
  { QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_lo, QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loBits, 783, 14, sizeof(QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loBits), AArch64::QQQ_with_qsub0_in_FPR128_lo_and_QQQ_with_qsub2_in_FPR128_loRegClassID, 48, 16, 1, 1 },
2253
  { QQQQ, QQQQBits, 163, 32, sizeof(QQQQBits), AArch64::QQQQRegClassID, 64, 16, 1, 1 },
2254
  { QQQQ_with_qsub0_in_FPR128_lo, QQQQ_with_qsub0_in_FPR128_loBits, 450, 16, sizeof(QQQQ_with_qsub0_in_FPR128_loBits), AArch64::QQQQ_with_qsub0_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2255
  { QQQQ_with_qsub1_in_FPR128_lo, QQQQ_with_qsub1_in_FPR128_loBits, 512, 16, sizeof(QQQQ_with_qsub1_in_FPR128_loBits), AArch64::QQQQ_with_qsub1_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2256
  { QQQQ_with_qsub2_in_FPR128_lo, QQQQ_with_qsub2_in_FPR128_loBits, 692, 16, sizeof(QQQQ_with_qsub2_in_FPR128_loBits), AArch64::QQQQ_with_qsub2_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2257
  { QQQQ_with_qsub3_in_FPR128_lo, QQQQ_with_qsub3_in_FPR128_loBits, 936, 16, sizeof(QQQQ_with_qsub3_in_FPR128_loBits), AArch64::QQQQ_with_qsub3_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2258
  { QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_lo, QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_loBits, 479, 15, sizeof(QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_loBits), AArch64::QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub1_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2259
  { QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_lo, QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loBits, 721, 15, sizeof(QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loBits), AArch64::QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2260
  { QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo, QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits, 1027, 15, sizeof(QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits), AArch64::QQQQ_with_qsub2_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2261
  { QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_lo, QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loBits, 659, 14, sizeof(QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loBits), AArch64::QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub2_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2262
  { QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo, QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits, 965, 14, sizeof(QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits), AArch64::QQQQ_with_qsub1_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2263
  { QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_lo, QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits, 903, 13, sizeof(QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loBits), AArch64::QQQQ_with_qsub0_in_FPR128_lo_and_QQQQ_with_qsub3_in_FPR128_loRegClassID, 64, 16, 1, 1 },
2264
};
2265
2266
// AArch64 Dwarf<->LLVM register mappings.
2267
extern const MCRegisterInfo::DwarfLLVMRegPair AArch64DwarfFlavour0Dwarf2L[] = {
2268
  { 0U, AArch64::W0 },
2269
  { 1U, AArch64::W1 },
2270
  { 2U, AArch64::W2 },
2271
  { 3U, AArch64::W3 },
2272
  { 4U, AArch64::W4 },
2273
  { 5U, AArch64::W5 },
2274
  { 6U, AArch64::W6 },
2275
  { 7U, AArch64::W7 },
2276
  { 8U, AArch64::W8 },
2277
  { 9U, AArch64::W9 },
2278
  { 10U, AArch64::W10 },
2279
  { 11U, AArch64::W11 },
2280
  { 12U, AArch64::W12 },
2281
  { 13U, AArch64::W13 },
2282
  { 14U, AArch64::W14 },
2283
  { 15U, AArch64::W15 },
2284
  { 16U, AArch64::W16 },
2285
  { 17U, AArch64::W17 },
2286
  { 18U, AArch64::W18 },
2287
  { 19U, AArch64::W19 },
2288
  { 20U, AArch64::W20 },
2289
  { 21U, AArch64::W21 },
2290
  { 22U, AArch64::W22 },
2291
  { 23U, AArch64::W23 },
2292
  { 24U, AArch64::W24 },
2293
  { 25U, AArch64::W25 },
2294
  { 26U, AArch64::W26 },
2295
  { 27U, AArch64::W27 },
2296
  { 28U, AArch64::W28 },
2297
  { 29U, AArch64::W29 },
2298
  { 30U, AArch64::W30 },
2299
  { 31U, AArch64::WSP },
2300
  { 64U, AArch64::B0 },
2301
  { 65U, AArch64::B1 },
2302
  { 66U, AArch64::B2 },
2303
  { 67U, AArch64::B3 },
2304
  { 68U, AArch64::B4 },
2305
  { 69U, AArch64::B5 },
2306
  { 70U, AArch64::B6 },
2307
  { 71U, AArch64::B7 },
2308
  { 72U, AArch64::B8 },
2309
  { 73U, AArch64::B9 },
2310
  { 74U, AArch64::B10 },
2311
  { 75U, AArch64::B11 },
2312
  { 76U, AArch64::B12 },
2313
  { 77U, AArch64::B13 },
2314
  { 78U, AArch64::B14 },
2315
  { 79U, AArch64::B15 },
2316
  { 80U, AArch64::B16 },
2317
  { 81U, AArch64::B17 },
2318
  { 82U, AArch64::B18 },
2319
  { 83U, AArch64::B19 },
2320
  { 84U, AArch64::B20 },
2321
  { 85U, AArch64::B21 },
2322
  { 86U, AArch64::B22 },
2323
  { 87U, AArch64::B23 },
2324
  { 88U, AArch64::B24 },
2325
  { 89U, AArch64::B25 },
2326
  { 90U, AArch64::B26 },
2327
  { 91U, AArch64::B27 },
2328
  { 92U, AArch64::B28 },
2329
  { 93U, AArch64::B29 },
2330
  { 94U, AArch64::B30 },
2331
  { 95U, AArch64::B31 },
2332
};
2333
extern const unsigned AArch64DwarfFlavour0Dwarf2LSize = array_lengthof(AArch64DwarfFlavour0Dwarf2L);
2334
2335
extern const MCRegisterInfo::DwarfLLVMRegPair AArch64EHFlavour0Dwarf2L[] = {
2336
  { 0U, AArch64::W0 },
2337
  { 1U, AArch64::W1 },
2338
  { 2U, AArch64::W2 },
2339
  { 3U, AArch64::W3 },
2340
  { 4U, AArch64::W4 },
2341
  { 5U, AArch64::W5 },
2342
  { 6U, AArch64::W6 },
2343
  { 7U, AArch64::W7 },
2344
  { 8U, AArch64::W8 },
2345
  { 9U, AArch64::W9 },
2346
  { 10U, AArch64::W10 },
2347
  { 11U, AArch64::W11 },
2348
  { 12U, AArch64::W12 },
2349
  { 13U, AArch64::W13 },
2350
  { 14U, AArch64::W14 },
2351
  { 15U, AArch64::W15 },
2352
  { 16U, AArch64::W16 },
2353
  { 17U, AArch64::W17 },
2354
  { 18U, AArch64::W18 },
2355
  { 19U, AArch64::W19 },
2356
  { 20U, AArch64::W20 },
2357
  { 21U, AArch64::W21 },
2358
  { 22U, AArch64::W22 },
2359
  { 23U, AArch64::W23 },
2360
  { 24U, AArch64::W24 },
2361
  { 25U, AArch64::W25 },
2362
  { 26U, AArch64::W26 },
2363
  { 27U, AArch64::W27 },
2364
  { 28U, AArch64::W28 },
2365
  { 29U, AArch64::W29 },
2366
  { 30U, AArch64::W30 },
2367
  { 31U, AArch64::WSP },
2368
  { 64U, AArch64::B0 },
2369
  { 65U, AArch64::B1 },
2370
  { 66U, AArch64::B2 },
2371
  { 67U, AArch64::B3 },
2372
  { 68U, AArch64::B4 },
2373
  { 69U, AArch64::B5 },
2374
  { 70U, AArch64::B6 },
2375
  { 71U, AArch64::B7 },
2376
  { 72U, AArch64::B8 },
2377
  { 73U, AArch64::B9 },
2378
  { 74U, AArch64::B10 },
2379
  { 75U, AArch64::B11 },
2380
  { 76U, AArch64::B12 },
2381
  { 77U, AArch64::B13 },
2382
  { 78U, AArch64::B14 },
2383
  { 79U, AArch64::B15 },
2384
  { 80U, AArch64::B16 },
2385
  { 81U, AArch64::B17 },
2386
  { 82U, AArch64::B18 },
2387
  { 83U, AArch64::B19 },
2388
  { 84U, AArch64::B20 },
2389
  { 85U, AArch64::B21 },
2390
  { 86U, AArch64::B22 },
2391
  { 87U, AArch64::B23 },
2392
  { 88U, AArch64::B24 },
2393
  { 89U, AArch64::B25 },
2394
  { 90U, AArch64::B26 },
2395
  { 91U, AArch64::B27 },
2396
  { 92U, AArch64::B28 },
2397
  { 93U, AArch64::B29 },
2398
  { 94U, AArch64::B30 },
2399
  { 95U, AArch64::B31 },
2400
};
2401
extern const unsigned AArch64EHFlavour0Dwarf2LSize = array_lengthof(AArch64EHFlavour0Dwarf2L);
2402
2403
extern const MCRegisterInfo::DwarfLLVMRegPair AArch64DwarfFlavour0L2Dwarf[] = {
2404
  { AArch64::FP, 29U },
2405
  { AArch64::LR, 30U },
2406
  { AArch64::SP, 31U },
2407
  { AArch64::WSP, 31U },
2408
  { AArch64::WZR, 31U },
2409
  { AArch64::XZR, 31U },
2410
  { AArch64::B0, 64U },
2411
  { AArch64::B1, 65U },
2412
  { AArch64::B2, 66U },
2413
  { AArch64::B3, 67U },
2414
  { AArch64::B4, 68U },
2415
  { AArch64::B5, 69U },
2416
  { AArch64::B6, 70U },
2417
  { AArch64::B7, 71U },
2418
  { AArch64::B8, 72U },
2419
  { AArch64::B9, 73U },
2420
  { AArch64::B10, 74U },
2421
  { AArch64::B11, 75U },
2422
  { AArch64::B12, 76U },
2423
  { AArch64::B13, 77U },
2424
  { AArch64::B14, 78U },
2425
  { AArch64::B15, 79U },
2426
  { AArch64::B16, 80U },
2427
  { AArch64::B17, 81U },
2428
  { AArch64::B18, 82U },
2429
  { AArch64::B19, 83U },
2430
  { AArch64::B20, 84U },
2431
  { AArch64::B21, 85U },
2432
  { AArch64::B22, 86U },
2433
  { AArch64::B23, 87U },
2434
  { AArch64::B24, 88U },
2435
  { AArch64::B25, 89U },
2436
  { AArch64::B26, 90U },
2437
  { AArch64::B27, 91U },
2438
  { AArch64::B28, 92U },
2439
  { AArch64::B29, 93U },
2440
  { AArch64::B30, 94U },
2441
  { AArch64::B31, 95U },
2442
  { AArch64::D0, 64U },
2443
  { AArch64::D1, 65U },
2444
  { AArch64::D2, 66U },
2445
  { AArch64::D3, 67U },
2446
  { AArch64::D4, 68U },
2447
  { AArch64::D5, 69U },
2448
  { AArch64::D6, 70U },
2449
  { AArch64::D7, 71U },
2450
  { AArch64::D8, 72U },
2451
  { AArch64::D9, 73U },
2452
  { AArch64::D10, 74U },
2453
  { AArch64::D11, 75U },
2454
  { AArch64::D12, 76U },
2455
  { AArch64::D13, 77U },
2456
  { AArch64::D14, 78U },
2457
  { AArch64::D15, 79U },
2458
  { AArch64::D16, 80U },
2459
  { AArch64::D17, 81U },
2460
  { AArch64::D18, 82U },
2461
  { AArch64::D19, 83U },
2462
  { AArch64::D20, 84U },
2463
  { AArch64::D21, 85U },
2464
  { AArch64::D22, 86U },
2465
  { AArch64::D23, 87U },
2466
  { AArch64::D24, 88U },
2467
  { AArch64::D25, 89U },
2468
  { AArch64::D26, 90U },
2469
  { AArch64::D27, 91U },
2470
  { AArch64::D28, 92U },
2471
  { AArch64::D29, 93U },
2472
  { AArch64::D30, 94U },
2473
  { AArch64::D31, 95U },
2474
  { AArch64::H0, 64U },
2475
  { AArch64::H1, 65U },
2476
  { AArch64::H2, 66U },
2477
  { AArch64::H3, 67U },
2478
  { AArch64::H4, 68U },
2479
  { AArch64::H5, 69U },
2480
  { AArch64::H6, 70U },
2481
  { AArch64::H7, 71U },
2482
  { AArch64::H8, 72U },
2483
  { AArch64::H9, 73U },
2484
  { AArch64::H10, 74U },
2485
  { AArch64::H11, 75U },
2486
  { AArch64::H12, 76U },
2487
  { AArch64::H13, 77U },
2488
  { AArch64::H14, 78U },
2489
  { AArch64::H15, 79U },
2490
  { AArch64::H16, 80U },
2491
  { AArch64::H17, 81U },
2492
  { AArch64::H18, 82U },
2493
  { AArch64::H19, 83U },
2494
  { AArch64::H20, 84U },
2495
  { AArch64::H21, 85U },
2496
  { AArch64::H22, 86U },
2497
  { AArch64::H23, 87U },
2498
  { AArch64::H24, 88U },
2499
  { AArch64::H25, 89U },
2500
  { AArch64::H26, 90U },
2501
  { AArch64::H27, 91U },
2502
  { AArch64::H28, 92U },
2503
  { AArch64::H29, 93U },
2504
  { AArch64::H30, 94U },
2505
  { AArch64::H31, 95U },
2506
  { AArch64::Q0, 64U },
2507
  { AArch64::Q1, 65U },
2508
  { AArch64::Q2, 66U },
2509
  { AArch64::Q3, 67U },
2510
  { AArch64::Q4, 68U },
2511
  { AArch64::Q5, 69U },
2512
  { AArch64::Q6, 70U },
2513
  { AArch64::Q7, 71U },
2514
  { AArch64::Q8, 72U },
2515
  { AArch64::Q9, 73U },
2516
  { AArch64::Q10, 74U },
2517
  { AArch64::Q11, 75U },
2518
  { AArch64::Q12, 76U },
2519
  { AArch64::Q13, 77U },
2520
  { AArch64::Q14, 78U },
2521
  { AArch64::Q15, 79U },
2522
  { AArch64::Q16, 80U },
2523
  { AArch64::Q17, 81U },
2524
  { AArch64::Q18, 82U },
2525
  { AArch64::Q19, 83U },
2526
  { AArch64::Q20, 84U },
2527
  { AArch64::Q21, 85U },
2528
  { AArch64::Q22, 86U },
2529
  { AArch64::Q23, 87U },
2530
  { AArch64::Q24, 88U },
2531
  { AArch64::Q25, 89U },
2532
  { AArch64::Q26, 90U },
2533
  { AArch64::Q27, 91U },
2534
  { AArch64::Q28, 92U },
2535
  { AArch64::Q29, 93U },
2536
  { AArch64::Q30, 94U },
2537
  { AArch64::Q31, 95U },
2538
  { AArch64::S0, 64U },
2539
  { AArch64::S1, 65U },
2540
  { AArch64::S2, 66U },
2541
  { AArch64::S3, 67U },
2542
  { AArch64::S4, 68U },
2543
  { AArch64::S5, 69U },
2544
  { AArch64::S6, 70U },
2545
  { AArch64::S7, 71U },
2546
  { AArch64::S8, 72U },
2547
  { AArch64::S9, 73U },
2548
  { AArch64::S10, 74U },
2549
  { AArch64::S11, 75U },
2550
  { AArch64::S12, 76U },
2551
  { AArch64::S13, 77U },
2552
  { AArch64::S14, 78U },
2553
  { AArch64::S15, 79U },
2554
  { AArch64::S16, 80U },
2555
  { AArch64::S17, 81U },
2556
  { AArch64::S18, 82U },
2557
  { AArch64::S19, 83U },
2558
  { AArch64::S20, 84U },
2559
  { AArch64::S21, 85U },
2560
  { AArch64::S22, 86U },
2561
  { AArch64::S23, 87U },
2562
  { AArch64::S24, 88U },
2563
  { AArch64::S25, 89U },
2564
  { AArch64::S26, 90U },
2565
  { AArch64::S27, 91U },
2566
  { AArch64::S28, 92U },
2567
  { AArch64::S29, 93U },
2568
  { AArch64::S30, 94U },
2569
  { AArch64::S31, 95U },
2570
  { AArch64::W0, 0U },
2571
  { AArch64::W1, 1U },
2572
  { AArch64::W2, 2U },
2573
  { AArch64::W3, 3U },
2574
  { AArch64::W4, 4U },
2575
  { AArch64::W5, 5U },
2576
  { AArch64::W6, 6U },
2577
  { AArch64::W7, 7U },
2578
  { AArch64::W8, 8U },
2579
  { AArch64::W9, 9U },
2580
  { AArch64::W10, 10U },
2581
  { AArch64::W11, 11U },
2582
  { AArch64::W12, 12U },
2583
  { AArch64::W13, 13U },
2584
  { AArch64::W14, 14U },
2585
  { AArch64::W15, 15U },
2586
  { AArch64::W16, 16U },
2587
  { AArch64::W17, 17U },
2588
  { AArch64::W18, 18U },
2589
  { AArch64::W19, 19U },
2590
  { AArch64::W20, 20U },
2591
  { AArch64::W21, 21U },
2592
  { AArch64::W22, 22U },
2593
  { AArch64::W23, 23U },
2594
  { AArch64::W24, 24U },
2595
  { AArch64::W25, 25U },
2596
  { AArch64::W26, 26U },
2597
  { AArch64::W27, 27U },
2598
  { AArch64::W28, 28U },
2599
  { AArch64::W29, 29U },
2600
  { AArch64::W30, 30U },
2601
  { AArch64::X0, 0U },
2602
  { AArch64::X1, 1U },
2603
  { AArch64::X2, 2U },
2604
  { AArch64::X3, 3U },
2605
  { AArch64::X4, 4U },
2606
  { AArch64::X5, 5U },
2607
  { AArch64::X6, 6U },
2608
  { AArch64::X7, 7U },
2609
  { AArch64::X8, 8U },
2610
  { AArch64::X9, 9U },
2611
  { AArch64::X10, 10U },
2612
  { AArch64::X11, 11U },
2613
  { AArch64::X12, 12U },
2614
  { AArch64::X13, 13U },
2615
  { AArch64::X14, 14U },
2616
  { AArch64::X15, 15U },
2617
  { AArch64::X16, 16U },
2618
  { AArch64::X17, 17U },
2619
  { AArch64::X18, 18U },
2620
  { AArch64::X19, 19U },
2621
  { AArch64::X20, 20U },
2622
  { AArch64::X21, 21U },
2623
  { AArch64::X22, 22U },
2624
  { AArch64::X23, 23U },
2625
  { AArch64::X24, 24U },
2626
  { AArch64::X25, 25U },
2627
  { AArch64::X26, 26U },
2628
  { AArch64::X27, 27U },
2629
  { AArch64::X28, 28U },
2630
};
2631
extern const unsigned AArch64DwarfFlavour0L2DwarfSize = array_lengthof(AArch64DwarfFlavour0L2Dwarf);
2632
2633
extern const MCRegisterInfo::DwarfLLVMRegPair AArch64EHFlavour0L2Dwarf[] = {
2634
  { AArch64::FP, 29U },
2635
  { AArch64::LR, 30U },
2636
  { AArch64::SP, 31U },
2637
  { AArch64::WSP, 31U },
2638
  { AArch64::WZR, 31U },
2639
  { AArch64::XZR, 31U },
2640
  { AArch64::B0, 64U },
2641
  { AArch64::B1, 65U },
2642
  { AArch64::B2, 66U },
2643
  { AArch64::B3, 67U },
2644
  { AArch64::B4, 68U },
2645
  { AArch64::B5, 69U },
2646
  { AArch64::B6, 70U },
2647
  { AArch64::B7, 71U },
2648
  { AArch64::B8, 72U },
2649
  { AArch64::B9, 73U },
2650
  { AArch64::B10, 74U },
2651
  { AArch64::B11, 75U },
2652
  { AArch64::B12, 76U },
2653
  { AArch64::B13, 77U },
2654
  { AArch64::B14, 78U },
2655
  { AArch64::B15, 79U },
2656
  { AArch64::B16, 80U },
2657
  { AArch64::B17, 81U },
2658
  { AArch64::B18, 82U },
2659
  { AArch64::B19, 83U },
2660
  { AArch64::B20, 84U },
2661
  { AArch64::B21, 85U },
2662
  { AArch64::B22, 86U },
2663
  { AArch64::B23, 87U },
2664
  { AArch64::B24, 88U },
2665
  { AArch64::B25, 89U },
2666
  { AArch64::B26, 90U },
2667
  { AArch64::B27, 91U },
2668
  { AArch64::B28, 92U },
2669
  { AArch64::B29, 93U },
2670
  { AArch64::B30, 94U },
2671
  { AArch64::B31, 95U },
2672
  { AArch64::D0, 64U },
2673
  { AArch64::D1, 65U },
2674
  { AArch64::D2, 66U },
2675
  { AArch64::D3, 67U },
2676
  { AArch64::D4, 68U },
2677
  { AArch64::D5, 69U },
2678
  { AArch64::D6, 70U },
2679
  { AArch64::D7, 71U },
2680
  { AArch64::D8, 72U },
2681
  { AArch64::D9, 73U },
2682
  { AArch64::D10, 74U },
2683
  { AArch64::D11, 75U },
2684
  { AArch64::D12, 76U },
2685
  { AArch64::D13, 77U },
2686
  { AArch64::D14, 78U },
2687
  { AArch64::D15, 79U },
2688
  { AArch64::D16, 80U },
2689
  { AArch64::D17, 81U },
2690
  { AArch64::D18, 82U },
2691
  { AArch64::D19, 83U },
2692
  { AArch64::D20, 84U },
2693
  { AArch64::D21, 85U },
2694
  { AArch64::D22, 86U },
2695
  { AArch64::D23, 87U },
2696
  { AArch64::D24, 88U },
2697
  { AArch64::D25, 89U },
2698
  { AArch64::D26, 90U },
2699
  { AArch64::D27, 91U },
2700
  { AArch64::D28, 92U },
2701
  { AArch64::D29, 93U },
2702
  { AArch64::D30, 94U },
2703
  { AArch64::D31, 95U },
2704
  { AArch64::H0, 64U },
2705
  { AArch64::H1, 65U },
2706
  { AArch64::H2, 66U },
2707
  { AArch64::H3, 67U },
2708
  { AArch64::H4, 68U },
2709
  { AArch64::H5, 69U },
2710
  { AArch64::H6, 70U },
2711
  { AArch64::H7, 71U },
2712
  { AArch64::H8, 72U },
2713
  { AArch64::H9, 73U },
2714
  { AArch64::H10, 74U },
2715
  { AArch64::H11, 75U },
2716
  { AArch64::H12, 76U },
2717
  { AArch64::H13, 77U },
2718
  { AArch64::H14, 78U },
2719
  { AArch64::H15, 79U },
2720
  { AArch64::H16, 80U },
2721
  { AArch64::H17, 81U },
2722
  { AArch64::H18, 82U },
2723
  { AArch64::H19, 83U },
2724
  { AArch64::H20, 84U },
2725
  { AArch64::H21, 85U },
2726
  { AArch64::H22, 86U },
2727
  { AArch64::H23, 87U },
2728
  { AArch64::H24, 88U },
2729
  { AArch64::H25, 89U },
2730
  { AArch64::H26, 90U },
2731
  { AArch64::H27, 91U },
2732
  { AArch64::H28, 92U },
2733
  { AArch64::H29, 93U },
2734
  { AArch64::H30, 94U },
2735
  { AArch64::H31, 95U },
2736
  { AArch64::Q0, 64U },
2737
  { AArch64::Q1, 65U },
2738
  { AArch64::Q2, 66U },
2739
  { AArch64::Q3, 67U },
2740
  { AArch64::Q4, 68U },
2741
  { AArch64::Q5, 69U },
2742
  { AArch64::Q6, 70U },
2743
  { AArch64::Q7, 71U },
2744
  { AArch64::Q8, 72U },
2745
  { AArch64::Q9, 73U },
2746
  { AArch64::Q10, 74U },
2747
  { AArch64::Q11, 75U },
2748
  { AArch64::Q12, 76U },
2749
  { AArch64::Q13, 77U },
2750
  { AArch64::Q14, 78U },
2751
  { AArch64::Q15, 79U },
2752
  { AArch64::Q16, 80U },
2753
  { AArch64::Q17, 81U },
2754
  { AArch64::Q18, 82U },
2755
  { AArch64::Q19, 83U },
2756
  { AArch64::Q20, 84U },
2757
  { AArch64::Q21, 85U },
2758
  { AArch64::Q22, 86U },
2759
  { AArch64::Q23, 87U },
2760
  { AArch64::Q24, 88U },
2761
  { AArch64::Q25, 89U },
2762
  { AArch64::Q26, 90U },
2763
  { AArch64::Q27, 91U },
2764
  { AArch64::Q28, 92U },
2765
  { AArch64::Q29, 93U },
2766
  { AArch64::Q30, 94U },
2767
  { AArch64::Q31, 95U },
2768
  { AArch64::S0, 64U },
2769
  { AArch64::S1, 65U },
2770
  { AArch64::S2, 66U },
2771
  { AArch64::S3, 67U },
2772
  { AArch64::S4, 68U },
2773
  { AArch64::S5, 69U },
2774
  { AArch64::S6, 70U },
2775
  { AArch64::S7, 71U },
2776
  { AArch64::S8, 72U },
2777
  { AArch64::S9, 73U },
2778
  { AArch64::S10, 74U },
2779
  { AArch64::S11, 75U },
2780
  { AArch64::S12, 76U },
2781
  { AArch64::S13, 77U },
2782
  { AArch64::S14, 78U },
2783
  { AArch64::S15, 79U },
2784
  { AArch64::S16, 80U },
2785
  { AArch64::S17, 81U },
2786
  { AArch64::S18, 82U },
2787
  { AArch64::S19, 83U },
2788
  { AArch64::S20, 84U },
2789
  { AArch64::S21, 85U },
2790
  { AArch64::S22, 86U },
2791
  { AArch64::S23, 87U },
2792
  { AArch64::S24, 88U },
2793
  { AArch64::S25, 89U },
2794
  { AArch64::S26, 90U },
2795
  { AArch64::S27, 91U },
2796
  { AArch64::S28, 92U },
2797
  { AArch64::S29, 93U },
2798
  { AArch64::S30, 94U },
2799
  { AArch64::S31, 95U },
2800
  { AArch64::W0, 0U },
2801
  { AArch64::W1, 1U },
2802
  { AArch64::W2, 2U },
2803
  { AArch64::W3, 3U },
2804
  { AArch64::W4, 4U },
2805
  { AArch64::W5, 5U },
2806
  { AArch64::W6, 6U },
2807
  { AArch64::W7, 7U },
2808
  { AArch64::W8, 8U },
2809
  { AArch64::W9, 9U },
2810
  { AArch64::W10, 10U },
2811
  { AArch64::W11, 11U },
2812
  { AArch64::W12, 12U },
2813
  { AArch64::W13, 13U },
2814
  { AArch64::W14, 14U },
2815
  { AArch64::W15, 15U },
2816
  { AArch64::W16, 16U },
2817
  { AArch64::W17, 17U },
2818
  { AArch64::W18, 18U },
2819
  { AArch64::W19, 19U },
2820
  { AArch64::W20, 20U },
2821
  { AArch64::W21, 21U },
2822
  { AArch64::W22, 22U },
2823
  { AArch64::W23, 23U },
2824
  { AArch64::W24, 24U },
2825
  { AArch64::W25, 25U },
2826
  { AArch64::W26, 26U },
2827
  { AArch64::W27, 27U },
2828
  { AArch64::W28, 28U },
2829
  { AArch64::W29, 29U },
2830
  { AArch64::W30, 30U },
2831
  { AArch64::X0, 0U },
2832
  { AArch64::X1, 1U },
2833
  { AArch64::X2, 2U },
2834
  { AArch64::X3, 3U },
2835
  { AArch64::X4, 4U },
2836
  { AArch64::X5, 5U },
2837
  { AArch64::X6, 6U },
2838
  { AArch64::X7, 7U },
2839
  { AArch64::X8, 8U },
2840
  { AArch64::X9, 9U },
2841
  { AArch64::X10, 10U },
2842
  { AArch64::X11, 11U },
2843
  { AArch64::X12, 12U },
2844
  { AArch64::X13, 13U },
2845
  { AArch64::X14, 14U },
2846
  { AArch64::X15, 15U },
2847
  { AArch64::X16, 16U },
2848
  { AArch64::X17, 17U },
2849
  { AArch64::X18, 18U },
2850
  { AArch64::X19, 19U },
2851
  { AArch64::X20, 20U },
2852
  { AArch64::X21, 21U },
2853
  { AArch64::X22, 22U },
2854
  { AArch64::X23, 23U },
2855
  { AArch64::X24, 24U },
2856
  { AArch64::X25, 25U },
2857
  { AArch64::X26, 26U },
2858
  { AArch64::X27, 27U },
2859
  { AArch64::X28, 28U },
2860
};
2861
extern const unsigned AArch64EHFlavour0L2DwarfSize = array_lengthof(AArch64EHFlavour0L2Dwarf);
2862
2863
extern const uint16_t AArch64RegEncodingTable[] = {
2864
  0,
2865
  29,
2866
  30,
2867
  0,
2868
  31,
2869
  31,
2870
  31,
2871
  31,
2872
  0,
2873
  1,
2874
  2,
2875
  3,
2876
  4,
2877
  5,
2878
  6,
2879
  7,
2880
  8,
2881
  9,
2882
  10,
2883
  11,
2884
  12,
2885
  13,
2886
  14,
2887
  15,
2888
  16,
2889
  17,
2890
  18,
2891
  19,
2892
  20,
2893
  21,
2894
  22,
2895
  23,
2896
  24,
2897
  25,
2898
  26,
2899
  27,
2900
  28,
2901
  29,
2902
  30,
2903
  31,
2904
  0,
2905
  1,
2906
  2,
2907
  3,
2908
  4,
2909
  5,
2910
  6,
2911
  7,
2912
  8,
2913
  9,
2914
  10,
2915
  11,
2916
  12,
2917
  13,
2918
  14,
2919
  15,
2920
  16,
2921
  17,
2922
  18,
2923
  19,
2924
  20,
2925
  21,
2926
  22,
2927
  23,
2928
  24,
2929
  25,
2930
  26,
2931
  27,
2932
  28,
2933
  29,
2934
  30,
2935
  31,
2936
  0,
2937
  1,
2938
  2,
2939
  3,
2940
  4,
2941
  5,
2942
  6,
2943
  7,
2944
  8,
2945
  9,
2946
  10,
2947
  11,
2948
  12,
2949
  13,
2950
  14,
2951
  15,
2952
  16,
2953
  17,
2954
  18,
2955
  19,
2956
  20,
2957
  21,
2958
  22,
2959
  23,
2960
  24,
2961
  25,
2962
  26,
2963
  27,
2964
  28,
2965
  29,
2966
  30,
2967
  31,
2968
  0,
2969
  1,
2970
  2,
2971
  3,
2972
  4,
2973
  5,
2974
  6,
2975
  7,
2976
  8,
2977
  9,
2978
  10,
2979
  11,
2980
  12,
2981
  13,
2982
  14,
2983
  15,
2984
  16,
2985
  17,
2986
  18,
2987
  19,
2988
  20,
2989
  21,
2990
  22,
2991
  23,
2992
  24,
2993
  25,
2994
  26,
2995
  27,
2996
  28,
2997
  29,
2998
  30,
2999
  31,
3000
  0,
3001
  1,
3002
  2,
3003
  3,
3004
  4,
3005
  5,
3006
  6,
3007
  7,
3008
  8,
3009
  9,
3010
  10,
3011
  11,
3012
  12,
3013
  13,
3014
  14,
3015
  15,
3016
  16,
3017
  17,
3018
  18,
3019
  19,
3020
  20,
3021
  21,
3022
  22,
3023
  23,
3024
  24,
3025
  25,
3026
  26,
3027
  27,
3028
  28,
3029
  29,
3030
  30,
3031
  31,
3032
  0,
3033
  1,
3034
  2,
3035
  3,
3036
  4,
3037
  5,
3038
  6,
3039
  7,
3040
  8,
3041
  9,
3042
  10,
3043
  11,
3044
  12,
3045
  13,
3046
  14,
3047
  15,
3048
  16,
3049
  17,
3050
  18,
3051
  19,
3052
  20,
3053
  21,
3054
  22,
3055
  23,
3056
  24,
3057
  25,
3058
  26,
3059
  27,
3060
  28,
3061
  29,
3062
  30,
3063
  0,
3064
  1,
3065
  2,
3066
  3,
3067
  4,
3068
  5,
3069
  6,
3070
  7,
3071
  8,
3072
  9,
3073
  10,
3074
  11,
3075
  12,
3076
  13,
3077
  14,
3078
  15,
3079
  16,
3080
  17,
3081
  18,
3082
  19,
3083
  20,
3084
  21,
3085
  22,
3086
  23,
3087
  24,
3088
  25,
3089
  26,
3090
  27,
3091
  28,
3092
  0,
3093
  1,
3094
  2,
3095
  3,
3096
  4,
3097
  5,
3098
  6,
3099
  7,
3100
  8,
3101
  9,
3102
  10,
3103
  11,
3104
  12,
3105
  13,
3106
  14,
3107
  15,
3108
  16,
3109
  17,
3110
  18,
3111
  19,
3112
  20,
3113
  21,
3114
  22,
3115
  23,
3116
  24,
3117
  25,
3118
  26,
3119
  27,
3120
  28,
3121
  29,
3122
  30,
3123
  31,
3124
  0,
3125
  1,
3126
  2,
3127
  3,
3128
  4,
3129
  5,
3130
  6,
3131
  7,
3132
  8,
3133
  9,
3134
  10,
3135
  11,
3136
  12,
3137
  13,
3138
  14,
3139
  15,
3140
  16,
3141
  17,
3142
  18,
3143
  19,
3144
  20,
3145
  21,
3146
  22,
3147
  23,
3148
  24,
3149
  25,
3150
  26,
3151
  27,
3152
  28,
3153
  29,
3154
  30,
3155
  31,
3156
  0,
3157
  1,
3158
  2,
3159
  3,
3160
  4,
3161
  5,
3162
  6,
3163
  7,
3164
  8,
3165
  9,
3166
  10,
3167
  11,
3168
  12,
3169
  13,
3170
  14,
3171
  15,
3172
  16,
3173
  17,
3174
  18,
3175
  19,
3176
  20,
3177
  21,
3178
  22,
3179
  23,
3180
  24,
3181
  25,
3182
  26,
3183
  27,
3184
  28,
3185
  29,
3186
  30,
3187
  31,
3188
  0,
3189
  1,
3190
  2,
3191
  3,
3192
  4,
3193
  5,
3194
  6,
3195
  7,
3196
  8,
3197
  9,
3198
  10,
3199
  11,
3200
  12,
3201
  13,
3202
  14,
3203
  15,
3204
  16,
3205
  17,
3206
  18,
3207
  19,
3208
  20,
3209
  21,
3210
  22,
3211
  23,
3212
  24,
3213
  25,
3214
  26,
3215
  27,
3216
  28,
3217
  29,
3218
  30,
3219
  31,
3220
  0,
3221
  1,
3222
  2,
3223
  3,
3224
  4,
3225
  5,
3226
  6,
3227
  7,
3228
  8,
3229
  9,
3230
  10,
3231
  11,
3232
  12,
3233
  13,
3234
  14,
3235
  15,
3236
  16,
3237
  17,
3238
  18,
3239
  19,
3240
  20,
3241
  21,
3242
  22,
3243
  23,
3244
  24,
3245
  25,
3246
  26,
3247
  27,
3248
  28,
3249
  29,
3250
  30,
3251
  31,
3252
  0,
3253
  1,
3254
  2,
3255
  3,
3256
  4,
3257
  5,
3258
  6,
3259
  7,
3260
  8,
3261
  9,
3262
  10,
3263
  11,
3264
  12,
3265
  13,
3266
  14,
3267
  15,
3268
  16,
3269
  17,
3270
  18,
3271
  19,
3272
  20,
3273
  21,
3274
  22,
3275
  23,
3276
  24,
3277
  25,
3278
  26,
3279
  27,
3280
  28,
3281
  29,
3282
  30,
3283
  31,
3284
  31,
3285
  30,
3286
  0,
3287
  1,
3288
  2,
3289
  3,
3290
  4,
3291
  5,
3292
  6,
3293
  7,
3294
  8,
3295
  9,
3296
  10,
3297
  11,
3298
  12,
3299
  13,
3300
  14,
3301
  15,
3302
  16,
3303
  17,
3304
  18,
3305
  19,
3306
  20,
3307
  21,
3308
  22,
3309
  23,
3310
  24,
3311
  25,
3312
  26,
3313
  27,
3314
  28,
3315
  29,
3316
  29,
3317
  30,
3318
  31,
3319
  28,
3320
  0,
3321
  1,
3322
  2,
3323
  3,
3324
  4,
3325
  5,
3326
  6,
3327
  7,
3328
  8,
3329
  9,
3330
  10,
3331
  11,
3332
  12,
3333
  13,
3334
  14,
3335
  15,
3336
  16,
3337
  17,
3338
  18,
3339
  19,
3340
  20,
3341
  21,
3342
  22,
3343
  23,
3344
  24,
3345
  25,
3346
  26,
3347
  27,
3348
};
3349
2.00k
static inline void InitAArch64MCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
3350
2.00k
  RI->InitMCRegisterInfo(AArch64RegDesc, 484, RA, PC, AArch64MCRegisterClasses, 54, AArch64RegUnitRoots, 66, AArch64RegDiffLists, AArch64LaneMaskLists, AArch64RegStrings, AArch64RegClassStrings, AArch64SubRegIdxLists, 59,
3351
2.00k
AArch64SubRegIdxRanges, AArch64RegEncodingTable);
3352
3353
2.00k
  switch (DwarfFlavour) {
3354
0
  default:
3355
0
    llvm_unreachable("Unknown DWARF flavour");
3356
2.00k
  case 0:
3357
2.00k
    RI->mapDwarfRegsToLLVMRegs(AArch64DwarfFlavour0Dwarf2L, AArch64DwarfFlavour0Dwarf2LSize, false);
3358
2.00k
    break;
3359
2.00k
  }
3360
2.00k
  switch (EHFlavour) {
3361
0
  default:
3362
0
    llvm_unreachable("Unknown DWARF flavour");
3363
2.00k
  case 0:
3364
2.00k
    RI->mapDwarfRegsToLLVMRegs(AArch64EHFlavour0Dwarf2L, AArch64EHFlavour0Dwarf2LSize, true);
3365
2.00k
    break;
3366
2.00k
  }
3367
2.00k
  switch (DwarfFlavour) {
3368
0
  default:
3369
0
    llvm_unreachable("Unknown DWARF flavour");
3370
2.00k
  case 0:
3371
2.00k
    RI->mapLLVMRegsToDwarfRegs(AArch64DwarfFlavour0L2Dwarf, AArch64DwarfFlavour0L2DwarfSize, false);
3372
2.00k
    break;
3373
2.00k
  }
3374
2.00k
  switch (EHFlavour) {
3375
0
  default:
3376
0
    llvm_unreachable("Unknown DWARF flavour");
3377
2.00k
  case 0:
3378
2.00k
    RI->mapLLVMRegsToDwarfRegs(AArch64EHFlavour0L2Dwarf, AArch64EHFlavour0L2DwarfSize, true);
3379
2.00k
    break;
3380
2.00k
  }
3381
2.00k
}
3382
3383
} // End llvm namespace
3384
#endif // GET_REGINFO_MC_DESC