Coverage Report

Created: 2024-01-17 10:31

/src/build/lib/Target/AArch64/AArch64GenSystemOperands.inc
Line
Count
Source (jump to first uncovered line)
1
#ifdef GET_AT_DECL
2
enum ATValues {
3
  S1E1R = 960,
4
  S1E2R = 9152,
5
  S1E3R = 13248,
6
  S1E1W = 961,
7
  S1E2W = 9153,
8
  S1E3W = 13249,
9
  S1E0R = 962,
10
  S1E0W = 963,
11
  S12E1R = 9156,
12
  S12E1W = 9157,
13
  S12E0R = 9158,
14
  S12E0W = 9159,
15
  S1E1RP = 968,
16
  S1E1WP = 969,
17
  S1E1A = 970,
18
  S1E2A = 9162,
19
  S1E3A = 13258,
20
};
21
#endif
22
23
#ifdef GET_BTI_DECL
24
enum BTIValues {
25
  c = 2,
26
  j = 4,
27
  jc = 6,
28
};
29
#endif
30
31
#ifdef GET_DB_DECL
32
enum DBValues {
33
  oshld = 1,
34
  oshst = 2,
35
  osh = 3,
36
  nshld = 5,
37
  nshst = 6,
38
  nsh = 7,
39
  ishld = 9,
40
  ishst = 10,
41
  ish = 11,
42
  ld = 13,
43
  st = 14,
44
  sy = 15,
45
};
46
#endif
47
48
#ifdef GET_DBNXS_DECL
49
enum DBnXSValues {
50
  oshnxs = 3,
51
  nshnxs = 7,
52
  ishnxs = 11,
53
  synxs = 15,
54
};
55
#endif
56
57
#ifdef GET_DC_DECL
58
enum DCValues {
59
  ZVA = 7073,
60
  IVAC = 945,
61
  ISW = 946,
62
  CVAC = 7121,
63
  CSW = 978,
64
  CVAU = 7129,
65
  CIVAC = 7153,
66
  CISW = 1010,
67
  CVAP = 7137,
68
  CVADP = 7145,
69
  IGVAC = 947,
70
  IGSW = 948,
71
  CGSW = 980,
72
  CIGSW = 1012,
73
  CGVAC = 7123,
74
  CGVAP = 7139,
75
  CGVADP = 7147,
76
  CIGVAC = 7155,
77
  GVA = 7075,
78
  IGDVAC = 949,
79
  IGDSW = 950,
80
  CGDSW = 982,
81
  CIGDSW = 1014,
82
  CGDVAC = 7125,
83
  CGDVAP = 7141,
84
  CGDVADP = 7149,
85
  CIGDVAC = 7157,
86
  GZVA = 7076,
87
  CIPAE = 9200,
88
  CIGDPAE = 9207,
89
};
90
#endif
91
92
#ifdef GET_EXACTFPIMM_DECL
93
enum ExactFPImmValues {
94
  zero = 0,
95
  half = 1,
96
  one = 2,
97
  two = 3,
98
};
99
#endif
100
101
#ifdef GET_IC_DECL
102
enum ICValues {
103
  IALLUIS = 904,
104
  IALLU = 936,
105
  IVAU = 7081,
106
};
107
#endif
108
109
#ifdef GET_ISB_DECL
110
enum ISBValues {
111
  sy = 15,
112
};
113
#endif
114
115
#ifdef GET_PRFM_DECL
116
enum PRFMValues {
117
  pldl1keep = 0,
118
  pldl1strm = 1,
119
  pldl2keep = 2,
120
  pldl2strm = 3,
121
  pldl3keep = 4,
122
  pldl3strm = 5,
123
  pldslckeep = 6,
124
  pldslcstrm = 7,
125
  plil1keep = 8,
126
  plil1strm = 9,
127
  plil2keep = 10,
128
  plil2strm = 11,
129
  plil3keep = 12,
130
  plil3strm = 13,
131
  plislckeep = 14,
132
  plislcstrm = 15,
133
  pstl1keep = 16,
134
  pstl1strm = 17,
135
  pstl2keep = 18,
136
  pstl2strm = 19,
137
  pstl3keep = 20,
138
  pstl3strm = 21,
139
  pstslckeep = 22,
140
  pstslcstrm = 23,
141
};
142
#endif
143
144
#ifdef GET_PSB_DECL
145
enum PSBValues {
146
  csync = 17,
147
};
148
#endif
149
150
#ifdef GET_PSTATEIMM0_1_DECL
151
enum PStateImm0_1Values {
152
  ALLINT = 8,
153
  PM = 72,
154
};
155
#endif
156
157
#ifdef GET_PSTATEIMM0_15_DECL
158
enum PStateImm0_15Values {
159
  SPSel = 5,
160
  DAIFSet = 30,
161
  DAIFClr = 31,
162
  PAN = 4,
163
  UAO = 3,
164
  DIT = 26,
165
  SSBS = 25,
166
  TCO = 28,
167
};
168
#endif
169
170
#ifdef GET_RPRFM_DECL
171
enum RPRFMValues {
172
  pldkeep = 0,
173
  pstkeep = 1,
174
  pldstrm = 4,
175
  pststrm = 5,
176
};
177
#endif
178
179
#ifdef GET_SVCR_DECL
180
enum SVCRValues {
181
  SVCRSM = 1,
182
  SVCRZA = 2,
183
  SVCRSMZA = 3,
184
};
185
#endif
186
187
#ifdef GET_SVEPREDPAT_DECL
188
enum SVEPREDPATValues {
189
  pow2 = 0,
190
  vl1 = 1,
191
  vl2 = 2,
192
  vl3 = 3,
193
  vl4 = 4,
194
  vl5 = 5,
195
  vl6 = 6,
196
  vl7 = 7,
197
  vl8 = 8,
198
  vl16 = 9,
199
  vl32 = 10,
200
  vl64 = 11,
201
  vl128 = 12,
202
  vl256 = 13,
203
  mul4 = 29,
204
  mul3 = 30,
205
  all = 31,
206
};
207
#endif
208
209
#ifdef GET_SVEPRFM_DECL
210
enum SVEPRFMValues {
211
  pldl1keep = 0,
212
  pldl1strm = 1,
213
  pldl2keep = 2,
214
  pldl2strm = 3,
215
  pldl3keep = 4,
216
  pldl3strm = 5,
217
  pstl1keep = 8,
218
  pstl1strm = 9,
219
  pstl2keep = 10,
220
  pstl2strm = 11,
221
  pstl3keep = 12,
222
  pstl3strm = 13,
223
};
224
#endif
225
226
#ifdef GET_SVEVECLENSPECIFIER_DECL
227
enum SVEVECLENSPECIFIERValues {
228
  vlx2 = 0,
229
  vlx4 = 1,
230
};
231
#endif
232
233
#ifdef GET_SYSREG_DECL
234
enum SysRegValues {
235
  MDCCSR_EL0 = 38920,
236
  DBGDTRRX_EL0 = 38952,
237
  MDRAR_EL1 = 32896,
238
  OSLSR_EL1 = 32908,
239
  DBGAUTHSTATUS_EL1 = 33782,
240
  PMCEID0_EL0 = 56550,
241
  PMCEID1_EL0 = 56551,
242
  PMMIR_EL1 = 50422,
243
  MIDR_EL1 = 49152,
244
  CCSIDR_EL1 = 51200,
245
  CCSIDR2_EL1 = 51202,
246
  CLIDR_EL1 = 51201,
247
  CTR_EL0 = 55297,
248
  MPIDR_EL1 = 49157,
249
  REVIDR_EL1 = 49158,
250
  AIDR_EL1 = 51207,
251
  DCZID_EL0 = 55303,
252
  ID_PFR0_EL1 = 49160,
253
  ID_PFR1_EL1 = 49161,
254
  ID_PFR2_EL1 = 49180,
255
  ID_DFR0_EL1 = 49162,
256
  ID_DFR1_EL1 = 49181,
257
  ID_AFR0_EL1 = 49163,
258
  ID_MMFR0_EL1 = 49164,
259
  ID_MMFR1_EL1 = 49165,
260
  ID_MMFR2_EL1 = 49166,
261
  ID_MMFR3_EL1 = 49167,
262
  ID_ISAR0_EL1 = 49168,
263
  ID_ISAR1_EL1 = 49169,
264
  ID_ISAR2_EL1 = 49170,
265
  ID_ISAR3_EL1 = 49171,
266
  ID_ISAR4_EL1 = 49172,
267
  ID_ISAR5_EL1 = 49173,
268
  ID_ISAR6_EL1 = 49175,
269
  ID_AA64PFR0_EL1 = 49184,
270
  ID_AA64PFR1_EL1 = 49185,
271
  ID_AA64PFR2_EL1 = 49186,
272
  ID_AA64DFR0_EL1 = 49192,
273
  ID_AA64DFR1_EL1 = 49193,
274
  ID_AA64DFR2_EL1 = 49194,
275
  ID_AA64AFR0_EL1 = 49196,
276
  ID_AA64AFR1_EL1 = 49197,
277
  ID_AA64ISAR0_EL1 = 49200,
278
  ID_AA64ISAR1_EL1 = 49201,
279
  ID_AA64ISAR2_EL1 = 49202,
280
  ID_AA64ISAR3_EL1 = 49203,
281
  ID_AA64MMFR0_EL1 = 49208,
282
  ID_AA64MMFR1_EL1 = 49209,
283
  ID_AA64MMFR2_EL1 = 49210,
284
  ID_AA64MMFR3_EL1 = 49211,
285
  ID_AA64MMFR4_EL1 = 49212,
286
  MVFR0_EL1 = 49176,
287
  MVFR1_EL1 = 49177,
288
  MVFR2_EL1 = 49178,
289
  RVBAR_EL1 = 50689,
290
  RVBAR_EL2 = 58881,
291
  RVBAR_EL3 = 62977,
292
  ISR_EL1 = 50696,
293
  CNTPCT_EL0 = 57089,
294
  CNTVCT_EL0 = 57090,
295
  ID_MMFR4_EL1 = 49174,
296
  ID_MMFR5_EL1 = 49182,
297
  TRCSTATR = 34840,
298
  TRCIDR8 = 34822,
299
  TRCIDR9 = 34830,
300
  TRCIDR10 = 34838,
301
  TRCIDR11 = 34846,
302
  TRCIDR12 = 34854,
303
  TRCIDR13 = 34862,
304
  TRCIDR0 = 34887,
305
  TRCIDR1 = 34895,
306
  TRCIDR2 = 34903,
307
  TRCIDR3 = 34911,
308
  TRCIDR4 = 34919,
309
  TRCIDR5 = 34927,
310
  TRCIDR6 = 34935,
311
  TRCIDR7 = 34943,
312
  TRCOSLSR = 34956,
313
  TRCPDSR = 34988,
314
  TRCDEVAFF0 = 35798,
315
  TRCDEVAFF1 = 35806,
316
  TRCLSR = 35822,
317
  TRCAUTHSTATUS = 35830,
318
  TRCDEVARCH = 35838,
319
  TRCDEVID = 35735,
320
  TRCDEVTYPE = 35743,
321
  TRCPIDR4 = 35751,
322
  TRCPIDR5 = 35759,
323
  TRCPIDR6 = 35767,
324
  TRCPIDR7 = 35775,
325
  TRCPIDR0 = 35783,
326
  TRCPIDR1 = 35791,
327
  TRCPIDR2 = 35799,
328
  TRCPIDR3 = 35807,
329
  TRCCIDR0 = 35815,
330
  TRCCIDR1 = 35823,
331
  TRCCIDR2 = 35831,
332
  TRCCIDR3 = 35839,
333
  ICC_IAR1_EL1 = 50784,
334
  ICC_IAR0_EL1 = 50752,
335
  ICC_HPPIR1_EL1 = 50786,
336
  ICC_HPPIR0_EL1 = 50754,
337
  ICC_RPR_EL1 = 50779,
338
  ICH_VTR_EL2 = 58969,
339
  ICH_EISR_EL2 = 58971,
340
  ICH_ELRSR_EL2 = 58973,
341
  ID_AA64ZFR0_EL1 = 49188,
342
  LORID_EL1 = 50471,
343
  ERRIDR_EL1 = 49816,
344
  ERXFR_EL1 = 49824,
345
  RNDR = 55584,
346
  RNDRRS = 55585,
347
  SCXTNUM_EL0 = 56967,
348
  SCXTNUM_EL1 = 50823,
349
  SCXTNUM_EL2 = 59015,
350
  SCXTNUM_EL3 = 63111,
351
  SCXTNUM_EL12 = 61063,
352
  GPCCR_EL3 = 61710,
353
  GPTBR_EL3 = 61708,
354
  MFAR_EL3 = 62213,
355
  MECIDR_EL2 = 58695,
356
  MECID_P0_EL2 = 58688,
357
  MECID_A0_EL2 = 58689,
358
  MECID_P1_EL2 = 58690,
359
  MECID_A1_EL2 = 58691,
360
  VMECID_P_EL2 = 58696,
361
  VMECID_A_EL2 = 58697,
362
  MECID_RL_A_EL3 = 62801,
363
  ID_AA64SMFR0_EL1 = 49189,
364
  DBGDTRTX_EL0 = 38952,
365
  OSLAR_EL1 = 32900,
366
  PMSWINC_EL0 = 56548,
367
  TRCOSLAR = 34948,
368
  TRCLAR = 35814,
369
  ICC_EOIR1_EL1 = 50785,
370
  ICC_EOIR0_EL1 = 50753,
371
  ICC_DIR_EL1 = 50777,
372
  ICC_SGI1R_EL1 = 50781,
373
  ICC_ASGI1R_EL1 = 50782,
374
  ICC_SGI0R_EL1 = 50783,
375
  OSDTRRX_EL1 = 32770,
376
  OSDTRTX_EL1 = 32794,
377
  TEECR32_EL1 = 36864,
378
  MDCCINT_EL1 = 32784,
379
  MDSCR_EL1 = 32786,
380
  DBGDTR_EL0 = 38944,
381
  OSECCR_EL1 = 32818,
382
  DBGVCR32_EL2 = 41016,
383
  DBGBVR0_EL1 = 32772,
384
  DBGBCR0_EL1 = 32773,
385
  DBGWVR0_EL1 = 32774,
386
  DBGWCR0_EL1 = 32775,
387
  DBGBVR1_EL1 = 32780,
388
  DBGBCR1_EL1 = 32781,
389
  DBGWVR1_EL1 = 32782,
390
  DBGWCR1_EL1 = 32783,
391
  DBGBVR2_EL1 = 32788,
392
  DBGBCR2_EL1 = 32789,
393
  DBGWVR2_EL1 = 32790,
394
  DBGWCR2_EL1 = 32791,
395
  DBGBVR3_EL1 = 32796,
396
  DBGBCR3_EL1 = 32797,
397
  DBGWVR3_EL1 = 32798,
398
  DBGWCR3_EL1 = 32799,
399
  DBGBVR4_EL1 = 32804,
400
  DBGBCR4_EL1 = 32805,
401
  DBGWVR4_EL1 = 32806,
402
  DBGWCR4_EL1 = 32807,
403
  DBGBVR5_EL1 = 32812,
404
  DBGBCR5_EL1 = 32813,
405
  DBGWVR5_EL1 = 32814,
406
  DBGWCR5_EL1 = 32815,
407
  DBGBVR6_EL1 = 32820,
408
  DBGBCR6_EL1 = 32821,
409
  DBGWVR6_EL1 = 32822,
410
  DBGWCR6_EL1 = 32823,
411
  DBGBVR7_EL1 = 32828,
412
  DBGBCR7_EL1 = 32829,
413
  DBGWVR7_EL1 = 32830,
414
  DBGWCR7_EL1 = 32831,
415
  DBGBVR8_EL1 = 32836,
416
  DBGBCR8_EL1 = 32837,
417
  DBGWVR8_EL1 = 32838,
418
  DBGWCR8_EL1 = 32839,
419
  DBGBVR9_EL1 = 32844,
420
  DBGBCR9_EL1 = 32845,
421
  DBGWVR9_EL1 = 32846,
422
  DBGWCR9_EL1 = 32847,
423
  DBGBVR10_EL1 = 32852,
424
  DBGBCR10_EL1 = 32853,
425
  DBGWVR10_EL1 = 32854,
426
  DBGWCR10_EL1 = 32855,
427
  DBGBVR11_EL1 = 32860,
428
  DBGBCR11_EL1 = 32861,
429
  DBGWVR11_EL1 = 32862,
430
  DBGWCR11_EL1 = 32863,
431
  DBGBVR12_EL1 = 32868,
432
  DBGBCR12_EL1 = 32869,
433
  DBGWVR12_EL1 = 32870,
434
  DBGWCR12_EL1 = 32871,
435
  DBGBVR13_EL1 = 32876,
436
  DBGBCR13_EL1 = 32877,
437
  DBGWVR13_EL1 = 32878,
438
  DBGWCR13_EL1 = 32879,
439
  DBGBVR14_EL1 = 32884,
440
  DBGBCR14_EL1 = 32885,
441
  DBGWVR14_EL1 = 32886,
442
  DBGWCR14_EL1 = 32887,
443
  DBGBVR15_EL1 = 32892,
444
  DBGBCR15_EL1 = 32893,
445
  DBGWVR15_EL1 = 32894,
446
  DBGWCR15_EL1 = 32895,
447
  TEEHBR32_EL1 = 36992,
448
  OSDLR_EL1 = 32924,
449
  DBGPRCR_EL1 = 32932,
450
  DBGCLAIMSET_EL1 = 33734,
451
  DBGCLAIMCLR_EL1 = 33742,
452
  CSSELR_EL1 = 53248,
453
  VPIDR_EL2 = 57344,
454
  VMPIDR_EL2 = 57349,
455
  CPACR_EL1 = 49282,
456
  SCTLR_EL1 = 49280,
457
  SCTLR_EL2 = 57472,
458
  SCTLR_EL3 = 61568,
459
  ACTLR_EL1 = 49281,
460
  ACTLR_EL2 = 57473,
461
  ACTLR_EL3 = 61569,
462
  HCR_EL2 = 57480,
463
  HCRX_EL2 = 57490,
464
  SCR_EL3 = 61576,
465
  MDCR_EL2 = 57481,
466
  SDER32_EL3 = 61577,
467
  CPTR_EL2 = 57482,
468
  CPTR_EL3 = 61578,
469
  HSTR_EL2 = 57483,
470
  HACR_EL2 = 57487,
471
  MDCR_EL3 = 61593,
472
  TTBR0_EL1 = 49408,
473
  TTBR0_EL3 = 61696,
474
  TTBR0_EL2 = 57600,
475
  VTTBR_EL2 = 57608,
476
  TTBR1_EL1 = 49409,
477
  TCR_EL1 = 49410,
478
  TCR_EL2 = 57602,
479
  TCR_EL3 = 61698,
480
  VTCR_EL2 = 57610,
481
  DACR32_EL2 = 57728,
482
  SPSR_EL1 = 49664,
483
  SPSR_EL2 = 57856,
484
  SPSR_EL3 = 61952,
485
  ELR_EL1 = 49665,
486
  ELR_EL2 = 57857,
487
  ELR_EL3 = 61953,
488
  SP_EL0 = 49672,
489
  SP_EL1 = 57864,
490
  SP_EL2 = 61960,
491
  SPSel = 49680,
492
  NZCV = 55824,
493
  DAIF = 55825,
494
  CurrentEL = 49682,
495
  SPSR_irq = 57880,
496
  SPSR_abt = 57881,
497
  SPSR_und = 57882,
498
  SPSR_fiq = 57883,
499
  FPCR = 55840,
500
  FPSR = 55841,
501
  DSPSR_EL0 = 55848,
502
  DLR_EL0 = 55849,
503
  IFSR32_EL2 = 57985,
504
  AFSR0_EL1 = 49800,
505
  AFSR0_EL2 = 57992,
506
  AFSR0_EL3 = 62088,
507
  AFSR1_EL1 = 49801,
508
  AFSR1_EL2 = 57993,
509
  AFSR1_EL3 = 62089,
510
  ESR_EL1 = 49808,
511
  ESR_EL2 = 58000,
512
  ESR_EL3 = 62096,
513
  FPEXC32_EL2 = 58008,
514
  FAR_EL1 = 49920,
515
  FAR_EL2 = 58112,
516
  FAR_EL3 = 62208,
517
  HPFAR_EL2 = 58116,
518
  PAR_EL1 = 50080,
519
  PMCR_EL0 = 56544,
520
  PMCNTENSET_EL0 = 56545,
521
  PMCNTENCLR_EL0 = 56546,
522
  PMOVSCLR_EL0 = 56547,
523
  PMSELR_EL0 = 56549,
524
  PMCCNTR_EL0 = 56552,
525
  PMXEVTYPER_EL0 = 56553,
526
  PMXEVCNTR_EL0 = 56554,
527
  PMUSERENR_EL0 = 56560,
528
  PMINTENSET_EL1 = 50417,
529
  PMINTENCLR_EL1 = 50418,
530
  PMOVSSET_EL0 = 56563,
531
  MAIR_EL1 = 50448,
532
  MAIR_EL2 = 58640,
533
  MAIR_EL3 = 62736,
534
  AMAIR_EL1 = 50456,
535
  AMAIR_EL2 = 58648,
536
  AMAIR_EL3 = 62744,
537
  VBAR_EL1 = 50688,
538
  VBAR_EL2 = 58880,
539
  VBAR_EL3 = 62976,
540
  RMR_EL1 = 50690,
541
  RMR_EL2 = 58882,
542
  RMR_EL3 = 62978,
543
  CONTEXTIDR_EL1 = 50817,
544
  TPIDR_EL0 = 56962,
545
  TPIDR_EL2 = 59010,
546
  TPIDR_EL3 = 63106,
547
  TPIDRRO_EL0 = 56963,
548
  TPIDR_EL1 = 50820,
549
  CNTFRQ_EL0 = 57088,
550
  CNTVOFF_EL2 = 59139,
551
  CNTKCTL_EL1 = 50952,
552
  CNTHCTL_EL2 = 59144,
553
  CNTP_TVAL_EL0 = 57104,
554
  CNTHP_TVAL_EL2 = 59152,
555
  CNTPS_TVAL_EL1 = 65296,
556
  CNTP_CTL_EL0 = 57105,
557
  CNTHP_CTL_EL2 = 59153,
558
  CNTPS_CTL_EL1 = 65297,
559
  CNTP_CVAL_EL0 = 57106,
560
  CNTHP_CVAL_EL2 = 59154,
561
  CNTPS_CVAL_EL1 = 65298,
562
  CNTV_TVAL_EL0 = 57112,
563
  CNTV_CTL_EL0 = 57113,
564
  CNTV_CVAL_EL0 = 57114,
565
  PMEVCNTR0_EL0 = 57152,
566
  PMEVCNTR1_EL0 = 57153,
567
  PMEVCNTR2_EL0 = 57154,
568
  PMEVCNTR3_EL0 = 57155,
569
  PMEVCNTR4_EL0 = 57156,
570
  PMEVCNTR5_EL0 = 57157,
571
  PMEVCNTR6_EL0 = 57158,
572
  PMEVCNTR7_EL0 = 57159,
573
  PMEVCNTR8_EL0 = 57160,
574
  PMEVCNTR9_EL0 = 57161,
575
  PMEVCNTR10_EL0 = 57162,
576
  PMEVCNTR11_EL0 = 57163,
577
  PMEVCNTR12_EL0 = 57164,
578
  PMEVCNTR13_EL0 = 57165,
579
  PMEVCNTR14_EL0 = 57166,
580
  PMEVCNTR15_EL0 = 57167,
581
  PMEVCNTR16_EL0 = 57168,
582
  PMEVCNTR17_EL0 = 57169,
583
  PMEVCNTR18_EL0 = 57170,
584
  PMEVCNTR19_EL0 = 57171,
585
  PMEVCNTR20_EL0 = 57172,
586
  PMEVCNTR21_EL0 = 57173,
587
  PMEVCNTR22_EL0 = 57174,
588
  PMEVCNTR23_EL0 = 57175,
589
  PMEVCNTR24_EL0 = 57176,
590
  PMEVCNTR25_EL0 = 57177,
591
  PMEVCNTR26_EL0 = 57178,
592
  PMEVCNTR27_EL0 = 57179,
593
  PMEVCNTR28_EL0 = 57180,
594
  PMEVCNTR29_EL0 = 57181,
595
  PMEVCNTR30_EL0 = 57182,
596
  PMCCFILTR_EL0 = 57215,
597
  PMEVTYPER0_EL0 = 57184,
598
  PMEVTYPER1_EL0 = 57185,
599
  PMEVTYPER2_EL0 = 57186,
600
  PMEVTYPER3_EL0 = 57187,
601
  PMEVTYPER4_EL0 = 57188,
602
  PMEVTYPER5_EL0 = 57189,
603
  PMEVTYPER6_EL0 = 57190,
604
  PMEVTYPER7_EL0 = 57191,
605
  PMEVTYPER8_EL0 = 57192,
606
  PMEVTYPER9_EL0 = 57193,
607
  PMEVTYPER10_EL0 = 57194,
608
  PMEVTYPER11_EL0 = 57195,
609
  PMEVTYPER12_EL0 = 57196,
610
  PMEVTYPER13_EL0 = 57197,
611
  PMEVTYPER14_EL0 = 57198,
612
  PMEVTYPER15_EL0 = 57199,
613
  PMEVTYPER16_EL0 = 57200,
614
  PMEVTYPER17_EL0 = 57201,
615
  PMEVTYPER18_EL0 = 57202,
616
  PMEVTYPER19_EL0 = 57203,
617
  PMEVTYPER20_EL0 = 57204,
618
  PMEVTYPER21_EL0 = 57205,
619
  PMEVTYPER22_EL0 = 57206,
620
  PMEVTYPER23_EL0 = 57207,
621
  PMEVTYPER24_EL0 = 57208,
622
  PMEVTYPER25_EL0 = 57209,
623
  PMEVTYPER26_EL0 = 57210,
624
  PMEVTYPER27_EL0 = 57211,
625
  PMEVTYPER28_EL0 = 57212,
626
  PMEVTYPER29_EL0 = 57213,
627
  PMEVTYPER30_EL0 = 57214,
628
  TRCPRGCTLR = 34824,
629
  TRCPROCSELR = 34832,
630
  TRCCONFIGR = 34848,
631
  TRCAUXCTLR = 34864,
632
  TRCEVENTCTL0R = 34880,
633
  TRCEVENTCTL1R = 34888,
634
  TRCSTALLCTLR = 34904,
635
  TRCTSCTLR = 34912,
636
  TRCSYNCPR = 34920,
637
  TRCCCCTLR = 34928,
638
  TRCBBCTLR = 34936,
639
  TRCTRACEIDR = 34817,
640
  TRCQCTLR = 34825,
641
  TRCVICTLR = 34818,
642
  TRCVIIECTLR = 34826,
643
  TRCVISSCTLR = 34834,
644
  TRCVIPCSSCTLR = 34842,
645
  TRCVDCTLR = 34882,
646
  TRCVDSACCTLR = 34890,
647
  TRCVDARCCTLR = 34898,
648
  TRCSEQEVR0 = 34820,
649
  TRCSEQEVR1 = 34828,
650
  TRCSEQEVR2 = 34836,
651
  TRCSEQRSTEVR = 34868,
652
  TRCSEQSTR = 34876,
653
  TRCEXTINSELR = 34884,
654
  TRCCNTRLDVR0 = 34821,
655
  TRCCNTRLDVR1 = 34829,
656
  TRCCNTRLDVR2 = 34837,
657
  TRCCNTRLDVR3 = 34845,
658
  TRCCNTCTLR0 = 34853,
659
  TRCCNTCTLR1 = 34861,
660
  TRCCNTCTLR2 = 34869,
661
  TRCCNTCTLR3 = 34877,
662
  TRCCNTVR0 = 34885,
663
  TRCCNTVR1 = 34893,
664
  TRCCNTVR2 = 34901,
665
  TRCCNTVR3 = 34909,
666
  TRCIMSPEC0 = 34823,
667
  TRCIMSPEC1 = 34831,
668
  TRCIMSPEC2 = 34839,
669
  TRCIMSPEC3 = 34847,
670
  TRCIMSPEC4 = 34855,
671
  TRCIMSPEC5 = 34863,
672
  TRCIMSPEC6 = 34871,
673
  TRCIMSPEC7 = 34879,
674
  TRCRSCTLR2 = 34960,
675
  TRCRSCTLR3 = 34968,
676
  TRCRSCTLR4 = 34976,
677
  TRCRSCTLR5 = 34984,
678
  TRCRSCTLR6 = 34992,
679
  TRCRSCTLR7 = 35000,
680
  TRCRSCTLR8 = 35008,
681
  TRCRSCTLR9 = 35016,
682
  TRCRSCTLR10 = 35024,
683
  TRCRSCTLR11 = 35032,
684
  TRCRSCTLR12 = 35040,
685
  TRCRSCTLR13 = 35048,
686
  TRCRSCTLR14 = 35056,
687
  TRCRSCTLR15 = 35064,
688
  TRCRSCTLR16 = 34945,
689
  TRCRSCTLR17 = 34953,
690
  TRCRSCTLR18 = 34961,
691
  TRCRSCTLR19 = 34969,
692
  TRCRSCTLR20 = 34977,
693
  TRCRSCTLR21 = 34985,
694
  TRCRSCTLR22 = 34993,
695
  TRCRSCTLR23 = 35001,
696
  TRCRSCTLR24 = 35009,
697
  TRCRSCTLR25 = 35017,
698
  TRCRSCTLR26 = 35025,
699
  TRCRSCTLR27 = 35033,
700
  TRCRSCTLR28 = 35041,
701
  TRCRSCTLR29 = 35049,
702
  TRCRSCTLR30 = 35057,
703
  TRCRSCTLR31 = 35065,
704
  TRCSSCCR0 = 34946,
705
  TRCSSCCR1 = 34954,
706
  TRCSSCCR2 = 34962,
707
  TRCSSCCR3 = 34970,
708
  TRCSSCCR4 = 34978,
709
  TRCSSCCR5 = 34986,
710
  TRCSSCCR6 = 34994,
711
  TRCSSCCR7 = 35002,
712
  TRCSSCSR0 = 35010,
713
  TRCSSCSR1 = 35018,
714
  TRCSSCSR2 = 35026,
715
  TRCSSCSR3 = 35034,
716
  TRCSSCSR4 = 35042,
717
  TRCSSCSR5 = 35050,
718
  TRCSSCSR6 = 35058,
719
  TRCSSCSR7 = 35066,
720
  TRCSSPCICR0 = 34947,
721
  TRCSSPCICR1 = 34955,
722
  TRCSSPCICR2 = 34963,
723
  TRCSSPCICR3 = 34971,
724
  TRCSSPCICR4 = 34979,
725
  TRCSSPCICR5 = 34987,
726
  TRCSSPCICR6 = 34995,
727
  TRCSSPCICR7 = 35003,
728
  TRCPDCR = 34980,
729
  TRCACVR0 = 35072,
730
  TRCACVR1 = 35088,
731
  TRCACVR2 = 35104,
732
  TRCACVR3 = 35120,
733
  TRCACVR4 = 35136,
734
  TRCACVR5 = 35152,
735
  TRCACVR6 = 35168,
736
  TRCACVR7 = 35184,
737
  TRCACVR8 = 35073,
738
  TRCACVR9 = 35089,
739
  TRCACVR10 = 35105,
740
  TRCACVR11 = 35121,
741
  TRCACVR12 = 35137,
742
  TRCACVR13 = 35153,
743
  TRCACVR14 = 35169,
744
  TRCACVR15 = 35185,
745
  TRCACATR0 = 35074,
746
  TRCACATR1 = 35090,
747
  TRCACATR2 = 35106,
748
  TRCACATR3 = 35122,
749
  TRCACATR4 = 35138,
750
  TRCACATR5 = 35154,
751
  TRCACATR6 = 35170,
752
  TRCACATR7 = 35186,
753
  TRCACATR8 = 35075,
754
  TRCACATR9 = 35091,
755
  TRCACATR10 = 35107,
756
  TRCACATR11 = 35123,
757
  TRCACATR12 = 35139,
758
  TRCACATR13 = 35155,
759
  TRCACATR14 = 35171,
760
  TRCACATR15 = 35187,
761
  TRCDVCVR0 = 35076,
762
  TRCDVCVR1 = 35108,
763
  TRCDVCVR2 = 35140,
764
  TRCDVCVR3 = 35172,
765
  TRCDVCVR4 = 35077,
766
  TRCDVCVR5 = 35109,
767
  TRCDVCVR6 = 35141,
768
  TRCDVCVR7 = 35173,
769
  TRCDVCMR0 = 35078,
770
  TRCDVCMR1 = 35110,
771
  TRCDVCMR2 = 35142,
772
  TRCDVCMR3 = 35174,
773
  TRCDVCMR4 = 35079,
774
  TRCDVCMR5 = 35111,
775
  TRCDVCMR6 = 35143,
776
  TRCDVCMR7 = 35175,
777
  TRCCIDCVR0 = 35200,
778
  TRCCIDCVR1 = 35216,
779
  TRCCIDCVR2 = 35232,
780
  TRCCIDCVR3 = 35248,
781
  TRCCIDCVR4 = 35264,
782
  TRCCIDCVR5 = 35280,
783
  TRCCIDCVR6 = 35296,
784
  TRCCIDCVR7 = 35312,
785
  TRCVMIDCVR0 = 35201,
786
  TRCVMIDCVR1 = 35217,
787
  TRCVMIDCVR2 = 35233,
788
  TRCVMIDCVR3 = 35249,
789
  TRCVMIDCVR4 = 35265,
790
  TRCVMIDCVR5 = 35281,
791
  TRCVMIDCVR6 = 35297,
792
  TRCVMIDCVR7 = 35313,
793
  TRCCIDCCTLR0 = 35202,
794
  TRCCIDCCTLR1 = 35210,
795
  TRCVMIDCCTLR0 = 35218,
796
  TRCVMIDCCTLR1 = 35226,
797
  TRCITCTRL = 35716,
798
  TRCCLAIMSET = 35782,
799
  TRCCLAIMCLR = 35790,
800
  ICC_BPR1_EL1 = 50787,
801
  ICC_BPR0_EL1 = 50755,
802
  ICC_PMR_EL1 = 49712,
803
  ICC_CTLR_EL1 = 50788,
804
  ICC_CTLR_EL3 = 63076,
805
  ICC_SRE_EL1 = 50789,
806
  ICC_SRE_EL2 = 58957,
807
  ICC_SRE_EL3 = 63077,
808
  ICC_IGRPEN0_EL1 = 50790,
809
  ICC_IGRPEN1_EL1 = 50791,
810
  ICC_IGRPEN1_EL3 = 63079,
811
  ICC_AP0R0_EL1 = 50756,
812
  ICC_AP0R1_EL1 = 50757,
813
  ICC_AP0R2_EL1 = 50758,
814
  ICC_AP0R3_EL1 = 50759,
815
  ICC_AP1R0_EL1 = 50760,
816
  ICC_AP1R1_EL1 = 50761,
817
  ICC_AP1R2_EL1 = 50762,
818
  ICC_AP1R3_EL1 = 50763,
819
  ICH_AP0R0_EL2 = 58944,
820
  ICH_AP0R1_EL2 = 58945,
821
  ICH_AP0R2_EL2 = 58946,
822
  ICH_AP0R3_EL2 = 58947,
823
  ICH_AP1R0_EL2 = 58952,
824
  ICH_AP1R1_EL2 = 58953,
825
  ICH_AP1R2_EL2 = 58954,
826
  ICH_AP1R3_EL2 = 58955,
827
  ICH_HCR_EL2 = 58968,
828
  ICH_MISR_EL2 = 58970,
829
  ICH_VMCR_EL2 = 58975,
830
  ICH_LR0_EL2 = 58976,
831
  ICH_LR1_EL2 = 58977,
832
  ICH_LR2_EL2 = 58978,
833
  ICH_LR3_EL2 = 58979,
834
  ICH_LR4_EL2 = 58980,
835
  ICH_LR5_EL2 = 58981,
836
  ICH_LR6_EL2 = 58982,
837
  ICH_LR7_EL2 = 58983,
838
  ICH_LR8_EL2 = 58984,
839
  ICH_LR9_EL2 = 58985,
840
  ICH_LR10_EL2 = 58986,
841
  ICH_LR11_EL2 = 58987,
842
  ICH_LR12_EL2 = 58988,
843
  ICH_LR13_EL2 = 58989,
844
  ICH_LR14_EL2 = 58990,
845
  ICH_LR15_EL2 = 58991,
846
  VSCTLR_EL2 = 57600,
847
  MPUIR_EL1 = 49156,
848
  MPUIR_EL2 = 57348,
849
  PRENR_EL1 = 49929,
850
  PRENR_EL2 = 58121,
851
  PRSELR_EL1 = 49937,
852
  PRSELR_EL2 = 58129,
853
  PRBAR_EL1 = 49984,
854
  PRBAR_EL2 = 58176,
855
  PRLAR_EL1 = 49985,
856
  PRLAR_EL2 = 58177,
857
  PRBAR1_EL1 = 49988,
858
  PRLAR1_EL1 = 49989,
859
  PRBAR1_EL2 = 58180,
860
  PRLAR1_EL2 = 58181,
861
  PRBAR2_EL1 = 49992,
862
  PRLAR2_EL1 = 49993,
863
  PRBAR2_EL2 = 58184,
864
  PRLAR2_EL2 = 58185,
865
  PRBAR3_EL1 = 49996,
866
  PRLAR3_EL1 = 49997,
867
  PRBAR3_EL2 = 58188,
868
  PRLAR3_EL2 = 58189,
869
  PRBAR4_EL1 = 50000,
870
  PRLAR4_EL1 = 50001,
871
  PRBAR4_EL2 = 58192,
872
  PRLAR4_EL2 = 58193,
873
  PRBAR5_EL1 = 50004,
874
  PRLAR5_EL1 = 50005,
875
  PRBAR5_EL2 = 58196,
876
  PRLAR5_EL2 = 58197,
877
  PRBAR6_EL1 = 50008,
878
  PRLAR6_EL1 = 50009,
879
  PRBAR6_EL2 = 58200,
880
  PRLAR6_EL2 = 58201,
881
  PRBAR7_EL1 = 50012,
882
  PRLAR7_EL1 = 50013,
883
  PRBAR7_EL2 = 58204,
884
  PRLAR7_EL2 = 58205,
885
  PRBAR8_EL1 = 50016,
886
  PRLAR8_EL1 = 50017,
887
  PRBAR8_EL2 = 58208,
888
  PRLAR8_EL2 = 58209,
889
  PRBAR9_EL1 = 50020,
890
  PRLAR9_EL1 = 50021,
891
  PRBAR9_EL2 = 58212,
892
  PRLAR9_EL2 = 58213,
893
  PRBAR10_EL1 = 50024,
894
  PRLAR10_EL1 = 50025,
895
  PRBAR10_EL2 = 58216,
896
  PRLAR10_EL2 = 58217,
897
  PRBAR11_EL1 = 50028,
898
  PRLAR11_EL1 = 50029,
899
  PRBAR11_EL2 = 58220,
900
  PRLAR11_EL2 = 58221,
901
  PRBAR12_EL1 = 50032,
902
  PRLAR12_EL1 = 50033,
903
  PRBAR12_EL2 = 58224,
904
  PRLAR12_EL2 = 58225,
905
  PRBAR13_EL1 = 50036,
906
  PRLAR13_EL1 = 50037,
907
  PRBAR13_EL2 = 58228,
908
  PRLAR13_EL2 = 58229,
909
  PRBAR14_EL1 = 50040,
910
  PRLAR14_EL1 = 50041,
911
  PRBAR14_EL2 = 58232,
912
  PRLAR14_EL2 = 58233,
913
  PRBAR15_EL1 = 50044,
914
  PRLAR15_EL1 = 50045,
915
  PRBAR15_EL2 = 58236,
916
  PRLAR15_EL2 = 58237,
917
  PAN = 49683,
918
  LORSA_EL1 = 50464,
919
  LOREA_EL1 = 50465,
920
  LORN_EL1 = 50466,
921
  LORC_EL1 = 50467,
922
  TTBR1_EL2 = 57601,
923
  CNTHV_TVAL_EL2 = 59160,
924
  CNTHV_CVAL_EL2 = 59162,
925
  CNTHV_CTL_EL2 = 59161,
926
  SCTLR_EL12 = 59520,
927
  CPACR_EL12 = 59522,
928
  TTBR0_EL12 = 59648,
929
  TTBR1_EL12 = 59649,
930
  TCR_EL12 = 59650,
931
  AFSR0_EL12 = 60040,
932
  AFSR1_EL12 = 60041,
933
  ESR_EL12 = 60048,
934
  FAR_EL12 = 60160,
935
  MAIR_EL12 = 60688,
936
  AMAIR_EL12 = 60696,
937
  VBAR_EL12 = 60928,
938
  CONTEXTIDR_EL12 = 61057,
939
  CNTKCTL_EL12 = 61192,
940
  CNTP_TVAL_EL02 = 61200,
941
  CNTP_CTL_EL02 = 61201,
942
  CNTP_CVAL_EL02 = 61202,
943
  CNTV_TVAL_EL02 = 61208,
944
  CNTV_CTL_EL02 = 61209,
945
  CNTV_CVAL_EL02 = 61210,
946
  SPSR_EL12 = 59904,
947
  ELR_EL12 = 59905,
948
  CONTEXTIDR_EL2 = 59009,
949
  UAO = 49684,
950
  PMBLIMITR_EL1 = 50384,
951
  PMBPTR_EL1 = 50385,
952
  PMBSR_EL1 = 50387,
953
  PMBIDR_EL1 = 50391,
954
  PMSCR_EL2 = 58568,
955
  PMSCR_EL12 = 60616,
956
  PMSCR_EL1 = 50376,
957
  PMSICR_EL1 = 50378,
958
  PMSIRR_EL1 = 50379,
959
  PMSFCR_EL1 = 50380,
960
  PMSEVFR_EL1 = 50381,
961
  PMSLATFR_EL1 = 50382,
962
  PMSIDR_EL1 = 50383,
963
  ERRSELR_EL1 = 49817,
964
  ERXCTLR_EL1 = 49825,
965
  ERXSTATUS_EL1 = 49826,
966
  ERXADDR_EL1 = 49827,
967
  ERXMISC0_EL1 = 49832,
968
  ERXMISC1_EL1 = 49833,
969
  DISR_EL1 = 50697,
970
  VDISR_EL2 = 58889,
971
  VSESR_EL2 = 58003,
972
  APIAKeyLo_EL1 = 49416,
973
  APIAKeyHi_EL1 = 49417,
974
  APIBKeyLo_EL1 = 49418,
975
  APIBKeyHi_EL1 = 49419,
976
  APDAKeyLo_EL1 = 49424,
977
  APDAKeyHi_EL1 = 49425,
978
  APDBKeyLo_EL1 = 49426,
979
  APDBKeyHi_EL1 = 49427,
980
  APGAKeyLo_EL1 = 49432,
981
  APGAKeyHi_EL1 = 49433,
982
  VSTCR_EL2 = 57650,
983
  VSTTBR_EL2 = 57648,
984
  CNTHVS_TVAL_EL2 = 59168,
985
  CNTHVS_CVAL_EL2 = 59170,
986
  CNTHVS_CTL_EL2 = 59169,
987
  CNTHPS_TVAL_EL2 = 59176,
988
  CNTHPS_CVAL_EL2 = 59178,
989
  CNTHPS_CTL_EL2 = 59177,
990
  SDER32_EL2 = 57497,
991
  ERXPFGCTL_EL1 = 49829,
992
  ERXPFGCDN_EL1 = 49830,
993
  ERXMISC2_EL1 = 49834,
994
  ERXMISC3_EL1 = 49835,
995
  ERXPFGF_EL1 = 49828,
996
  MPAM0_EL1 = 50473,
997
  MPAM1_EL1 = 50472,
998
  MPAM2_EL2 = 58664,
999
  MPAM3_EL3 = 62760,
1000
  MPAM1_EL12 = 60712,
1001
  MPAMHCR_EL2 = 58656,
1002
  MPAMVPMV_EL2 = 58657,
1003
  MPAMVPM0_EL2 = 58672,
1004
  MPAMVPM1_EL2 = 58673,
1005
  MPAMVPM2_EL2 = 58674,
1006
  MPAMVPM3_EL2 = 58675,
1007
  MPAMVPM4_EL2 = 58676,
1008
  MPAMVPM5_EL2 = 58677,
1009
  MPAMVPM6_EL2 = 58678,
1010
  MPAMVPM7_EL2 = 58679,
1011
  MPAMIDR_EL1 = 50468,
1012
  AMCR_EL0 = 56976,
1013
  AMCFGR_EL0 = 56977,
1014
  AMCGCR_EL0 = 56978,
1015
  AMUSERENR_EL0 = 56979,
1016
  AMCNTENCLR0_EL0 = 56980,
1017
  AMCNTENSET0_EL0 = 56981,
1018
  AMEVCNTR00_EL0 = 56992,
1019
  AMEVCNTR01_EL0 = 56993,
1020
  AMEVCNTR02_EL0 = 56994,
1021
  AMEVCNTR03_EL0 = 56995,
1022
  AMEVTYPER00_EL0 = 57008,
1023
  AMEVTYPER01_EL0 = 57009,
1024
  AMEVTYPER02_EL0 = 57010,
1025
  AMEVTYPER03_EL0 = 57011,
1026
  AMCNTENCLR1_EL0 = 56984,
1027
  AMCNTENSET1_EL0 = 56985,
1028
  AMEVCNTR10_EL0 = 57056,
1029
  AMEVCNTR11_EL0 = 57057,
1030
  AMEVCNTR12_EL0 = 57058,
1031
  AMEVCNTR13_EL0 = 57059,
1032
  AMEVCNTR14_EL0 = 57060,
1033
  AMEVCNTR15_EL0 = 57061,
1034
  AMEVCNTR16_EL0 = 57062,
1035
  AMEVCNTR17_EL0 = 57063,
1036
  AMEVCNTR18_EL0 = 57064,
1037
  AMEVCNTR19_EL0 = 57065,
1038
  AMEVCNTR110_EL0 = 57066,
1039
  AMEVCNTR111_EL0 = 57067,
1040
  AMEVCNTR112_EL0 = 57068,
1041
  AMEVCNTR113_EL0 = 57069,
1042
  AMEVCNTR114_EL0 = 57070,
1043
  AMEVCNTR115_EL0 = 57071,
1044
  AMEVTYPER10_EL0 = 57072,
1045
  AMEVTYPER11_EL0 = 57073,
1046
  AMEVTYPER12_EL0 = 57074,
1047
  AMEVTYPER13_EL0 = 57075,
1048
  AMEVTYPER14_EL0 = 57076,
1049
  AMEVTYPER15_EL0 = 57077,
1050
  AMEVTYPER16_EL0 = 57078,
1051
  AMEVTYPER17_EL0 = 57079,
1052
  AMEVTYPER18_EL0 = 57080,
1053
  AMEVTYPER19_EL0 = 57081,
1054
  AMEVTYPER110_EL0 = 57082,
1055
  AMEVTYPER111_EL0 = 57083,
1056
  AMEVTYPER112_EL0 = 57084,
1057
  AMEVTYPER113_EL0 = 57085,
1058
  AMEVTYPER114_EL0 = 57086,
1059
  AMEVTYPER115_EL0 = 57087,
1060
  TRFCR_EL1 = 49297,
1061
  TRFCR_EL2 = 57489,
1062
  TRFCR_EL12 = 59537,
1063
  DIT = 55829,
1064
  VNCR_EL2 = 57616,
1065
  ZCR_EL1 = 49296,
1066
  ZCR_EL2 = 57488,
1067
  ZCR_EL3 = 61584,
1068
  ZCR_EL12 = 59536,
1069
  SSBS = 55830,
1070
  TCO = 55831,
1071
  GCR_EL1 = 49286,
1072
  RGSR_EL1 = 49285,
1073
  TFSR_EL1 = 49840,
1074
  TFSR_EL2 = 58032,
1075
  TFSR_EL3 = 62128,
1076
  TFSR_EL12 = 60080,
1077
  TFSRE0_EL1 = 49841,
1078
  GMID_EL1 = 51204,
1079
  TRCRSR = 34896,
1080
  TRCEXTINSELR0 = 34884,
1081
  TRCEXTINSELR1 = 34892,
1082
  TRCEXTINSELR2 = 34900,
1083
  TRCEXTINSELR3 = 34908,
1084
  TRBLIMITR_EL1 = 50392,
1085
  TRBPTR_EL1 = 50393,
1086
  TRBBASER_EL1 = 50394,
1087
  TRBSR_EL1 = 50395,
1088
  TRBMAR_EL1 = 50396,
1089
  TRBTRG_EL1 = 50398,
1090
  TRBIDR_EL1 = 50399,
1091
  AMCG1IDR_EL0 = 56982,
1092
  AMEVCNTVOFF00_EL2 = 59072,
1093
  AMEVCNTVOFF10_EL2 = 59088,
1094
  AMEVCNTVOFF01_EL2 = 59073,
1095
  AMEVCNTVOFF11_EL2 = 59089,
1096
  AMEVCNTVOFF02_EL2 = 59074,
1097
  AMEVCNTVOFF12_EL2 = 59090,
1098
  AMEVCNTVOFF03_EL2 = 59075,
1099
  AMEVCNTVOFF13_EL2 = 59091,
1100
  AMEVCNTVOFF04_EL2 = 59076,
1101
  AMEVCNTVOFF14_EL2 = 59092,
1102
  AMEVCNTVOFF05_EL2 = 59077,
1103
  AMEVCNTVOFF15_EL2 = 59093,
1104
  AMEVCNTVOFF06_EL2 = 59078,
1105
  AMEVCNTVOFF16_EL2 = 59094,
1106
  AMEVCNTVOFF07_EL2 = 59079,
1107
  AMEVCNTVOFF17_EL2 = 59095,
1108
  AMEVCNTVOFF08_EL2 = 59080,
1109
  AMEVCNTVOFF18_EL2 = 59096,
1110
  AMEVCNTVOFF09_EL2 = 59081,
1111
  AMEVCNTVOFF19_EL2 = 59097,
1112
  AMEVCNTVOFF010_EL2 = 59082,
1113
  AMEVCNTVOFF110_EL2 = 59098,
1114
  AMEVCNTVOFF011_EL2 = 59083,
1115
  AMEVCNTVOFF111_EL2 = 59099,
1116
  AMEVCNTVOFF012_EL2 = 59084,
1117
  AMEVCNTVOFF112_EL2 = 59100,
1118
  AMEVCNTVOFF013_EL2 = 59085,
1119
  AMEVCNTVOFF113_EL2 = 59101,
1120
  AMEVCNTVOFF014_EL2 = 59086,
1121
  AMEVCNTVOFF114_EL2 = 59102,
1122
  AMEVCNTVOFF015_EL2 = 59087,
1123
  AMEVCNTVOFF115_EL2 = 59103,
1124
  HFGRTR_EL2 = 57484,
1125
  HFGWTR_EL2 = 57485,
1126
  HFGITR_EL2 = 57486,
1127
  HDFGRTR_EL2 = 57740,
1128
  HDFGWTR_EL2 = 57741,
1129
  HAFGRTR_EL2 = 57742,
1130
  HDFGRTR2_EL2 = 57736,
1131
  HDFGWTR2_EL2 = 57737,
1132
  HFGRTR2_EL2 = 57738,
1133
  HFGWTR2_EL2 = 57739,
1134
  HFGITR2_EL2 = 57743,
1135
  CNTSCALE_EL2 = 59140,
1136
  CNTISCALE_EL2 = 59141,
1137
  CNTPOFF_EL2 = 59142,
1138
  CNTVFRQ_EL2 = 59143,
1139
  CNTPCTSS_EL0 = 57093,
1140
  CNTVCTSS_EL0 = 57094,
1141
  ACCDATA_EL1 = 50821,
1142
  BRBCR_EL1 = 35968,
1143
  BRBCR_EL12 = 44160,
1144
  BRBCR_EL2 = 42112,
1145
  BRBFCR_EL1 = 35969,
1146
  BRBIDR0_EL1 = 35984,
1147
  BRBINFINJ_EL1 = 35976,
1148
  BRBSRCINJ_EL1 = 35977,
1149
  BRBTGTINJ_EL1 = 35978,
1150
  BRBTS_EL1 = 35970,
1151
  BRBINF0_EL1 = 35840,
1152
  BRBSRC0_EL1 = 35841,
1153
  BRBTGT0_EL1 = 35842,
1154
  BRBINF1_EL1 = 35848,
1155
  BRBSRC1_EL1 = 35849,
1156
  BRBTGT1_EL1 = 35850,
1157
  BRBINF2_EL1 = 35856,
1158
  BRBSRC2_EL1 = 35857,
1159
  BRBTGT2_EL1 = 35858,
1160
  BRBINF3_EL1 = 35864,
1161
  BRBSRC3_EL1 = 35865,
1162
  BRBTGT3_EL1 = 35866,
1163
  BRBINF4_EL1 = 35872,
1164
  BRBSRC4_EL1 = 35873,
1165
  BRBTGT4_EL1 = 35874,
1166
  BRBINF5_EL1 = 35880,
1167
  BRBSRC5_EL1 = 35881,
1168
  BRBTGT5_EL1 = 35882,
1169
  BRBINF6_EL1 = 35888,
1170
  BRBSRC6_EL1 = 35889,
1171
  BRBTGT6_EL1 = 35890,
1172
  BRBINF7_EL1 = 35896,
1173
  BRBSRC7_EL1 = 35897,
1174
  BRBTGT7_EL1 = 35898,
1175
  BRBINF8_EL1 = 35904,
1176
  BRBSRC8_EL1 = 35905,
1177
  BRBTGT8_EL1 = 35906,
1178
  BRBINF9_EL1 = 35912,
1179
  BRBSRC9_EL1 = 35913,
1180
  BRBTGT9_EL1 = 35914,
1181
  BRBINF10_EL1 = 35920,
1182
  BRBSRC10_EL1 = 35921,
1183
  BRBTGT10_EL1 = 35922,
1184
  BRBINF11_EL1 = 35928,
1185
  BRBSRC11_EL1 = 35929,
1186
  BRBTGT11_EL1 = 35930,
1187
  BRBINF12_EL1 = 35936,
1188
  BRBSRC12_EL1 = 35937,
1189
  BRBTGT12_EL1 = 35938,
1190
  BRBINF13_EL1 = 35944,
1191
  BRBSRC13_EL1 = 35945,
1192
  BRBTGT13_EL1 = 35946,
1193
  BRBINF14_EL1 = 35952,
1194
  BRBSRC14_EL1 = 35953,
1195
  BRBTGT14_EL1 = 35954,
1196
  BRBINF15_EL1 = 35960,
1197
  BRBSRC15_EL1 = 35961,
1198
  BRBTGT15_EL1 = 35962,
1199
  BRBINF16_EL1 = 35844,
1200
  BRBSRC16_EL1 = 35845,
1201
  BRBTGT16_EL1 = 35846,
1202
  BRBINF17_EL1 = 35852,
1203
  BRBSRC17_EL1 = 35853,
1204
  BRBTGT17_EL1 = 35854,
1205
  BRBINF18_EL1 = 35860,
1206
  BRBSRC18_EL1 = 35861,
1207
  BRBTGT18_EL1 = 35862,
1208
  BRBINF19_EL1 = 35868,
1209
  BRBSRC19_EL1 = 35869,
1210
  BRBTGT19_EL1 = 35870,
1211
  BRBINF20_EL1 = 35876,
1212
  BRBSRC20_EL1 = 35877,
1213
  BRBTGT20_EL1 = 35878,
1214
  BRBINF21_EL1 = 35884,
1215
  BRBSRC21_EL1 = 35885,
1216
  BRBTGT21_EL1 = 35886,
1217
  BRBINF22_EL1 = 35892,
1218
  BRBSRC22_EL1 = 35893,
1219
  BRBTGT22_EL1 = 35894,
1220
  BRBINF23_EL1 = 35900,
1221
  BRBSRC23_EL1 = 35901,
1222
  BRBTGT23_EL1 = 35902,
1223
  BRBINF24_EL1 = 35908,
1224
  BRBSRC24_EL1 = 35909,
1225
  BRBTGT24_EL1 = 35910,
1226
  BRBINF25_EL1 = 35916,
1227
  BRBSRC25_EL1 = 35917,
1228
  BRBTGT25_EL1 = 35918,
1229
  BRBINF26_EL1 = 35924,
1230
  BRBSRC26_EL1 = 35925,
1231
  BRBTGT26_EL1 = 35926,
1232
  BRBINF27_EL1 = 35932,
1233
  BRBSRC27_EL1 = 35933,
1234
  BRBTGT27_EL1 = 35934,
1235
  BRBINF28_EL1 = 35940,
1236
  BRBSRC28_EL1 = 35941,
1237
  BRBTGT28_EL1 = 35942,
1238
  BRBINF29_EL1 = 35948,
1239
  BRBSRC29_EL1 = 35949,
1240
  BRBTGT29_EL1 = 35950,
1241
  BRBINF30_EL1 = 35956,
1242
  BRBSRC30_EL1 = 35957,
1243
  BRBTGT30_EL1 = 35958,
1244
  BRBINF31_EL1 = 35964,
1245
  BRBSRC31_EL1 = 35965,
1246
  BRBTGT31_EL1 = 35966,
1247
  PMSNEVFR_EL1 = 50377,
1248
  CPM_IOACC_CTL_EL3 = 65424,
1249
  SMCR_EL1 = 49302,
1250
  SMCR_EL2 = 57494,
1251
  SMCR_EL3 = 61590,
1252
  SMCR_EL12 = 59542,
1253
  SVCR = 55826,
1254
  SMPRI_EL1 = 49300,
1255
  SMPRIMAP_EL2 = 57493,
1256
  SMIDR_EL1 = 51206,
1257
  TPIDR2_EL0 = 56965,
1258
  MPAMSM_EL1 = 50475,
1259
  ALLINT = 49688,
1260
  ICC_NMIAR1_EL1 = 50765,
1261
  GCSCR_EL1 = 49448,
1262
  GCSPR_EL1 = 49449,
1263
  GCSCRE0_EL1 = 49450,
1264
  GCSPR_EL0 = 55593,
1265
  GCSCR_EL2 = 57640,
1266
  GCSPR_EL2 = 57641,
1267
  GCSCR_EL12 = 59688,
1268
  GCSPR_EL12 = 59689,
1269
  GCSCR_EL3 = 61736,
1270
  GCSPR_EL3 = 61737,
1271
  AMAIR2_EL1 = 50457,
1272
  AMAIR2_EL12 = 60697,
1273
  AMAIR2_EL2 = 58649,
1274
  AMAIR2_EL3 = 62745,
1275
  MAIR2_EL1 = 50449,
1276
  MAIR2_EL12 = 60689,
1277
  MAIR2_EL2 = 58633,
1278
  MAIR2_EL3 = 62729,
1279
  PIRE0_EL1 = 50450,
1280
  PIRE0_EL12 = 60690,
1281
  PIRE0_EL2 = 58642,
1282
  PIR_EL1 = 50451,
1283
  PIR_EL12 = 60691,
1284
  PIR_EL2 = 58643,
1285
  PIR_EL3 = 62739,
1286
  S2PIR_EL2 = 58645,
1287
  POR_EL0 = 56596,
1288
  POR_EL1 = 50452,
1289
  POR_EL12 = 60692,
1290
  POR_EL2 = 58644,
1291
  POR_EL3 = 62740,
1292
  S2POR_EL1 = 50453,
1293
  SCTLR2_EL1 = 49283,
1294
  SCTLR2_EL12 = 59523,
1295
  SCTLR2_EL2 = 57475,
1296
  SCTLR2_EL3 = 61571,
1297
  TCR2_EL1 = 49411,
1298
  TCR2_EL12 = 59651,
1299
  TCR2_EL2 = 57603,
1300
  RCWMASK_EL1 = 50822,
1301
  RCWSMASK_EL1 = 50819,
1302
  MDSELR_EL1 = 32802,
1303
  PMUACR_EL1 = 50420,
1304
  PMCCNTSVR_EL1 = 34655,
1305
  PMICNTSVR_EL1 = 34656,
1306
  PMSSCR_EL1 = 50411,
1307
  PMEVCNTSVR0_EL1 = 34624,
1308
  PMEVCNTSVR1_EL1 = 34625,
1309
  PMEVCNTSVR2_EL1 = 34626,
1310
  PMEVCNTSVR3_EL1 = 34627,
1311
  PMEVCNTSVR4_EL1 = 34628,
1312
  PMEVCNTSVR5_EL1 = 34629,
1313
  PMEVCNTSVR6_EL1 = 34630,
1314
  PMEVCNTSVR7_EL1 = 34631,
1315
  PMEVCNTSVR8_EL1 = 34632,
1316
  PMEVCNTSVR9_EL1 = 34633,
1317
  PMEVCNTSVR10_EL1 = 34634,
1318
  PMEVCNTSVR11_EL1 = 34635,
1319
  PMEVCNTSVR12_EL1 = 34636,
1320
  PMEVCNTSVR13_EL1 = 34637,
1321
  PMEVCNTSVR14_EL1 = 34638,
1322
  PMEVCNTSVR15_EL1 = 34639,
1323
  PMEVCNTSVR16_EL1 = 34640,
1324
  PMEVCNTSVR17_EL1 = 34641,
1325
  PMEVCNTSVR18_EL1 = 34642,
1326
  PMEVCNTSVR19_EL1 = 34643,
1327
  PMEVCNTSVR20_EL1 = 34644,
1328
  PMEVCNTSVR21_EL1 = 34645,
1329
  PMEVCNTSVR22_EL1 = 34646,
1330
  PMEVCNTSVR23_EL1 = 34647,
1331
  PMEVCNTSVR24_EL1 = 34648,
1332
  PMEVCNTSVR25_EL1 = 34649,
1333
  PMEVCNTSVR26_EL1 = 34650,
1334
  PMEVCNTSVR27_EL1 = 34651,
1335
  PMEVCNTSVR28_EL1 = 34652,
1336
  PMEVCNTSVR29_EL1 = 34653,
1337
  PMEVCNTSVR30_EL1 = 34654,
1338
  PMICNTR_EL0 = 56480,
1339
  PMICFILTR_EL0 = 56496,
1340
  PMZR_EL0 = 56556,
1341
  PMECR_EL1 = 50421,
1342
  PMIAR_EL1 = 50423,
1343
  SPMACCESSR_EL1 = 34027,
1344
  SPMACCESSR_EL12 = 44267,
1345
  SPMACCESSR_EL2 = 42219,
1346
  SPMACCESSR_EL3 = 46315,
1347
  SPMCNTENCLR_EL0 = 40162,
1348
  SPMCNTENSET_EL0 = 40161,
1349
  SPMCR_EL0 = 40160,
1350
  SPMDEVAFF_EL1 = 34030,
1351
  SPMDEVARCH_EL1 = 34029,
1352
  SPMEVCNTR0_EL0 = 40704,
1353
  SPMEVFILT2R0_EL0 = 40752,
1354
  SPMEVFILTR0_EL0 = 40736,
1355
  SPMEVTYPER0_EL0 = 40720,
1356
  SPMEVCNTR1_EL0 = 40705,
1357
  SPMEVFILT2R1_EL0 = 40753,
1358
  SPMEVFILTR1_EL0 = 40737,
1359
  SPMEVTYPER1_EL0 = 40721,
1360
  SPMEVCNTR2_EL0 = 40706,
1361
  SPMEVFILT2R2_EL0 = 40754,
1362
  SPMEVFILTR2_EL0 = 40738,
1363
  SPMEVTYPER2_EL0 = 40722,
1364
  SPMEVCNTR3_EL0 = 40707,
1365
  SPMEVFILT2R3_EL0 = 40755,
1366
  SPMEVFILTR3_EL0 = 40739,
1367
  SPMEVTYPER3_EL0 = 40723,
1368
  SPMEVCNTR4_EL0 = 40708,
1369
  SPMEVFILT2R4_EL0 = 40756,
1370
  SPMEVFILTR4_EL0 = 40740,
1371
  SPMEVTYPER4_EL0 = 40724,
1372
  SPMEVCNTR5_EL0 = 40709,
1373
  SPMEVFILT2R5_EL0 = 40757,
1374
  SPMEVFILTR5_EL0 = 40741,
1375
  SPMEVTYPER5_EL0 = 40725,
1376
  SPMEVCNTR6_EL0 = 40710,
1377
  SPMEVFILT2R6_EL0 = 40758,
1378
  SPMEVFILTR6_EL0 = 40742,
1379
  SPMEVTYPER6_EL0 = 40726,
1380
  SPMEVCNTR7_EL0 = 40711,
1381
  SPMEVFILT2R7_EL0 = 40759,
1382
  SPMEVFILTR7_EL0 = 40743,
1383
  SPMEVTYPER7_EL0 = 40727,
1384
  SPMEVCNTR8_EL0 = 40712,
1385
  SPMEVFILT2R8_EL0 = 40760,
1386
  SPMEVFILTR8_EL0 = 40744,
1387
  SPMEVTYPER8_EL0 = 40728,
1388
  SPMEVCNTR9_EL0 = 40713,
1389
  SPMEVFILT2R9_EL0 = 40761,
1390
  SPMEVFILTR9_EL0 = 40745,
1391
  SPMEVTYPER9_EL0 = 40729,
1392
  SPMEVCNTR10_EL0 = 40714,
1393
  SPMEVFILT2R10_EL0 = 40762,
1394
  SPMEVFILTR10_EL0 = 40746,
1395
  SPMEVTYPER10_EL0 = 40730,
1396
  SPMEVCNTR11_EL0 = 40715,
1397
  SPMEVFILT2R11_EL0 = 40763,
1398
  SPMEVFILTR11_EL0 = 40747,
1399
  SPMEVTYPER11_EL0 = 40731,
1400
  SPMEVCNTR12_EL0 = 40716,
1401
  SPMEVFILT2R12_EL0 = 40764,
1402
  SPMEVFILTR12_EL0 = 40748,
1403
  SPMEVTYPER12_EL0 = 40732,
1404
  SPMEVCNTR13_EL0 = 40717,
1405
  SPMEVFILT2R13_EL0 = 40765,
1406
  SPMEVFILTR13_EL0 = 40749,
1407
  SPMEVTYPER13_EL0 = 40733,
1408
  SPMEVCNTR14_EL0 = 40718,
1409
  SPMEVFILT2R14_EL0 = 40766,
1410
  SPMEVFILTR14_EL0 = 40750,
1411
  SPMEVTYPER14_EL0 = 40734,
1412
  SPMEVCNTR15_EL0 = 40719,
1413
  SPMEVFILT2R15_EL0 = 40767,
1414
  SPMEVFILTR15_EL0 = 40751,
1415
  SPMEVTYPER15_EL0 = 40735,
1416
  SPMIIDR_EL1 = 34028,
1417
  SPMINTENCLR_EL1 = 34034,
1418
  SPMINTENSET_EL1 = 34033,
1419
  SPMOVSCLR_EL0 = 40163,
1420
  SPMOVSSET_EL0 = 40179,
1421
  SPMSELR_EL0 = 40165,
1422
  SPMCGCR0_EL1 = 34024,
1423
  SPMCGCR1_EL1 = 34025,
1424
  SPMCFGR_EL1 = 34031,
1425
  SPMROOTCR_EL3 = 46327,
1426
  SPMSCR_EL1 = 48375,
1427
  TRCITEEDCR = 34833,
1428
  TRCITECR_EL1 = 49299,
1429
  TRCITECR_EL12 = 59539,
1430
  TRCITECR_EL2 = 57491,
1431
  PMSDSFR_EL1 = 50388,
1432
  ERXGSR_EL1 = 49818,
1433
  PFAR_EL1 = 49925,
1434
  PFAR_EL12 = 60165,
1435
  PFAR_EL2 = 58117,
1436
  PM = 49689,
1437
  ID_AA64FPFR0_EL1 = 49191,
1438
  FPMR = 55842,
1439
  MDSTEPOP_EL1 = 32810,
1440
  SPMZR_EL0 = 40164,
1441
  VDISR_EL3 = 62985,
1442
  VSESR_EL3 = 62099,
1443
  HDBSSBR_EL2 = 57626,
1444
  HDBSSPROD_EL2 = 57627,
1445
  HACDBSBR_EL2 = 57628,
1446
  HACDBSCONS_EL2 = 57629,
1447
  FGWTE3_EL3 = 61581,
1448
};
1449
#endif
1450
1451
#ifdef GET_TSB_DECL
1452
enum TSBValues {
1453
  csync = 0,
1454
};
1455
#endif
1456
1457
#ifdef GET_TLBITable_DECL
1458
const TLBI *lookupTLBIByEncoding(uint16_t Encoding);
1459
const TLBI *lookupTLBIByName(StringRef Name);
1460
#endif
1461
1462
#ifdef GET_TLBITable_IMPL
1463
constexpr TLBI TLBITable[] = {
1464
  { "ALLE1", 0x243C, false,  {  }  }, // 0
1465
  { "ALLE1IS", 0x241C, false,  {  }  }, // 1
1466
  { "ALLE1ISnXS", 0x249C, false,  { AArch64::FeatureXS }  }, // 2
1467
  { "ALLE1nXS", 0x24BC, false,  { AArch64::FeatureXS }  }, // 3
1468
  { "ALLE1OS", 0x240C, false,  { AArch64::FeatureTLB_RMI }  }, // 4
1469
  { "ALLE1OSnXS", 0x248C, false,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 5
1470
  { "ALLE2", 0x2438, false,  {  }  }, // 6
1471
  { "ALLE2IS", 0x2418, false,  {  }  }, // 7
1472
  { "ALLE2ISnXS", 0x2498, false,  { AArch64::FeatureXS }  }, // 8
1473
  { "ALLE2nXS", 0x24B8, false,  { AArch64::FeatureXS }  }, // 9
1474
  { "ALLE2OS", 0x2408, false,  { AArch64::FeatureTLB_RMI }  }, // 10
1475
  { "ALLE2OSnXS", 0x2488, false,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 11
1476
  { "ALLE3", 0x3438, false,  {  }  }, // 12
1477
  { "ALLE3IS", 0x3418, false,  {  }  }, // 13
1478
  { "ALLE3ISnXS", 0x3498, false,  { AArch64::FeatureXS }  }, // 14
1479
  { "ALLE3nXS", 0x34B8, false,  { AArch64::FeatureXS }  }, // 15
1480
  { "ALLE3OS", 0x3408, false,  { AArch64::FeatureTLB_RMI }  }, // 16
1481
  { "ALLE3OSnXS", 0x3488, false,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 17
1482
  { "ASIDE1", 0x43A, true,  {  }  }, // 18
1483
  { "ASIDE1IS", 0x41A, true,  {  }  }, // 19
1484
  { "ASIDE1ISnXS", 0x49A, true,  { AArch64::FeatureXS }  }, // 20
1485
  { "ASIDE1nXS", 0x4BA, true,  { AArch64::FeatureXS }  }, // 21
1486
  { "ASIDE1OS", 0x40A, true,  { AArch64::FeatureTLB_RMI }  }, // 22
1487
  { "ASIDE1OSnXS", 0x48A, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 23
1488
  { "IPAS2E1", 0x2421, true,  {  }  }, // 24
1489
  { "IPAS2E1IS", 0x2401, true,  {  }  }, // 25
1490
  { "IPAS2E1ISnXS", 0x2481, true,  { AArch64::FeatureXS }  }, // 26
1491
  { "IPAS2E1nXS", 0x24A1, true,  { AArch64::FeatureXS }  }, // 27
1492
  { "IPAS2E1OS", 0x2420, true,  { AArch64::FeatureTLB_RMI }  }, // 28
1493
  { "IPAS2E1OSnXS", 0x24A0, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 29
1494
  { "IPAS2LE1", 0x2425, true,  {  }  }, // 30
1495
  { "IPAS2LE1IS", 0x2405, true,  {  }  }, // 31
1496
  { "IPAS2LE1ISnXS", 0x2485, true,  { AArch64::FeatureXS }  }, // 32
1497
  { "IPAS2LE1nXS", 0x24A5, true,  { AArch64::FeatureXS }  }, // 33
1498
  { "IPAS2LE1OS", 0x2424, true,  { AArch64::FeatureTLB_RMI }  }, // 34
1499
  { "IPAS2LE1OSnXS", 0x24A4, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 35
1500
  { "PAALL", 0x343C, false,  { AArch64::FeatureRME }  }, // 36
1501
  { "PAALLnXS", 0x34BC, false,  { AArch64::FeatureRME, AArch64::FeatureXS }  }, // 37
1502
  { "PAALLOS", 0x340C, false,  { AArch64::FeatureRME }  }, // 38
1503
  { "PAALLOSnXS", 0x348C, false,  { AArch64::FeatureRME, AArch64::FeatureXS }  }, // 39
1504
  { "RIPAS2E1", 0x2422, true,  { AArch64::FeatureTLB_RMI }  }, // 40
1505
  { "RIPAS2E1IS", 0x2402, true,  { AArch64::FeatureTLB_RMI }  }, // 41
1506
  { "RIPAS2E1ISnXS", 0x2482, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 42
1507
  { "RIPAS2E1nXS", 0x24A2, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 43
1508
  { "RIPAS2E1OS", 0x2423, true,  { AArch64::FeatureTLB_RMI }  }, // 44
1509
  { "RIPAS2E1OSnXS", 0x24A3, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 45
1510
  { "RIPAS2LE1", 0x2426, true,  { AArch64::FeatureTLB_RMI }  }, // 46
1511
  { "RIPAS2LE1IS", 0x2406, true,  { AArch64::FeatureTLB_RMI }  }, // 47
1512
  { "RIPAS2LE1ISnXS", 0x2486, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 48
1513
  { "RIPAS2LE1nXS", 0x24A6, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 49
1514
  { "RIPAS2LE1OS", 0x2427, true,  { AArch64::FeatureTLB_RMI }  }, // 50
1515
  { "RIPAS2LE1OSnXS", 0x24A7, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 51
1516
  { "RPALOS", 0x3427, true,  { AArch64::FeatureRME }  }, // 52
1517
  { "RPALOSnXS", 0x34A7, true,  { AArch64::FeatureRME, AArch64::FeatureXS }  }, // 53
1518
  { "RPAOS", 0x3423, true,  { AArch64::FeatureRME }  }, // 54
1519
  { "RPAOSnXS", 0x34A3, true,  { AArch64::FeatureRME, AArch64::FeatureXS }  }, // 55
1520
  { "RVAAE1", 0x433, true,  { AArch64::FeatureTLB_RMI }  }, // 56
1521
  { "RVAAE1IS", 0x413, true,  { AArch64::FeatureTLB_RMI }  }, // 57
1522
  { "RVAAE1ISnXS", 0x493, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 58
1523
  { "RVAAE1nXS", 0x4B3, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 59
1524
  { "RVAAE1OS", 0x42B, true,  { AArch64::FeatureTLB_RMI }  }, // 60
1525
  { "RVAAE1OSnXS", 0x4AB, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 61
1526
  { "RVAALE1", 0x437, true,  { AArch64::FeatureTLB_RMI }  }, // 62
1527
  { "RVAALE1IS", 0x417, true,  { AArch64::FeatureTLB_RMI }  }, // 63
1528
  { "RVAALE1ISnXS", 0x497, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 64
1529
  { "RVAALE1nXS", 0x4B7, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 65
1530
  { "RVAALE1OS", 0x42F, true,  { AArch64::FeatureTLB_RMI }  }, // 66
1531
  { "RVAALE1OSnXS", 0x4AF, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 67
1532
  { "RVAE1", 0x431, true,  { AArch64::FeatureTLB_RMI }  }, // 68
1533
  { "RVAE1IS", 0x411, true,  { AArch64::FeatureTLB_RMI }  }, // 69
1534
  { "RVAE1ISnXS", 0x491, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 70
1535
  { "RVAE1nXS", 0x4B1, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 71
1536
  { "RVAE1OS", 0x429, true,  { AArch64::FeatureTLB_RMI }  }, // 72
1537
  { "RVAE1OSnXS", 0x4A9, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 73
1538
  { "RVAE2", 0x2431, true,  { AArch64::FeatureTLB_RMI }  }, // 74
1539
  { "RVAE2IS", 0x2411, true,  { AArch64::FeatureTLB_RMI }  }, // 75
1540
  { "RVAE2ISnXS", 0x2491, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 76
1541
  { "RVAE2nXS", 0x24B1, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 77
1542
  { "RVAE2OS", 0x2429, true,  { AArch64::FeatureTLB_RMI }  }, // 78
1543
  { "RVAE2OSnXS", 0x24A9, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 79
1544
  { "RVAE3", 0x3431, true,  { AArch64::FeatureTLB_RMI }  }, // 80
1545
  { "RVAE3IS", 0x3411, true,  { AArch64::FeatureTLB_RMI }  }, // 81
1546
  { "RVAE3ISnXS", 0x3491, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 82
1547
  { "RVAE3nXS", 0x34B1, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 83
1548
  { "RVAE3OS", 0x3429, true,  { AArch64::FeatureTLB_RMI }  }, // 84
1549
  { "RVAE3OSnXS", 0x34A9, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 85
1550
  { "RVALE1", 0x435, true,  { AArch64::FeatureTLB_RMI }  }, // 86
1551
  { "RVALE1IS", 0x415, true,  { AArch64::FeatureTLB_RMI }  }, // 87
1552
  { "RVALE1ISnXS", 0x495, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 88
1553
  { "RVALE1nXS", 0x4B5, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 89
1554
  { "RVALE1OS", 0x42D, true,  { AArch64::FeatureTLB_RMI }  }, // 90
1555
  { "RVALE1OSnXS", 0x4AD, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 91
1556
  { "RVALE2", 0x2435, true,  { AArch64::FeatureTLB_RMI }  }, // 92
1557
  { "RVALE2IS", 0x2415, true,  { AArch64::FeatureTLB_RMI }  }, // 93
1558
  { "RVALE2ISnXS", 0x2495, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 94
1559
  { "RVALE2nXS", 0x24B5, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 95
1560
  { "RVALE2OS", 0x242D, true,  { AArch64::FeatureTLB_RMI }  }, // 96
1561
  { "RVALE2OSnXS", 0x24AD, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 97
1562
  { "RVALE3", 0x3435, true,  { AArch64::FeatureTLB_RMI }  }, // 98
1563
  { "RVALE3IS", 0x3415, true,  { AArch64::FeatureTLB_RMI }  }, // 99
1564
  { "RVALE3ISnXS", 0x3495, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 100
1565
  { "RVALE3nXS", 0x34B5, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 101
1566
  { "RVALE3OS", 0x342D, true,  { AArch64::FeatureTLB_RMI }  }, // 102
1567
  { "RVALE3OSnXS", 0x34AD, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 103
1568
  { "VAAE1", 0x43B, true,  {  }  }, // 104
1569
  { "VAAE1IS", 0x41B, true,  {  }  }, // 105
1570
  { "VAAE1ISnXS", 0x49B, true,  { AArch64::FeatureXS }  }, // 106
1571
  { "VAAE1nXS", 0x4BB, true,  { AArch64::FeatureXS }  }, // 107
1572
  { "VAAE1OS", 0x40B, true,  { AArch64::FeatureTLB_RMI }  }, // 108
1573
  { "VAAE1OSnXS", 0x48B, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 109
1574
  { "VAALE1", 0x43F, true,  {  }  }, // 110
1575
  { "VAALE1IS", 0x41F, true,  {  }  }, // 111
1576
  { "VAALE1ISnXS", 0x49F, true,  { AArch64::FeatureXS }  }, // 112
1577
  { "VAALE1nXS", 0x4BF, true,  { AArch64::FeatureXS }  }, // 113
1578
  { "VAALE1OS", 0x40F, true,  { AArch64::FeatureTLB_RMI }  }, // 114
1579
  { "VAALE1OSnXS", 0x48F, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 115
1580
  { "VAE1", 0x439, true,  {  }  }, // 116
1581
  { "VAE1IS", 0x419, true,  {  }  }, // 117
1582
  { "VAE1ISnXS", 0x499, true,  { AArch64::FeatureXS }  }, // 118
1583
  { "VAE1nXS", 0x4B9, true,  { AArch64::FeatureXS }  }, // 119
1584
  { "VAE1OS", 0x409, true,  { AArch64::FeatureTLB_RMI }  }, // 120
1585
  { "VAE1OSnXS", 0x489, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 121
1586
  { "VAE2", 0x2439, true,  {  }  }, // 122
1587
  { "VAE2IS", 0x2419, true,  {  }  }, // 123
1588
  { "VAE2ISnXS", 0x2499, true,  { AArch64::FeatureXS }  }, // 124
1589
  { "VAE2nXS", 0x24B9, true,  { AArch64::FeatureXS }  }, // 125
1590
  { "VAE2OS", 0x2409, true,  { AArch64::FeatureTLB_RMI }  }, // 126
1591
  { "VAE2OSnXS", 0x2489, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 127
1592
  { "VAE3", 0x3439, true,  {  }  }, // 128
1593
  { "VAE3IS", 0x3419, true,  {  }  }, // 129
1594
  { "VAE3ISnXS", 0x3499, true,  { AArch64::FeatureXS }  }, // 130
1595
  { "VAE3nXS", 0x34B9, true,  { AArch64::FeatureXS }  }, // 131
1596
  { "VAE3OS", 0x3409, true,  { AArch64::FeatureTLB_RMI }  }, // 132
1597
  { "VAE3OSnXS", 0x3489, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 133
1598
  { "VALE1", 0x43D, true,  {  }  }, // 134
1599
  { "VALE1IS", 0x41D, true,  {  }  }, // 135
1600
  { "VALE1ISnXS", 0x49D, true,  { AArch64::FeatureXS }  }, // 136
1601
  { "VALE1nXS", 0x4BD, true,  { AArch64::FeatureXS }  }, // 137
1602
  { "VALE1OS", 0x40D, true,  { AArch64::FeatureTLB_RMI }  }, // 138
1603
  { "VALE1OSnXS", 0x48D, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 139
1604
  { "VALE2", 0x243D, true,  {  }  }, // 140
1605
  { "VALE2IS", 0x241D, true,  {  }  }, // 141
1606
  { "VALE2ISnXS", 0x249D, true,  { AArch64::FeatureXS }  }, // 142
1607
  { "VALE2nXS", 0x24BD, true,  { AArch64::FeatureXS }  }, // 143
1608
  { "VALE2OS", 0x240D, true,  { AArch64::FeatureTLB_RMI }  }, // 144
1609
  { "VALE2OSnXS", 0x248D, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 145
1610
  { "VALE3", 0x343D, true,  {  }  }, // 146
1611
  { "VALE3IS", 0x341D, true,  {  }  }, // 147
1612
  { "VALE3ISnXS", 0x349D, true,  { AArch64::FeatureXS }  }, // 148
1613
  { "VALE3nXS", 0x34BD, true,  { AArch64::FeatureXS }  }, // 149
1614
  { "VALE3OS", 0x340D, true,  { AArch64::FeatureTLB_RMI }  }, // 150
1615
  { "VALE3OSnXS", 0x348D, true,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 151
1616
  { "VMALLE1", 0x438, false,  {  }  }, // 152
1617
  { "VMALLE1IS", 0x418, false,  {  }  }, // 153
1618
  { "VMALLE1ISnXS", 0x498, false,  { AArch64::FeatureXS }  }, // 154
1619
  { "VMALLE1nXS", 0x4B8, false,  { AArch64::FeatureXS }  }, // 155
1620
  { "VMALLE1OS", 0x408, false,  { AArch64::FeatureTLB_RMI }  }, // 156
1621
  { "VMALLE1OSnXS", 0x488, false,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 157
1622
  { "VMALLS12E1", 0x243E, false,  {  }  }, // 158
1623
  { "VMALLS12E1IS", 0x241E, false,  {  }  }, // 159
1624
  { "VMALLS12E1ISnXS", 0x249E, false,  { AArch64::FeatureXS }  }, // 160
1625
  { "VMALLS12E1nXS", 0x24BE, false,  { AArch64::FeatureXS }  }, // 161
1626
  { "VMALLS12E1OS", 0x240E, false,  { AArch64::FeatureTLB_RMI }  }, // 162
1627
  { "VMALLS12E1OSnXS", 0x248E, false,  { AArch64::FeatureTLB_RMI, AArch64::FeatureXS }  }, // 163
1628
  { "VMALLWS2E1", 0x2432, false,  { AArch64::FeatureTLBIW }  }, // 164
1629
  { "VMALLWS2E1IS", 0x2412, false,  { AArch64::FeatureTLBIW }  }, // 165
1630
  { "VMALLWS2E1ISnXS", 0x2492, false,  { AArch64::FeatureTLBIW, AArch64::FeatureXS }  }, // 166
1631
  { "VMALLWS2E1nXS", 0x24B2, false,  { AArch64::FeatureTLBIW, AArch64::FeatureXS }  }, // 167
1632
  { "VMALLWS2E1OS", 0x242A, false,  { AArch64::FeatureTLBIW }  }, // 168
1633
  { "VMALLWS2E1OSnXS", 0x24AA, false,  { AArch64::FeatureTLBIW, AArch64::FeatureXS }  }, // 169
1634
 };
1635
1636
0
const TLBI *lookupTLBIByEncoding(uint16_t Encoding) {
1637
0
  struct IndexType {
1638
0
    uint16_t Encoding;
1639
0
    unsigned _index;
1640
0
  };
1641
0
  static const struct IndexType Index[] = {
1642
0
    { 0x408, 156 },
1643
0
    { 0x409, 120 },
1644
0
    { 0x40A, 22 },
1645
0
    { 0x40B, 108 },
1646
0
    { 0x40D, 138 },
1647
0
    { 0x40F, 114 },
1648
0
    { 0x411, 69 },
1649
0
    { 0x413, 57 },
1650
0
    { 0x415, 87 },
1651
0
    { 0x417, 63 },
1652
0
    { 0x418, 153 },
1653
0
    { 0x419, 117 },
1654
0
    { 0x41A, 19 },
1655
0
    { 0x41B, 105 },
1656
0
    { 0x41D, 135 },
1657
0
    { 0x41F, 111 },
1658
0
    { 0x429, 72 },
1659
0
    { 0x42B, 60 },
1660
0
    { 0x42D, 90 },
1661
0
    { 0x42F, 66 },
1662
0
    { 0x431, 68 },
1663
0
    { 0x433, 56 },
1664
0
    { 0x435, 86 },
1665
0
    { 0x437, 62 },
1666
0
    { 0x438, 152 },
1667
0
    { 0x439, 116 },
1668
0
    { 0x43A, 18 },
1669
0
    { 0x43B, 104 },
1670
0
    { 0x43D, 134 },
1671
0
    { 0x43F, 110 },
1672
0
    { 0x488, 157 },
1673
0
    { 0x489, 121 },
1674
0
    { 0x48A, 23 },
1675
0
    { 0x48B, 109 },
1676
0
    { 0x48D, 139 },
1677
0
    { 0x48F, 115 },
1678
0
    { 0x491, 70 },
1679
0
    { 0x493, 58 },
1680
0
    { 0x495, 88 },
1681
0
    { 0x497, 64 },
1682
0
    { 0x498, 154 },
1683
0
    { 0x499, 118 },
1684
0
    { 0x49A, 20 },
1685
0
    { 0x49B, 106 },
1686
0
    { 0x49D, 136 },
1687
0
    { 0x49F, 112 },
1688
0
    { 0x4A9, 73 },
1689
0
    { 0x4AB, 61 },
1690
0
    { 0x4AD, 91 },
1691
0
    { 0x4AF, 67 },
1692
0
    { 0x4B1, 71 },
1693
0
    { 0x4B3, 59 },
1694
0
    { 0x4B5, 89 },
1695
0
    { 0x4B7, 65 },
1696
0
    { 0x4B8, 155 },
1697
0
    { 0x4B9, 119 },
1698
0
    { 0x4BA, 21 },
1699
0
    { 0x4BB, 107 },
1700
0
    { 0x4BD, 137 },
1701
0
    { 0x4BF, 113 },
1702
0
    { 0x2401, 25 },
1703
0
    { 0x2402, 41 },
1704
0
    { 0x2405, 31 },
1705
0
    { 0x2406, 47 },
1706
0
    { 0x2408, 10 },
1707
0
    { 0x2409, 126 },
1708
0
    { 0x240C, 4 },
1709
0
    { 0x240D, 144 },
1710
0
    { 0x240E, 162 },
1711
0
    { 0x2411, 75 },
1712
0
    { 0x2412, 165 },
1713
0
    { 0x2415, 93 },
1714
0
    { 0x2418, 7 },
1715
0
    { 0x2419, 123 },
1716
0
    { 0x241C, 1 },
1717
0
    { 0x241D, 141 },
1718
0
    { 0x241E, 159 },
1719
0
    { 0x2420, 28 },
1720
0
    { 0x2421, 24 },
1721
0
    { 0x2422, 40 },
1722
0
    { 0x2423, 44 },
1723
0
    { 0x2424, 34 },
1724
0
    { 0x2425, 30 },
1725
0
    { 0x2426, 46 },
1726
0
    { 0x2427, 50 },
1727
0
    { 0x2429, 78 },
1728
0
    { 0x242A, 168 },
1729
0
    { 0x242D, 96 },
1730
0
    { 0x2431, 74 },
1731
0
    { 0x2432, 164 },
1732
0
    { 0x2435, 92 },
1733
0
    { 0x2438, 6 },
1734
0
    { 0x2439, 122 },
1735
0
    { 0x243C, 0 },
1736
0
    { 0x243D, 140 },
1737
0
    { 0x243E, 158 },
1738
0
    { 0x2481, 26 },
1739
0
    { 0x2482, 42 },
1740
0
    { 0x2485, 32 },
1741
0
    { 0x2486, 48 },
1742
0
    { 0x2488, 11 },
1743
0
    { 0x2489, 127 },
1744
0
    { 0x248C, 5 },
1745
0
    { 0x248D, 145 },
1746
0
    { 0x248E, 163 },
1747
0
    { 0x2491, 76 },
1748
0
    { 0x2492, 166 },
1749
0
    { 0x2495, 94 },
1750
0
    { 0x2498, 8 },
1751
0
    { 0x2499, 124 },
1752
0
    { 0x249C, 2 },
1753
0
    { 0x249D, 142 },
1754
0
    { 0x249E, 160 },
1755
0
    { 0x24A0, 29 },
1756
0
    { 0x24A1, 27 },
1757
0
    { 0x24A2, 43 },
1758
0
    { 0x24A3, 45 },
1759
0
    { 0x24A4, 35 },
1760
0
    { 0x24A5, 33 },
1761
0
    { 0x24A6, 49 },
1762
0
    { 0x24A7, 51 },
1763
0
    { 0x24A9, 79 },
1764
0
    { 0x24AA, 169 },
1765
0
    { 0x24AD, 97 },
1766
0
    { 0x24B1, 77 },
1767
0
    { 0x24B2, 167 },
1768
0
    { 0x24B5, 95 },
1769
0
    { 0x24B8, 9 },
1770
0
    { 0x24B9, 125 },
1771
0
    { 0x24BC, 3 },
1772
0
    { 0x24BD, 143 },
1773
0
    { 0x24BE, 161 },
1774
0
    { 0x3408, 16 },
1775
0
    { 0x3409, 132 },
1776
0
    { 0x340C, 38 },
1777
0
    { 0x340D, 150 },
1778
0
    { 0x3411, 81 },
1779
0
    { 0x3415, 99 },
1780
0
    { 0x3418, 13 },
1781
0
    { 0x3419, 129 },
1782
0
    { 0x341D, 147 },
1783
0
    { 0x3423, 54 },
1784
0
    { 0x3427, 52 },
1785
0
    { 0x3429, 84 },
1786
0
    { 0x342D, 102 },
1787
0
    { 0x3431, 80 },
1788
0
    { 0x3435, 98 },
1789
0
    { 0x3438, 12 },
1790
0
    { 0x3439, 128 },
1791
0
    { 0x343C, 36 },
1792
0
    { 0x343D, 146 },
1793
0
    { 0x3488, 17 },
1794
0
    { 0x3489, 133 },
1795
0
    { 0x348C, 39 },
1796
0
    { 0x348D, 151 },
1797
0
    { 0x3491, 82 },
1798
0
    { 0x3495, 100 },
1799
0
    { 0x3498, 14 },
1800
0
    { 0x3499, 130 },
1801
0
    { 0x349D, 148 },
1802
0
    { 0x34A3, 55 },
1803
0
    { 0x34A7, 53 },
1804
0
    { 0x34A9, 85 },
1805
0
    { 0x34AD, 103 },
1806
0
    { 0x34B1, 83 },
1807
0
    { 0x34B5, 101 },
1808
0
    { 0x34B8, 15 },
1809
0
    { 0x34B9, 131 },
1810
0
    { 0x34BC, 37 },
1811
0
    { 0x34BD, 149 },
1812
0
  };
1813
1814
0
  struct KeyType {
1815
0
    uint16_t Encoding;
1816
0
  };
1817
0
  KeyType Key = {Encoding};
1818
0
  auto Table = ArrayRef(Index);
1819
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1820
0
    [](const IndexType &LHS, const KeyType &RHS) {
1821
0
      if (LHS.Encoding < RHS.Encoding)
1822
0
        return true;
1823
0
      if (LHS.Encoding > RHS.Encoding)
1824
0
        return false;
1825
0
      return false;
1826
0
    });
1827
1828
0
  if (Idx == Table.end() ||
1829
0
      Key.Encoding != Idx->Encoding)
1830
0
    return nullptr;
1831
0
  return &TLBITable[Idx->_index];
1832
0
}
1833
1834
0
const TLBI *lookupTLBIByName(StringRef Name) {
1835
0
  struct IndexType {
1836
0
    const char * Name;
1837
0
    unsigned _index;
1838
0
  };
1839
0
  static const struct IndexType Index[] = {
1840
0
    { "ALLE1", 0 },
1841
0
    { "ALLE1IS", 1 },
1842
0
    { "ALLE1ISNXS", 2 },
1843
0
    { "ALLE1NXS", 3 },
1844
0
    { "ALLE1OS", 4 },
1845
0
    { "ALLE1OSNXS", 5 },
1846
0
    { "ALLE2", 6 },
1847
0
    { "ALLE2IS", 7 },
1848
0
    { "ALLE2ISNXS", 8 },
1849
0
    { "ALLE2NXS", 9 },
1850
0
    { "ALLE2OS", 10 },
1851
0
    { "ALLE2OSNXS", 11 },
1852
0
    { "ALLE3", 12 },
1853
0
    { "ALLE3IS", 13 },
1854
0
    { "ALLE3ISNXS", 14 },
1855
0
    { "ALLE3NXS", 15 },
1856
0
    { "ALLE3OS", 16 },
1857
0
    { "ALLE3OSNXS", 17 },
1858
0
    { "ASIDE1", 18 },
1859
0
    { "ASIDE1IS", 19 },
1860
0
    { "ASIDE1ISNXS", 20 },
1861
0
    { "ASIDE1NXS", 21 },
1862
0
    { "ASIDE1OS", 22 },
1863
0
    { "ASIDE1OSNXS", 23 },
1864
0
    { "IPAS2E1", 24 },
1865
0
    { "IPAS2E1IS", 25 },
1866
0
    { "IPAS2E1ISNXS", 26 },
1867
0
    { "IPAS2E1NXS", 27 },
1868
0
    { "IPAS2E1OS", 28 },
1869
0
    { "IPAS2E1OSNXS", 29 },
1870
0
    { "IPAS2LE1", 30 },
1871
0
    { "IPAS2LE1IS", 31 },
1872
0
    { "IPAS2LE1ISNXS", 32 },
1873
0
    { "IPAS2LE1NXS", 33 },
1874
0
    { "IPAS2LE1OS", 34 },
1875
0
    { "IPAS2LE1OSNXS", 35 },
1876
0
    { "PAALL", 36 },
1877
0
    { "PAALLNXS", 37 },
1878
0
    { "PAALLOS", 38 },
1879
0
    { "PAALLOSNXS", 39 },
1880
0
    { "RIPAS2E1", 40 },
1881
0
    { "RIPAS2E1IS", 41 },
1882
0
    { "RIPAS2E1ISNXS", 42 },
1883
0
    { "RIPAS2E1NXS", 43 },
1884
0
    { "RIPAS2E1OS", 44 },
1885
0
    { "RIPAS2E1OSNXS", 45 },
1886
0
    { "RIPAS2LE1", 46 },
1887
0
    { "RIPAS2LE1IS", 47 },
1888
0
    { "RIPAS2LE1ISNXS", 48 },
1889
0
    { "RIPAS2LE1NXS", 49 },
1890
0
    { "RIPAS2LE1OS", 50 },
1891
0
    { "RIPAS2LE1OSNXS", 51 },
1892
0
    { "RPALOS", 52 },
1893
0
    { "RPALOSNXS", 53 },
1894
0
    { "RPAOS", 54 },
1895
0
    { "RPAOSNXS", 55 },
1896
0
    { "RVAAE1", 56 },
1897
0
    { "RVAAE1IS", 57 },
1898
0
    { "RVAAE1ISNXS", 58 },
1899
0
    { "RVAAE1NXS", 59 },
1900
0
    { "RVAAE1OS", 60 },
1901
0
    { "RVAAE1OSNXS", 61 },
1902
0
    { "RVAALE1", 62 },
1903
0
    { "RVAALE1IS", 63 },
1904
0
    { "RVAALE1ISNXS", 64 },
1905
0
    { "RVAALE1NXS", 65 },
1906
0
    { "RVAALE1OS", 66 },
1907
0
    { "RVAALE1OSNXS", 67 },
1908
0
    { "RVAE1", 68 },
1909
0
    { "RVAE1IS", 69 },
1910
0
    { "RVAE1ISNXS", 70 },
1911
0
    { "RVAE1NXS", 71 },
1912
0
    { "RVAE1OS", 72 },
1913
0
    { "RVAE1OSNXS", 73 },
1914
0
    { "RVAE2", 74 },
1915
0
    { "RVAE2IS", 75 },
1916
0
    { "RVAE2ISNXS", 76 },
1917
0
    { "RVAE2NXS", 77 },
1918
0
    { "RVAE2OS", 78 },
1919
0
    { "RVAE2OSNXS", 79 },
1920
0
    { "RVAE3", 80 },
1921
0
    { "RVAE3IS", 81 },
1922
0
    { "RVAE3ISNXS", 82 },
1923
0
    { "RVAE3NXS", 83 },
1924
0
    { "RVAE3OS", 84 },
1925
0
    { "RVAE3OSNXS", 85 },
1926
0
    { "RVALE1", 86 },
1927
0
    { "RVALE1IS", 87 },
1928
0
    { "RVALE1ISNXS", 88 },
1929
0
    { "RVALE1NXS", 89 },
1930
0
    { "RVALE1OS", 90 },
1931
0
    { "RVALE1OSNXS", 91 },
1932
0
    { "RVALE2", 92 },
1933
0
    { "RVALE2IS", 93 },
1934
0
    { "RVALE2ISNXS", 94 },
1935
0
    { "RVALE2NXS", 95 },
1936
0
    { "RVALE2OS", 96 },
1937
0
    { "RVALE2OSNXS", 97 },
1938
0
    { "RVALE3", 98 },
1939
0
    { "RVALE3IS", 99 },
1940
0
    { "RVALE3ISNXS", 100 },
1941
0
    { "RVALE3NXS", 101 },
1942
0
    { "RVALE3OS", 102 },
1943
0
    { "RVALE3OSNXS", 103 },
1944
0
    { "VAAE1", 104 },
1945
0
    { "VAAE1IS", 105 },
1946
0
    { "VAAE1ISNXS", 106 },
1947
0
    { "VAAE1NXS", 107 },
1948
0
    { "VAAE1OS", 108 },
1949
0
    { "VAAE1OSNXS", 109 },
1950
0
    { "VAALE1", 110 },
1951
0
    { "VAALE1IS", 111 },
1952
0
    { "VAALE1ISNXS", 112 },
1953
0
    { "VAALE1NXS", 113 },
1954
0
    { "VAALE1OS", 114 },
1955
0
    { "VAALE1OSNXS", 115 },
1956
0
    { "VAE1", 116 },
1957
0
    { "VAE1IS", 117 },
1958
0
    { "VAE1ISNXS", 118 },
1959
0
    { "VAE1NXS", 119 },
1960
0
    { "VAE1OS", 120 },
1961
0
    { "VAE1OSNXS", 121 },
1962
0
    { "VAE2", 122 },
1963
0
    { "VAE2IS", 123 },
1964
0
    { "VAE2ISNXS", 124 },
1965
0
    { "VAE2NXS", 125 },
1966
0
    { "VAE2OS", 126 },
1967
0
    { "VAE2OSNXS", 127 },
1968
0
    { "VAE3", 128 },
1969
0
    { "VAE3IS", 129 },
1970
0
    { "VAE3ISNXS", 130 },
1971
0
    { "VAE3NXS", 131 },
1972
0
    { "VAE3OS", 132 },
1973
0
    { "VAE3OSNXS", 133 },
1974
0
    { "VALE1", 134 },
1975
0
    { "VALE1IS", 135 },
1976
0
    { "VALE1ISNXS", 136 },
1977
0
    { "VALE1NXS", 137 },
1978
0
    { "VALE1OS", 138 },
1979
0
    { "VALE1OSNXS", 139 },
1980
0
    { "VALE2", 140 },
1981
0
    { "VALE2IS", 141 },
1982
0
    { "VALE2ISNXS", 142 },
1983
0
    { "VALE2NXS", 143 },
1984
0
    { "VALE2OS", 144 },
1985
0
    { "VALE2OSNXS", 145 },
1986
0
    { "VALE3", 146 },
1987
0
    { "VALE3IS", 147 },
1988
0
    { "VALE3ISNXS", 148 },
1989
0
    { "VALE3NXS", 149 },
1990
0
    { "VALE3OS", 150 },
1991
0
    { "VALE3OSNXS", 151 },
1992
0
    { "VMALLE1", 152 },
1993
0
    { "VMALLE1IS", 153 },
1994
0
    { "VMALLE1ISNXS", 154 },
1995
0
    { "VMALLE1NXS", 155 },
1996
0
    { "VMALLE1OS", 156 },
1997
0
    { "VMALLE1OSNXS", 157 },
1998
0
    { "VMALLS12E1", 158 },
1999
0
    { "VMALLS12E1IS", 159 },
2000
0
    { "VMALLS12E1ISNXS", 160 },
2001
0
    { "VMALLS12E1NXS", 161 },
2002
0
    { "VMALLS12E1OS", 162 },
2003
0
    { "VMALLS12E1OSNXS", 163 },
2004
0
    { "VMALLWS2E1", 164 },
2005
0
    { "VMALLWS2E1IS", 165 },
2006
0
    { "VMALLWS2E1ISNXS", 166 },
2007
0
    { "VMALLWS2E1NXS", 167 },
2008
0
    { "VMALLWS2E1OS", 168 },
2009
0
    { "VMALLWS2E1OSNXS", 169 },
2010
0
  };
2011
2012
0
  struct KeyType {
2013
0
    std::string Name;
2014
0
  };
2015
0
  KeyType Key = {Name.upper()};
2016
0
  auto Table = ArrayRef(Index);
2017
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2018
0
    [](const IndexType &LHS, const KeyType &RHS) {
2019
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2020
0
      if (CmpName < 0) return true;
2021
0
      if (CmpName > 0) return false;
2022
0
      return false;
2023
0
    });
2024
2025
0
  if (Idx == Table.end() ||
2026
0
      Key.Name != Idx->Name)
2027
0
    return nullptr;
2028
0
  return &TLBITable[Idx->_index];
2029
0
}
2030
#endif
2031
2032
#ifdef GET_AT_DECL
2033
const AT *lookupATByName(StringRef Name);
2034
const AT *lookupATByEncoding(uint16_t Encoding);
2035
#endif
2036
2037
#ifdef GET_AT_IMPL
2038
constexpr AT ATsList[] = {
2039
  { "S12E0R", 0x23C6,  {}  }, // 0
2040
  { "S12E0W", 0x23C7,  {}  }, // 1
2041
  { "S12E1R", 0x23C4,  {}  }, // 2
2042
  { "S12E1W", 0x23C5,  {}  }, // 3
2043
  { "S1E0R", 0x3C2,  {}  }, // 4
2044
  { "S1E0W", 0x3C3,  {}  }, // 5
2045
  { "S1E1A", 0x3CA,  {}  }, // 6
2046
  { "S1E1R", 0x3C0,  {}  }, // 7
2047
  { "S1E1RP", 0x3C8,  {AArch64::FeaturePAN_RWV}  }, // 8
2048
  { "S1E1W", 0x3C1,  {}  }, // 9
2049
  { "S1E1WP", 0x3C9,  {AArch64::FeaturePAN_RWV}  }, // 10
2050
  { "S1E2A", 0x23CA,  {}  }, // 11
2051
  { "S1E2R", 0x23C0,  {}  }, // 12
2052
  { "S1E2W", 0x23C1,  {}  }, // 13
2053
  { "S1E3A", 0x33CA,  {}  }, // 14
2054
  { "S1E3R", 0x33C0,  {}  }, // 15
2055
  { "S1E3W", 0x33C1,  {}  }, // 16
2056
 };
2057
2058
0
const AT *lookupATByName(StringRef Name) {
2059
0
  struct IndexType {
2060
0
    const char * Name;
2061
0
    unsigned _index;
2062
0
  };
2063
0
  static const struct IndexType Index[] = {
2064
0
    { "S12E0R", 0 },
2065
0
    { "S12E0W", 1 },
2066
0
    { "S12E1R", 2 },
2067
0
    { "S12E1W", 3 },
2068
0
    { "S1E0R", 4 },
2069
0
    { "S1E0W", 5 },
2070
0
    { "S1E1A", 6 },
2071
0
    { "S1E1R", 7 },
2072
0
    { "S1E1RP", 8 },
2073
0
    { "S1E1W", 9 },
2074
0
    { "S1E1WP", 10 },
2075
0
    { "S1E2A", 11 },
2076
0
    { "S1E2R", 12 },
2077
0
    { "S1E2W", 13 },
2078
0
    { "S1E3A", 14 },
2079
0
    { "S1E3R", 15 },
2080
0
    { "S1E3W", 16 },
2081
0
  };
2082
2083
0
  struct KeyType {
2084
0
    std::string Name;
2085
0
  };
2086
0
  KeyType Key = {Name.upper()};
2087
0
  auto Table = ArrayRef(Index);
2088
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2089
0
    [](const IndexType &LHS, const KeyType &RHS) {
2090
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2091
0
      if (CmpName < 0) return true;
2092
0
      if (CmpName > 0) return false;
2093
0
      return false;
2094
0
    });
2095
2096
0
  if (Idx == Table.end() ||
2097
0
      Key.Name != Idx->Name)
2098
0
    return nullptr;
2099
0
  return &ATsList[Idx->_index];
2100
0
}
2101
2102
0
const AT *lookupATByEncoding(uint16_t Encoding) {
2103
0
  struct IndexType {
2104
0
    uint16_t Encoding;
2105
0
    unsigned _index;
2106
0
  };
2107
0
  static const struct IndexType Index[] = {
2108
0
    { 0x3C0, 7 },
2109
0
    { 0x3C1, 9 },
2110
0
    { 0x3C2, 4 },
2111
0
    { 0x3C3, 5 },
2112
0
    { 0x3C8, 8 },
2113
0
    { 0x3C9, 10 },
2114
0
    { 0x3CA, 6 },
2115
0
    { 0x23C0, 12 },
2116
0
    { 0x23C1, 13 },
2117
0
    { 0x23C4, 2 },
2118
0
    { 0x23C5, 3 },
2119
0
    { 0x23C6, 0 },
2120
0
    { 0x23C7, 1 },
2121
0
    { 0x23CA, 11 },
2122
0
    { 0x33C0, 15 },
2123
0
    { 0x33C1, 16 },
2124
0
    { 0x33CA, 14 },
2125
0
  };
2126
2127
0
  struct KeyType {
2128
0
    uint16_t Encoding;
2129
0
  };
2130
0
  KeyType Key = {Encoding};
2131
0
  auto Table = ArrayRef(Index);
2132
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2133
0
    [](const IndexType &LHS, const KeyType &RHS) {
2134
0
      if (LHS.Encoding < RHS.Encoding)
2135
0
        return true;
2136
0
      if (LHS.Encoding > RHS.Encoding)
2137
0
        return false;
2138
0
      return false;
2139
0
    });
2140
2141
0
  if (Idx == Table.end() ||
2142
0
      Key.Encoding != Idx->Encoding)
2143
0
    return nullptr;
2144
0
  return &ATsList[Idx->_index];
2145
0
}
2146
#endif
2147
2148
#ifdef GET_BTI_DECL
2149
const BTI *lookupBTIByName(StringRef Name);
2150
const BTI *lookupBTIByEncoding(uint8_t Encoding);
2151
#endif
2152
2153
#ifdef GET_BTI_IMPL
2154
constexpr BTI BTIsList[] = {
2155
  { "c", 0x2 }, // 0
2156
  { "j", 0x4 }, // 1
2157
  { "jc", 0x6 }, // 2
2158
 };
2159
2160
0
const BTI *lookupBTIByName(StringRef Name) {
2161
0
  struct IndexType {
2162
0
    const char * Name;
2163
0
    unsigned _index;
2164
0
  };
2165
0
  static const struct IndexType Index[] = {
2166
0
    { "C", 0 },
2167
0
    { "J", 1 },
2168
0
    { "JC", 2 },
2169
0
  };
2170
2171
0
  struct KeyType {
2172
0
    std::string Name;
2173
0
  };
2174
0
  KeyType Key = {Name.upper()};
2175
0
  auto Table = ArrayRef(Index);
2176
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2177
0
    [](const IndexType &LHS, const KeyType &RHS) {
2178
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2179
0
      if (CmpName < 0) return true;
2180
0
      if (CmpName > 0) return false;
2181
0
      return false;
2182
0
    });
2183
2184
0
  if (Idx == Table.end() ||
2185
0
      Key.Name != Idx->Name)
2186
0
    return nullptr;
2187
0
  return &BTIsList[Idx->_index];
2188
0
}
2189
2190
0
const BTI *lookupBTIByEncoding(uint8_t Encoding) {
2191
0
  struct IndexType {
2192
0
    uint8_t Encoding;
2193
0
    unsigned _index;
2194
0
  };
2195
0
  static const struct IndexType Index[] = {
2196
0
    { 0x2, 0 },
2197
0
    { 0x4, 1 },
2198
0
    { 0x6, 2 },
2199
0
  };
2200
2201
0
  struct KeyType {
2202
0
    uint8_t Encoding;
2203
0
  };
2204
0
  KeyType Key = {Encoding};
2205
0
  auto Table = ArrayRef(Index);
2206
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2207
0
    [](const IndexType &LHS, const KeyType &RHS) {
2208
0
      if (LHS.Encoding < RHS.Encoding)
2209
0
        return true;
2210
0
      if (LHS.Encoding > RHS.Encoding)
2211
0
        return false;
2212
0
      return false;
2213
0
    });
2214
2215
0
  if (Idx == Table.end() ||
2216
0
      Key.Encoding != Idx->Encoding)
2217
0
    return nullptr;
2218
0
  return &BTIsList[Idx->_index];
2219
0
}
2220
#endif
2221
2222
#ifdef GET_DB_DECL
2223
const DB *lookupDBByName(StringRef Name);
2224
const DB *lookupDBByEncoding(uint8_t Encoding);
2225
#endif
2226
2227
#ifdef GET_DB_IMPL
2228
constexpr DB DBsList[] = {
2229
  { "ish", 0xB }, // 0
2230
  { "ishld", 0x9 }, // 1
2231
  { "ishst", 0xA }, // 2
2232
  { "ld", 0xD }, // 3
2233
  { "nsh", 0x7 }, // 4
2234
  { "nshld", 0x5 }, // 5
2235
  { "nshst", 0x6 }, // 6
2236
  { "osh", 0x3 }, // 7
2237
  { "oshld", 0x1 }, // 8
2238
  { "oshst", 0x2 }, // 9
2239
  { "st", 0xE }, // 10
2240
  { "sy", 0xF }, // 11
2241
 };
2242
2243
0
const DB *lookupDBByName(StringRef Name) {
2244
0
  struct IndexType {
2245
0
    const char * Name;
2246
0
    unsigned _index;
2247
0
  };
2248
0
  static const struct IndexType Index[] = {
2249
0
    { "ISH", 0 },
2250
0
    { "ISHLD", 1 },
2251
0
    { "ISHST", 2 },
2252
0
    { "LD", 3 },
2253
0
    { "NSH", 4 },
2254
0
    { "NSHLD", 5 },
2255
0
    { "NSHST", 6 },
2256
0
    { "OSH", 7 },
2257
0
    { "OSHLD", 8 },
2258
0
    { "OSHST", 9 },
2259
0
    { "ST", 10 },
2260
0
    { "SY", 11 },
2261
0
  };
2262
2263
0
  struct KeyType {
2264
0
    std::string Name;
2265
0
  };
2266
0
  KeyType Key = {Name.upper()};
2267
0
  auto Table = ArrayRef(Index);
2268
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2269
0
    [](const IndexType &LHS, const KeyType &RHS) {
2270
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2271
0
      if (CmpName < 0) return true;
2272
0
      if (CmpName > 0) return false;
2273
0
      return false;
2274
0
    });
2275
2276
0
  if (Idx == Table.end() ||
2277
0
      Key.Name != Idx->Name)
2278
0
    return nullptr;
2279
0
  return &DBsList[Idx->_index];
2280
0
}
2281
2282
0
const DB *lookupDBByEncoding(uint8_t Encoding) {
2283
0
  struct IndexType {
2284
0
    uint8_t Encoding;
2285
0
    unsigned _index;
2286
0
  };
2287
0
  static const struct IndexType Index[] = {
2288
0
    { 0x1, 8 },
2289
0
    { 0x2, 9 },
2290
0
    { 0x3, 7 },
2291
0
    { 0x5, 5 },
2292
0
    { 0x6, 6 },
2293
0
    { 0x7, 4 },
2294
0
    { 0x9, 1 },
2295
0
    { 0xA, 2 },
2296
0
    { 0xB, 0 },
2297
0
    { 0xD, 3 },
2298
0
    { 0xE, 10 },
2299
0
    { 0xF, 11 },
2300
0
  };
2301
2302
0
  struct KeyType {
2303
0
    uint8_t Encoding;
2304
0
  };
2305
0
  KeyType Key = {Encoding};
2306
0
  auto Table = ArrayRef(Index);
2307
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2308
0
    [](const IndexType &LHS, const KeyType &RHS) {
2309
0
      if (LHS.Encoding < RHS.Encoding)
2310
0
        return true;
2311
0
      if (LHS.Encoding > RHS.Encoding)
2312
0
        return false;
2313
0
      return false;
2314
0
    });
2315
2316
0
  if (Idx == Table.end() ||
2317
0
      Key.Encoding != Idx->Encoding)
2318
0
    return nullptr;
2319
0
  return &DBsList[Idx->_index];
2320
0
}
2321
#endif
2322
2323
#ifdef GET_DBNXS_DECL
2324
const DBnXS *lookupDBnXSByName(StringRef Name);
2325
const DBnXS *lookupDBnXSByEncoding(uint8_t Encoding);
2326
const DBnXS *lookupDBnXSByImmValue(uint8_t ImmValue);
2327
#endif
2328
2329
#ifdef GET_DBNXS_IMPL
2330
constexpr DBnXS DBnXSsList[] = {
2331
  { "ishnxs", 0xB, 0x18,  {AArch64::FeatureXS}  }, // 0
2332
  { "nshnxs", 0x7, 0x14,  {AArch64::FeatureXS}  }, // 1
2333
  { "oshnxs", 0x3, 0x10,  {AArch64::FeatureXS}  }, // 2
2334
  { "synxs", 0xF, 0x1C,  {AArch64::FeatureXS}  }, // 3
2335
 };
2336
2337
0
const DBnXS *lookupDBnXSByName(StringRef Name) {
2338
0
  struct IndexType {
2339
0
    const char * Name;
2340
0
    unsigned _index;
2341
0
  };
2342
0
  static const struct IndexType Index[] = {
2343
0
    { "ISHNXS", 0 },
2344
0
    { "NSHNXS", 1 },
2345
0
    { "OSHNXS", 2 },
2346
0
    { "SYNXS", 3 },
2347
0
  };
2348
2349
0
  struct KeyType {
2350
0
    std::string Name;
2351
0
  };
2352
0
  KeyType Key = {Name.upper()};
2353
0
  auto Table = ArrayRef(Index);
2354
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2355
0
    [](const IndexType &LHS, const KeyType &RHS) {
2356
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2357
0
      if (CmpName < 0) return true;
2358
0
      if (CmpName > 0) return false;
2359
0
      return false;
2360
0
    });
2361
2362
0
  if (Idx == Table.end() ||
2363
0
      Key.Name != Idx->Name)
2364
0
    return nullptr;
2365
0
  return &DBnXSsList[Idx->_index];
2366
0
}
2367
2368
0
const DBnXS *lookupDBnXSByEncoding(uint8_t Encoding) {
2369
0
  struct IndexType {
2370
0
    uint8_t Encoding;
2371
0
    unsigned _index;
2372
0
  };
2373
0
  static const struct IndexType Index[] = {
2374
0
    { 0x3, 2 },
2375
0
    { 0x7, 1 },
2376
0
    { 0xB, 0 },
2377
0
    { 0xF, 3 },
2378
0
  };
2379
2380
0
  struct KeyType {
2381
0
    uint8_t Encoding;
2382
0
  };
2383
0
  KeyType Key = {Encoding};
2384
0
  auto Table = ArrayRef(Index);
2385
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2386
0
    [](const IndexType &LHS, const KeyType &RHS) {
2387
0
      if (LHS.Encoding < RHS.Encoding)
2388
0
        return true;
2389
0
      if (LHS.Encoding > RHS.Encoding)
2390
0
        return false;
2391
0
      return false;
2392
0
    });
2393
2394
0
  if (Idx == Table.end() ||
2395
0
      Key.Encoding != Idx->Encoding)
2396
0
    return nullptr;
2397
0
  return &DBnXSsList[Idx->_index];
2398
0
}
2399
2400
0
const DBnXS *lookupDBnXSByImmValue(uint8_t ImmValue) {
2401
0
  struct IndexType {
2402
0
    uint8_t ImmValue;
2403
0
    unsigned _index;
2404
0
  };
2405
0
  static const struct IndexType Index[] = {
2406
0
    { 0x10, 2 },
2407
0
    { 0x14, 1 },
2408
0
    { 0x18, 0 },
2409
0
    { 0x1C, 3 },
2410
0
  };
2411
2412
0
  struct KeyType {
2413
0
    uint8_t ImmValue;
2414
0
  };
2415
0
  KeyType Key = {ImmValue};
2416
0
  auto Table = ArrayRef(Index);
2417
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2418
0
    [](const IndexType &LHS, const KeyType &RHS) {
2419
0
      if (LHS.ImmValue < RHS.ImmValue)
2420
0
        return true;
2421
0
      if (LHS.ImmValue > RHS.ImmValue)
2422
0
        return false;
2423
0
      return false;
2424
0
    });
2425
2426
0
  if (Idx == Table.end() ||
2427
0
      Key.ImmValue != Idx->ImmValue)
2428
0
    return nullptr;
2429
0
  return &DBnXSsList[Idx->_index];
2430
0
}
2431
#endif
2432
2433
#ifdef GET_DC_DECL
2434
const DC *lookupDCByName(StringRef Name);
2435
const DC *lookupDCByEncoding(uint16_t Encoding);
2436
#endif
2437
2438
#ifdef GET_DC_IMPL
2439
constexpr DC DCsList[] = {
2440
  { "CGDSW", 0x3D6,  {AArch64::FeatureMTE}  }, // 0
2441
  { "CGDVAC", 0x1BD5,  {AArch64::FeatureMTE}  }, // 1
2442
  { "CGDVADP", 0x1BED,  {AArch64::FeatureMTE}  }, // 2
2443
  { "CGDVAP", 0x1BE5,  {AArch64::FeatureMTE}  }, // 3
2444
  { "CGSW", 0x3D4,  {AArch64::FeatureMTE}  }, // 4
2445
  { "CGVAC", 0x1BD3,  {AArch64::FeatureMTE}  }, // 5
2446
  { "CGVADP", 0x1BEB,  {AArch64::FeatureMTE}  }, // 6
2447
  { "CGVAP", 0x1BE3,  {AArch64::FeatureMTE}  }, // 7
2448
  { "CIGDPAE", 0x23F7,  {AArch64::FeatureMEC}  }, // 8
2449
  { "CIGDSW", 0x3F6,  {AArch64::FeatureMTE}  }, // 9
2450
  { "CIGDVAC", 0x1BF5,  {AArch64::FeatureMTE}  }, // 10
2451
  { "CIGSW", 0x3F4,  {AArch64::FeatureMTE}  }, // 11
2452
  { "CIGVAC", 0x1BF3,  {AArch64::FeatureMTE}  }, // 12
2453
  { "CIPAE", 0x23F0,  {AArch64::FeatureMEC}  }, // 13
2454
  { "CISW", 0x3F2,  {}  }, // 14
2455
  { "CIVAC", 0x1BF1,  {}  }, // 15
2456
  { "CSW", 0x3D2,  {}  }, // 16
2457
  { "CVAC", 0x1BD1,  {}  }, // 17
2458
  { "CVADP", 0x1BE9,  {AArch64::FeatureCacheDeepPersist}  }, // 18
2459
  { "CVAP", 0x1BE1,  {AArch64::FeatureCCPP}  }, // 19
2460
  { "CVAU", 0x1BD9,  {}  }, // 20
2461
  { "GVA", 0x1BA3,  {AArch64::FeatureMTE}  }, // 21
2462
  { "GZVA", 0x1BA4,  {AArch64::FeatureMTE}  }, // 22
2463
  { "IGDSW", 0x3B6,  {AArch64::FeatureMTE}  }, // 23
2464
  { "IGDVAC", 0x3B5,  {AArch64::FeatureMTE}  }, // 24
2465
  { "IGSW", 0x3B4,  {AArch64::FeatureMTE}  }, // 25
2466
  { "IGVAC", 0x3B3,  {AArch64::FeatureMTE}  }, // 26
2467
  { "ISW", 0x3B2,  {}  }, // 27
2468
  { "IVAC", 0x3B1,  {}  }, // 28
2469
  { "ZVA", 0x1BA1,  {}  }, // 29
2470
 };
2471
2472
0
const DC *lookupDCByName(StringRef Name) {
2473
0
  struct IndexType {
2474
0
    const char * Name;
2475
0
    unsigned _index;
2476
0
  };
2477
0
  static const struct IndexType Index[] = {
2478
0
    { "CGDSW", 0 },
2479
0
    { "CGDVAC", 1 },
2480
0
    { "CGDVADP", 2 },
2481
0
    { "CGDVAP", 3 },
2482
0
    { "CGSW", 4 },
2483
0
    { "CGVAC", 5 },
2484
0
    { "CGVADP", 6 },
2485
0
    { "CGVAP", 7 },
2486
0
    { "CIGDPAE", 8 },
2487
0
    { "CIGDSW", 9 },
2488
0
    { "CIGDVAC", 10 },
2489
0
    { "CIGSW", 11 },
2490
0
    { "CIGVAC", 12 },
2491
0
    { "CIPAE", 13 },
2492
0
    { "CISW", 14 },
2493
0
    { "CIVAC", 15 },
2494
0
    { "CSW", 16 },
2495
0
    { "CVAC", 17 },
2496
0
    { "CVADP", 18 },
2497
0
    { "CVAP", 19 },
2498
0
    { "CVAU", 20 },
2499
0
    { "GVA", 21 },
2500
0
    { "GZVA", 22 },
2501
0
    { "IGDSW", 23 },
2502
0
    { "IGDVAC", 24 },
2503
0
    { "IGSW", 25 },
2504
0
    { "IGVAC", 26 },
2505
0
    { "ISW", 27 },
2506
0
    { "IVAC", 28 },
2507
0
    { "ZVA", 29 },
2508
0
  };
2509
2510
0
  struct KeyType {
2511
0
    std::string Name;
2512
0
  };
2513
0
  KeyType Key = {Name.upper()};
2514
0
  auto Table = ArrayRef(Index);
2515
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2516
0
    [](const IndexType &LHS, const KeyType &RHS) {
2517
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2518
0
      if (CmpName < 0) return true;
2519
0
      if (CmpName > 0) return false;
2520
0
      return false;
2521
0
    });
2522
2523
0
  if (Idx == Table.end() ||
2524
0
      Key.Name != Idx->Name)
2525
0
    return nullptr;
2526
0
  return &DCsList[Idx->_index];
2527
0
}
2528
2529
0
const DC *lookupDCByEncoding(uint16_t Encoding) {
2530
0
  struct IndexType {
2531
0
    uint16_t Encoding;
2532
0
    unsigned _index;
2533
0
  };
2534
0
  static const struct IndexType Index[] = {
2535
0
    { 0x3B1, 28 },
2536
0
    { 0x3B2, 27 },
2537
0
    { 0x3B3, 26 },
2538
0
    { 0x3B4, 25 },
2539
0
    { 0x3B5, 24 },
2540
0
    { 0x3B6, 23 },
2541
0
    { 0x3D2, 16 },
2542
0
    { 0x3D4, 4 },
2543
0
    { 0x3D6, 0 },
2544
0
    { 0x3F2, 14 },
2545
0
    { 0x3F4, 11 },
2546
0
    { 0x3F6, 9 },
2547
0
    { 0x1BA1, 29 },
2548
0
    { 0x1BA3, 21 },
2549
0
    { 0x1BA4, 22 },
2550
0
    { 0x1BD1, 17 },
2551
0
    { 0x1BD3, 5 },
2552
0
    { 0x1BD5, 1 },
2553
0
    { 0x1BD9, 20 },
2554
0
    { 0x1BE1, 19 },
2555
0
    { 0x1BE3, 7 },
2556
0
    { 0x1BE5, 3 },
2557
0
    { 0x1BE9, 18 },
2558
0
    { 0x1BEB, 6 },
2559
0
    { 0x1BED, 2 },
2560
0
    { 0x1BF1, 15 },
2561
0
    { 0x1BF3, 12 },
2562
0
    { 0x1BF5, 10 },
2563
0
    { 0x23F0, 13 },
2564
0
    { 0x23F7, 8 },
2565
0
  };
2566
2567
0
  struct KeyType {
2568
0
    uint16_t Encoding;
2569
0
  };
2570
0
  KeyType Key = {Encoding};
2571
0
  auto Table = ArrayRef(Index);
2572
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2573
0
    [](const IndexType &LHS, const KeyType &RHS) {
2574
0
      if (LHS.Encoding < RHS.Encoding)
2575
0
        return true;
2576
0
      if (LHS.Encoding > RHS.Encoding)
2577
0
        return false;
2578
0
      return false;
2579
0
    });
2580
2581
0
  if (Idx == Table.end() ||
2582
0
      Key.Encoding != Idx->Encoding)
2583
0
    return nullptr;
2584
0
  return &DCsList[Idx->_index];
2585
0
}
2586
#endif
2587
2588
#ifdef GET_EXACTFPIMM_DECL
2589
const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum);
2590
const ExactFPImm *lookupExactFPImmByRepr(StringRef Repr);
2591
#endif
2592
2593
#ifdef GET_EXACTFPIMM_IMPL
2594
constexpr ExactFPImm ExactFPImmsList[] = {
2595
  { "half", 0x1, "0.5" }, // 0
2596
  { "one", 0x2, "1.0" }, // 1
2597
  { "two", 0x3, "2.0" }, // 2
2598
  { "zero", 0x0, "0.0" }, // 3
2599
 };
2600
2601
0
const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum) {
2602
0
  struct IndexType {
2603
0
    uint8_t Enum;
2604
0
    unsigned _index;
2605
0
  };
2606
0
  static const struct IndexType Index[] = {
2607
0
    { 0x0, 3 },
2608
0
    { 0x1, 0 },
2609
0
    { 0x2, 1 },
2610
0
    { 0x3, 2 },
2611
0
  };
2612
2613
0
  auto Table = ArrayRef(Index);
2614
0
  size_t Idx = Enum;
2615
0
  return Idx >= Table.size() ? nullptr : &ExactFPImmsList[Table[Idx]._index];
2616
0
}
2617
2618
0
const ExactFPImm *lookupExactFPImmByRepr(StringRef Repr) {
2619
0
  struct IndexType {
2620
0
    const char * Repr;
2621
0
    unsigned _index;
2622
0
  };
2623
0
  static const struct IndexType Index[] = {
2624
0
    { "0.0", 3 },
2625
0
    { "0.5", 0 },
2626
0
    { "1.0", 1 },
2627
0
    { "2.0", 2 },
2628
0
  };
2629
2630
0
  struct KeyType {
2631
0
    std::string Repr;
2632
0
  };
2633
0
  KeyType Key = {Repr.upper()};
2634
0
  auto Table = ArrayRef(Index);
2635
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2636
0
    [](const IndexType &LHS, const KeyType &RHS) {
2637
0
      int CmpRepr = StringRef(LHS.Repr).compare(RHS.Repr);
2638
0
      if (CmpRepr < 0) return true;
2639
0
      if (CmpRepr > 0) return false;
2640
0
      return false;
2641
0
    });
2642
2643
0
  if (Idx == Table.end() ||
2644
0
      Key.Repr != Idx->Repr)
2645
0
    return nullptr;
2646
0
  return &ExactFPImmsList[Idx->_index];
2647
0
}
2648
#endif
2649
2650
#ifdef GET_IC_DECL
2651
const IC *lookupICByName(StringRef Name);
2652
const IC *lookupICByEncoding(uint16_t Encoding);
2653
#endif
2654
2655
#ifdef GET_IC_IMPL
2656
constexpr IC ICsList[] = {
2657
  { "IALLU", 0x3A8, false }, // 0
2658
  { "IALLUIS", 0x388, false }, // 1
2659
  { "IVAU", 0x1BA9, true }, // 2
2660
 };
2661
2662
0
const IC *lookupICByName(StringRef Name) {
2663
0
  struct IndexType {
2664
0
    const char * Name;
2665
0
    unsigned _index;
2666
0
  };
2667
0
  static const struct IndexType Index[] = {
2668
0
    { "IALLU", 0 },
2669
0
    { "IALLUIS", 1 },
2670
0
    { "IVAU", 2 },
2671
0
  };
2672
2673
0
  struct KeyType {
2674
0
    std::string Name;
2675
0
  };
2676
0
  KeyType Key = {Name.upper()};
2677
0
  auto Table = ArrayRef(Index);
2678
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2679
0
    [](const IndexType &LHS, const KeyType &RHS) {
2680
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2681
0
      if (CmpName < 0) return true;
2682
0
      if (CmpName > 0) return false;
2683
0
      return false;
2684
0
    });
2685
2686
0
  if (Idx == Table.end() ||
2687
0
      Key.Name != Idx->Name)
2688
0
    return nullptr;
2689
0
  return &ICsList[Idx->_index];
2690
0
}
2691
2692
0
const IC *lookupICByEncoding(uint16_t Encoding) {
2693
0
  struct IndexType {
2694
0
    uint16_t Encoding;
2695
0
    unsigned _index;
2696
0
  };
2697
0
  static const struct IndexType Index[] = {
2698
0
    { 0x388, 1 },
2699
0
    { 0x3A8, 0 },
2700
0
    { 0x1BA9, 2 },
2701
0
  };
2702
2703
0
  struct KeyType {
2704
0
    uint16_t Encoding;
2705
0
  };
2706
0
  KeyType Key = {Encoding};
2707
0
  auto Table = ArrayRef(Index);
2708
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2709
0
    [](const IndexType &LHS, const KeyType &RHS) {
2710
0
      if (LHS.Encoding < RHS.Encoding)
2711
0
        return true;
2712
0
      if (LHS.Encoding > RHS.Encoding)
2713
0
        return false;
2714
0
      return false;
2715
0
    });
2716
2717
0
  if (Idx == Table.end() ||
2718
0
      Key.Encoding != Idx->Encoding)
2719
0
    return nullptr;
2720
0
  return &ICsList[Idx->_index];
2721
0
}
2722
#endif
2723
2724
#ifdef GET_ISB_DECL
2725
const ISB *lookupISBByName(StringRef Name);
2726
const ISB *lookupISBByEncoding(uint8_t Encoding);
2727
#endif
2728
2729
#ifdef GET_ISB_IMPL
2730
constexpr ISB ISBsList[] = {
2731
  { "sy", 0xF }, // 0
2732
 };
2733
2734
0
const ISB *lookupISBByName(StringRef Name) {
2735
0
  struct IndexType {
2736
0
    const char * Name;
2737
0
    unsigned _index;
2738
0
  };
2739
0
  static const struct IndexType Index[] = {
2740
0
    { "SY", 0 },
2741
0
  };
2742
2743
0
  struct KeyType {
2744
0
    std::string Name;
2745
0
  };
2746
0
  KeyType Key = {Name.upper()};
2747
0
  auto Table = ArrayRef(Index);
2748
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2749
0
    [](const IndexType &LHS, const KeyType &RHS) {
2750
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2751
0
      if (CmpName < 0) return true;
2752
0
      if (CmpName > 0) return false;
2753
0
      return false;
2754
0
    });
2755
2756
0
  if (Idx == Table.end() ||
2757
0
      Key.Name != Idx->Name)
2758
0
    return nullptr;
2759
0
  return &ISBsList[Idx->_index];
2760
0
}
2761
2762
0
const ISB *lookupISBByEncoding(uint8_t Encoding) {
2763
0
  struct IndexType {
2764
0
    uint8_t Encoding;
2765
0
    unsigned _index;
2766
0
  };
2767
0
  static const struct IndexType Index[] = {
2768
0
    { 0xF, 0 },
2769
0
  };
2770
2771
0
  struct KeyType {
2772
0
    uint8_t Encoding;
2773
0
  };
2774
0
  KeyType Key = {Encoding};
2775
0
  auto Table = ArrayRef(Index);
2776
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2777
0
    [](const IndexType &LHS, const KeyType &RHS) {
2778
0
      if (LHS.Encoding < RHS.Encoding)
2779
0
        return true;
2780
0
      if (LHS.Encoding > RHS.Encoding)
2781
0
        return false;
2782
0
      return false;
2783
0
    });
2784
2785
0
  if (Idx == Table.end() ||
2786
0
      Key.Encoding != Idx->Encoding)
2787
0
    return nullptr;
2788
0
  return &ISBsList[Idx->_index];
2789
0
}
2790
#endif
2791
2792
#ifdef GET_PRFM_DECL
2793
const PRFM *lookupPRFMByName(StringRef Name);
2794
const PRFM *lookupPRFMByEncoding(uint8_t Encoding);
2795
#endif
2796
2797
#ifdef GET_PRFM_IMPL
2798
constexpr PRFM PRFMsList[] = {
2799
  { "pldl1keep", 0x0,  {}  }, // 0
2800
  { "pldl1strm", 0x1,  {}  }, // 1
2801
  { "pldl2keep", 0x2,  {}  }, // 2
2802
  { "pldl2strm", 0x3,  {}  }, // 3
2803
  { "pldl3keep", 0x4,  {}  }, // 4
2804
  { "pldl3strm", 0x5,  {}  }, // 5
2805
  { "pldslckeep", 0x6,  {AArch64::FeaturePRFM_SLC}  }, // 6
2806
  { "pldslcstrm", 0x7,  {AArch64::FeaturePRFM_SLC}  }, // 7
2807
  { "plil1keep", 0x8,  {}  }, // 8
2808
  { "plil1strm", 0x9,  {}  }, // 9
2809
  { "plil2keep", 0xA,  {}  }, // 10
2810
  { "plil2strm", 0xB,  {}  }, // 11
2811
  { "plil3keep", 0xC,  {}  }, // 12
2812
  { "plil3strm", 0xD,  {}  }, // 13
2813
  { "plislckeep", 0xE,  {AArch64::FeaturePRFM_SLC}  }, // 14
2814
  { "plislcstrm", 0xF,  {AArch64::FeaturePRFM_SLC}  }, // 15
2815
  { "pstl1keep", 0x10,  {}  }, // 16
2816
  { "pstl1strm", 0x11,  {}  }, // 17
2817
  { "pstl2keep", 0x12,  {}  }, // 18
2818
  { "pstl2strm", 0x13,  {}  }, // 19
2819
  { "pstl3keep", 0x14,  {}  }, // 20
2820
  { "pstl3strm", 0x15,  {}  }, // 21
2821
  { "pstslckeep", 0x16,  {AArch64::FeaturePRFM_SLC}  }, // 22
2822
  { "pstslcstrm", 0x17,  {AArch64::FeaturePRFM_SLC}  }, // 23
2823
 };
2824
2825
0
const PRFM *lookupPRFMByName(StringRef Name) {
2826
0
  struct IndexType {
2827
0
    const char * Name;
2828
0
    unsigned _index;
2829
0
  };
2830
0
  static const struct IndexType Index[] = {
2831
0
    { "PLDL1KEEP", 0 },
2832
0
    { "PLDL1STRM", 1 },
2833
0
    { "PLDL2KEEP", 2 },
2834
0
    { "PLDL2STRM", 3 },
2835
0
    { "PLDL3KEEP", 4 },
2836
0
    { "PLDL3STRM", 5 },
2837
0
    { "PLDSLCKEEP", 6 },
2838
0
    { "PLDSLCSTRM", 7 },
2839
0
    { "PLIL1KEEP", 8 },
2840
0
    { "PLIL1STRM", 9 },
2841
0
    { "PLIL2KEEP", 10 },
2842
0
    { "PLIL2STRM", 11 },
2843
0
    { "PLIL3KEEP", 12 },
2844
0
    { "PLIL3STRM", 13 },
2845
0
    { "PLISLCKEEP", 14 },
2846
0
    { "PLISLCSTRM", 15 },
2847
0
    { "PSTL1KEEP", 16 },
2848
0
    { "PSTL1STRM", 17 },
2849
0
    { "PSTL2KEEP", 18 },
2850
0
    { "PSTL2STRM", 19 },
2851
0
    { "PSTL3KEEP", 20 },
2852
0
    { "PSTL3STRM", 21 },
2853
0
    { "PSTSLCKEEP", 22 },
2854
0
    { "PSTSLCSTRM", 23 },
2855
0
  };
2856
2857
0
  struct KeyType {
2858
0
    std::string Name;
2859
0
  };
2860
0
  KeyType Key = {Name.upper()};
2861
0
  auto Table = ArrayRef(Index);
2862
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2863
0
    [](const IndexType &LHS, const KeyType &RHS) {
2864
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2865
0
      if (CmpName < 0) return true;
2866
0
      if (CmpName > 0) return false;
2867
0
      return false;
2868
0
    });
2869
2870
0
  if (Idx == Table.end() ||
2871
0
      Key.Name != Idx->Name)
2872
0
    return nullptr;
2873
0
  return &PRFMsList[Idx->_index];
2874
0
}
2875
2876
0
const PRFM *lookupPRFMByEncoding(uint8_t Encoding) {
2877
0
  struct IndexType {
2878
0
    uint8_t Encoding;
2879
0
    unsigned _index;
2880
0
  };
2881
0
  static const struct IndexType Index[] = {
2882
0
    { 0x0, 0 },
2883
0
    { 0x1, 1 },
2884
0
    { 0x2, 2 },
2885
0
    { 0x3, 3 },
2886
0
    { 0x4, 4 },
2887
0
    { 0x5, 5 },
2888
0
    { 0x6, 6 },
2889
0
    { 0x7, 7 },
2890
0
    { 0x8, 8 },
2891
0
    { 0x9, 9 },
2892
0
    { 0xA, 10 },
2893
0
    { 0xB, 11 },
2894
0
    { 0xC, 12 },
2895
0
    { 0xD, 13 },
2896
0
    { 0xE, 14 },
2897
0
    { 0xF, 15 },
2898
0
    { 0x10, 16 },
2899
0
    { 0x11, 17 },
2900
0
    { 0x12, 18 },
2901
0
    { 0x13, 19 },
2902
0
    { 0x14, 20 },
2903
0
    { 0x15, 21 },
2904
0
    { 0x16, 22 },
2905
0
    { 0x17, 23 },
2906
0
  };
2907
2908
0
  auto Table = ArrayRef(Index);
2909
0
  size_t Idx = Encoding;
2910
0
  return Idx >= Table.size() ? nullptr : &PRFMsList[Table[Idx]._index];
2911
0
}
2912
#endif
2913
2914
#ifdef GET_PSB_DECL
2915
const PSB *lookupPSBByName(StringRef Name);
2916
const PSB *lookupPSBByEncoding(uint8_t Encoding);
2917
#endif
2918
2919
#ifdef GET_PSB_IMPL
2920
constexpr PSB PSBsList[] = {
2921
  { "csync", 0x11 }, // 0
2922
 };
2923
2924
0
const PSB *lookupPSBByName(StringRef Name) {
2925
0
  struct IndexType {
2926
0
    const char * Name;
2927
0
    unsigned _index;
2928
0
  };
2929
0
  static const struct IndexType Index[] = {
2930
0
    { "CSYNC", 0 },
2931
0
  };
2932
2933
0
  struct KeyType {
2934
0
    std::string Name;
2935
0
  };
2936
0
  KeyType Key = {Name.upper()};
2937
0
  auto Table = ArrayRef(Index);
2938
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2939
0
    [](const IndexType &LHS, const KeyType &RHS) {
2940
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
2941
0
      if (CmpName < 0) return true;
2942
0
      if (CmpName > 0) return false;
2943
0
      return false;
2944
0
    });
2945
2946
0
  if (Idx == Table.end() ||
2947
0
      Key.Name != Idx->Name)
2948
0
    return nullptr;
2949
0
  return &PSBsList[Idx->_index];
2950
0
}
2951
2952
0
const PSB *lookupPSBByEncoding(uint8_t Encoding) {
2953
0
  struct IndexType {
2954
0
    uint8_t Encoding;
2955
0
    unsigned _index;
2956
0
  };
2957
0
  static const struct IndexType Index[] = {
2958
0
    { 0x11, 0 },
2959
0
  };
2960
2961
0
  struct KeyType {
2962
0
    uint8_t Encoding;
2963
0
  };
2964
0
  KeyType Key = {Encoding};
2965
0
  auto Table = ArrayRef(Index);
2966
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
2967
0
    [](const IndexType &LHS, const KeyType &RHS) {
2968
0
      if (LHS.Encoding < RHS.Encoding)
2969
0
        return true;
2970
0
      if (LHS.Encoding > RHS.Encoding)
2971
0
        return false;
2972
0
      return false;
2973
0
    });
2974
2975
0
  if (Idx == Table.end() ||
2976
0
      Key.Encoding != Idx->Encoding)
2977
0
    return nullptr;
2978
0
  return &PSBsList[Idx->_index];
2979
0
}
2980
#endif
2981
2982
#ifdef GET_PSTATEIMM0_1_DECL
2983
const PStateImm0_1 *lookupPStateImm0_1ByName(StringRef Name);
2984
const PStateImm0_1 *lookupPStateImm0_1ByEncoding(uint16_t Encoding);
2985
#endif
2986
2987
#ifdef GET_PSTATEIMM0_1_IMPL
2988
constexpr PStateImm0_1 PStateImm0_1sList[] = {
2989
  { "ALLINT", 0x8,  {AArch64::FeatureNMI}  }, // 0
2990
  { "PM", 0x48,  {}  }, // 1
2991
 };
2992
2993
0
const PStateImm0_1 *lookupPStateImm0_1ByName(StringRef Name) {
2994
0
  struct IndexType {
2995
0
    const char * Name;
2996
0
    unsigned _index;
2997
0
  };
2998
0
  static const struct IndexType Index[] = {
2999
0
    { "ALLINT", 0 },
3000
0
    { "PM", 1 },
3001
0
  };
3002
3003
0
  struct KeyType {
3004
0
    std::string Name;
3005
0
  };
3006
0
  KeyType Key = {Name.upper()};
3007
0
  auto Table = ArrayRef(Index);
3008
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3009
0
    [](const IndexType &LHS, const KeyType &RHS) {
3010
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3011
0
      if (CmpName < 0) return true;
3012
0
      if (CmpName > 0) return false;
3013
0
      return false;
3014
0
    });
3015
3016
0
  if (Idx == Table.end() ||
3017
0
      Key.Name != Idx->Name)
3018
0
    return nullptr;
3019
0
  return &PStateImm0_1sList[Idx->_index];
3020
0
}
3021
3022
0
const PStateImm0_1 *lookupPStateImm0_1ByEncoding(uint16_t Encoding) {
3023
0
  struct IndexType {
3024
0
    uint16_t Encoding;
3025
0
    unsigned _index;
3026
0
  };
3027
0
  static const struct IndexType Index[] = {
3028
0
    { 0x8, 0 },
3029
0
    { 0x48, 1 },
3030
0
  };
3031
3032
0
  struct KeyType {
3033
0
    uint16_t Encoding;
3034
0
  };
3035
0
  KeyType Key = {Encoding};
3036
0
  auto Table = ArrayRef(Index);
3037
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3038
0
    [](const IndexType &LHS, const KeyType &RHS) {
3039
0
      if (LHS.Encoding < RHS.Encoding)
3040
0
        return true;
3041
0
      if (LHS.Encoding > RHS.Encoding)
3042
0
        return false;
3043
0
      return false;
3044
0
    });
3045
3046
0
  if (Idx == Table.end() ||
3047
0
      Key.Encoding != Idx->Encoding)
3048
0
    return nullptr;
3049
0
  return &PStateImm0_1sList[Idx->_index];
3050
0
}
3051
#endif
3052
3053
#ifdef GET_PSTATEIMM0_15_DECL
3054
const PStateImm0_15 *lookupPStateImm0_15ByName(StringRef Name);
3055
const PStateImm0_15 *lookupPStateImm0_15ByEncoding(uint8_t Encoding);
3056
#endif
3057
3058
#ifdef GET_PSTATEIMM0_15_IMPL
3059
constexpr PStateImm0_15 PStateImm0_15sList[] = {
3060
  { "DAIFClr", 0x1F,  {}  }, // 0
3061
  { "DAIFSet", 0x1E,  {}  }, // 1
3062
  { "DIT", 0x1A,  {AArch64::FeatureDIT}  }, // 2
3063
  { "PAN", 0x4,  {AArch64::FeaturePAN}  }, // 3
3064
  { "SPSel", 0x5,  {}  }, // 4
3065
  { "SSBS", 0x19,  {AArch64::FeatureSSBS}  }, // 5
3066
  { "TCO", 0x1C,  {AArch64::FeatureMTE}  }, // 6
3067
  { "UAO", 0x3,  {AArch64::FeaturePsUAO}  }, // 7
3068
 };
3069
3070
0
const PStateImm0_15 *lookupPStateImm0_15ByName(StringRef Name) {
3071
0
  struct IndexType {
3072
0
    const char * Name;
3073
0
    unsigned _index;
3074
0
  };
3075
0
  static const struct IndexType Index[] = {
3076
0
    { "DAIFCLR", 0 },
3077
0
    { "DAIFSET", 1 },
3078
0
    { "DIT", 2 },
3079
0
    { "PAN", 3 },
3080
0
    { "SPSEL", 4 },
3081
0
    { "SSBS", 5 },
3082
0
    { "TCO", 6 },
3083
0
    { "UAO", 7 },
3084
0
  };
3085
3086
0
  struct KeyType {
3087
0
    std::string Name;
3088
0
  };
3089
0
  KeyType Key = {Name.upper()};
3090
0
  auto Table = ArrayRef(Index);
3091
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3092
0
    [](const IndexType &LHS, const KeyType &RHS) {
3093
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3094
0
      if (CmpName < 0) return true;
3095
0
      if (CmpName > 0) return false;
3096
0
      return false;
3097
0
    });
3098
3099
0
  if (Idx == Table.end() ||
3100
0
      Key.Name != Idx->Name)
3101
0
    return nullptr;
3102
0
  return &PStateImm0_15sList[Idx->_index];
3103
0
}
3104
3105
0
const PStateImm0_15 *lookupPStateImm0_15ByEncoding(uint8_t Encoding) {
3106
0
  struct IndexType {
3107
0
    uint8_t Encoding;
3108
0
    unsigned _index;
3109
0
  };
3110
0
  static const struct IndexType Index[] = {
3111
0
    { 0x3, 7 },
3112
0
    { 0x4, 3 },
3113
0
    { 0x5, 4 },
3114
0
    { 0x19, 5 },
3115
0
    { 0x1A, 2 },
3116
0
    { 0x1C, 6 },
3117
0
    { 0x1E, 1 },
3118
0
    { 0x1F, 0 },
3119
0
  };
3120
3121
0
  struct KeyType {
3122
0
    uint8_t Encoding;
3123
0
  };
3124
0
  KeyType Key = {Encoding};
3125
0
  auto Table = ArrayRef(Index);
3126
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3127
0
    [](const IndexType &LHS, const KeyType &RHS) {
3128
0
      if (LHS.Encoding < RHS.Encoding)
3129
0
        return true;
3130
0
      if (LHS.Encoding > RHS.Encoding)
3131
0
        return false;
3132
0
      return false;
3133
0
    });
3134
3135
0
  if (Idx == Table.end() ||
3136
0
      Key.Encoding != Idx->Encoding)
3137
0
    return nullptr;
3138
0
  return &PStateImm0_15sList[Idx->_index];
3139
0
}
3140
#endif
3141
3142
#ifdef GET_RPRFM_DECL
3143
const RPRFM *lookupRPRFMByName(StringRef Name);
3144
const RPRFM *lookupRPRFMByEncoding(uint8_t Encoding);
3145
#endif
3146
3147
#ifdef GET_RPRFM_IMPL
3148
constexpr RPRFM RPRFMsList[] = {
3149
  { "pldkeep", 0x0,  {}  }, // 0
3150
  { "pldstrm", 0x4,  {}  }, // 1
3151
  { "pstkeep", 0x1,  {}  }, // 2
3152
  { "pststrm", 0x5,  {}  }, // 3
3153
 };
3154
3155
0
const RPRFM *lookupRPRFMByName(StringRef Name) {
3156
0
  struct IndexType {
3157
0
    const char * Name;
3158
0
    unsigned _index;
3159
0
  };
3160
0
  static const struct IndexType Index[] = {
3161
0
    { "PLDKEEP", 0 },
3162
0
    { "PLDSTRM", 1 },
3163
0
    { "PSTKEEP", 2 },
3164
0
    { "PSTSTRM", 3 },
3165
0
  };
3166
3167
0
  struct KeyType {
3168
0
    std::string Name;
3169
0
  };
3170
0
  KeyType Key = {Name.upper()};
3171
0
  auto Table = ArrayRef(Index);
3172
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3173
0
    [](const IndexType &LHS, const KeyType &RHS) {
3174
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3175
0
      if (CmpName < 0) return true;
3176
0
      if (CmpName > 0) return false;
3177
0
      return false;
3178
0
    });
3179
3180
0
  if (Idx == Table.end() ||
3181
0
      Key.Name != Idx->Name)
3182
0
    return nullptr;
3183
0
  return &RPRFMsList[Idx->_index];
3184
0
}
3185
3186
0
const RPRFM *lookupRPRFMByEncoding(uint8_t Encoding) {
3187
0
  struct IndexType {
3188
0
    uint8_t Encoding;
3189
0
    unsigned _index;
3190
0
  };
3191
0
  static const struct IndexType Index[] = {
3192
0
    { 0x0, 0 },
3193
0
    { 0x1, 2 },
3194
0
    { 0x4, 1 },
3195
0
    { 0x5, 3 },
3196
0
  };
3197
3198
0
  struct KeyType {
3199
0
    uint8_t Encoding;
3200
0
  };
3201
0
  KeyType Key = {Encoding};
3202
0
  auto Table = ArrayRef(Index);
3203
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3204
0
    [](const IndexType &LHS, const KeyType &RHS) {
3205
0
      if (LHS.Encoding < RHS.Encoding)
3206
0
        return true;
3207
0
      if (LHS.Encoding > RHS.Encoding)
3208
0
        return false;
3209
0
      return false;
3210
0
    });
3211
3212
0
  if (Idx == Table.end() ||
3213
0
      Key.Encoding != Idx->Encoding)
3214
0
    return nullptr;
3215
0
  return &RPRFMsList[Idx->_index];
3216
0
}
3217
#endif
3218
3219
#ifdef GET_SVCR_DECL
3220
const SVCR *lookupSVCRByName(StringRef Name);
3221
const SVCR *lookupSVCRByEncoding(uint8_t Encoding);
3222
#endif
3223
3224
#ifdef GET_SVCR_IMPL
3225
constexpr SVCR SVCRsList[] = {
3226
  { "SVCRSM", 0x1,  {AArch64::FeatureSME}  }, // 0
3227
  { "SVCRSMZA", 0x3,  {AArch64::FeatureSME}  }, // 1
3228
  { "SVCRZA", 0x2,  {AArch64::FeatureSME}  }, // 2
3229
 };
3230
3231
0
const SVCR *lookupSVCRByName(StringRef Name) {
3232
0
  struct IndexType {
3233
0
    const char * Name;
3234
0
    unsigned _index;
3235
0
  };
3236
0
  static const struct IndexType Index[] = {
3237
0
    { "SVCRSM", 0 },
3238
0
    { "SVCRSMZA", 1 },
3239
0
    { "SVCRZA", 2 },
3240
0
  };
3241
3242
0
  struct KeyType {
3243
0
    std::string Name;
3244
0
  };
3245
0
  KeyType Key = {Name.upper()};
3246
0
  auto Table = ArrayRef(Index);
3247
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3248
0
    [](const IndexType &LHS, const KeyType &RHS) {
3249
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3250
0
      if (CmpName < 0) return true;
3251
0
      if (CmpName > 0) return false;
3252
0
      return false;
3253
0
    });
3254
3255
0
  if (Idx == Table.end() ||
3256
0
      Key.Name != Idx->Name)
3257
0
    return nullptr;
3258
0
  return &SVCRsList[Idx->_index];
3259
0
}
3260
3261
0
const SVCR *lookupSVCRByEncoding(uint8_t Encoding) {
3262
0
  struct IndexType {
3263
0
    uint8_t Encoding;
3264
0
    unsigned _index;
3265
0
  };
3266
0
  static const struct IndexType Index[] = {
3267
0
    { 0x1, 0 },
3268
0
    { 0x2, 2 },
3269
0
    { 0x3, 1 },
3270
0
  };
3271
3272
0
  struct KeyType {
3273
0
    uint8_t Encoding;
3274
0
  };
3275
0
  KeyType Key = {Encoding};
3276
0
  auto Table = ArrayRef(Index);
3277
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3278
0
    [](const IndexType &LHS, const KeyType &RHS) {
3279
0
      if (LHS.Encoding < RHS.Encoding)
3280
0
        return true;
3281
0
      if (LHS.Encoding > RHS.Encoding)
3282
0
        return false;
3283
0
      return false;
3284
0
    });
3285
3286
0
  if (Idx == Table.end() ||
3287
0
      Key.Encoding != Idx->Encoding)
3288
0
    return nullptr;
3289
0
  return &SVCRsList[Idx->_index];
3290
0
}
3291
#endif
3292
3293
#ifdef GET_SVEPREDPAT_DECL
3294
const SVEPREDPAT *lookupSVEPREDPATByName(StringRef Name);
3295
const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint8_t Encoding);
3296
#endif
3297
3298
#ifdef GET_SVEPREDPAT_IMPL
3299
constexpr SVEPREDPAT SVEPREDPATsList[] = {
3300
  { "all", 0x1F }, // 0
3301
  { "mul3", 0x1E }, // 1
3302
  { "mul4", 0x1D }, // 2
3303
  { "pow2", 0x0 }, // 3
3304
  { "vl1", 0x1 }, // 4
3305
  { "vl128", 0xC }, // 5
3306
  { "vl16", 0x9 }, // 6
3307
  { "vl2", 0x2 }, // 7
3308
  { "vl256", 0xD }, // 8
3309
  { "vl3", 0x3 }, // 9
3310
  { "vl32", 0xA }, // 10
3311
  { "vl4", 0x4 }, // 11
3312
  { "vl5", 0x5 }, // 12
3313
  { "vl6", 0x6 }, // 13
3314
  { "vl64", 0xB }, // 14
3315
  { "vl7", 0x7 }, // 15
3316
  { "vl8", 0x8 }, // 16
3317
 };
3318
3319
0
const SVEPREDPAT *lookupSVEPREDPATByName(StringRef Name) {
3320
0
  struct IndexType {
3321
0
    const char * Name;
3322
0
    unsigned _index;
3323
0
  };
3324
0
  static const struct IndexType Index[] = {
3325
0
    { "ALL", 0 },
3326
0
    { "MUL3", 1 },
3327
0
    { "MUL4", 2 },
3328
0
    { "POW2", 3 },
3329
0
    { "VL1", 4 },
3330
0
    { "VL128", 5 },
3331
0
    { "VL16", 6 },
3332
0
    { "VL2", 7 },
3333
0
    { "VL256", 8 },
3334
0
    { "VL3", 9 },
3335
0
    { "VL32", 10 },
3336
0
    { "VL4", 11 },
3337
0
    { "VL5", 12 },
3338
0
    { "VL6", 13 },
3339
0
    { "VL64", 14 },
3340
0
    { "VL7", 15 },
3341
0
    { "VL8", 16 },
3342
0
  };
3343
3344
0
  struct KeyType {
3345
0
    std::string Name;
3346
0
  };
3347
0
  KeyType Key = {Name.upper()};
3348
0
  auto Table = ArrayRef(Index);
3349
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3350
0
    [](const IndexType &LHS, const KeyType &RHS) {
3351
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3352
0
      if (CmpName < 0) return true;
3353
0
      if (CmpName > 0) return false;
3354
0
      return false;
3355
0
    });
3356
3357
0
  if (Idx == Table.end() ||
3358
0
      Key.Name != Idx->Name)
3359
0
    return nullptr;
3360
0
  return &SVEPREDPATsList[Idx->_index];
3361
0
}
3362
3363
0
const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint8_t Encoding) {
3364
0
  struct IndexType {
3365
0
    uint8_t Encoding;
3366
0
    unsigned _index;
3367
0
  };
3368
0
  static const struct IndexType Index[] = {
3369
0
    { 0x0, 3 },
3370
0
    { 0x1, 4 },
3371
0
    { 0x2, 7 },
3372
0
    { 0x3, 9 },
3373
0
    { 0x4, 11 },
3374
0
    { 0x5, 12 },
3375
0
    { 0x6, 13 },
3376
0
    { 0x7, 15 },
3377
0
    { 0x8, 16 },
3378
0
    { 0x9, 6 },
3379
0
    { 0xA, 10 },
3380
0
    { 0xB, 14 },
3381
0
    { 0xC, 5 },
3382
0
    { 0xD, 8 },
3383
0
    { 0x1D, 2 },
3384
0
    { 0x1E, 1 },
3385
0
    { 0x1F, 0 },
3386
0
  };
3387
3388
0
  struct KeyType {
3389
0
    uint8_t Encoding;
3390
0
  };
3391
0
  KeyType Key = {Encoding};
3392
0
  auto Table = ArrayRef(Index);
3393
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3394
0
    [](const IndexType &LHS, const KeyType &RHS) {
3395
0
      if (LHS.Encoding < RHS.Encoding)
3396
0
        return true;
3397
0
      if (LHS.Encoding > RHS.Encoding)
3398
0
        return false;
3399
0
      return false;
3400
0
    });
3401
3402
0
  if (Idx == Table.end() ||
3403
0
      Key.Encoding != Idx->Encoding)
3404
0
    return nullptr;
3405
0
  return &SVEPREDPATsList[Idx->_index];
3406
0
}
3407
#endif
3408
3409
#ifdef GET_SVEPRFM_DECL
3410
const SVEPRFM *lookupSVEPRFMByName(StringRef Name);
3411
const SVEPRFM *lookupSVEPRFMByEncoding(uint8_t Encoding);
3412
#endif
3413
3414
#ifdef GET_SVEPRFM_IMPL
3415
constexpr SVEPRFM SVEPRFMsList[] = {
3416
  { "pldl1keep", 0x0,  {AArch64::FeatureSVE}  }, // 0
3417
  { "pldl1strm", 0x1,  {AArch64::FeatureSVE}  }, // 1
3418
  { "pldl2keep", 0x2,  {AArch64::FeatureSVE}  }, // 2
3419
  { "pldl2strm", 0x3,  {AArch64::FeatureSVE}  }, // 3
3420
  { "pldl3keep", 0x4,  {AArch64::FeatureSVE}  }, // 4
3421
  { "pldl3strm", 0x5,  {AArch64::FeatureSVE}  }, // 5
3422
  { "pstl1keep", 0x8,  {AArch64::FeatureSVE}  }, // 6
3423
  { "pstl1strm", 0x9,  {AArch64::FeatureSVE}  }, // 7
3424
  { "pstl2keep", 0xA,  {AArch64::FeatureSVE}  }, // 8
3425
  { "pstl2strm", 0xB,  {AArch64::FeatureSVE}  }, // 9
3426
  { "pstl3keep", 0xC,  {AArch64::FeatureSVE}  }, // 10
3427
  { "pstl3strm", 0xD,  {AArch64::FeatureSVE}  }, // 11
3428
 };
3429
3430
0
const SVEPRFM *lookupSVEPRFMByName(StringRef Name) {
3431
0
  struct IndexType {
3432
0
    const char * Name;
3433
0
    unsigned _index;
3434
0
  };
3435
0
  static const struct IndexType Index[] = {
3436
0
    { "PLDL1KEEP", 0 },
3437
0
    { "PLDL1STRM", 1 },
3438
0
    { "PLDL2KEEP", 2 },
3439
0
    { "PLDL2STRM", 3 },
3440
0
    { "PLDL3KEEP", 4 },
3441
0
    { "PLDL3STRM", 5 },
3442
0
    { "PSTL1KEEP", 6 },
3443
0
    { "PSTL1STRM", 7 },
3444
0
    { "PSTL2KEEP", 8 },
3445
0
    { "PSTL2STRM", 9 },
3446
0
    { "PSTL3KEEP", 10 },
3447
0
    { "PSTL3STRM", 11 },
3448
0
  };
3449
3450
0
  struct KeyType {
3451
0
    std::string Name;
3452
0
  };
3453
0
  KeyType Key = {Name.upper()};
3454
0
  auto Table = ArrayRef(Index);
3455
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3456
0
    [](const IndexType &LHS, const KeyType &RHS) {
3457
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3458
0
      if (CmpName < 0) return true;
3459
0
      if (CmpName > 0) return false;
3460
0
      return false;
3461
0
    });
3462
3463
0
  if (Idx == Table.end() ||
3464
0
      Key.Name != Idx->Name)
3465
0
    return nullptr;
3466
0
  return &SVEPRFMsList[Idx->_index];
3467
0
}
3468
3469
0
const SVEPRFM *lookupSVEPRFMByEncoding(uint8_t Encoding) {
3470
0
  struct IndexType {
3471
0
    uint8_t Encoding;
3472
0
    unsigned _index;
3473
0
  };
3474
0
  static const struct IndexType Index[] = {
3475
0
    { 0x0, 0 },
3476
0
    { 0x1, 1 },
3477
0
    { 0x2, 2 },
3478
0
    { 0x3, 3 },
3479
0
    { 0x4, 4 },
3480
0
    { 0x5, 5 },
3481
0
    { 0x8, 6 },
3482
0
    { 0x9, 7 },
3483
0
    { 0xA, 8 },
3484
0
    { 0xB, 9 },
3485
0
    { 0xC, 10 },
3486
0
    { 0xD, 11 },
3487
0
  };
3488
3489
0
  struct KeyType {
3490
0
    uint8_t Encoding;
3491
0
  };
3492
0
  KeyType Key = {Encoding};
3493
0
  auto Table = ArrayRef(Index);
3494
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3495
0
    [](const IndexType &LHS, const KeyType &RHS) {
3496
0
      if (LHS.Encoding < RHS.Encoding)
3497
0
        return true;
3498
0
      if (LHS.Encoding > RHS.Encoding)
3499
0
        return false;
3500
0
      return false;
3501
0
    });
3502
3503
0
  if (Idx == Table.end() ||
3504
0
      Key.Encoding != Idx->Encoding)
3505
0
    return nullptr;
3506
0
  return &SVEPRFMsList[Idx->_index];
3507
0
}
3508
#endif
3509
3510
#ifdef GET_SVEVECLENSPECIFIER_DECL
3511
const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByName(StringRef Name);
3512
const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByEncoding(uint8_t Encoding);
3513
#endif
3514
3515
#ifdef GET_SVEVECLENSPECIFIER_IMPL
3516
constexpr SVEVECLENSPECIFIER SVEVECLENSPECIFIERsList[] = {
3517
  { "vlx2", 0x0 }, // 0
3518
  { "vlx4", 0x1 }, // 1
3519
 };
3520
3521
0
const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByName(StringRef Name) {
3522
0
  struct IndexType {
3523
0
    const char * Name;
3524
0
    unsigned _index;
3525
0
  };
3526
0
  static const struct IndexType Index[] = {
3527
0
    { "VLX2", 0 },
3528
0
    { "VLX4", 1 },
3529
0
  };
3530
3531
0
  struct KeyType {
3532
0
    std::string Name;
3533
0
  };
3534
0
  KeyType Key = {Name.upper()};
3535
0
  auto Table = ArrayRef(Index);
3536
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3537
0
    [](const IndexType &LHS, const KeyType &RHS) {
3538
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3539
0
      if (CmpName < 0) return true;
3540
0
      if (CmpName > 0) return false;
3541
0
      return false;
3542
0
    });
3543
3544
0
  if (Idx == Table.end() ||
3545
0
      Key.Name != Idx->Name)
3546
0
    return nullptr;
3547
0
  return &SVEVECLENSPECIFIERsList[Idx->_index];
3548
0
}
3549
3550
0
const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByEncoding(uint8_t Encoding) {
3551
0
  struct IndexType {
3552
0
    uint8_t Encoding;
3553
0
    unsigned _index;
3554
0
  };
3555
0
  static const struct IndexType Index[] = {
3556
0
    { 0x0, 0 },
3557
0
    { 0x1, 1 },
3558
0
  };
3559
3560
0
  auto Table = ArrayRef(Index);
3561
0
  size_t Idx = Encoding;
3562
0
  return Idx >= Table.size() ? nullptr : &SVEVECLENSPECIFIERsList[Table[Idx]._index];
3563
0
}
3564
#endif
3565
3566
#ifdef GET_SYSREG_DECL
3567
const SysReg *lookupSysRegByName(StringRef Name);
3568
const SysReg *lookupSysRegByEncoding(uint16_t Encoding);
3569
#endif
3570
3571
#ifdef GET_SYSREG_IMPL
3572
constexpr SysReg SysRegsList[] = {
3573
  { "ACCDATA_EL1", "ACCDATA_EL1", 0xC685, true, true,  {AArch64::FeatureLS64}  }, // 0
3574
  { "ACTLR_EL1", "ACTLR_EL1", 0xC081, true, true,  {}  }, // 1
3575
  { "ACTLR_EL2", "ACTLR_EL2", 0xE081, true, true,  {}  }, // 2
3576
  { "ACTLR_EL3", "ACTLR_EL3", 0xF081, true, true,  {}  }, // 3
3577
  { "AFSR0_EL1", "AFSR0_EL1", 0xC288, true, true,  {}  }, // 4
3578
  { "AFSR0_EL12", "AFSR0_EL12", 0xEA88, true, true,  {AArch64::FeatureVH}  }, // 5
3579
  { "AFSR0_EL2", "AFSR0_EL2", 0xE288, true, true,  {}  }, // 6
3580
  { "AFSR0_EL3", "AFSR0_EL3", 0xF288, true, true,  {}  }, // 7
3581
  { "AFSR1_EL1", "AFSR1_EL1", 0xC289, true, true,  {}  }, // 8
3582
  { "AFSR1_EL12", "AFSR1_EL12", 0xEA89, true, true,  {AArch64::FeatureVH}  }, // 9
3583
  { "AFSR1_EL2", "AFSR1_EL2", 0xE289, true, true,  {}  }, // 10
3584
  { "AFSR1_EL3", "AFSR1_EL3", 0xF289, true, true,  {}  }, // 11
3585
  { "AIDR_EL1", "AIDR_EL1", 0xC807, true, false,  {}  }, // 12
3586
  { "ALLINT", "ALLINT", 0xC218, true, true,  {AArch64::FeatureNMI}  }, // 13
3587
  { "AMAIR2_EL1", "AMAIR2_EL1", 0xC519, true, true,  {}  }, // 14
3588
  { "AMAIR2_EL12", "AMAIR2_EL12", 0xED19, true, true,  {}  }, // 15
3589
  { "AMAIR2_EL2", "AMAIR2_EL2", 0xE519, true, true,  {}  }, // 16
3590
  { "AMAIR2_EL3", "AMAIR2_EL3", 0xF519, true, true,  {}  }, // 17
3591
  { "AMAIR_EL1", "AMAIR_EL1", 0xC518, true, true,  {}  }, // 18
3592
  { "AMAIR_EL12", "AMAIR_EL12", 0xED18, true, true,  {AArch64::FeatureVH}  }, // 19
3593
  { "AMAIR_EL2", "AMAIR_EL2", 0xE518, true, true,  {}  }, // 20
3594
  { "AMAIR_EL3", "AMAIR_EL3", 0xF518, true, true,  {}  }, // 21
3595
  { "AMCFGR_EL0", "AMCFGR_EL0", 0xDE91, true, false,  {AArch64::FeatureAM}  }, // 22
3596
  { "AMCG1IDR_EL0", "AMCG1IDR_EL0", 0xDE96, true, false,  {AArch64::FeatureAMVS}  }, // 23
3597
  { "AMCGCR_EL0", "AMCGCR_EL0", 0xDE92, true, false,  {AArch64::FeatureAM}  }, // 24
3598
  { "AMCNTENCLR0_EL0", "AMCNTENCLR0_EL0", 0xDE94, true, true,  {AArch64::FeatureAM}  }, // 25
3599
  { "AMCNTENCLR1_EL0", "AMCNTENCLR1_EL0", 0xDE98, true, true,  {AArch64::FeatureAM}  }, // 26
3600
  { "AMCNTENSET0_EL0", "AMCNTENSET0_EL0", 0xDE95, true, true,  {AArch64::FeatureAM}  }, // 27
3601
  { "AMCNTENSET1_EL0", "AMCNTENSET1_EL0", 0xDE99, true, true,  {AArch64::FeatureAM}  }, // 28
3602
  { "AMCR_EL0", "AMCR_EL0", 0xDE90, true, true,  {AArch64::FeatureAM}  }, // 29
3603
  { "AMEVCNTR00_EL0", "AMEVCNTR00_EL0", 0xDEA0, true, true,  {AArch64::FeatureAM}  }, // 30
3604
  { "AMEVCNTR01_EL0", "AMEVCNTR01_EL0", 0xDEA1, true, true,  {AArch64::FeatureAM}  }, // 31
3605
  { "AMEVCNTR02_EL0", "AMEVCNTR02_EL0", 0xDEA2, true, true,  {AArch64::FeatureAM}  }, // 32
3606
  { "AMEVCNTR03_EL0", "AMEVCNTR03_EL0", 0xDEA3, true, true,  {AArch64::FeatureAM}  }, // 33
3607
  { "AMEVCNTR10_EL0", "AMEVCNTR10_EL0", 0xDEE0, true, true,  {AArch64::FeatureAM}  }, // 34
3608
  { "AMEVCNTR110_EL0", "AMEVCNTR110_EL0", 0xDEEA, true, true,  {AArch64::FeatureAM}  }, // 35
3609
  { "AMEVCNTR111_EL0", "AMEVCNTR111_EL0", 0xDEEB, true, true,  {AArch64::FeatureAM}  }, // 36
3610
  { "AMEVCNTR112_EL0", "AMEVCNTR112_EL0", 0xDEEC, true, true,  {AArch64::FeatureAM}  }, // 37
3611
  { "AMEVCNTR113_EL0", "AMEVCNTR113_EL0", 0xDEED, true, true,  {AArch64::FeatureAM}  }, // 38
3612
  { "AMEVCNTR114_EL0", "AMEVCNTR114_EL0", 0xDEEE, true, true,  {AArch64::FeatureAM}  }, // 39
3613
  { "AMEVCNTR115_EL0", "AMEVCNTR115_EL0", 0xDEEF, true, true,  {AArch64::FeatureAM}  }, // 40
3614
  { "AMEVCNTR11_EL0", "AMEVCNTR11_EL0", 0xDEE1, true, true,  {AArch64::FeatureAM}  }, // 41
3615
  { "AMEVCNTR12_EL0", "AMEVCNTR12_EL0", 0xDEE2, true, true,  {AArch64::FeatureAM}  }, // 42
3616
  { "AMEVCNTR13_EL0", "AMEVCNTR13_EL0", 0xDEE3, true, true,  {AArch64::FeatureAM}  }, // 43
3617
  { "AMEVCNTR14_EL0", "AMEVCNTR14_EL0", 0xDEE4, true, true,  {AArch64::FeatureAM}  }, // 44
3618
  { "AMEVCNTR15_EL0", "AMEVCNTR15_EL0", 0xDEE5, true, true,  {AArch64::FeatureAM}  }, // 45
3619
  { "AMEVCNTR16_EL0", "AMEVCNTR16_EL0", 0xDEE6, true, true,  {AArch64::FeatureAM}  }, // 46
3620
  { "AMEVCNTR17_EL0", "AMEVCNTR17_EL0", 0xDEE7, true, true,  {AArch64::FeatureAM}  }, // 47
3621
  { "AMEVCNTR18_EL0", "AMEVCNTR18_EL0", 0xDEE8, true, true,  {AArch64::FeatureAM}  }, // 48
3622
  { "AMEVCNTR19_EL0", "AMEVCNTR19_EL0", 0xDEE9, true, true,  {AArch64::FeatureAM}  }, // 49
3623
  { "AMEVCNTVOFF00_EL2", "AMEVCNTVOFF00_EL2", 0xE6C0, true, true,  {AArch64::FeatureAMVS}  }, // 50
3624
  { "AMEVCNTVOFF010_EL2", "AMEVCNTVOFF010_EL2", 0xE6CA, true, true,  {AArch64::FeatureAMVS}  }, // 51
3625
  { "AMEVCNTVOFF011_EL2", "AMEVCNTVOFF011_EL2", 0xE6CB, true, true,  {AArch64::FeatureAMVS}  }, // 52
3626
  { "AMEVCNTVOFF012_EL2", "AMEVCNTVOFF012_EL2", 0xE6CC, true, true,  {AArch64::FeatureAMVS}  }, // 53
3627
  { "AMEVCNTVOFF013_EL2", "AMEVCNTVOFF013_EL2", 0xE6CD, true, true,  {AArch64::FeatureAMVS}  }, // 54
3628
  { "AMEVCNTVOFF014_EL2", "AMEVCNTVOFF014_EL2", 0xE6CE, true, true,  {AArch64::FeatureAMVS}  }, // 55
3629
  { "AMEVCNTVOFF015_EL2", "AMEVCNTVOFF015_EL2", 0xE6CF, true, true,  {AArch64::FeatureAMVS}  }, // 56
3630
  { "AMEVCNTVOFF01_EL2", "AMEVCNTVOFF01_EL2", 0xE6C1, true, true,  {AArch64::FeatureAMVS}  }, // 57
3631
  { "AMEVCNTVOFF02_EL2", "AMEVCNTVOFF02_EL2", 0xE6C2, true, true,  {AArch64::FeatureAMVS}  }, // 58
3632
  { "AMEVCNTVOFF03_EL2", "AMEVCNTVOFF03_EL2", 0xE6C3, true, true,  {AArch64::FeatureAMVS}  }, // 59
3633
  { "AMEVCNTVOFF04_EL2", "AMEVCNTVOFF04_EL2", 0xE6C4, true, true,  {AArch64::FeatureAMVS}  }, // 60
3634
  { "AMEVCNTVOFF05_EL2", "AMEVCNTVOFF05_EL2", 0xE6C5, true, true,  {AArch64::FeatureAMVS}  }, // 61
3635
  { "AMEVCNTVOFF06_EL2", "AMEVCNTVOFF06_EL2", 0xE6C6, true, true,  {AArch64::FeatureAMVS}  }, // 62
3636
  { "AMEVCNTVOFF07_EL2", "AMEVCNTVOFF07_EL2", 0xE6C7, true, true,  {AArch64::FeatureAMVS}  }, // 63
3637
  { "AMEVCNTVOFF08_EL2", "AMEVCNTVOFF08_EL2", 0xE6C8, true, true,  {AArch64::FeatureAMVS}  }, // 64
3638
  { "AMEVCNTVOFF09_EL2", "AMEVCNTVOFF09_EL2", 0xE6C9, true, true,  {AArch64::FeatureAMVS}  }, // 65
3639
  { "AMEVCNTVOFF10_EL2", "AMEVCNTVOFF10_EL2", 0xE6D0, true, true,  {AArch64::FeatureAMVS}  }, // 66
3640
  { "AMEVCNTVOFF110_EL2", "AMEVCNTVOFF110_EL2", 0xE6DA, true, true,  {AArch64::FeatureAMVS}  }, // 67
3641
  { "AMEVCNTVOFF111_EL2", "AMEVCNTVOFF111_EL2", 0xE6DB, true, true,  {AArch64::FeatureAMVS}  }, // 68
3642
  { "AMEVCNTVOFF112_EL2", "AMEVCNTVOFF112_EL2", 0xE6DC, true, true,  {AArch64::FeatureAMVS}  }, // 69
3643
  { "AMEVCNTVOFF113_EL2", "AMEVCNTVOFF113_EL2", 0xE6DD, true, true,  {AArch64::FeatureAMVS}  }, // 70
3644
  { "AMEVCNTVOFF114_EL2", "AMEVCNTVOFF114_EL2", 0xE6DE, true, true,  {AArch64::FeatureAMVS}  }, // 71
3645
  { "AMEVCNTVOFF115_EL2", "AMEVCNTVOFF115_EL2", 0xE6DF, true, true,  {AArch64::FeatureAMVS}  }, // 72
3646
  { "AMEVCNTVOFF11_EL2", "AMEVCNTVOFF11_EL2", 0xE6D1, true, true,  {AArch64::FeatureAMVS}  }, // 73
3647
  { "AMEVCNTVOFF12_EL2", "AMEVCNTVOFF12_EL2", 0xE6D2, true, true,  {AArch64::FeatureAMVS}  }, // 74
3648
  { "AMEVCNTVOFF13_EL2", "AMEVCNTVOFF13_EL2", 0xE6D3, true, true,  {AArch64::FeatureAMVS}  }, // 75
3649
  { "AMEVCNTVOFF14_EL2", "AMEVCNTVOFF14_EL2", 0xE6D4, true, true,  {AArch64::FeatureAMVS}  }, // 76
3650
  { "AMEVCNTVOFF15_EL2", "AMEVCNTVOFF15_EL2", 0xE6D5, true, true,  {AArch64::FeatureAMVS}  }, // 77
3651
  { "AMEVCNTVOFF16_EL2", "AMEVCNTVOFF16_EL2", 0xE6D6, true, true,  {AArch64::FeatureAMVS}  }, // 78
3652
  { "AMEVCNTVOFF17_EL2", "AMEVCNTVOFF17_EL2", 0xE6D7, true, true,  {AArch64::FeatureAMVS}  }, // 79
3653
  { "AMEVCNTVOFF18_EL2", "AMEVCNTVOFF18_EL2", 0xE6D8, true, true,  {AArch64::FeatureAMVS}  }, // 80
3654
  { "AMEVCNTVOFF19_EL2", "AMEVCNTVOFF19_EL2", 0xE6D9, true, true,  {AArch64::FeatureAMVS}  }, // 81
3655
  { "AMEVTYPER00_EL0", "AMEVTYPER00_EL0", 0xDEB0, true, false,  {AArch64::FeatureAM}  }, // 82
3656
  { "AMEVTYPER01_EL0", "AMEVTYPER01_EL0", 0xDEB1, true, false,  {AArch64::FeatureAM}  }, // 83
3657
  { "AMEVTYPER02_EL0", "AMEVTYPER02_EL0", 0xDEB2, true, false,  {AArch64::FeatureAM}  }, // 84
3658
  { "AMEVTYPER03_EL0", "AMEVTYPER03_EL0", 0xDEB3, true, false,  {AArch64::FeatureAM}  }, // 85
3659
  { "AMEVTYPER10_EL0", "AMEVTYPER10_EL0", 0xDEF0, true, true,  {AArch64::FeatureAM}  }, // 86
3660
  { "AMEVTYPER110_EL0", "AMEVTYPER110_EL0", 0xDEFA, true, true,  {AArch64::FeatureAM}  }, // 87
3661
  { "AMEVTYPER111_EL0", "AMEVTYPER111_EL0", 0xDEFB, true, true,  {AArch64::FeatureAM}  }, // 88
3662
  { "AMEVTYPER112_EL0", "AMEVTYPER112_EL0", 0xDEFC, true, true,  {AArch64::FeatureAM}  }, // 89
3663
  { "AMEVTYPER113_EL0", "AMEVTYPER113_EL0", 0xDEFD, true, true,  {AArch64::FeatureAM}  }, // 90
3664
  { "AMEVTYPER114_EL0", "AMEVTYPER114_EL0", 0xDEFE, true, true,  {AArch64::FeatureAM}  }, // 91
3665
  { "AMEVTYPER115_EL0", "AMEVTYPER115_EL0", 0xDEFF, true, true,  {AArch64::FeatureAM}  }, // 92
3666
  { "AMEVTYPER11_EL0", "AMEVTYPER11_EL0", 0xDEF1, true, true,  {AArch64::FeatureAM}  }, // 93
3667
  { "AMEVTYPER12_EL0", "AMEVTYPER12_EL0", 0xDEF2, true, true,  {AArch64::FeatureAM}  }, // 94
3668
  { "AMEVTYPER13_EL0", "AMEVTYPER13_EL0", 0xDEF3, true, true,  {AArch64::FeatureAM}  }, // 95
3669
  { "AMEVTYPER14_EL0", "AMEVTYPER14_EL0", 0xDEF4, true, true,  {AArch64::FeatureAM}  }, // 96
3670
  { "AMEVTYPER15_EL0", "AMEVTYPER15_EL0", 0xDEF5, true, true,  {AArch64::FeatureAM}  }, // 97
3671
  { "AMEVTYPER16_EL0", "AMEVTYPER16_EL0", 0xDEF6, true, true,  {AArch64::FeatureAM}  }, // 98
3672
  { "AMEVTYPER17_EL0", "AMEVTYPER17_EL0", 0xDEF7, true, true,  {AArch64::FeatureAM}  }, // 99
3673
  { "AMEVTYPER18_EL0", "AMEVTYPER18_EL0", 0xDEF8, true, true,  {AArch64::FeatureAM}  }, // 100
3674
  { "AMEVTYPER19_EL0", "AMEVTYPER19_EL0", 0xDEF9, true, true,  {AArch64::FeatureAM}  }, // 101
3675
  { "AMUSERENR_EL0", "AMUSERENR_EL0", 0xDE93, true, true,  {AArch64::FeatureAM}  }, // 102
3676
  { "APDAKeyHi_EL1", "APDAKeyHi_EL1", 0xC111, true, true,  {AArch64::FeaturePAuth}  }, // 103
3677
  { "APDAKeyLo_EL1", "APDAKeyLo_EL1", 0xC110, true, true,  {AArch64::FeaturePAuth}  }, // 104
3678
  { "APDBKeyHi_EL1", "APDBKeyHi_EL1", 0xC113, true, true,  {AArch64::FeaturePAuth}  }, // 105
3679
  { "APDBKeyLo_EL1", "APDBKeyLo_EL1", 0xC112, true, true,  {AArch64::FeaturePAuth}  }, // 106
3680
  { "APGAKeyHi_EL1", "APGAKeyHi_EL1", 0xC119, true, true,  {AArch64::FeaturePAuth}  }, // 107
3681
  { "APGAKeyLo_EL1", "APGAKeyLo_EL1", 0xC118, true, true,  {AArch64::FeaturePAuth}  }, // 108
3682
  { "APIAKeyHi_EL1", "APIAKeyHi_EL1", 0xC109, true, true,  {AArch64::FeaturePAuth}  }, // 109
3683
  { "APIAKeyLo_EL1", "APIAKeyLo_EL1", 0xC108, true, true,  {AArch64::FeaturePAuth}  }, // 110
3684
  { "APIBKeyHi_EL1", "APIBKeyHi_EL1", 0xC10B, true, true,  {AArch64::FeaturePAuth}  }, // 111
3685
  { "APIBKeyLo_EL1", "APIBKeyLo_EL1", 0xC10A, true, true,  {AArch64::FeaturePAuth}  }, // 112
3686
  { "BRBCR_EL1", "BRBCR_EL1", 0x8C80, true, true,  {AArch64::FeatureBRBE}  }, // 113
3687
  { "BRBCR_EL12", "BRBCR_EL12", 0xAC80, true, true,  {AArch64::FeatureBRBE}  }, // 114
3688
  { "BRBCR_EL2", "BRBCR_EL2", 0xA480, true, true,  {AArch64::FeatureBRBE}  }, // 115
3689
  { "BRBFCR_EL1", "BRBFCR_EL1", 0x8C81, true, true,  {AArch64::FeatureBRBE}  }, // 116
3690
  { "BRBIDR0_EL1", "BRBIDR0_EL1", 0x8C90, true, false,  {AArch64::FeatureBRBE}  }, // 117
3691
  { "BRBINF0_EL1", "BRBINF0_EL1", 0x8C00, true, false,  {AArch64::FeatureBRBE}  }, // 118
3692
  { "BRBINF10_EL1", "BRBINF10_EL1", 0x8C50, true, false,  {AArch64::FeatureBRBE}  }, // 119
3693
  { "BRBINF11_EL1", "BRBINF11_EL1", 0x8C58, true, false,  {AArch64::FeatureBRBE}  }, // 120
3694
  { "BRBINF12_EL1", "BRBINF12_EL1", 0x8C60, true, false,  {AArch64::FeatureBRBE}  }, // 121
3695
  { "BRBINF13_EL1", "BRBINF13_EL1", 0x8C68, true, false,  {AArch64::FeatureBRBE}  }, // 122
3696
  { "BRBINF14_EL1", "BRBINF14_EL1", 0x8C70, true, false,  {AArch64::FeatureBRBE}  }, // 123
3697
  { "BRBINF15_EL1", "BRBINF15_EL1", 0x8C78, true, false,  {AArch64::FeatureBRBE}  }, // 124
3698
  { "BRBINF16_EL1", "BRBINF16_EL1", 0x8C04, true, false,  {AArch64::FeatureBRBE}  }, // 125
3699
  { "BRBINF17_EL1", "BRBINF17_EL1", 0x8C0C, true, false,  {AArch64::FeatureBRBE}  }, // 126
3700
  { "BRBINF18_EL1", "BRBINF18_EL1", 0x8C14, true, false,  {AArch64::FeatureBRBE}  }, // 127
3701
  { "BRBINF19_EL1", "BRBINF19_EL1", 0x8C1C, true, false,  {AArch64::FeatureBRBE}  }, // 128
3702
  { "BRBINF1_EL1", "BRBINF1_EL1", 0x8C08, true, false,  {AArch64::FeatureBRBE}  }, // 129
3703
  { "BRBINF20_EL1", "BRBINF20_EL1", 0x8C24, true, false,  {AArch64::FeatureBRBE}  }, // 130
3704
  { "BRBINF21_EL1", "BRBINF21_EL1", 0x8C2C, true, false,  {AArch64::FeatureBRBE}  }, // 131
3705
  { "BRBINF22_EL1", "BRBINF22_EL1", 0x8C34, true, false,  {AArch64::FeatureBRBE}  }, // 132
3706
  { "BRBINF23_EL1", "BRBINF23_EL1", 0x8C3C, true, false,  {AArch64::FeatureBRBE}  }, // 133
3707
  { "BRBINF24_EL1", "BRBINF24_EL1", 0x8C44, true, false,  {AArch64::FeatureBRBE}  }, // 134
3708
  { "BRBINF25_EL1", "BRBINF25_EL1", 0x8C4C, true, false,  {AArch64::FeatureBRBE}  }, // 135
3709
  { "BRBINF26_EL1", "BRBINF26_EL1", 0x8C54, true, false,  {AArch64::FeatureBRBE}  }, // 136
3710
  { "BRBINF27_EL1", "BRBINF27_EL1", 0x8C5C, true, false,  {AArch64::FeatureBRBE}  }, // 137
3711
  { "BRBINF28_EL1", "BRBINF28_EL1", 0x8C64, true, false,  {AArch64::FeatureBRBE}  }, // 138
3712
  { "BRBINF29_EL1", "BRBINF29_EL1", 0x8C6C, true, false,  {AArch64::FeatureBRBE}  }, // 139
3713
  { "BRBINF2_EL1", "BRBINF2_EL1", 0x8C10, true, false,  {AArch64::FeatureBRBE}  }, // 140
3714
  { "BRBINF30_EL1", "BRBINF30_EL1", 0x8C74, true, false,  {AArch64::FeatureBRBE}  }, // 141
3715
  { "BRBINF31_EL1", "BRBINF31_EL1", 0x8C7C, true, false,  {AArch64::FeatureBRBE}  }, // 142
3716
  { "BRBINF3_EL1", "BRBINF3_EL1", 0x8C18, true, false,  {AArch64::FeatureBRBE}  }, // 143
3717
  { "BRBINF4_EL1", "BRBINF4_EL1", 0x8C20, true, false,  {AArch64::FeatureBRBE}  }, // 144
3718
  { "BRBINF5_EL1", "BRBINF5_EL1", 0x8C28, true, false,  {AArch64::FeatureBRBE}  }, // 145
3719
  { "BRBINF6_EL1", "BRBINF6_EL1", 0x8C30, true, false,  {AArch64::FeatureBRBE}  }, // 146
3720
  { "BRBINF7_EL1", "BRBINF7_EL1", 0x8C38, true, false,  {AArch64::FeatureBRBE}  }, // 147
3721
  { "BRBINF8_EL1", "BRBINF8_EL1", 0x8C40, true, false,  {AArch64::FeatureBRBE}  }, // 148
3722
  { "BRBINF9_EL1", "BRBINF9_EL1", 0x8C48, true, false,  {AArch64::FeatureBRBE}  }, // 149
3723
  { "BRBINFINJ_EL1", "BRBINFINJ_EL1", 0x8C88, true, true,  {AArch64::FeatureBRBE}  }, // 150
3724
  { "BRBSRC0_EL1", "BRBSRC0_EL1", 0x8C01, true, false,  {AArch64::FeatureBRBE}  }, // 151
3725
  { "BRBSRC10_EL1", "BRBSRC10_EL1", 0x8C51, true, false,  {AArch64::FeatureBRBE}  }, // 152
3726
  { "BRBSRC11_EL1", "BRBSRC11_EL1", 0x8C59, true, false,  {AArch64::FeatureBRBE}  }, // 153
3727
  { "BRBSRC12_EL1", "BRBSRC12_EL1", 0x8C61, true, false,  {AArch64::FeatureBRBE}  }, // 154
3728
  { "BRBSRC13_EL1", "BRBSRC13_EL1", 0x8C69, true, false,  {AArch64::FeatureBRBE}  }, // 155
3729
  { "BRBSRC14_EL1", "BRBSRC14_EL1", 0x8C71, true, false,  {AArch64::FeatureBRBE}  }, // 156
3730
  { "BRBSRC15_EL1", "BRBSRC15_EL1", 0x8C79, true, false,  {AArch64::FeatureBRBE}  }, // 157
3731
  { "BRBSRC16_EL1", "BRBSRC16_EL1", 0x8C05, true, false,  {AArch64::FeatureBRBE}  }, // 158
3732
  { "BRBSRC17_EL1", "BRBSRC17_EL1", 0x8C0D, true, false,  {AArch64::FeatureBRBE}  }, // 159
3733
  { "BRBSRC18_EL1", "BRBSRC18_EL1", 0x8C15, true, false,  {AArch64::FeatureBRBE}  }, // 160
3734
  { "BRBSRC19_EL1", "BRBSRC19_EL1", 0x8C1D, true, false,  {AArch64::FeatureBRBE}  }, // 161
3735
  { "BRBSRC1_EL1", "BRBSRC1_EL1", 0x8C09, true, false,  {AArch64::FeatureBRBE}  }, // 162
3736
  { "BRBSRC20_EL1", "BRBSRC20_EL1", 0x8C25, true, false,  {AArch64::FeatureBRBE}  }, // 163
3737
  { "BRBSRC21_EL1", "BRBSRC21_EL1", 0x8C2D, true, false,  {AArch64::FeatureBRBE}  }, // 164
3738
  { "BRBSRC22_EL1", "BRBSRC22_EL1", 0x8C35, true, false,  {AArch64::FeatureBRBE}  }, // 165
3739
  { "BRBSRC23_EL1", "BRBSRC23_EL1", 0x8C3D, true, false,  {AArch64::FeatureBRBE}  }, // 166
3740
  { "BRBSRC24_EL1", "BRBSRC24_EL1", 0x8C45, true, false,  {AArch64::FeatureBRBE}  }, // 167
3741
  { "BRBSRC25_EL1", "BRBSRC25_EL1", 0x8C4D, true, false,  {AArch64::FeatureBRBE}  }, // 168
3742
  { "BRBSRC26_EL1", "BRBSRC26_EL1", 0x8C55, true, false,  {AArch64::FeatureBRBE}  }, // 169
3743
  { "BRBSRC27_EL1", "BRBSRC27_EL1", 0x8C5D, true, false,  {AArch64::FeatureBRBE}  }, // 170
3744
  { "BRBSRC28_EL1", "BRBSRC28_EL1", 0x8C65, true, false,  {AArch64::FeatureBRBE}  }, // 171
3745
  { "BRBSRC29_EL1", "BRBSRC29_EL1", 0x8C6D, true, false,  {AArch64::FeatureBRBE}  }, // 172
3746
  { "BRBSRC2_EL1", "BRBSRC2_EL1", 0x8C11, true, false,  {AArch64::FeatureBRBE}  }, // 173
3747
  { "BRBSRC30_EL1", "BRBSRC30_EL1", 0x8C75, true, false,  {AArch64::FeatureBRBE}  }, // 174
3748
  { "BRBSRC31_EL1", "BRBSRC31_EL1", 0x8C7D, true, false,  {AArch64::FeatureBRBE}  }, // 175
3749
  { "BRBSRC3_EL1", "BRBSRC3_EL1", 0x8C19, true, false,  {AArch64::FeatureBRBE}  }, // 176
3750
  { "BRBSRC4_EL1", "BRBSRC4_EL1", 0x8C21, true, false,  {AArch64::FeatureBRBE}  }, // 177
3751
  { "BRBSRC5_EL1", "BRBSRC5_EL1", 0x8C29, true, false,  {AArch64::FeatureBRBE}  }, // 178
3752
  { "BRBSRC6_EL1", "BRBSRC6_EL1", 0x8C31, true, false,  {AArch64::FeatureBRBE}  }, // 179
3753
  { "BRBSRC7_EL1", "BRBSRC7_EL1", 0x8C39, true, false,  {AArch64::FeatureBRBE}  }, // 180
3754
  { "BRBSRC8_EL1", "BRBSRC8_EL1", 0x8C41, true, false,  {AArch64::FeatureBRBE}  }, // 181
3755
  { "BRBSRC9_EL1", "BRBSRC9_EL1", 0x8C49, true, false,  {AArch64::FeatureBRBE}  }, // 182
3756
  { "BRBSRCINJ_EL1", "BRBSRCINJ_EL1", 0x8C89, true, true,  {AArch64::FeatureBRBE}  }, // 183
3757
  { "BRBTGT0_EL1", "BRBTGT0_EL1", 0x8C02, true, false,  {AArch64::FeatureBRBE}  }, // 184
3758
  { "BRBTGT10_EL1", "BRBTGT10_EL1", 0x8C52, true, false,  {AArch64::FeatureBRBE}  }, // 185
3759
  { "BRBTGT11_EL1", "BRBTGT11_EL1", 0x8C5A, true, false,  {AArch64::FeatureBRBE}  }, // 186
3760
  { "BRBTGT12_EL1", "BRBTGT12_EL1", 0x8C62, true, false,  {AArch64::FeatureBRBE}  }, // 187
3761
  { "BRBTGT13_EL1", "BRBTGT13_EL1", 0x8C6A, true, false,  {AArch64::FeatureBRBE}  }, // 188
3762
  { "BRBTGT14_EL1", "BRBTGT14_EL1", 0x8C72, true, false,  {AArch64::FeatureBRBE}  }, // 189
3763
  { "BRBTGT15_EL1", "BRBTGT15_EL1", 0x8C7A, true, false,  {AArch64::FeatureBRBE}  }, // 190
3764
  { "BRBTGT16_EL1", "BRBTGT16_EL1", 0x8C06, true, false,  {AArch64::FeatureBRBE}  }, // 191
3765
  { "BRBTGT17_EL1", "BRBTGT17_EL1", 0x8C0E, true, false,  {AArch64::FeatureBRBE}  }, // 192
3766
  { "BRBTGT18_EL1", "BRBTGT18_EL1", 0x8C16, true, false,  {AArch64::FeatureBRBE}  }, // 193
3767
  { "BRBTGT19_EL1", "BRBTGT19_EL1", 0x8C1E, true, false,  {AArch64::FeatureBRBE}  }, // 194
3768
  { "BRBTGT1_EL1", "BRBTGT1_EL1", 0x8C0A, true, false,  {AArch64::FeatureBRBE}  }, // 195
3769
  { "BRBTGT20_EL1", "BRBTGT20_EL1", 0x8C26, true, false,  {AArch64::FeatureBRBE}  }, // 196
3770
  { "BRBTGT21_EL1", "BRBTGT21_EL1", 0x8C2E, true, false,  {AArch64::FeatureBRBE}  }, // 197
3771
  { "BRBTGT22_EL1", "BRBTGT22_EL1", 0x8C36, true, false,  {AArch64::FeatureBRBE}  }, // 198
3772
  { "BRBTGT23_EL1", "BRBTGT23_EL1", 0x8C3E, true, false,  {AArch64::FeatureBRBE}  }, // 199
3773
  { "BRBTGT24_EL1", "BRBTGT24_EL1", 0x8C46, true, false,  {AArch64::FeatureBRBE}  }, // 200
3774
  { "BRBTGT25_EL1", "BRBTGT25_EL1", 0x8C4E, true, false,  {AArch64::FeatureBRBE}  }, // 201
3775
  { "BRBTGT26_EL1", "BRBTGT26_EL1", 0x8C56, true, false,  {AArch64::FeatureBRBE}  }, // 202
3776
  { "BRBTGT27_EL1", "BRBTGT27_EL1", 0x8C5E, true, false,  {AArch64::FeatureBRBE}  }, // 203
3777
  { "BRBTGT28_EL1", "BRBTGT28_EL1", 0x8C66, true, false,  {AArch64::FeatureBRBE}  }, // 204
3778
  { "BRBTGT29_EL1", "BRBTGT29_EL1", 0x8C6E, true, false,  {AArch64::FeatureBRBE}  }, // 205
3779
  { "BRBTGT2_EL1", "BRBTGT2_EL1", 0x8C12, true, false,  {AArch64::FeatureBRBE}  }, // 206
3780
  { "BRBTGT30_EL1", "BRBTGT30_EL1", 0x8C76, true, false,  {AArch64::FeatureBRBE}  }, // 207
3781
  { "BRBTGT31_EL1", "BRBTGT31_EL1", 0x8C7E, true, false,  {AArch64::FeatureBRBE}  }, // 208
3782
  { "BRBTGT3_EL1", "BRBTGT3_EL1", 0x8C1A, true, false,  {AArch64::FeatureBRBE}  }, // 209
3783
  { "BRBTGT4_EL1", "BRBTGT4_EL1", 0x8C22, true, false,  {AArch64::FeatureBRBE}  }, // 210
3784
  { "BRBTGT5_EL1", "BRBTGT5_EL1", 0x8C2A, true, false,  {AArch64::FeatureBRBE}  }, // 211
3785
  { "BRBTGT6_EL1", "BRBTGT6_EL1", 0x8C32, true, false,  {AArch64::FeatureBRBE}  }, // 212
3786
  { "BRBTGT7_EL1", "BRBTGT7_EL1", 0x8C3A, true, false,  {AArch64::FeatureBRBE}  }, // 213
3787
  { "BRBTGT8_EL1", "BRBTGT8_EL1", 0x8C42, true, false,  {AArch64::FeatureBRBE}  }, // 214
3788
  { "BRBTGT9_EL1", "BRBTGT9_EL1", 0x8C4A, true, false,  {AArch64::FeatureBRBE}  }, // 215
3789
  { "BRBTGTINJ_EL1", "BRBTGTINJ_EL1", 0x8C8A, true, true,  {AArch64::FeatureBRBE}  }, // 216
3790
  { "BRBTS_EL1", "BRBTS_EL1", 0x8C82, true, true,  {AArch64::FeatureBRBE}  }, // 217
3791
  { "CCSIDR2_EL1", "CCSIDR2_EL1", 0xC802, true, false,  {AArch64::FeatureCCIDX}  }, // 218
3792
  { "CCSIDR_EL1", "CCSIDR_EL1", 0xC800, true, false,  {}  }, // 219
3793
  { "CLIDR_EL1", "CLIDR_EL1", 0xC801, true, false,  {}  }, // 220
3794
  { "CNTFRQ_EL0", "CNTFRQ_EL0", 0xDF00, true, true,  {}  }, // 221
3795
  { "CNTHCTL_EL2", "CNTHCTL_EL2", 0xE708, true, true,  {}  }, // 222
3796
  { "CNTHPS_CTL_EL2", "CNTHPS_CTL_EL2", 0xE729, true, true,  {AArch64::FeatureSEL2}  }, // 223
3797
  { "CNTHPS_CVAL_EL2", "CNTHPS_CVAL_EL2", 0xE72A, true, true,  {AArch64::FeatureSEL2}  }, // 224
3798
  { "CNTHPS_TVAL_EL2", "CNTHPS_TVAL_EL2", 0xE728, true, true,  {AArch64::FeatureSEL2}  }, // 225
3799
  { "CNTHP_CTL_EL2", "CNTHP_CTL_EL2", 0xE711, true, true,  {}  }, // 226
3800
  { "CNTHP_CVAL_EL2", "CNTHP_CVAL_EL2", 0xE712, true, true,  {}  }, // 227
3801
  { "CNTHP_TVAL_EL2", "CNTHP_TVAL_EL2", 0xE710, true, true,  {}  }, // 228
3802
  { "CNTHVS_CTL_EL2", "CNTHVS_CTL_EL2", 0xE721, true, true,  {AArch64::FeatureSEL2}  }, // 229
3803
  { "CNTHVS_CVAL_EL2", "CNTHVS_CVAL_EL2", 0xE722, true, true,  {AArch64::FeatureSEL2}  }, // 230
3804
  { "CNTHVS_TVAL_EL2", "CNTHVS_TVAL_EL2", 0xE720, true, true,  {AArch64::FeatureSEL2}  }, // 231
3805
  { "CNTHV_CTL_EL2", "CNTHV_CTL_EL2", 0xE719, true, true,  {AArch64::FeatureVH}  }, // 232
3806
  { "CNTHV_CVAL_EL2", "CNTHV_CVAL_EL2", 0xE71A, true, true,  {AArch64::FeatureVH}  }, // 233
3807
  { "CNTHV_TVAL_EL2", "CNTHV_TVAL_EL2", 0xE718, true, true,  {AArch64::FeatureVH}  }, // 234
3808
  { "CNTISCALE_EL2", "CNTISCALE_EL2", 0xE705, true, true,  {AArch64::FeatureEnhancedCounterVirtualization}  }, // 235
3809
  { "CNTKCTL_EL1", "CNTKCTL_EL1", 0xC708, true, true,  {}  }, // 236
3810
  { "CNTKCTL_EL12", "CNTKCTL_EL12", 0xEF08, true, true,  {AArch64::FeatureVH}  }, // 237
3811
  { "CNTPCTSS_EL0", "CNTPCTSS_EL0", 0xDF05, true, false,  {AArch64::FeatureEnhancedCounterVirtualization}  }, // 238
3812
  { "CNTPCT_EL0", "CNTPCT_EL0", 0xDF01, true, false,  {}  }, // 239
3813
  { "CNTPOFF_EL2", "CNTPOFF_EL2", 0xE706, true, true,  {AArch64::FeatureEnhancedCounterVirtualization}  }, // 240
3814
  { "CNTPS_CTL_EL1", "CNTPS_CTL_EL1", 0xFF11, true, true,  {}  }, // 241
3815
  { "CNTPS_CVAL_EL1", "CNTPS_CVAL_EL1", 0xFF12, true, true,  {}  }, // 242
3816
  { "CNTPS_TVAL_EL1", "CNTPS_TVAL_EL1", 0xFF10, true, true,  {}  }, // 243
3817
  { "CNTP_CTL_EL0", "CNTP_CTL_EL0", 0xDF11, true, true,  {}  }, // 244
3818
  { "CNTP_CTL_EL02", "CNTP_CTL_EL02", 0xEF11, true, true,  {AArch64::FeatureVH}  }, // 245
3819
  { "CNTP_CVAL_EL0", "CNTP_CVAL_EL0", 0xDF12, true, true,  {}  }, // 246
3820
  { "CNTP_CVAL_EL02", "CNTP_CVAL_EL02", 0xEF12, true, true,  {AArch64::FeatureVH}  }, // 247
3821
  { "CNTP_TVAL_EL0", "CNTP_TVAL_EL0", 0xDF10, true, true,  {}  }, // 248
3822
  { "CNTP_TVAL_EL02", "CNTP_TVAL_EL02", 0xEF10, true, true,  {AArch64::FeatureVH}  }, // 249
3823
  { "CNTSCALE_EL2", "CNTSCALE_EL2", 0xE704, true, true,  {AArch64::FeatureEnhancedCounterVirtualization}  }, // 250
3824
  { "CNTVCTSS_EL0", "CNTVCTSS_EL0", 0xDF06, true, false,  {AArch64::FeatureEnhancedCounterVirtualization}  }, // 251
3825
  { "CNTVCT_EL0", "CNTVCT_EL0", 0xDF02, true, false,  {}  }, // 252
3826
  { "CNTVFRQ_EL2", "CNTVFRQ_EL2", 0xE707, true, true,  {AArch64::FeatureEnhancedCounterVirtualization}  }, // 253
3827
  { "CNTVOFF_EL2", "CNTVOFF_EL2", 0xE703, true, true,  {}  }, // 254
3828
  { "CNTV_CTL_EL0", "CNTV_CTL_EL0", 0xDF19, true, true,  {}  }, // 255
3829
  { "CNTV_CTL_EL02", "CNTV_CTL_EL02", 0xEF19, true, true,  {AArch64::FeatureVH}  }, // 256
3830
  { "CNTV_CVAL_EL0", "CNTV_CVAL_EL0", 0xDF1A, true, true,  {}  }, // 257
3831
  { "CNTV_CVAL_EL02", "CNTV_CVAL_EL02", 0xEF1A, true, true,  {AArch64::FeatureVH}  }, // 258
3832
  { "CNTV_TVAL_EL0", "CNTV_TVAL_EL0", 0xDF18, true, true,  {}  }, // 259
3833
  { "CNTV_TVAL_EL02", "CNTV_TVAL_EL02", 0xEF18, true, true,  {AArch64::FeatureVH}  }, // 260
3834
  { "CONTEXTIDR_EL1", "CONTEXTIDR_EL1", 0xC681, true, true,  {}  }, // 261
3835
  { "CONTEXTIDR_EL12", "CONTEXTIDR_EL12", 0xEE81, true, true,  {AArch64::FeatureVH}  }, // 262
3836
  { "CONTEXTIDR_EL2", "CONTEXTIDR_EL2", 0xE681, true, true,  {AArch64::FeatureCONTEXTIDREL2}  }, // 263
3837
  { "CPACR_EL1", "CPACR_EL1", 0xC082, true, true,  {}  }, // 264
3838
  { "CPACR_EL12", "CPACR_EL12", 0xE882, true, true,  {AArch64::FeatureVH}  }, // 265
3839
  { "CPM_IOACC_CTL_EL3", "CPM_IOACC_CTL_EL3", 0xFF90, true, true,  {AArch64::FeatureAppleA7SysReg}  }, // 266
3840
  { "CPTR_EL2", "CPTR_EL2", 0xE08A, true, true,  {}  }, // 267
3841
  { "CPTR_EL3", "CPTR_EL3", 0xF08A, true, true,  {}  }, // 268
3842
  { "CSSELR_EL1", "CSSELR_EL1", 0xD000, true, true,  {}  }, // 269
3843
  { "CTR_EL0", "CTR_EL0", 0xD801, true, false,  {}  }, // 270
3844
  { "CurrentEL", "CurrentEL", 0xC212, true, false,  {}  }, // 271
3845
  { "DACR32_EL2", "DACR32_EL2", 0xE180, true, true,  {}  }, // 272
3846
  { "DAIF", "DAIF", 0xDA11, true, true,  {}  }, // 273
3847
  { "DBGAUTHSTATUS_EL1", "DBGAUTHSTATUS_EL1", 0x83F6, true, false,  {}  }, // 274
3848
  { "DBGBCR0_EL1", "DBGBCR0_EL1", 0x8005, true, true,  {}  }, // 275
3849
  { "DBGBCR10_EL1", "DBGBCR10_EL1", 0x8055, true, true,  {}  }, // 276
3850
  { "DBGBCR11_EL1", "DBGBCR11_EL1", 0x805D, true, true,  {}  }, // 277
3851
  { "DBGBCR12_EL1", "DBGBCR12_EL1", 0x8065, true, true,  {}  }, // 278
3852
  { "DBGBCR13_EL1", "DBGBCR13_EL1", 0x806D, true, true,  {}  }, // 279
3853
  { "DBGBCR14_EL1", "DBGBCR14_EL1", 0x8075, true, true,  {}  }, // 280
3854
  { "DBGBCR15_EL1", "DBGBCR15_EL1", 0x807D, true, true,  {}  }, // 281
3855
  { "DBGBCR1_EL1", "DBGBCR1_EL1", 0x800D, true, true,  {}  }, // 282
3856
  { "DBGBCR2_EL1", "DBGBCR2_EL1", 0x8015, true, true,  {}  }, // 283
3857
  { "DBGBCR3_EL1", "DBGBCR3_EL1", 0x801D, true, true,  {}  }, // 284
3858
  { "DBGBCR4_EL1", "DBGBCR4_EL1", 0x8025, true, true,  {}  }, // 285
3859
  { "DBGBCR5_EL1", "DBGBCR5_EL1", 0x802D, true, true,  {}  }, // 286
3860
  { "DBGBCR6_EL1", "DBGBCR6_EL1", 0x8035, true, true,  {}  }, // 287
3861
  { "DBGBCR7_EL1", "DBGBCR7_EL1", 0x803D, true, true,  {}  }, // 288
3862
  { "DBGBCR8_EL1", "DBGBCR8_EL1", 0x8045, true, true,  {}  }, // 289
3863
  { "DBGBCR9_EL1", "DBGBCR9_EL1", 0x804D, true, true,  {}  }, // 290
3864
  { "DBGBVR0_EL1", "DBGBVR0_EL1", 0x8004, true, true,  {}  }, // 291
3865
  { "DBGBVR10_EL1", "DBGBVR10_EL1", 0x8054, true, true,  {}  }, // 292
3866
  { "DBGBVR11_EL1", "DBGBVR11_EL1", 0x805C, true, true,  {}  }, // 293
3867
  { "DBGBVR12_EL1", "DBGBVR12_EL1", 0x8064, true, true,  {}  }, // 294
3868
  { "DBGBVR13_EL1", "DBGBVR13_EL1", 0x806C, true, true,  {}  }, // 295
3869
  { "DBGBVR14_EL1", "DBGBVR14_EL1", 0x8074, true, true,  {}  }, // 296
3870
  { "DBGBVR15_EL1", "DBGBVR15_EL1", 0x807C, true, true,  {}  }, // 297
3871
  { "DBGBVR1_EL1", "DBGBVR1_EL1", 0x800C, true, true,  {}  }, // 298
3872
  { "DBGBVR2_EL1", "DBGBVR2_EL1", 0x8014, true, true,  {}  }, // 299
3873
  { "DBGBVR3_EL1", "DBGBVR3_EL1", 0x801C, true, true,  {}  }, // 300
3874
  { "DBGBVR4_EL1", "DBGBVR4_EL1", 0x8024, true, true,  {}  }, // 301
3875
  { "DBGBVR5_EL1", "DBGBVR5_EL1", 0x802C, true, true,  {}  }, // 302
3876
  { "DBGBVR6_EL1", "DBGBVR6_EL1", 0x8034, true, true,  {}  }, // 303
3877
  { "DBGBVR7_EL1", "DBGBVR7_EL1", 0x803C, true, true,  {}  }, // 304
3878
  { "DBGBVR8_EL1", "DBGBVR8_EL1", 0x8044, true, true,  {}  }, // 305
3879
  { "DBGBVR9_EL1", "DBGBVR9_EL1", 0x804C, true, true,  {}  }, // 306
3880
  { "DBGCLAIMCLR_EL1", "DBGCLAIMCLR_EL1", 0x83CE, true, true,  {}  }, // 307
3881
  { "DBGCLAIMSET_EL1", "DBGCLAIMSET_EL1", 0x83C6, true, true,  {}  }, // 308
3882
  { "DBGDTRRX_EL0", "DBGDTRRX_EL0", 0x9828, true, false,  {}  }, // 309
3883
  { "DBGDTRTX_EL0", "DBGDTRTX_EL0", 0x9828, false, true,  {}  }, // 310
3884
  { "DBGDTR_EL0", "DBGDTR_EL0", 0x9820, true, true,  {}  }, // 311
3885
  { "DBGPRCR_EL1", "DBGPRCR_EL1", 0x80A4, true, true,  {}  }, // 312
3886
  { "DBGVCR32_EL2", "DBGVCR32_EL2", 0xA038, true, true,  {}  }, // 313
3887
  { "DBGWCR0_EL1", "DBGWCR0_EL1", 0x8007, true, true,  {}  }, // 314
3888
  { "DBGWCR10_EL1", "DBGWCR10_EL1", 0x8057, true, true,  {}  }, // 315
3889
  { "DBGWCR11_EL1", "DBGWCR11_EL1", 0x805F, true, true,  {}  }, // 316
3890
  { "DBGWCR12_EL1", "DBGWCR12_EL1", 0x8067, true, true,  {}  }, // 317
3891
  { "DBGWCR13_EL1", "DBGWCR13_EL1", 0x806F, true, true,  {}  }, // 318
3892
  { "DBGWCR14_EL1", "DBGWCR14_EL1", 0x8077, true, true,  {}  }, // 319
3893
  { "DBGWCR15_EL1", "DBGWCR15_EL1", 0x807F, true, true,  {}  }, // 320
3894
  { "DBGWCR1_EL1", "DBGWCR1_EL1", 0x800F, true, true,  {}  }, // 321
3895
  { "DBGWCR2_EL1", "DBGWCR2_EL1", 0x8017, true, true,  {}  }, // 322
3896
  { "DBGWCR3_EL1", "DBGWCR3_EL1", 0x801F, true, true,  {}  }, // 323
3897
  { "DBGWCR4_EL1", "DBGWCR4_EL1", 0x8027, true, true,  {}  }, // 324
3898
  { "DBGWCR5_EL1", "DBGWCR5_EL1", 0x802F, true, true,  {}  }, // 325
3899
  { "DBGWCR6_EL1", "DBGWCR6_EL1", 0x8037, true, true,  {}  }, // 326
3900
  { "DBGWCR7_EL1", "DBGWCR7_EL1", 0x803F, true, true,  {}  }, // 327
3901
  { "DBGWCR8_EL1", "DBGWCR8_EL1", 0x8047, true, true,  {}  }, // 328
3902
  { "DBGWCR9_EL1", "DBGWCR9_EL1", 0x804F, true, true,  {}  }, // 329
3903
  { "DBGWVR0_EL1", "DBGWVR0_EL1", 0x8006, true, true,  {}  }, // 330
3904
  { "DBGWVR10_EL1", "DBGWVR10_EL1", 0x8056, true, true,  {}  }, // 331
3905
  { "DBGWVR11_EL1", "DBGWVR11_EL1", 0x805E, true, true,  {}  }, // 332
3906
  { "DBGWVR12_EL1", "DBGWVR12_EL1", 0x8066, true, true,  {}  }, // 333
3907
  { "DBGWVR13_EL1", "DBGWVR13_EL1", 0x806E, true, true,  {}  }, // 334
3908
  { "DBGWVR14_EL1", "DBGWVR14_EL1", 0x8076, true, true,  {}  }, // 335
3909
  { "DBGWVR15_EL1", "DBGWVR15_EL1", 0x807E, true, true,  {}  }, // 336
3910
  { "DBGWVR1_EL1", "DBGWVR1_EL1", 0x800E, true, true,  {}  }, // 337
3911
  { "DBGWVR2_EL1", "DBGWVR2_EL1", 0x8016, true, true,  {}  }, // 338
3912
  { "DBGWVR3_EL1", "DBGWVR3_EL1", 0x801E, true, true,  {}  }, // 339
3913
  { "DBGWVR4_EL1", "DBGWVR4_EL1", 0x8026, true, true,  {}  }, // 340
3914
  { "DBGWVR5_EL1", "DBGWVR5_EL1", 0x802E, true, true,  {}  }, // 341
3915
  { "DBGWVR6_EL1", "DBGWVR6_EL1", 0x8036, true, true,  {}  }, // 342
3916
  { "DBGWVR7_EL1", "DBGWVR7_EL1", 0x803E, true, true,  {}  }, // 343
3917
  { "DBGWVR8_EL1", "DBGWVR8_EL1", 0x8046, true, true,  {}  }, // 344
3918
  { "DBGWVR9_EL1", "DBGWVR9_EL1", 0x804E, true, true,  {}  }, // 345
3919
  { "DCZID_EL0", "DCZID_EL0", 0xD807, true, false,  {}  }, // 346
3920
  { "DISR_EL1", "DISR_EL1", 0xC609, true, true,  {AArch64::FeatureRAS}  }, // 347
3921
  { "DIT", "DIT", 0xDA15, true, true,  {AArch64::FeatureDIT}  }, // 348
3922
  { "DLR_EL0", "DLR_EL0", 0xDA29, true, true,  {}  }, // 349
3923
  { "DSPSR_EL0", "DSPSR_EL0", 0xDA28, true, true,  {}  }, // 350
3924
  { "ELR_EL1", "ELR_EL1", 0xC201, true, true,  {}  }, // 351
3925
  { "ELR_EL12", "ELR_EL12", 0xEA01, true, true,  {AArch64::FeatureVH}  }, // 352
3926
  { "ELR_EL2", "ELR_EL2", 0xE201, true, true,  {}  }, // 353
3927
  { "ELR_EL3", "ELR_EL3", 0xF201, true, true,  {}  }, // 354
3928
  { "ERRIDR_EL1", "ERRIDR_EL1", 0xC298, true, false,  {AArch64::FeatureRAS}  }, // 355
3929
  { "ERRSELR_EL1", "ERRSELR_EL1", 0xC299, true, true,  {AArch64::FeatureRAS}  }, // 356
3930
  { "ERXADDR_EL1", "ERXADDR_EL1", 0xC2A3, true, true,  {AArch64::FeatureRAS}  }, // 357
3931
  { "ERXCTLR_EL1", "ERXCTLR_EL1", 0xC2A1, true, true,  {AArch64::FeatureRAS}  }, // 358
3932
  { "ERXFR_EL1", "ERXFR_EL1", 0xC2A0, true, false,  {AArch64::FeatureRAS}  }, // 359
3933
  { "ERXGSR_EL1", "ERXGSR_EL1", 0xC29A, true, false,  {AArch64::FeatureRASv2}  }, // 360
3934
  { "ERXMISC0_EL1", "ERXMISC0_EL1", 0xC2A8, true, true,  {AArch64::FeatureRAS}  }, // 361
3935
  { "ERXMISC1_EL1", "ERXMISC1_EL1", 0xC2A9, true, true,  {AArch64::FeatureRAS}  }, // 362
3936
  { "ERXMISC2_EL1", "ERXMISC2_EL1", 0xC2AA, true, true,  {}  }, // 363
3937
  { "ERXMISC3_EL1", "ERXMISC3_EL1", 0xC2AB, true, true,  {}  }, // 364
3938
  { "ERXPFGCDN_EL1", "ERXPFGCDN_EL1", 0xC2A6, true, true,  {}  }, // 365
3939
  { "ERXPFGCTL_EL1", "ERXPFGCTL_EL1", 0xC2A5, true, true,  {}  }, // 366
3940
  { "ERXPFGF_EL1", "ERXPFGF_EL1", 0xC2A4, true, false,  {}  }, // 367
3941
  { "ERXSTATUS_EL1", "ERXSTATUS_EL1", 0xC2A2, true, true,  {AArch64::FeatureRAS}  }, // 368
3942
  { "ESR_EL1", "ESR_EL1", 0xC290, true, true,  {}  }, // 369
3943
  { "ESR_EL12", "ESR_EL12", 0xEA90, true, true,  {AArch64::FeatureVH}  }, // 370
3944
  { "ESR_EL2", "ESR_EL2", 0xE290, true, true,  {}  }, // 371
3945
  { "ESR_EL3", "ESR_EL3", 0xF290, true, true,  {}  }, // 372
3946
  { "FAR_EL1", "FAR_EL1", 0xC300, true, true,  {}  }, // 373
3947
  { "FAR_EL12", "FAR_EL12", 0xEB00, true, true,  {AArch64::FeatureVH}  }, // 374
3948
  { "FAR_EL2", "FAR_EL2", 0xE300, true, true,  {}  }, // 375
3949
  { "FAR_EL3", "FAR_EL3", 0xF300, true, true,  {}  }, // 376
3950
  { "FGWTE3_EL3", "FGWTE3_EL3", 0xF08D, true, true,  {}  }, // 377
3951
  { "FPCR", "FPCR", 0xDA20, true, true,  {AArch64::FeatureFPARMv8}  }, // 378
3952
  { "FPEXC32_EL2", "FPEXC32_EL2", 0xE298, true, true,  {}  }, // 379
3953
  { "FPMR", "FPMR", 0xDA22, true, true,  {AArch64::FeatureFPMR}  }, // 380
3954
  { "FPSR", "FPSR", 0xDA21, true, true,  {AArch64::FeatureFPARMv8}  }, // 381
3955
  { "GCR_EL1", "GCR_EL1", 0xC086, true, true,  {AArch64::FeatureMTE}  }, // 382
3956
  { "GCSCRE0_EL1", "GCSCRE0_EL1", 0xC12A, true, true,  {}  }, // 383
3957
  { "GCSCR_EL1", "GCSCR_EL1", 0xC128, true, true,  {}  }, // 384
3958
  { "GCSCR_EL12", "GCSCR_EL12", 0xE928, true, true,  {}  }, // 385
3959
  { "GCSCR_EL2", "GCSCR_EL2", 0xE128, true, true,  {}  }, // 386
3960
  { "GCSCR_EL3", "GCSCR_EL3", 0xF128, true, true,  {}  }, // 387
3961
  { "GCSPR_EL0", "GCSPR_EL0", 0xD929, true, true,  {}  }, // 388
3962
  { "GCSPR_EL1", "GCSPR_EL1", 0xC129, true, true,  {}  }, // 389
3963
  { "GCSPR_EL12", "GCSPR_EL12", 0xE929, true, true,  {}  }, // 390
3964
  { "GCSPR_EL2", "GCSPR_EL2", 0xE129, true, true,  {}  }, // 391
3965
  { "GCSPR_EL3", "GCSPR_EL3", 0xF129, true, true,  {}  }, // 392
3966
  { "GMID_EL1", "GMID_EL1", 0xC804, true, false,  {AArch64::FeatureMTE}  }, // 393
3967
  { "GPCCR_EL3", "GPCCR_EL3", 0xF10E, true, true,  {AArch64::FeatureRME}  }, // 394
3968
  { "GPTBR_EL3", "GPTBR_EL3", 0xF10C, true, true,  {AArch64::FeatureRME}  }, // 395
3969
  { "HACDBSBR_EL2", "HACDBSBR_EL2", 0xE11C, true, true,  {}  }, // 396
3970
  { "HACDBSCONS_EL2", "HACDBSCONS_EL2", 0xE11D, true, true,  {}  }, // 397
3971
  { "HACR_EL2", "HACR_EL2", 0xE08F, true, true,  {}  }, // 398
3972
  { "HAFGRTR_EL2", "HAFGRTR_EL2", 0xE18E, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 399
3973
  { "HCRX_EL2", "HCRX_EL2", 0xE092, true, true,  {AArch64::FeatureHCX}  }, // 400
3974
  { "HCR_EL2", "HCR_EL2", 0xE088, true, true,  {}  }, // 401
3975
  { "HDBSSBR_EL2", "HDBSSBR_EL2", 0xE11A, true, true,  {}  }, // 402
3976
  { "HDBSSPROD_EL2", "HDBSSPROD_EL2", 0xE11B, true, true,  {}  }, // 403
3977
  { "HDFGRTR2_EL2", "HDFGRTR2_EL2", 0xE188, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 404
3978
  { "HDFGRTR_EL2", "HDFGRTR_EL2", 0xE18C, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 405
3979
  { "HDFGWTR2_EL2", "HDFGWTR2_EL2", 0xE189, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 406
3980
  { "HDFGWTR_EL2", "HDFGWTR_EL2", 0xE18D, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 407
3981
  { "HFGITR2_EL2", "HFGITR2_EL2", 0xE18F, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 408
3982
  { "HFGITR_EL2", "HFGITR_EL2", 0xE08E, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 409
3983
  { "HFGRTR2_EL2", "HFGRTR2_EL2", 0xE18A, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 410
3984
  { "HFGRTR_EL2", "HFGRTR_EL2", 0xE08C, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 411
3985
  { "HFGWTR2_EL2", "HFGWTR2_EL2", 0xE18B, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 412
3986
  { "HFGWTR_EL2", "HFGWTR_EL2", 0xE08D, true, true,  {AArch64::FeatureFineGrainedTraps}  }, // 413
3987
  { "HPFAR_EL2", "HPFAR_EL2", 0xE304, true, true,  {}  }, // 414
3988
  { "HSTR_EL2", "HSTR_EL2", 0xE08B, true, true,  {}  }, // 415
3989
  { "ICC_AP0R0_EL1", "ICC_AP0R0_EL1", 0xC644, true, true,  {}  }, // 416
3990
  { "ICC_AP0R1_EL1", "ICC_AP0R1_EL1", 0xC645, true, true,  {}  }, // 417
3991
  { "ICC_AP0R2_EL1", "ICC_AP0R2_EL1", 0xC646, true, true,  {}  }, // 418
3992
  { "ICC_AP0R3_EL1", "ICC_AP0R3_EL1", 0xC647, true, true,  {}  }, // 419
3993
  { "ICC_AP1R0_EL1", "ICC_AP1R0_EL1", 0xC648, true, true,  {}  }, // 420
3994
  { "ICC_AP1R1_EL1", "ICC_AP1R1_EL1", 0xC649, true, true,  {}  }, // 421
3995
  { "ICC_AP1R2_EL1", "ICC_AP1R2_EL1", 0xC64A, true, true,  {}  }, // 422
3996
  { "ICC_AP1R3_EL1", "ICC_AP1R3_EL1", 0xC64B, true, true,  {}  }, // 423
3997
  { "ICC_ASGI1R_EL1", "ICC_ASGI1R_EL1", 0xC65E, false, true,  {}  }, // 424
3998
  { "ICC_BPR0_EL1", "ICC_BPR0_EL1", 0xC643, true, true,  {}  }, // 425
3999
  { "ICC_BPR1_EL1", "ICC_BPR1_EL1", 0xC663, true, true,  {}  }, // 426
4000
  { "ICC_CTLR_EL1", "ICC_CTLR_EL1", 0xC664, true, true,  {}  }, // 427
4001
  { "ICC_CTLR_EL3", "ICC_CTLR_EL3", 0xF664, true, true,  {}  }, // 428
4002
  { "ICC_DIR_EL1", "ICC_DIR_EL1", 0xC659, false, true,  {}  }, // 429
4003
  { "ICC_EOIR0_EL1", "ICC_EOIR0_EL1", 0xC641, false, true,  {}  }, // 430
4004
  { "ICC_EOIR1_EL1", "ICC_EOIR1_EL1", 0xC661, false, true,  {}  }, // 431
4005
  { "ICC_HPPIR0_EL1", "ICC_HPPIR0_EL1", 0xC642, true, false,  {}  }, // 432
4006
  { "ICC_HPPIR1_EL1", "ICC_HPPIR1_EL1", 0xC662, true, false,  {}  }, // 433
4007
  { "ICC_IAR0_EL1", "ICC_IAR0_EL1", 0xC640, true, false,  {}  }, // 434
4008
  { "ICC_IAR1_EL1", "ICC_IAR1_EL1", 0xC660, true, false,  {}  }, // 435
4009
  { "ICC_IGRPEN0_EL1", "ICC_IGRPEN0_EL1", 0xC666, true, true,  {}  }, // 436
4010
  { "ICC_IGRPEN1_EL1", "ICC_IGRPEN1_EL1", 0xC667, true, true,  {}  }, // 437
4011
  { "ICC_IGRPEN1_EL3", "ICC_IGRPEN1_EL3", 0xF667, true, true,  {}  }, // 438
4012
  { "ICC_NMIAR1_EL1", "ICC_NMIAR1_EL1", 0xC64D, true, false,  {AArch64::FeatureNMI}  }, // 439
4013
  { "ICC_PMR_EL1", "ICC_PMR_EL1", 0xC230, true, true,  {}  }, // 440
4014
  { "ICC_RPR_EL1", "ICC_RPR_EL1", 0xC65B, true, false,  {}  }, // 441
4015
  { "ICC_SGI0R_EL1", "ICC_SGI0R_EL1", 0xC65F, false, true,  {}  }, // 442
4016
  { "ICC_SGI1R_EL1", "ICC_SGI1R_EL1", 0xC65D, false, true,  {}  }, // 443
4017
  { "ICC_SRE_EL1", "ICC_SRE_EL1", 0xC665, true, true,  {}  }, // 444
4018
  { "ICC_SRE_EL2", "ICC_SRE_EL2", 0xE64D, true, true,  {}  }, // 445
4019
  { "ICC_SRE_EL3", "ICC_SRE_EL3", 0xF665, true, true,  {}  }, // 446
4020
  { "ICH_AP0R0_EL2", "ICH_AP0R0_EL2", 0xE640, true, true,  {}  }, // 447
4021
  { "ICH_AP0R1_EL2", "ICH_AP0R1_EL2", 0xE641, true, true,  {}  }, // 448
4022
  { "ICH_AP0R2_EL2", "ICH_AP0R2_EL2", 0xE642, true, true,  {}  }, // 449
4023
  { "ICH_AP0R3_EL2", "ICH_AP0R3_EL2", 0xE643, true, true,  {}  }, // 450
4024
  { "ICH_AP1R0_EL2", "ICH_AP1R0_EL2", 0xE648, true, true,  {}  }, // 451
4025
  { "ICH_AP1R1_EL2", "ICH_AP1R1_EL2", 0xE649, true, true,  {}  }, // 452
4026
  { "ICH_AP1R2_EL2", "ICH_AP1R2_EL2", 0xE64A, true, true,  {}  }, // 453
4027
  { "ICH_AP1R3_EL2", "ICH_AP1R3_EL2", 0xE64B, true, true,  {}  }, // 454
4028
  { "ICH_EISR_EL2", "ICH_EISR_EL2", 0xE65B, true, false,  {}  }, // 455
4029
  { "ICH_ELRSR_EL2", "ICH_ELRSR_EL2", 0xE65D, true, false,  {}  }, // 456
4030
  { "ICH_HCR_EL2", "ICH_HCR_EL2", 0xE658, true, true,  {}  }, // 457
4031
  { "ICH_LR0_EL2", "ICH_LR0_EL2", 0xE660, true, true,  {}  }, // 458
4032
  { "ICH_LR10_EL2", "ICH_LR10_EL2", 0xE66A, true, true,  {}  }, // 459
4033
  { "ICH_LR11_EL2", "ICH_LR11_EL2", 0xE66B, true, true,  {}  }, // 460
4034
  { "ICH_LR12_EL2", "ICH_LR12_EL2", 0xE66C, true, true,  {}  }, // 461
4035
  { "ICH_LR13_EL2", "ICH_LR13_EL2", 0xE66D, true, true,  {}  }, // 462
4036
  { "ICH_LR14_EL2", "ICH_LR14_EL2", 0xE66E, true, true,  {}  }, // 463
4037
  { "ICH_LR15_EL2", "ICH_LR15_EL2", 0xE66F, true, true,  {}  }, // 464
4038
  { "ICH_LR1_EL2", "ICH_LR1_EL2", 0xE661, true, true,  {}  }, // 465
4039
  { "ICH_LR2_EL2", "ICH_LR2_EL2", 0xE662, true, true,  {}  }, // 466
4040
  { "ICH_LR3_EL2", "ICH_LR3_EL2", 0xE663, true, true,  {}  }, // 467
4041
  { "ICH_LR4_EL2", "ICH_LR4_EL2", 0xE664, true, true,  {}  }, // 468
4042
  { "ICH_LR5_EL2", "ICH_LR5_EL2", 0xE665, true, true,  {}  }, // 469
4043
  { "ICH_LR6_EL2", "ICH_LR6_EL2", 0xE666, true, true,  {}  }, // 470
4044
  { "ICH_LR7_EL2", "ICH_LR7_EL2", 0xE667, true, true,  {}  }, // 471
4045
  { "ICH_LR8_EL2", "ICH_LR8_EL2", 0xE668, true, true,  {}  }, // 472
4046
  { "ICH_LR9_EL2", "ICH_LR9_EL2", 0xE669, true, true,  {}  }, // 473
4047
  { "ICH_MISR_EL2", "ICH_MISR_EL2", 0xE65A, true, false,  {}  }, // 474
4048
  { "ICH_VMCR_EL2", "ICH_VMCR_EL2", 0xE65F, true, true,  {}  }, // 475
4049
  { "ICH_VTR_EL2", "ICH_VTR_EL2", 0xE659, true, false,  {}  }, // 476
4050
  { "ID_AA64AFR0_EL1", "ID_AA64AFR0_EL1", 0xC02C, true, false,  {}  }, // 477
4051
  { "ID_AA64AFR1_EL1", "ID_AA64AFR1_EL1", 0xC02D, true, false,  {}  }, // 478
4052
  { "ID_AA64DFR0_EL1", "ID_AA64DFR0_EL1", 0xC028, true, false,  {}  }, // 479
4053
  { "ID_AA64DFR1_EL1", "ID_AA64DFR1_EL1", 0xC029, true, false,  {}  }, // 480
4054
  { "ID_AA64DFR2_EL1", "ID_AA64DFR2_EL1", 0xC02A, true, false,  {}  }, // 481
4055
  { "ID_AA64FPFR0_EL1", "ID_AA64FPFR0_EL1", 0xC027, true, false,  {AArch64::FeatureFPMR}  }, // 482
4056
  { "ID_AA64ISAR0_EL1", "ID_AA64ISAR0_EL1", 0xC030, true, false,  {}  }, // 483
4057
  { "ID_AA64ISAR1_EL1", "ID_AA64ISAR1_EL1", 0xC031, true, false,  {}  }, // 484
4058
  { "ID_AA64ISAR2_EL1", "ID_AA64ISAR2_EL1", 0xC032, true, false,  {}  }, // 485
4059
  { "ID_AA64ISAR3_EL1", "ID_AA64ISAR3_EL1", 0xC033, true, false,  {}  }, // 486
4060
  { "ID_AA64MMFR0_EL1", "ID_AA64MMFR0_EL1", 0xC038, true, false,  {}  }, // 487
4061
  { "ID_AA64MMFR1_EL1", "ID_AA64MMFR1_EL1", 0xC039, true, false,  {}  }, // 488
4062
  { "ID_AA64MMFR2_EL1", "ID_AA64MMFR2_EL1", 0xC03A, true, false,  {}  }, // 489
4063
  { "ID_AA64MMFR3_EL1", "ID_AA64MMFR3_EL1", 0xC03B, true, false,  {}  }, // 490
4064
  { "ID_AA64MMFR4_EL1", "ID_AA64MMFR4_EL1", 0xC03C, true, false,  {}  }, // 491
4065
  { "ID_AA64PFR0_EL1", "ID_AA64PFR0_EL1", 0xC020, true, false,  {}  }, // 492
4066
  { "ID_AA64PFR1_EL1", "ID_AA64PFR1_EL1", 0xC021, true, false,  {}  }, // 493
4067
  { "ID_AA64PFR2_EL1", "ID_AA64PFR2_EL1", 0xC022, true, false,  {}  }, // 494
4068
  { "ID_AA64SMFR0_EL1", "ID_AA64SMFR0_EL1", 0xC025, true, false,  {AArch64::FeatureSME}  }, // 495
4069
  { "ID_AA64ZFR0_EL1", "ID_AA64ZFR0_EL1", 0xC024, true, false,  {AArch64::FeatureSVE}  }, // 496
4070
  { "ID_AFR0_EL1", "ID_AFR0_EL1", 0xC00B, true, false,  {}  }, // 497
4071
  { "ID_DFR0_EL1", "ID_DFR0_EL1", 0xC00A, true, false,  {}  }, // 498
4072
  { "ID_DFR1_EL1", "ID_DFR1_EL1", 0xC01D, true, false,  {}  }, // 499
4073
  { "ID_ISAR0_EL1", "ID_ISAR0_EL1", 0xC010, true, false,  {}  }, // 500
4074
  { "ID_ISAR1_EL1", "ID_ISAR1_EL1", 0xC011, true, false,  {}  }, // 501
4075
  { "ID_ISAR2_EL1", "ID_ISAR2_EL1", 0xC012, true, false,  {}  }, // 502
4076
  { "ID_ISAR3_EL1", "ID_ISAR3_EL1", 0xC013, true, false,  {}  }, // 503
4077
  { "ID_ISAR4_EL1", "ID_ISAR4_EL1", 0xC014, true, false,  {}  }, // 504
4078
  { "ID_ISAR5_EL1", "ID_ISAR5_EL1", 0xC015, true, false,  {}  }, // 505
4079
  { "ID_ISAR6_EL1", "ID_ISAR6_EL1", 0xC017, true, false,  {AArch64::HasV8_2aOps}  }, // 506
4080
  { "ID_MMFR0_EL1", "ID_MMFR0_EL1", 0xC00C, true, false,  {}  }, // 507
4081
  { "ID_MMFR1_EL1", "ID_MMFR1_EL1", 0xC00D, true, false,  {}  }, // 508
4082
  { "ID_MMFR2_EL1", "ID_MMFR2_EL1", 0xC00E, true, false,  {}  }, // 509
4083
  { "ID_MMFR3_EL1", "ID_MMFR3_EL1", 0xC00F, true, false,  {}  }, // 510
4084
  { "ID_MMFR4_EL1", "ID_MMFR4_EL1", 0xC016, true, false,  {}  }, // 511
4085
  { "ID_MMFR5_EL1", "ID_MMFR5_EL1", 0xC01E, true, false,  {}  }, // 512
4086
  { "ID_PFR0_EL1", "ID_PFR0_EL1", 0xC008, true, false,  {}  }, // 513
4087
  { "ID_PFR1_EL1", "ID_PFR1_EL1", 0xC009, true, false,  {}  }, // 514
4088
  { "ID_PFR2_EL1", "ID_PFR2_EL1", 0xC01C, true, false,  {AArch64::FeatureSpecRestrict}  }, // 515
4089
  { "IFSR32_EL2", "IFSR32_EL2", 0xE281, true, true,  {}  }, // 516
4090
  { "ISR_EL1", "ISR_EL1", 0xC608, true, false,  {}  }, // 517
4091
  { "LORC_EL1", "LORC_EL1", 0xC523, true, true,  {AArch64::FeatureLOR}  }, // 518
4092
  { "LOREA_EL1", "LOREA_EL1", 0xC521, true, true,  {AArch64::FeatureLOR}  }, // 519
4093
  { "LORID_EL1", "LORID_EL1", 0xC527, true, false,  {AArch64::FeatureLOR}  }, // 520
4094
  { "LORN_EL1", "LORN_EL1", 0xC522, true, true,  {AArch64::FeatureLOR}  }, // 521
4095
  { "LORSA_EL1", "LORSA_EL1", 0xC520, true, true,  {AArch64::FeatureLOR}  }, // 522
4096
  { "MAIR2_EL1", "MAIR2_EL1", 0xC511, true, true,  {}  }, // 523
4097
  { "MAIR2_EL12", "MAIR2_EL12", 0xED11, true, true,  {}  }, // 524
4098
  { "MAIR2_EL2", "MAIR2_EL2", 0xE509, true, true,  {}  }, // 525
4099
  { "MAIR2_EL3", "MAIR2_EL3", 0xF509, true, true,  {}  }, // 526
4100
  { "MAIR_EL1", "MAIR_EL1", 0xC510, true, true,  {}  }, // 527
4101
  { "MAIR_EL12", "MAIR_EL12", 0xED10, true, true,  {AArch64::FeatureVH}  }, // 528
4102
  { "MAIR_EL2", "MAIR_EL2", 0xE510, true, true,  {}  }, // 529
4103
  { "MAIR_EL3", "MAIR_EL3", 0xF510, true, true,  {}  }, // 530
4104
  { "MDCCINT_EL1", "MDCCINT_EL1", 0x8010, true, true,  {}  }, // 531
4105
  { "MDCCSR_EL0", "MDCCSR_EL0", 0x9808, true, false,  {}  }, // 532
4106
  { "MDCR_EL2", "MDCR_EL2", 0xE089, true, true,  {}  }, // 533
4107
  { "MDCR_EL3", "MDCR_EL3", 0xF099, true, true,  {}  }, // 534
4108
  { "MDRAR_EL1", "MDRAR_EL1", 0x8080, true, false,  {}  }, // 535
4109
  { "MDSCR_EL1", "MDSCR_EL1", 0x8012, true, true,  {}  }, // 536
4110
  { "MDSELR_EL1", "MDSELR_EL1", 0x8022, true, true,  {}  }, // 537
4111
  { "MDSTEPOP_EL1", "MDSTEPOP_EL1", 0x802A, true, true,  {}  }, // 538
4112
  { "MECIDR_EL2", "MECIDR_EL2", 0xE547, true, false,  {AArch64::FeatureMEC}  }, // 539
4113
  { "MECID_A0_EL2", "MECID_A0_EL2", 0xE541, true, true,  {AArch64::FeatureMEC}  }, // 540
4114
  { "MECID_A1_EL2", "MECID_A1_EL2", 0xE543, true, true,  {AArch64::FeatureMEC}  }, // 541
4115
  { "MECID_P0_EL2", "MECID_P0_EL2", 0xE540, true, true,  {AArch64::FeatureMEC}  }, // 542
4116
  { "MECID_P1_EL2", "MECID_P1_EL2", 0xE542, true, true,  {AArch64::FeatureMEC}  }, // 543
4117
  { "MECID_RL_A_EL3", "MECID_RL_A_EL3", 0xF551, true, true,  {AArch64::FeatureMEC}  }, // 544
4118
  { "MFAR_EL3", "MFAR_EL3", 0xF305, true, true,  {}  }, // 545
4119
  { "MIDR_EL1", "MIDR_EL1", 0xC000, true, false,  {}  }, // 546
4120
  { "MPAM0_EL1", "MPAM0_EL1", 0xC529, true, true,  {AArch64::FeatureMPAM}  }, // 547
4121
  { "MPAM1_EL1", "MPAM1_EL1", 0xC528, true, true,  {AArch64::FeatureMPAM}  }, // 548
4122
  { "MPAM1_EL12", "MPAM1_EL12", 0xED28, true, true,  {AArch64::FeatureMPAM}  }, // 549
4123
  { "MPAM2_EL2", "MPAM2_EL2", 0xE528, true, true,  {AArch64::FeatureMPAM}  }, // 550
4124
  { "MPAM3_EL3", "MPAM3_EL3", 0xF528, true, true,  {AArch64::FeatureMPAM}  }, // 551
4125
  { "MPAMHCR_EL2", "MPAMHCR_EL2", 0xE520, true, true,  {AArch64::FeatureMPAM}  }, // 552
4126
  { "MPAMIDR_EL1", "MPAMIDR_EL1", 0xC524, true, false,  {AArch64::FeatureMPAM}  }, // 553
4127
  { "MPAMSM_EL1", "MPAMSM_EL1", 0xC52B, true, true,  {AArch64::FeatureMPAM, AArch64::FeatureSME}  }, // 554
4128
  { "MPAMVPM0_EL2", "MPAMVPM0_EL2", 0xE530, true, true,  {AArch64::FeatureMPAM}  }, // 555
4129
  { "MPAMVPM1_EL2", "MPAMVPM1_EL2", 0xE531, true, true,  {AArch64::FeatureMPAM}  }, // 556
4130
  { "MPAMVPM2_EL2", "MPAMVPM2_EL2", 0xE532, true, true,  {AArch64::FeatureMPAM}  }, // 557
4131
  { "MPAMVPM3_EL2", "MPAMVPM3_EL2", 0xE533, true, true,  {AArch64::FeatureMPAM}  }, // 558
4132
  { "MPAMVPM4_EL2", "MPAMVPM4_EL2", 0xE534, true, true,  {AArch64::FeatureMPAM}  }, // 559
4133
  { "MPAMVPM5_EL2", "MPAMVPM5_EL2", 0xE535, true, true,  {AArch64::FeatureMPAM}  }, // 560
4134
  { "MPAMVPM6_EL2", "MPAMVPM6_EL2", 0xE536, true, true,  {AArch64::FeatureMPAM}  }, // 561
4135
  { "MPAMVPM7_EL2", "MPAMVPM7_EL2", 0xE537, true, true,  {AArch64::FeatureMPAM}  }, // 562
4136
  { "MPAMVPMV_EL2", "MPAMVPMV_EL2", 0xE521, true, true,  {AArch64::FeatureMPAM}  }, // 563
4137
  { "MPIDR_EL1", "MPIDR_EL1", 0xC005, true, false,  {}  }, // 564
4138
  { "MPUIR_EL1", "MPUIR_EL1", 0xC004, true, true,  {AArch64::HasV8_0rOps}  }, // 565
4139
  { "MPUIR_EL2", "MPUIR_EL2", 0xE004, true, true,  {AArch64::HasV8_0rOps}  }, // 566
4140
  { "MVFR0_EL1", "MVFR0_EL1", 0xC018, true, false,  {}  }, // 567
4141
  { "MVFR1_EL1", "MVFR1_EL1", 0xC019, true, false,  {}  }, // 568
4142
  { "MVFR2_EL1", "MVFR2_EL1", 0xC01A, true, false,  {}  }, // 569
4143
  { "NZCV", "NZCV", 0xDA10, true, true,  {}  }, // 570
4144
  { "OSDLR_EL1", "OSDLR_EL1", 0x809C, true, true,  {}  }, // 571
4145
  { "OSDTRRX_EL1", "OSDTRRX_EL1", 0x8002, true, true,  {}  }, // 572
4146
  { "OSDTRTX_EL1", "OSDTRTX_EL1", 0x801A, true, true,  {}  }, // 573
4147
  { "OSECCR_EL1", "OSECCR_EL1", 0x8032, true, true,  {}  }, // 574
4148
  { "OSLAR_EL1", "OSLAR_EL1", 0x8084, false, true,  {}  }, // 575
4149
  { "OSLSR_EL1", "OSLSR_EL1", 0x808C, true, false,  {}  }, // 576
4150
  { "PAN", "PAN", 0xC213, true, true,  {AArch64::FeaturePAN}  }, // 577
4151
  { "PAR_EL1", "PAR_EL1", 0xC3A0, true, true,  {}  }, // 578
4152
  { "PFAR_EL1", "PFAR_EL1", 0xC305, true, true,  {}  }, // 579
4153
  { "PFAR_EL12", "PFAR_EL12", 0xEB05, true, true,  {}  }, // 580
4154
  { "PFAR_EL2", "PFAR_EL2", 0xE305, true, true,  {}  }, // 581
4155
  { "PIRE0_EL1", "PIRE0_EL1", 0xC512, true, true,  {}  }, // 582
4156
  { "PIRE0_EL12", "PIRE0_EL12", 0xED12, true, true,  {}  }, // 583
4157
  { "PIRE0_EL2", "PIRE0_EL2", 0xE512, true, true,  {}  }, // 584
4158
  { "PIR_EL1", "PIR_EL1", 0xC513, true, true,  {}  }, // 585
4159
  { "PIR_EL12", "PIR_EL12", 0xED13, true, true,  {}  }, // 586
4160
  { "PIR_EL2", "PIR_EL2", 0xE513, true, true,  {}  }, // 587
4161
  { "PIR_EL3", "PIR_EL3", 0xF513, true, true,  {}  }, // 588
4162
  { "PM", "PM", 0xC219, true, true,  {}  }, // 589
4163
  { "PMBIDR_EL1", "PMBIDR_EL1", 0xC4D7, true, false,  {AArch64::FeatureSPE}  }, // 590
4164
  { "PMBLIMITR_EL1", "PMBLIMITR_EL1", 0xC4D0, true, true,  {AArch64::FeatureSPE}  }, // 591
4165
  { "PMBPTR_EL1", "PMBPTR_EL1", 0xC4D1, true, true,  {AArch64::FeatureSPE}  }, // 592
4166
  { "PMBSR_EL1", "PMBSR_EL1", 0xC4D3, true, true,  {AArch64::FeatureSPE}  }, // 593
4167
  { "PMCCFILTR_EL0", "PMCCFILTR_EL0", 0xDF7F, true, true,  {}  }, // 594
4168
  { "PMCCNTR_EL0", "PMCCNTR_EL0", 0xDCE8, true, true,  {}  }, // 595
4169
  { "PMCCNTSVR_EL1", "PMCCNTSVR_EL1", 0x875F, true, false,  {}  }, // 596
4170
  { "PMCEID0_EL0", "PMCEID0_EL0", 0xDCE6, true, false,  {}  }, // 597
4171
  { "PMCEID1_EL0", "PMCEID1_EL0", 0xDCE7, true, false,  {}  }, // 598
4172
  { "PMCNTENCLR_EL0", "PMCNTENCLR_EL0", 0xDCE2, true, true,  {}  }, // 599
4173
  { "PMCNTENSET_EL0", "PMCNTENSET_EL0", 0xDCE1, true, true,  {}  }, // 600
4174
  { "PMCR_EL0", "PMCR_EL0", 0xDCE0, true, true,  {}  }, // 601
4175
  { "PMECR_EL1", "PMECR_EL1", 0xC4F5, true, true,  {}  }, // 602
4176
  { "PMEVCNTR0_EL0", "PMEVCNTR0_EL0", 0xDF40, true, true,  {}  }, // 603
4177
  { "PMEVCNTR10_EL0", "PMEVCNTR10_EL0", 0xDF4A, true, true,  {}  }, // 604
4178
  { "PMEVCNTR11_EL0", "PMEVCNTR11_EL0", 0xDF4B, true, true,  {}  }, // 605
4179
  { "PMEVCNTR12_EL0", "PMEVCNTR12_EL0", 0xDF4C, true, true,  {}  }, // 606
4180
  { "PMEVCNTR13_EL0", "PMEVCNTR13_EL0", 0xDF4D, true, true,  {}  }, // 607
4181
  { "PMEVCNTR14_EL0", "PMEVCNTR14_EL0", 0xDF4E, true, true,  {}  }, // 608
4182
  { "PMEVCNTR15_EL0", "PMEVCNTR15_EL0", 0xDF4F, true, true,  {}  }, // 609
4183
  { "PMEVCNTR16_EL0", "PMEVCNTR16_EL0", 0xDF50, true, true,  {}  }, // 610
4184
  { "PMEVCNTR17_EL0", "PMEVCNTR17_EL0", 0xDF51, true, true,  {}  }, // 611
4185
  { "PMEVCNTR18_EL0", "PMEVCNTR18_EL0", 0xDF52, true, true,  {}  }, // 612
4186
  { "PMEVCNTR19_EL0", "PMEVCNTR19_EL0", 0xDF53, true, true,  {}  }, // 613
4187
  { "PMEVCNTR1_EL0", "PMEVCNTR1_EL0", 0xDF41, true, true,  {}  }, // 614
4188
  { "PMEVCNTR20_EL0", "PMEVCNTR20_EL0", 0xDF54, true, true,  {}  }, // 615
4189
  { "PMEVCNTR21_EL0", "PMEVCNTR21_EL0", 0xDF55, true, true,  {}  }, // 616
4190
  { "PMEVCNTR22_EL0", "PMEVCNTR22_EL0", 0xDF56, true, true,  {}  }, // 617
4191
  { "PMEVCNTR23_EL0", "PMEVCNTR23_EL0", 0xDF57, true, true,  {}  }, // 618
4192
  { "PMEVCNTR24_EL0", "PMEVCNTR24_EL0", 0xDF58, true, true,  {}  }, // 619
4193
  { "PMEVCNTR25_EL0", "PMEVCNTR25_EL0", 0xDF59, true, true,  {}  }, // 620
4194
  { "PMEVCNTR26_EL0", "PMEVCNTR26_EL0", 0xDF5A, true, true,  {}  }, // 621
4195
  { "PMEVCNTR27_EL0", "PMEVCNTR27_EL0", 0xDF5B, true, true,  {}  }, // 622
4196
  { "PMEVCNTR28_EL0", "PMEVCNTR28_EL0", 0xDF5C, true, true,  {}  }, // 623
4197
  { "PMEVCNTR29_EL0", "PMEVCNTR29_EL0", 0xDF5D, true, true,  {}  }, // 624
4198
  { "PMEVCNTR2_EL0", "PMEVCNTR2_EL0", 0xDF42, true, true,  {}  }, // 625
4199
  { "PMEVCNTR30_EL0", "PMEVCNTR30_EL0", 0xDF5E, true, true,  {}  }, // 626
4200
  { "PMEVCNTR3_EL0", "PMEVCNTR3_EL0", 0xDF43, true, true,  {}  }, // 627
4201
  { "PMEVCNTR4_EL0", "PMEVCNTR4_EL0", 0xDF44, true, true,  {}  }, // 628
4202
  { "PMEVCNTR5_EL0", "PMEVCNTR5_EL0", 0xDF45, true, true,  {}  }, // 629
4203
  { "PMEVCNTR6_EL0", "PMEVCNTR6_EL0", 0xDF46, true, true,  {}  }, // 630
4204
  { "PMEVCNTR7_EL0", "PMEVCNTR7_EL0", 0xDF47, true, true,  {}  }, // 631
4205
  { "PMEVCNTR8_EL0", "PMEVCNTR8_EL0", 0xDF48, true, true,  {}  }, // 632
4206
  { "PMEVCNTR9_EL0", "PMEVCNTR9_EL0", 0xDF49, true, true,  {}  }, // 633
4207
  { "PMEVCNTSVR0_EL1", "PMEVCNTSVR0_EL1", 0x8740, true, false,  {}  }, // 634
4208
  { "PMEVCNTSVR10_EL1", "PMEVCNTSVR10_EL1", 0x874A, true, false,  {}  }, // 635
4209
  { "PMEVCNTSVR11_EL1", "PMEVCNTSVR11_EL1", 0x874B, true, false,  {}  }, // 636
4210
  { "PMEVCNTSVR12_EL1", "PMEVCNTSVR12_EL1", 0x874C, true, false,  {}  }, // 637
4211
  { "PMEVCNTSVR13_EL1", "PMEVCNTSVR13_EL1", 0x874D, true, false,  {}  }, // 638
4212
  { "PMEVCNTSVR14_EL1", "PMEVCNTSVR14_EL1", 0x874E, true, false,  {}  }, // 639
4213
  { "PMEVCNTSVR15_EL1", "PMEVCNTSVR15_EL1", 0x874F, true, false,  {}  }, // 640
4214
  { "PMEVCNTSVR16_EL1", "PMEVCNTSVR16_EL1", 0x8750, true, false,  {}  }, // 641
4215
  { "PMEVCNTSVR17_EL1", "PMEVCNTSVR17_EL1", 0x8751, true, false,  {}  }, // 642
4216
  { "PMEVCNTSVR18_EL1", "PMEVCNTSVR18_EL1", 0x8752, true, false,  {}  }, // 643
4217
  { "PMEVCNTSVR19_EL1", "PMEVCNTSVR19_EL1", 0x8753, true, false,  {}  }, // 644
4218
  { "PMEVCNTSVR1_EL1", "PMEVCNTSVR1_EL1", 0x8741, true, false,  {}  }, // 645
4219
  { "PMEVCNTSVR20_EL1", "PMEVCNTSVR20_EL1", 0x8754, true, false,  {}  }, // 646
4220
  { "PMEVCNTSVR21_EL1", "PMEVCNTSVR21_EL1", 0x8755, true, false,  {}  }, // 647
4221
  { "PMEVCNTSVR22_EL1", "PMEVCNTSVR22_EL1", 0x8756, true, false,  {}  }, // 648
4222
  { "PMEVCNTSVR23_EL1", "PMEVCNTSVR23_EL1", 0x8757, true, false,  {}  }, // 649
4223
  { "PMEVCNTSVR24_EL1", "PMEVCNTSVR24_EL1", 0x8758, true, false,  {}  }, // 650
4224
  { "PMEVCNTSVR25_EL1", "PMEVCNTSVR25_EL1", 0x8759, true, false,  {}  }, // 651
4225
  { "PMEVCNTSVR26_EL1", "PMEVCNTSVR26_EL1", 0x875A, true, false,  {}  }, // 652
4226
  { "PMEVCNTSVR27_EL1", "PMEVCNTSVR27_EL1", 0x875B, true, false,  {}  }, // 653
4227
  { "PMEVCNTSVR28_EL1", "PMEVCNTSVR28_EL1", 0x875C, true, false,  {}  }, // 654
4228
  { "PMEVCNTSVR29_EL1", "PMEVCNTSVR29_EL1", 0x875D, true, false,  {}  }, // 655
4229
  { "PMEVCNTSVR2_EL1", "PMEVCNTSVR2_EL1", 0x8742, true, false,  {}  }, // 656
4230
  { "PMEVCNTSVR30_EL1", "PMEVCNTSVR30_EL1", 0x875E, true, false,  {}  }, // 657
4231
  { "PMEVCNTSVR3_EL1", "PMEVCNTSVR3_EL1", 0x8743, true, false,  {}  }, // 658
4232
  { "PMEVCNTSVR4_EL1", "PMEVCNTSVR4_EL1", 0x8744, true, false,  {}  }, // 659
4233
  { "PMEVCNTSVR5_EL1", "PMEVCNTSVR5_EL1", 0x8745, true, false,  {}  }, // 660
4234
  { "PMEVCNTSVR6_EL1", "PMEVCNTSVR6_EL1", 0x8746, true, false,  {}  }, // 661
4235
  { "PMEVCNTSVR7_EL1", "PMEVCNTSVR7_EL1", 0x8747, true, false,  {}  }, // 662
4236
  { "PMEVCNTSVR8_EL1", "PMEVCNTSVR8_EL1", 0x8748, true, false,  {}  }, // 663
4237
  { "PMEVCNTSVR9_EL1", "PMEVCNTSVR9_EL1", 0x8749, true, false,  {}  }, // 664
4238
  { "PMEVTYPER0_EL0", "PMEVTYPER0_EL0", 0xDF60, true, true,  {}  }, // 665
4239
  { "PMEVTYPER10_EL0", "PMEVTYPER10_EL0", 0xDF6A, true, true,  {}  }, // 666
4240
  { "PMEVTYPER11_EL0", "PMEVTYPER11_EL0", 0xDF6B, true, true,  {}  }, // 667
4241
  { "PMEVTYPER12_EL0", "PMEVTYPER12_EL0", 0xDF6C, true, true,  {}  }, // 668
4242
  { "PMEVTYPER13_EL0", "PMEVTYPER13_EL0", 0xDF6D, true, true,  {}  }, // 669
4243
  { "PMEVTYPER14_EL0", "PMEVTYPER14_EL0", 0xDF6E, true, true,  {}  }, // 670
4244
  { "PMEVTYPER15_EL0", "PMEVTYPER15_EL0", 0xDF6F, true, true,  {}  }, // 671
4245
  { "PMEVTYPER16_EL0", "PMEVTYPER16_EL0", 0xDF70, true, true,  {}  }, // 672
4246
  { "PMEVTYPER17_EL0", "PMEVTYPER17_EL0", 0xDF71, true, true,  {}  }, // 673
4247
  { "PMEVTYPER18_EL0", "PMEVTYPER18_EL0", 0xDF72, true, true,  {}  }, // 674
4248
  { "PMEVTYPER19_EL0", "PMEVTYPER19_EL0", 0xDF73, true, true,  {}  }, // 675
4249
  { "PMEVTYPER1_EL0", "PMEVTYPER1_EL0", 0xDF61, true, true,  {}  }, // 676
4250
  { "PMEVTYPER20_EL0", "PMEVTYPER20_EL0", 0xDF74, true, true,  {}  }, // 677
4251
  { "PMEVTYPER21_EL0", "PMEVTYPER21_EL0", 0xDF75, true, true,  {}  }, // 678
4252
  { "PMEVTYPER22_EL0", "PMEVTYPER22_EL0", 0xDF76, true, true,  {}  }, // 679
4253
  { "PMEVTYPER23_EL0", "PMEVTYPER23_EL0", 0xDF77, true, true,  {}  }, // 680
4254
  { "PMEVTYPER24_EL0", "PMEVTYPER24_EL0", 0xDF78, true, true,  {}  }, // 681
4255
  { "PMEVTYPER25_EL0", "PMEVTYPER25_EL0", 0xDF79, true, true,  {}  }, // 682
4256
  { "PMEVTYPER26_EL0", "PMEVTYPER26_EL0", 0xDF7A, true, true,  {}  }, // 683
4257
  { "PMEVTYPER27_EL0", "PMEVTYPER27_EL0", 0xDF7B, true, true,  {}  }, // 684
4258
  { "PMEVTYPER28_EL0", "PMEVTYPER28_EL0", 0xDF7C, true, true,  {}  }, // 685
4259
  { "PMEVTYPER29_EL0", "PMEVTYPER29_EL0", 0xDF7D, true, true,  {}  }, // 686
4260
  { "PMEVTYPER2_EL0", "PMEVTYPER2_EL0", 0xDF62, true, true,  {}  }, // 687
4261
  { "PMEVTYPER30_EL0", "PMEVTYPER30_EL0", 0xDF7E, true, true,  {}  }, // 688
4262
  { "PMEVTYPER3_EL0", "PMEVTYPER3_EL0", 0xDF63, true, true,  {}  }, // 689
4263
  { "PMEVTYPER4_EL0", "PMEVTYPER4_EL0", 0xDF64, true, true,  {}  }, // 690
4264
  { "PMEVTYPER5_EL0", "PMEVTYPER5_EL0", 0xDF65, true, true,  {}  }, // 691
4265
  { "PMEVTYPER6_EL0", "PMEVTYPER6_EL0", 0xDF66, true, true,  {}  }, // 692
4266
  { "PMEVTYPER7_EL0", "PMEVTYPER7_EL0", 0xDF67, true, true,  {}  }, // 693
4267
  { "PMEVTYPER8_EL0", "PMEVTYPER8_EL0", 0xDF68, true, true,  {}  }, // 694
4268
  { "PMEVTYPER9_EL0", "PMEVTYPER9_EL0", 0xDF69, true, true,  {}  }, // 695
4269
  { "PMIAR_EL1", "PMIAR_EL1", 0xC4F7, true, true,  {}  }, // 696
4270
  { "PMICFILTR_EL0", "PMICFILTR_EL0", 0xDCB0, true, true,  {}  }, // 697
4271
  { "PMICNTR_EL0", "PMICNTR_EL0", 0xDCA0, true, true,  {}  }, // 698
4272
  { "PMICNTSVR_EL1", "PMICNTSVR_EL1", 0x8760, true, false,  {}  }, // 699
4273
  { "PMINTENCLR_EL1", "PMINTENCLR_EL1", 0xC4F2, true, true,  {}  }, // 700
4274
  { "PMINTENSET_EL1", "PMINTENSET_EL1", 0xC4F1, true, true,  {}  }, // 701
4275
  { "PMMIR_EL1", "PMMIR_EL1", 0xC4F6, true, false,  {}  }, // 702
4276
  { "PMOVSCLR_EL0", "PMOVSCLR_EL0", 0xDCE3, true, true,  {}  }, // 703
4277
  { "PMOVSSET_EL0", "PMOVSSET_EL0", 0xDCF3, true, true,  {}  }, // 704
4278
  { "PMSCR_EL1", "PMSCR_EL1", 0xC4C8, true, true,  {AArch64::FeatureSPE}  }, // 705
4279
  { "PMSCR_EL12", "PMSCR_EL12", 0xECC8, true, true,  {AArch64::FeatureSPE}  }, // 706
4280
  { "PMSCR_EL2", "PMSCR_EL2", 0xE4C8, true, true,  {AArch64::FeatureSPE}  }, // 707
4281
  { "PMSDSFR_EL1", "PMSDSFR_EL1", 0xC4D4, true, true,  {}  }, // 708
4282
  { "PMSELR_EL0", "PMSELR_EL0", 0xDCE5, true, true,  {}  }, // 709
4283
  { "PMSEVFR_EL1", "PMSEVFR_EL1", 0xC4CD, true, true,  {AArch64::FeatureSPE}  }, // 710
4284
  { "PMSFCR_EL1", "PMSFCR_EL1", 0xC4CC, true, true,  {AArch64::FeatureSPE}  }, // 711
4285
  { "PMSICR_EL1", "PMSICR_EL1", 0xC4CA, true, true,  {AArch64::FeatureSPE}  }, // 712
4286
  { "PMSIDR_EL1", "PMSIDR_EL1", 0xC4CF, true, false,  {AArch64::FeatureSPE}  }, // 713
4287
  { "PMSIRR_EL1", "PMSIRR_EL1", 0xC4CB, true, true,  {AArch64::FeatureSPE}  }, // 714
4288
  { "PMSLATFR_EL1", "PMSLATFR_EL1", 0xC4CE, true, true,  {AArch64::FeatureSPE}  }, // 715
4289
  { "PMSNEVFR_EL1", "PMSNEVFR_EL1", 0xC4C9, true, true,  {AArch64::FeatureSPE_EEF}  }, // 716
4290
  { "PMSSCR_EL1", "PMSSCR_EL1", 0xC4EB, true, true,  {}  }, // 717
4291
  { "PMSWINC_EL0", "PMSWINC_EL0", 0xDCE4, false, true,  {}  }, // 718
4292
  { "PMUACR_EL1", "PMUACR_EL1", 0xC4F4, true, true,  {}  }, // 719
4293
  { "PMUSERENR_EL0", "PMUSERENR_EL0", 0xDCF0, true, true,  {}  }, // 720
4294
  { "PMXEVCNTR_EL0", "PMXEVCNTR_EL0", 0xDCEA, true, true,  {}  }, // 721
4295
  { "PMXEVTYPER_EL0", "PMXEVTYPER_EL0", 0xDCE9, true, true,  {}  }, // 722
4296
  { "PMZR_EL0", "PMZR_EL0", 0xDCEC, false, true,  {}  }, // 723
4297
  { "POR_EL0", "POR_EL0", 0xDD14, true, true,  {}  }, // 724
4298
  { "POR_EL1", "POR_EL1", 0xC514, true, true,  {}  }, // 725
4299
  { "POR_EL12", "POR_EL12", 0xED14, true, true,  {}  }, // 726
4300
  { "POR_EL2", "POR_EL2", 0xE514, true, true,  {}  }, // 727
4301
  { "POR_EL3", "POR_EL3", 0xF514, true, true,  {}  }, // 728
4302
  { "PRBAR10_EL1", "PRBAR10_EL1", 0xC368, true, true,  {AArch64::HasV8_0rOps}  }, // 729
4303
  { "PRBAR10_EL2", "PRBAR10_EL2", 0xE368, true, true,  {AArch64::HasV8_0rOps}  }, // 730
4304
  { "PRBAR11_EL1", "PRBAR11_EL1", 0xC36C, true, true,  {AArch64::HasV8_0rOps}  }, // 731
4305
  { "PRBAR11_EL2", "PRBAR11_EL2", 0xE36C, true, true,  {AArch64::HasV8_0rOps}  }, // 732
4306
  { "PRBAR12_EL1", "PRBAR12_EL1", 0xC370, true, true,  {AArch64::HasV8_0rOps}  }, // 733
4307
  { "PRBAR12_EL2", "PRBAR12_EL2", 0xE370, true, true,  {AArch64::HasV8_0rOps}  }, // 734
4308
  { "PRBAR13_EL1", "PRBAR13_EL1", 0xC374, true, true,  {AArch64::HasV8_0rOps}  }, // 735
4309
  { "PRBAR13_EL2", "PRBAR13_EL2", 0xE374, true, true,  {AArch64::HasV8_0rOps}  }, // 736
4310
  { "PRBAR14_EL1", "PRBAR14_EL1", 0xC378, true, true,  {AArch64::HasV8_0rOps}  }, // 737
4311
  { "PRBAR14_EL2", "PRBAR14_EL2", 0xE378, true, true,  {AArch64::HasV8_0rOps}  }, // 738
4312
  { "PRBAR15_EL1", "PRBAR15_EL1", 0xC37C, true, true,  {AArch64::HasV8_0rOps}  }, // 739
4313
  { "PRBAR15_EL2", "PRBAR15_EL2", 0xE37C, true, true,  {AArch64::HasV8_0rOps}  }, // 740
4314
  { "PRBAR1_EL1", "PRBAR1_EL1", 0xC344, true, true,  {AArch64::HasV8_0rOps}  }, // 741
4315
  { "PRBAR1_EL2", "PRBAR1_EL2", 0xE344, true, true,  {AArch64::HasV8_0rOps}  }, // 742
4316
  { "PRBAR2_EL1", "PRBAR2_EL1", 0xC348, true, true,  {AArch64::HasV8_0rOps}  }, // 743
4317
  { "PRBAR2_EL2", "PRBAR2_EL2", 0xE348, true, true,  {AArch64::HasV8_0rOps}  }, // 744
4318
  { "PRBAR3_EL1", "PRBAR3_EL1", 0xC34C, true, true,  {AArch64::HasV8_0rOps}  }, // 745
4319
  { "PRBAR3_EL2", "PRBAR3_EL2", 0xE34C, true, true,  {AArch64::HasV8_0rOps}  }, // 746
4320
  { "PRBAR4_EL1", "PRBAR4_EL1", 0xC350, true, true,  {AArch64::HasV8_0rOps}  }, // 747
4321
  { "PRBAR4_EL2", "PRBAR4_EL2", 0xE350, true, true,  {AArch64::HasV8_0rOps}  }, // 748
4322
  { "PRBAR5_EL1", "PRBAR5_EL1", 0xC354, true, true,  {AArch64::HasV8_0rOps}  }, // 749
4323
  { "PRBAR5_EL2", "PRBAR5_EL2", 0xE354, true, true,  {AArch64::HasV8_0rOps}  }, // 750
4324
  { "PRBAR6_EL1", "PRBAR6_EL1", 0xC358, true, true,  {AArch64::HasV8_0rOps}  }, // 751
4325
  { "PRBAR6_EL2", "PRBAR6_EL2", 0xE358, true, true,  {AArch64::HasV8_0rOps}  }, // 752
4326
  { "PRBAR7_EL1", "PRBAR7_EL1", 0xC35C, true, true,  {AArch64::HasV8_0rOps}  }, // 753
4327
  { "PRBAR7_EL2", "PRBAR7_EL2", 0xE35C, true, true,  {AArch64::HasV8_0rOps}  }, // 754
4328
  { "PRBAR8_EL1", "PRBAR8_EL1", 0xC360, true, true,  {AArch64::HasV8_0rOps}  }, // 755
4329
  { "PRBAR8_EL2", "PRBAR8_EL2", 0xE360, true, true,  {AArch64::HasV8_0rOps}  }, // 756
4330
  { "PRBAR9_EL1", "PRBAR9_EL1", 0xC364, true, true,  {AArch64::HasV8_0rOps}  }, // 757
4331
  { "PRBAR9_EL2", "PRBAR9_EL2", 0xE364, true, true,  {AArch64::HasV8_0rOps}  }, // 758
4332
  { "PRBAR_EL1", "PRBAR_EL1", 0xC340, true, true,  {AArch64::HasV8_0rOps}  }, // 759
4333
  { "PRBAR_EL2", "PRBAR_EL2", 0xE340, true, true,  {AArch64::HasV8_0rOps}  }, // 760
4334
  { "PRENR_EL1", "PRENR_EL1", 0xC309, true, true,  {AArch64::HasV8_0rOps}  }, // 761
4335
  { "PRENR_EL2", "PRENR_EL2", 0xE309, true, true,  {AArch64::HasV8_0rOps}  }, // 762
4336
  { "PRLAR10_EL1", "PRLAR10_EL1", 0xC369, true, true,  {AArch64::HasV8_0rOps}  }, // 763
4337
  { "PRLAR10_EL2", "PRLAR10_EL2", 0xE369, true, true,  {AArch64::HasV8_0rOps}  }, // 764
4338
  { "PRLAR11_EL1", "PRLAR11_EL1", 0xC36D, true, true,  {AArch64::HasV8_0rOps}  }, // 765
4339
  { "PRLAR11_EL2", "PRLAR11_EL2", 0xE36D, true, true,  {AArch64::HasV8_0rOps}  }, // 766
4340
  { "PRLAR12_EL1", "PRLAR12_EL1", 0xC371, true, true,  {AArch64::HasV8_0rOps}  }, // 767
4341
  { "PRLAR12_EL2", "PRLAR12_EL2", 0xE371, true, true,  {AArch64::HasV8_0rOps}  }, // 768
4342
  { "PRLAR13_EL1", "PRLAR13_EL1", 0xC375, true, true,  {AArch64::HasV8_0rOps}  }, // 769
4343
  { "PRLAR13_EL2", "PRLAR13_EL2", 0xE375, true, true,  {AArch64::HasV8_0rOps}  }, // 770
4344
  { "PRLAR14_EL1", "PRLAR14_EL1", 0xC379, true, true,  {AArch64::HasV8_0rOps}  }, // 771
4345
  { "PRLAR14_EL2", "PRLAR14_EL2", 0xE379, true, true,  {AArch64::HasV8_0rOps}  }, // 772
4346
  { "PRLAR15_EL1", "PRLAR15_EL1", 0xC37D, true, true,  {AArch64::HasV8_0rOps}  }, // 773
4347
  { "PRLAR15_EL2", "PRLAR15_EL2", 0xE37D, true, true,  {AArch64::HasV8_0rOps}  }, // 774
4348
  { "PRLAR1_EL1", "PRLAR1_EL1", 0xC345, true, true,  {AArch64::HasV8_0rOps}  }, // 775
4349
  { "PRLAR1_EL2", "PRLAR1_EL2", 0xE345, true, true,  {AArch64::HasV8_0rOps}  }, // 776
4350
  { "PRLAR2_EL1", "PRLAR2_EL1", 0xC349, true, true,  {AArch64::HasV8_0rOps}  }, // 777
4351
  { "PRLAR2_EL2", "PRLAR2_EL2", 0xE349, true, true,  {AArch64::HasV8_0rOps}  }, // 778
4352
  { "PRLAR3_EL1", "PRLAR3_EL1", 0xC34D, true, true,  {AArch64::HasV8_0rOps}  }, // 779
4353
  { "PRLAR3_EL2", "PRLAR3_EL2", 0xE34D, true, true,  {AArch64::HasV8_0rOps}  }, // 780
4354
  { "PRLAR4_EL1", "PRLAR4_EL1", 0xC351, true, true,  {AArch64::HasV8_0rOps}  }, // 781
4355
  { "PRLAR4_EL2", "PRLAR4_EL2", 0xE351, true, true,  {AArch64::HasV8_0rOps}  }, // 782
4356
  { "PRLAR5_EL1", "PRLAR5_EL1", 0xC355, true, true,  {AArch64::HasV8_0rOps}  }, // 783
4357
  { "PRLAR5_EL2", "PRLAR5_EL2", 0xE355, true, true,  {AArch64::HasV8_0rOps}  }, // 784
4358
  { "PRLAR6_EL1", "PRLAR6_EL1", 0xC359, true, true,  {AArch64::HasV8_0rOps}  }, // 785
4359
  { "PRLAR6_EL2", "PRLAR6_EL2", 0xE359, true, true,  {AArch64::HasV8_0rOps}  }, // 786
4360
  { "PRLAR7_EL1", "PRLAR7_EL1", 0xC35D, true, true,  {AArch64::HasV8_0rOps}  }, // 787
4361
  { "PRLAR7_EL2", "PRLAR7_EL2", 0xE35D, true, true,  {AArch64::HasV8_0rOps}  }, // 788
4362
  { "PRLAR8_EL1", "PRLAR8_EL1", 0xC361, true, true,  {AArch64::HasV8_0rOps}  }, // 789
4363
  { "PRLAR8_EL2", "PRLAR8_EL2", 0xE361, true, true,  {AArch64::HasV8_0rOps}  }, // 790
4364
  { "PRLAR9_EL1", "PRLAR9_EL1", 0xC365, true, true,  {AArch64::HasV8_0rOps}  }, // 791
4365
  { "PRLAR9_EL2", "PRLAR9_EL2", 0xE365, true, true,  {AArch64::HasV8_0rOps}  }, // 792
4366
  { "PRLAR_EL1", "PRLAR_EL1", 0xC341, true, true,  {AArch64::HasV8_0rOps}  }, // 793
4367
  { "PRLAR_EL2", "PRLAR_EL2", 0xE341, true, true,  {AArch64::HasV8_0rOps}  }, // 794
4368
  { "PRSELR_EL1", "PRSELR_EL1", 0xC311, true, true,  {AArch64::HasV8_0rOps}  }, // 795
4369
  { "PRSELR_EL2", "PRSELR_EL2", 0xE311, true, true,  {AArch64::HasV8_0rOps}  }, // 796
4370
  { "RCWMASK_EL1", "RCWMASK_EL1", 0xC686, true, true,  {AArch64::FeatureTHE}  }, // 797
4371
  { "RCWSMASK_EL1", "RCWSMASK_EL1", 0xC683, true, true,  {AArch64::FeatureTHE}  }, // 798
4372
  { "REVIDR_EL1", "REVIDR_EL1", 0xC006, true, false,  {}  }, // 799
4373
  { "RGSR_EL1", "RGSR_EL1", 0xC085, true, true,  {AArch64::FeatureMTE}  }, // 800
4374
  { "RMR_EL1", "RMR_EL1", 0xC602, true, true,  {}  }, // 801
4375
  { "RMR_EL2", "RMR_EL2", 0xE602, true, true,  {}  }, // 802
4376
  { "RMR_EL3", "RMR_EL3", 0xF602, true, true,  {}  }, // 803
4377
  { "RNDR", "RNDR", 0xD920, true, false,  {AArch64::FeatureRandGen}  }, // 804
4378
  { "RNDRRS", "RNDRRS", 0xD921, true, false,  {AArch64::FeatureRandGen}  }, // 805
4379
  { "RVBAR_EL1", "RVBAR_EL1", 0xC601, true, false,  {}  }, // 806
4380
  { "RVBAR_EL2", "RVBAR_EL2", 0xE601, true, false,  {}  }, // 807
4381
  { "RVBAR_EL3", "RVBAR_EL3", 0xF601, true, false,  {}  }, // 808
4382
  { "S2PIR_EL2", "S2PIR_EL2", 0xE515, true, true,  {}  }, // 809
4383
  { "S2POR_EL1", "S2POR_EL1", 0xC515, true, true,  {}  }, // 810
4384
  { "SCR_EL3", "SCR_EL3", 0xF088, true, true,  {}  }, // 811
4385
  { "SCTLR2_EL1", "SCTLR2_EL1", 0xC083, true, true,  {}  }, // 812
4386
  { "SCTLR2_EL12", "SCTLR2_EL12", 0xE883, true, true,  {}  }, // 813
4387
  { "SCTLR2_EL2", "SCTLR2_EL2", 0xE083, true, true,  {}  }, // 814
4388
  { "SCTLR2_EL3", "SCTLR2_EL3", 0xF083, true, true,  {}  }, // 815
4389
  { "SCTLR_EL1", "SCTLR_EL1", 0xC080, true, true,  {}  }, // 816
4390
  { "SCTLR_EL12", "SCTLR_EL12", 0xE880, true, true,  {AArch64::FeatureVH}  }, // 817
4391
  { "SCTLR_EL2", "SCTLR_EL2", 0xE080, true, true,  {}  }, // 818
4392
  { "SCTLR_EL3", "SCTLR_EL3", 0xF080, true, true,  {}  }, // 819
4393
  { "SCXTNUM_EL0", "SCXTNUM_EL0", 0xDE87, true, true,  {AArch64::FeatureSpecRestrict}  }, // 820
4394
  { "SCXTNUM_EL1", "SCXTNUM_EL1", 0xC687, true, true,  {AArch64::FeatureSpecRestrict}  }, // 821
4395
  { "SCXTNUM_EL12", "SCXTNUM_EL12", 0xEE87, true, true,  {AArch64::FeatureSpecRestrict}  }, // 822
4396
  { "SCXTNUM_EL2", "SCXTNUM_EL2", 0xE687, true, true,  {AArch64::FeatureSpecRestrict}  }, // 823
4397
  { "SCXTNUM_EL3", "SCXTNUM_EL3", 0xF687, true, true,  {AArch64::FeatureSpecRestrict}  }, // 824
4398
  { "SDER32_EL2", "SDER32_EL2", 0xE099, true, true,  {AArch64::FeatureSEL2}  }, // 825
4399
  { "SDER32_EL3", "SDER32_EL3", 0xF089, true, true,  {}  }, // 826
4400
  { "SMCR_EL1", "SMCR_EL1", 0xC096, true, true,  {AArch64::FeatureSME}  }, // 827
4401
  { "SMCR_EL12", "SMCR_EL12", 0xE896, true, true,  {AArch64::FeatureSME}  }, // 828
4402
  { "SMCR_EL2", "SMCR_EL2", 0xE096, true, true,  {AArch64::FeatureSME}  }, // 829
4403
  { "SMCR_EL3", "SMCR_EL3", 0xF096, true, true,  {AArch64::FeatureSME}  }, // 830
4404
  { "SMIDR_EL1", "SMIDR_EL1", 0xC806, true, false,  {AArch64::FeatureSME}  }, // 831
4405
  { "SMPRIMAP_EL2", "SMPRIMAP_EL2", 0xE095, true, true,  {AArch64::FeatureSME}  }, // 832
4406
  { "SMPRI_EL1", "SMPRI_EL1", 0xC094, true, true,  {AArch64::FeatureSME}  }, // 833
4407
  { "SPMACCESSR_EL1", "SPMACCESSR_EL1", 0x84EB, true, true,  {}  }, // 834
4408
  { "SPMACCESSR_EL12", "SPMACCESSR_EL12", 0xACEB, true, true,  {}  }, // 835
4409
  { "SPMACCESSR_EL2", "SPMACCESSR_EL2", 0xA4EB, true, true,  {}  }, // 836
4410
  { "SPMACCESSR_EL3", "SPMACCESSR_EL3", 0xB4EB, true, true,  {}  }, // 837
4411
  { "SPMCFGR_EL1", "SPMCFGR_EL1", 0x84EF, true, false,  {}  }, // 838
4412
  { "SPMCGCR0_EL1", "SPMCGCR0_EL1", 0x84E8, true, false,  {}  }, // 839
4413
  { "SPMCGCR1_EL1", "SPMCGCR1_EL1", 0x84E9, true, false,  {}  }, // 840
4414
  { "SPMCNTENCLR_EL0", "SPMCNTENCLR_EL0", 0x9CE2, true, true,  {}  }, // 841
4415
  { "SPMCNTENSET_EL0", "SPMCNTENSET_EL0", 0x9CE1, true, true,  {}  }, // 842
4416
  { "SPMCR_EL0", "SPMCR_EL0", 0x9CE0, true, true,  {}  }, // 843
4417
  { "SPMDEVAFF_EL1", "SPMDEVAFF_EL1", 0x84EE, true, false,  {}  }, // 844
4418
  { "SPMDEVARCH_EL1", "SPMDEVARCH_EL1", 0x84ED, true, false,  {}  }, // 845
4419
  { "SPMEVCNTR0_EL0", "SPMEVCNTR0_EL0", 0x9F00, true, true,  {}  }, // 846
4420
  { "SPMEVCNTR10_EL0", "SPMEVCNTR10_EL0", 0x9F0A, true, true,  {}  }, // 847
4421
  { "SPMEVCNTR11_EL0", "SPMEVCNTR11_EL0", 0x9F0B, true, true,  {}  }, // 848
4422
  { "SPMEVCNTR12_EL0", "SPMEVCNTR12_EL0", 0x9F0C, true, true,  {}  }, // 849
4423
  { "SPMEVCNTR13_EL0", "SPMEVCNTR13_EL0", 0x9F0D, true, true,  {}  }, // 850
4424
  { "SPMEVCNTR14_EL0", "SPMEVCNTR14_EL0", 0x9F0E, true, true,  {}  }, // 851
4425
  { "SPMEVCNTR15_EL0", "SPMEVCNTR15_EL0", 0x9F0F, true, true,  {}  }, // 852
4426
  { "SPMEVCNTR1_EL0", "SPMEVCNTR1_EL0", 0x9F01, true, true,  {}  }, // 853
4427
  { "SPMEVCNTR2_EL0", "SPMEVCNTR2_EL0", 0x9F02, true, true,  {}  }, // 854
4428
  { "SPMEVCNTR3_EL0", "SPMEVCNTR3_EL0", 0x9F03, true, true,  {}  }, // 855
4429
  { "SPMEVCNTR4_EL0", "SPMEVCNTR4_EL0", 0x9F04, true, true,  {}  }, // 856
4430
  { "SPMEVCNTR5_EL0", "SPMEVCNTR5_EL0", 0x9F05, true, true,  {}  }, // 857
4431
  { "SPMEVCNTR6_EL0", "SPMEVCNTR6_EL0", 0x9F06, true, true,  {}  }, // 858
4432
  { "SPMEVCNTR7_EL0", "SPMEVCNTR7_EL0", 0x9F07, true, true,  {}  }, // 859
4433
  { "SPMEVCNTR8_EL0", "SPMEVCNTR8_EL0", 0x9F08, true, true,  {}  }, // 860
4434
  { "SPMEVCNTR9_EL0", "SPMEVCNTR9_EL0", 0x9F09, true, true,  {}  }, // 861
4435
  { "SPMEVFILT2R0_EL0", "SPMEVFILT2R0_EL0", 0x9F30, true, true,  {}  }, // 862
4436
  { "SPMEVFILT2R10_EL0", "SPMEVFILT2R10_EL0", 0x9F3A, true, true,  {}  }, // 863
4437
  { "SPMEVFILT2R11_EL0", "SPMEVFILT2R11_EL0", 0x9F3B, true, true,  {}  }, // 864
4438
  { "SPMEVFILT2R12_EL0", "SPMEVFILT2R12_EL0", 0x9F3C, true, true,  {}  }, // 865
4439
  { "SPMEVFILT2R13_EL0", "SPMEVFILT2R13_EL0", 0x9F3D, true, true,  {}  }, // 866
4440
  { "SPMEVFILT2R14_EL0", "SPMEVFILT2R14_EL0", 0x9F3E, true, true,  {}  }, // 867
4441
  { "SPMEVFILT2R15_EL0", "SPMEVFILT2R15_EL0", 0x9F3F, true, true,  {}  }, // 868
4442
  { "SPMEVFILT2R1_EL0", "SPMEVFILT2R1_EL0", 0x9F31, true, true,  {}  }, // 869
4443
  { "SPMEVFILT2R2_EL0", "SPMEVFILT2R2_EL0", 0x9F32, true, true,  {}  }, // 870
4444
  { "SPMEVFILT2R3_EL0", "SPMEVFILT2R3_EL0", 0x9F33, true, true,  {}  }, // 871
4445
  { "SPMEVFILT2R4_EL0", "SPMEVFILT2R4_EL0", 0x9F34, true, true,  {}  }, // 872
4446
  { "SPMEVFILT2R5_EL0", "SPMEVFILT2R5_EL0", 0x9F35, true, true,  {}  }, // 873
4447
  { "SPMEVFILT2R6_EL0", "SPMEVFILT2R6_EL0", 0x9F36, true, true,  {}  }, // 874
4448
  { "SPMEVFILT2R7_EL0", "SPMEVFILT2R7_EL0", 0x9F37, true, true,  {}  }, // 875
4449
  { "SPMEVFILT2R8_EL0", "SPMEVFILT2R8_EL0", 0x9F38, true, true,  {}  }, // 876
4450
  { "SPMEVFILT2R9_EL0", "SPMEVFILT2R9_EL0", 0x9F39, true, true,  {}  }, // 877
4451
  { "SPMEVFILTR0_EL0", "SPMEVFILTR0_EL0", 0x9F20, true, true,  {}  }, // 878
4452
  { "SPMEVFILTR10_EL0", "SPMEVFILTR10_EL0", 0x9F2A, true, true,  {}  }, // 879
4453
  { "SPMEVFILTR11_EL0", "SPMEVFILTR11_EL0", 0x9F2B, true, true,  {}  }, // 880
4454
  { "SPMEVFILTR12_EL0", "SPMEVFILTR12_EL0", 0x9F2C, true, true,  {}  }, // 881
4455
  { "SPMEVFILTR13_EL0", "SPMEVFILTR13_EL0", 0x9F2D, true, true,  {}  }, // 882
4456
  { "SPMEVFILTR14_EL0", "SPMEVFILTR14_EL0", 0x9F2E, true, true,  {}  }, // 883
4457
  { "SPMEVFILTR15_EL0", "SPMEVFILTR15_EL0", 0x9F2F, true, true,  {}  }, // 884
4458
  { "SPMEVFILTR1_EL0", "SPMEVFILTR1_EL0", 0x9F21, true, true,  {}  }, // 885
4459
  { "SPMEVFILTR2_EL0", "SPMEVFILTR2_EL0", 0x9F22, true, true,  {}  }, // 886
4460
  { "SPMEVFILTR3_EL0", "SPMEVFILTR3_EL0", 0x9F23, true, true,  {}  }, // 887
4461
  { "SPMEVFILTR4_EL0", "SPMEVFILTR4_EL0", 0x9F24, true, true,  {}  }, // 888
4462
  { "SPMEVFILTR5_EL0", "SPMEVFILTR5_EL0", 0x9F25, true, true,  {}  }, // 889
4463
  { "SPMEVFILTR6_EL0", "SPMEVFILTR6_EL0", 0x9F26, true, true,  {}  }, // 890
4464
  { "SPMEVFILTR7_EL0", "SPMEVFILTR7_EL0", 0x9F27, true, true,  {}  }, // 891
4465
  { "SPMEVFILTR8_EL0", "SPMEVFILTR8_EL0", 0x9F28, true, true,  {}  }, // 892
4466
  { "SPMEVFILTR9_EL0", "SPMEVFILTR9_EL0", 0x9F29, true, true,  {}  }, // 893
4467
  { "SPMEVTYPER0_EL0", "SPMEVTYPER0_EL0", 0x9F10, true, true,  {}  }, // 894
4468
  { "SPMEVTYPER10_EL0", "SPMEVTYPER10_EL0", 0x9F1A, true, true,  {}  }, // 895
4469
  { "SPMEVTYPER11_EL0", "SPMEVTYPER11_EL0", 0x9F1B, true, true,  {}  }, // 896
4470
  { "SPMEVTYPER12_EL0", "SPMEVTYPER12_EL0", 0x9F1C, true, true,  {}  }, // 897
4471
  { "SPMEVTYPER13_EL0", "SPMEVTYPER13_EL0", 0x9F1D, true, true,  {}  }, // 898
4472
  { "SPMEVTYPER14_EL0", "SPMEVTYPER14_EL0", 0x9F1E, true, true,  {}  }, // 899
4473
  { "SPMEVTYPER15_EL0", "SPMEVTYPER15_EL0", 0x9F1F, true, true,  {}  }, // 900
4474
  { "SPMEVTYPER1_EL0", "SPMEVTYPER1_EL0", 0x9F11, true, true,  {}  }, // 901
4475
  { "SPMEVTYPER2_EL0", "SPMEVTYPER2_EL0", 0x9F12, true, true,  {}  }, // 902
4476
  { "SPMEVTYPER3_EL0", "SPMEVTYPER3_EL0", 0x9F13, true, true,  {}  }, // 903
4477
  { "SPMEVTYPER4_EL0", "SPMEVTYPER4_EL0", 0x9F14, true, true,  {}  }, // 904
4478
  { "SPMEVTYPER5_EL0", "SPMEVTYPER5_EL0", 0x9F15, true, true,  {}  }, // 905
4479
  { "SPMEVTYPER6_EL0", "SPMEVTYPER6_EL0", 0x9F16, true, true,  {}  }, // 906
4480
  { "SPMEVTYPER7_EL0", "SPMEVTYPER7_EL0", 0x9F17, true, true,  {}  }, // 907
4481
  { "SPMEVTYPER8_EL0", "SPMEVTYPER8_EL0", 0x9F18, true, true,  {}  }, // 908
4482
  { "SPMEVTYPER9_EL0", "SPMEVTYPER9_EL0", 0x9F19, true, true,  {}  }, // 909
4483
  { "SPMIIDR_EL1", "SPMIIDR_EL1", 0x84EC, true, false,  {}  }, // 910
4484
  { "SPMINTENCLR_EL1", "SPMINTENCLR_EL1", 0x84F2, true, true,  {}  }, // 911
4485
  { "SPMINTENSET_EL1", "SPMINTENSET_EL1", 0x84F1, true, true,  {}  }, // 912
4486
  { "SPMOVSCLR_EL0", "SPMOVSCLR_EL0", 0x9CE3, true, true,  {}  }, // 913
4487
  { "SPMOVSSET_EL0", "SPMOVSSET_EL0", 0x9CF3, true, true,  {}  }, // 914
4488
  { "SPMROOTCR_EL3", "SPMROOTCR_EL3", 0xB4F7, true, true,  {}  }, // 915
4489
  { "SPMSCR_EL1", "SPMSCR_EL1", 0xBCF7, true, true,  {}  }, // 916
4490
  { "SPMSELR_EL0", "SPMSELR_EL0", 0x9CE5, true, true,  {}  }, // 917
4491
  { "SPMZR_EL0", "SPMZR_EL0", 0x9CE4, false, true,  {}  }, // 918
4492
  { "SPSel", "SPSel", 0xC210, true, true,  {}  }, // 919
4493
  { "SPSR_abt", "SPSR_abt", 0xE219, true, true,  {}  }, // 920
4494
  { "SPSR_EL1", "SPSR_EL1", 0xC200, true, true,  {}  }, // 921
4495
  { "SPSR_EL12", "SPSR_EL12", 0xEA00, true, true,  {AArch64::FeatureVH}  }, // 922
4496
  { "SPSR_EL2", "SPSR_EL2", 0xE200, true, true,  {}  }, // 923
4497
  { "SPSR_EL3", "SPSR_EL3", 0xF200, true, true,  {}  }, // 924
4498
  { "SPSR_fiq", "SPSR_fiq", 0xE21B, true, true,  {}  }, // 925
4499
  { "SPSR_irq", "SPSR_irq", 0xE218, true, true,  {}  }, // 926
4500
  { "SPSR_und", "SPSR_und", 0xE21A, true, true,  {}  }, // 927
4501
  { "SP_EL0", "SP_EL0", 0xC208, true, true,  {}  }, // 928
4502
  { "SP_EL1", "SP_EL1", 0xE208, true, true,  {}  }, // 929
4503
  { "SP_EL2", "SP_EL2", 0xF208, true, true,  {}  }, // 930
4504
  { "SSBS", "SSBS", 0xDA16, true, true,  {AArch64::FeatureSSBS}  }, // 931
4505
  { "SVCR", "SVCR", 0xDA12, true, true,  {AArch64::FeatureSME}  }, // 932
4506
  { "TCO", "TCO", 0xDA17, true, true,  {AArch64::FeatureMTE}  }, // 933
4507
  { "TCR2_EL1", "TCR2_EL1", 0xC103, true, true,  {}  }, // 934
4508
  { "TCR2_EL12", "TCR2_EL12", 0xE903, true, true,  {}  }, // 935
4509
  { "TCR2_EL2", "TCR2_EL2", 0xE103, true, true,  {}  }, // 936
4510
  { "TCR_EL1", "TCR_EL1", 0xC102, true, true,  {}  }, // 937
4511
  { "TCR_EL12", "TCR_EL12", 0xE902, true, true,  {AArch64::FeatureVH}  }, // 938
4512
  { "TCR_EL2", "TCR_EL2", 0xE102, true, true,  {}  }, // 939
4513
  { "TCR_EL3", "TCR_EL3", 0xF102, true, true,  {}  }, // 940
4514
  { "TEECR32_EL1", "TEECR32_EL1", 0x9000, true, true,  {}  }, // 941
4515
  { "TEEHBR32_EL1", "TEEHBR32_EL1", 0x9080, true, true,  {}  }, // 942
4516
  { "TFSRE0_EL1", "TFSRE0_EL1", 0xC2B1, true, true,  {AArch64::FeatureMTE}  }, // 943
4517
  { "TFSR_EL1", "TFSR_EL1", 0xC2B0, true, true,  {AArch64::FeatureMTE}  }, // 944
4518
  { "TFSR_EL12", "TFSR_EL12", 0xEAB0, true, true,  {AArch64::FeatureMTE}  }, // 945
4519
  { "TFSR_EL2", "TFSR_EL2", 0xE2B0, true, true,  {AArch64::FeatureMTE}  }, // 946
4520
  { "TFSR_EL3", "TFSR_EL3", 0xF2B0, true, true,  {AArch64::FeatureMTE}  }, // 947
4521
  { "TPIDR2_EL0", "TPIDR2_EL0", 0xDE85, true, true,  {AArch64::FeatureSME}  }, // 948
4522
  { "TPIDRRO_EL0", "TPIDRRO_EL0", 0xDE83, true, true,  {}  }, // 949
4523
  { "TPIDR_EL0", "TPIDR_EL0", 0xDE82, true, true,  {}  }, // 950
4524
  { "TPIDR_EL1", "TPIDR_EL1", 0xC684, true, true,  {}  }, // 951
4525
  { "TPIDR_EL2", "TPIDR_EL2", 0xE682, true, true,  {}  }, // 952
4526
  { "TPIDR_EL3", "TPIDR_EL3", 0xF682, true, true,  {}  }, // 953
4527
  { "TRBBASER_EL1", "TRBBASER_EL1", 0xC4DA, true, true,  {AArch64::FeatureTRBE}  }, // 954
4528
  { "TRBIDR_EL1", "TRBIDR_EL1", 0xC4DF, true, false,  {AArch64::FeatureTRBE}  }, // 955
4529
  { "TRBLIMITR_EL1", "TRBLIMITR_EL1", 0xC4D8, true, true,  {AArch64::FeatureTRBE}  }, // 956
4530
  { "TRBMAR_EL1", "TRBMAR_EL1", 0xC4DC, true, true,  {AArch64::FeatureTRBE}  }, // 957
4531
  { "TRBPTR_EL1", "TRBPTR_EL1", 0xC4D9, true, true,  {AArch64::FeatureTRBE}  }, // 958
4532
  { "TRBSR_EL1", "TRBSR_EL1", 0xC4DB, true, true,  {AArch64::FeatureTRBE}  }, // 959
4533
  { "TRBTRG_EL1", "TRBTRG_EL1", 0xC4DE, true, true,  {AArch64::FeatureTRBE}  }, // 960
4534
  { "TRCACATR0", "TRCACATR0", 0x8902, true, true,  {}  }, // 961
4535
  { "TRCACATR1", "TRCACATR1", 0x8912, true, true,  {}  }, // 962
4536
  { "TRCACATR10", "TRCACATR10", 0x8923, true, true,  {}  }, // 963
4537
  { "TRCACATR11", "TRCACATR11", 0x8933, true, true,  {}  }, // 964
4538
  { "TRCACATR12", "TRCACATR12", 0x8943, true, true,  {}  }, // 965
4539
  { "TRCACATR13", "TRCACATR13", 0x8953, true, true,  {}  }, // 966
4540
  { "TRCACATR14", "TRCACATR14", 0x8963, true, true,  {}  }, // 967
4541
  { "TRCACATR15", "TRCACATR15", 0x8973, true, true,  {}  }, // 968
4542
  { "TRCACATR2", "TRCACATR2", 0x8922, true, true,  {}  }, // 969
4543
  { "TRCACATR3", "TRCACATR3", 0x8932, true, true,  {}  }, // 970
4544
  { "TRCACATR4", "TRCACATR4", 0x8942, true, true,  {}  }, // 971
4545
  { "TRCACATR5", "TRCACATR5", 0x8952, true, true,  {}  }, // 972
4546
  { "TRCACATR6", "TRCACATR6", 0x8962, true, true,  {}  }, // 973
4547
  { "TRCACATR7", "TRCACATR7", 0x8972, true, true,  {}  }, // 974
4548
  { "TRCACATR8", "TRCACATR8", 0x8903, true, true,  {}  }, // 975
4549
  { "TRCACATR9", "TRCACATR9", 0x8913, true, true,  {}  }, // 976
4550
  { "TRCACVR0", "TRCACVR0", 0x8900, true, true,  {}  }, // 977
4551
  { "TRCACVR1", "TRCACVR1", 0x8910, true, true,  {}  }, // 978
4552
  { "TRCACVR10", "TRCACVR10", 0x8921, true, true,  {}  }, // 979
4553
  { "TRCACVR11", "TRCACVR11", 0x8931, true, true,  {}  }, // 980
4554
  { "TRCACVR12", "TRCACVR12", 0x8941, true, true,  {}  }, // 981
4555
  { "TRCACVR13", "TRCACVR13", 0x8951, true, true,  {}  }, // 982
4556
  { "TRCACVR14", "TRCACVR14", 0x8961, true, true,  {}  }, // 983
4557
  { "TRCACVR15", "TRCACVR15", 0x8971, true, true,  {}  }, // 984
4558
  { "TRCACVR2", "TRCACVR2", 0x8920, true, true,  {}  }, // 985
4559
  { "TRCACVR3", "TRCACVR3", 0x8930, true, true,  {}  }, // 986
4560
  { "TRCACVR4", "TRCACVR4", 0x8940, true, true,  {}  }, // 987
4561
  { "TRCACVR5", "TRCACVR5", 0x8950, true, true,  {}  }, // 988
4562
  { "TRCACVR6", "TRCACVR6", 0x8960, true, true,  {}  }, // 989
4563
  { "TRCACVR7", "TRCACVR7", 0x8970, true, true,  {}  }, // 990
4564
  { "TRCACVR8", "TRCACVR8", 0x8901, true, true,  {}  }, // 991
4565
  { "TRCACVR9", "TRCACVR9", 0x8911, true, true,  {}  }, // 992
4566
  { "TRCAUTHSTATUS", "TRCAUTHSTATUS", 0x8BF6, true, false,  {}  }, // 993
4567
  { "TRCAUXCTLR", "TRCAUXCTLR", 0x8830, true, true,  {}  }, // 994
4568
  { "TRCBBCTLR", "TRCBBCTLR", 0x8878, true, true,  {}  }, // 995
4569
  { "TRCCCCTLR", "TRCCCCTLR", 0x8870, true, true,  {}  }, // 996
4570
  { "TRCCIDCCTLR0", "TRCCIDCCTLR0", 0x8982, true, true,  {}  }, // 997
4571
  { "TRCCIDCCTLR1", "TRCCIDCCTLR1", 0x898A, true, true,  {}  }, // 998
4572
  { "TRCCIDCVR0", "TRCCIDCVR0", 0x8980, true, true,  {}  }, // 999
4573
  { "TRCCIDCVR1", "TRCCIDCVR1", 0x8990, true, true,  {}  }, // 1000
4574
  { "TRCCIDCVR2", "TRCCIDCVR2", 0x89A0, true, true,  {}  }, // 1001
4575
  { "TRCCIDCVR3", "TRCCIDCVR3", 0x89B0, true, true,  {}  }, // 1002
4576
  { "TRCCIDCVR4", "TRCCIDCVR4", 0x89C0, true, true,  {}  }, // 1003
4577
  { "TRCCIDCVR5", "TRCCIDCVR5", 0x89D0, true, true,  {}  }, // 1004
4578
  { "TRCCIDCVR6", "TRCCIDCVR6", 0x89E0, true, true,  {}  }, // 1005
4579
  { "TRCCIDCVR7", "TRCCIDCVR7", 0x89F0, true, true,  {}  }, // 1006
4580
  { "TRCCIDR0", "TRCCIDR0", 0x8BE7, true, false,  {}  }, // 1007
4581
  { "TRCCIDR1", "TRCCIDR1", 0x8BEF, true, false,  {}  }, // 1008
4582
  { "TRCCIDR2", "TRCCIDR2", 0x8BF7, true, false,  {}  }, // 1009
4583
  { "TRCCIDR3", "TRCCIDR3", 0x8BFF, true, false,  {}  }, // 1010
4584
  { "TRCCLAIMCLR", "TRCCLAIMCLR", 0x8BCE, true, true,  {}  }, // 1011
4585
  { "TRCCLAIMSET", "TRCCLAIMSET", 0x8BC6, true, true,  {}  }, // 1012
4586
  { "TRCCNTCTLR0", "TRCCNTCTLR0", 0x8825, true, true,  {}  }, // 1013
4587
  { "TRCCNTCTLR1", "TRCCNTCTLR1", 0x882D, true, true,  {}  }, // 1014
4588
  { "TRCCNTCTLR2", "TRCCNTCTLR2", 0x8835, true, true,  {}  }, // 1015
4589
  { "TRCCNTCTLR3", "TRCCNTCTLR3", 0x883D, true, true,  {}  }, // 1016
4590
  { "TRCCNTRLDVR0", "TRCCNTRLDVR0", 0x8805, true, true,  {}  }, // 1017
4591
  { "TRCCNTRLDVR1", "TRCCNTRLDVR1", 0x880D, true, true,  {}  }, // 1018
4592
  { "TRCCNTRLDVR2", "TRCCNTRLDVR2", 0x8815, true, true,  {}  }, // 1019
4593
  { "TRCCNTRLDVR3", "TRCCNTRLDVR3", 0x881D, true, true,  {}  }, // 1020
4594
  { "TRCCNTVR0", "TRCCNTVR0", 0x8845, true, true,  {}  }, // 1021
4595
  { "TRCCNTVR1", "TRCCNTVR1", 0x884D, true, true,  {}  }, // 1022
4596
  { "TRCCNTVR2", "TRCCNTVR2", 0x8855, true, true,  {}  }, // 1023
4597
  { "TRCCNTVR3", "TRCCNTVR3", 0x885D, true, true,  {}  }, // 1024
4598
  { "TRCCONFIGR", "TRCCONFIGR", 0x8820, true, true,  {}  }, // 1025
4599
  { "TRCDEVAFF0", "TRCDEVAFF0", 0x8BD6, true, false,  {}  }, // 1026
4600
  { "TRCDEVAFF1", "TRCDEVAFF1", 0x8BDE, true, false,  {}  }, // 1027
4601
  { "TRCDEVARCH", "TRCDEVARCH", 0x8BFE, true, false,  {}  }, // 1028
4602
  { "TRCDEVID", "TRCDEVID", 0x8B97, true, false,  {}  }, // 1029
4603
  { "TRCDEVTYPE", "TRCDEVTYPE", 0x8B9F, true, false,  {}  }, // 1030
4604
  { "TRCDVCMR0", "TRCDVCMR0", 0x8906, true, true,  {}  }, // 1031
4605
  { "TRCDVCMR1", "TRCDVCMR1", 0x8926, true, true,  {}  }, // 1032
4606
  { "TRCDVCMR2", "TRCDVCMR2", 0x8946, true, true,  {}  }, // 1033
4607
  { "TRCDVCMR3", "TRCDVCMR3", 0x8966, true, true,  {}  }, // 1034
4608
  { "TRCDVCMR4", "TRCDVCMR4", 0x8907, true, true,  {}  }, // 1035
4609
  { "TRCDVCMR5", "TRCDVCMR5", 0x8927, true, true,  {}  }, // 1036
4610
  { "TRCDVCMR6", "TRCDVCMR6", 0x8947, true, true,  {}  }, // 1037
4611
  { "TRCDVCMR7", "TRCDVCMR7", 0x8967, true, true,  {}  }, // 1038
4612
  { "TRCDVCVR0", "TRCDVCVR0", 0x8904, true, true,  {}  }, // 1039
4613
  { "TRCDVCVR1", "TRCDVCVR1", 0x8924, true, true,  {}  }, // 1040
4614
  { "TRCDVCVR2", "TRCDVCVR2", 0x8944, true, true,  {}  }, // 1041
4615
  { "TRCDVCVR3", "TRCDVCVR3", 0x8964, true, true,  {}  }, // 1042
4616
  { "TRCDVCVR4", "TRCDVCVR4", 0x8905, true, true,  {}  }, // 1043
4617
  { "TRCDVCVR5", "TRCDVCVR5", 0x8925, true, true,  {}  }, // 1044
4618
  { "TRCDVCVR6", "TRCDVCVR6", 0x8945, true, true,  {}  }, // 1045
4619
  { "TRCDVCVR7", "TRCDVCVR7", 0x8965, true, true,  {}  }, // 1046
4620
  { "TRCEVENTCTL0R", "TRCEVENTCTL0R", 0x8840, true, true,  {}  }, // 1047
4621
  { "TRCEVENTCTL1R", "TRCEVENTCTL1R", 0x8848, true, true,  {}  }, // 1048
4622
  { "TRCEXTINSELR", "TRCEXTINSELR", 0x8844, true, true,  {}  }, // 1049
4623
  { "TRCEXTINSELR0", "TRCEXTINSELR0", 0x8844, true, true,  {AArch64::FeatureETE}  }, // 1050
4624
  { "TRCEXTINSELR1", "TRCEXTINSELR1", 0x884C, true, true,  {AArch64::FeatureETE}  }, // 1051
4625
  { "TRCEXTINSELR2", "TRCEXTINSELR2", 0x8854, true, true,  {AArch64::FeatureETE}  }, // 1052
4626
  { "TRCEXTINSELR3", "TRCEXTINSELR3", 0x885C, true, true,  {AArch64::FeatureETE}  }, // 1053
4627
  { "TRCIDR0", "TRCIDR0", 0x8847, true, false,  {}  }, // 1054
4628
  { "TRCIDR1", "TRCIDR1", 0x884F, true, false,  {}  }, // 1055
4629
  { "TRCIDR10", "TRCIDR10", 0x8816, true, false,  {}  }, // 1056
4630
  { "TRCIDR11", "TRCIDR11", 0x881E, true, false,  {}  }, // 1057
4631
  { "TRCIDR12", "TRCIDR12", 0x8826, true, false,  {}  }, // 1058
4632
  { "TRCIDR13", "TRCIDR13", 0x882E, true, false,  {}  }, // 1059
4633
  { "TRCIDR2", "TRCIDR2", 0x8857, true, false,  {}  }, // 1060
4634
  { "TRCIDR3", "TRCIDR3", 0x885F, true, false,  {}  }, // 1061
4635
  { "TRCIDR4", "TRCIDR4", 0x8867, true, false,  {}  }, // 1062
4636
  { "TRCIDR5", "TRCIDR5", 0x886F, true, false,  {}  }, // 1063
4637
  { "TRCIDR6", "TRCIDR6", 0x8877, true, false,  {}  }, // 1064
4638
  { "TRCIDR7", "TRCIDR7", 0x887F, true, false,  {}  }, // 1065
4639
  { "TRCIDR8", "TRCIDR8", 0x8806, true, false,  {}  }, // 1066
4640
  { "TRCIDR9", "TRCIDR9", 0x880E, true, false,  {}  }, // 1067
4641
  { "TRCIMSPEC0", "TRCIMSPEC0", 0x8807, true, true,  {}  }, // 1068
4642
  { "TRCIMSPEC1", "TRCIMSPEC1", 0x880F, true, true,  {}  }, // 1069
4643
  { "TRCIMSPEC2", "TRCIMSPEC2", 0x8817, true, true,  {}  }, // 1070
4644
  { "TRCIMSPEC3", "TRCIMSPEC3", 0x881F, true, true,  {}  }, // 1071
4645
  { "TRCIMSPEC4", "TRCIMSPEC4", 0x8827, true, true,  {}  }, // 1072
4646
  { "TRCIMSPEC5", "TRCIMSPEC5", 0x882F, true, true,  {}  }, // 1073
4647
  { "TRCIMSPEC6", "TRCIMSPEC6", 0x8837, true, true,  {}  }, // 1074
4648
  { "TRCIMSPEC7", "TRCIMSPEC7", 0x883F, true, true,  {}  }, // 1075
4649
  { "TRCITCTRL", "TRCITCTRL", 0x8B84, true, true,  {}  }, // 1076
4650
  { "TRCITECR_EL1", "TRCITECR_EL1", 0xC093, true, true,  {AArch64::FeatureITE}  }, // 1077
4651
  { "TRCITECR_EL12", "TRCITECR_EL12", 0xE893, true, true,  {AArch64::FeatureITE}  }, // 1078
4652
  { "TRCITECR_EL2", "TRCITECR_EL2", 0xE093, true, true,  {AArch64::FeatureITE}  }, // 1079
4653
  { "TRCITEEDCR", "TRCITEEDCR", 0x8811, true, true,  {AArch64::FeatureITE}  }, // 1080
4654
  { "TRCLAR", "TRCLAR", 0x8BE6, false, true,  {}  }, // 1081
4655
  { "TRCLSR", "TRCLSR", 0x8BEE, true, false,  {}  }, // 1082
4656
  { "TRCOSLAR", "TRCOSLAR", 0x8884, false, true,  {}  }, // 1083
4657
  { "TRCOSLSR", "TRCOSLSR", 0x888C, true, false,  {}  }, // 1084
4658
  { "TRCPDCR", "TRCPDCR", 0x88A4, true, true,  {}  }, // 1085
4659
  { "TRCPDSR", "TRCPDSR", 0x88AC, true, false,  {}  }, // 1086
4660
  { "TRCPIDR0", "TRCPIDR0", 0x8BC7, true, false,  {}  }, // 1087
4661
  { "TRCPIDR1", "TRCPIDR1", 0x8BCF, true, false,  {}  }, // 1088
4662
  { "TRCPIDR2", "TRCPIDR2", 0x8BD7, true, false,  {}  }, // 1089
4663
  { "TRCPIDR3", "TRCPIDR3", 0x8BDF, true, false,  {}  }, // 1090
4664
  { "TRCPIDR4", "TRCPIDR4", 0x8BA7, true, false,  {}  }, // 1091
4665
  { "TRCPIDR5", "TRCPIDR5", 0x8BAF, true, false,  {}  }, // 1092
4666
  { "TRCPIDR6", "TRCPIDR6", 0x8BB7, true, false,  {}  }, // 1093
4667
  { "TRCPIDR7", "TRCPIDR7", 0x8BBF, true, false,  {}  }, // 1094
4668
  { "TRCPRGCTLR", "TRCPRGCTLR", 0x8808, true, true,  {}  }, // 1095
4669
  { "TRCPROCSELR", "TRCPROCSELR", 0x8810, true, true,  {}  }, // 1096
4670
  { "TRCQCTLR", "TRCQCTLR", 0x8809, true, true,  {}  }, // 1097
4671
  { "TRCRSCTLR10", "TRCRSCTLR10", 0x88D0, true, true,  {}  }, // 1098
4672
  { "TRCRSCTLR11", "TRCRSCTLR11", 0x88D8, true, true,  {}  }, // 1099
4673
  { "TRCRSCTLR12", "TRCRSCTLR12", 0x88E0, true, true,  {}  }, // 1100
4674
  { "TRCRSCTLR13", "TRCRSCTLR13", 0x88E8, true, true,  {}  }, // 1101
4675
  { "TRCRSCTLR14", "TRCRSCTLR14", 0x88F0, true, true,  {}  }, // 1102
4676
  { "TRCRSCTLR15", "TRCRSCTLR15", 0x88F8, true, true,  {}  }, // 1103
4677
  { "TRCRSCTLR16", "TRCRSCTLR16", 0x8881, true, true,  {}  }, // 1104
4678
  { "TRCRSCTLR17", "TRCRSCTLR17", 0x8889, true, true,  {}  }, // 1105
4679
  { "TRCRSCTLR18", "TRCRSCTLR18", 0x8891, true, true,  {}  }, // 1106
4680
  { "TRCRSCTLR19", "TRCRSCTLR19", 0x8899, true, true,  {}  }, // 1107
4681
  { "TRCRSCTLR2", "TRCRSCTLR2", 0x8890, true, true,  {}  }, // 1108
4682
  { "TRCRSCTLR20", "TRCRSCTLR20", 0x88A1, true, true,  {}  }, // 1109
4683
  { "TRCRSCTLR21", "TRCRSCTLR21", 0x88A9, true, true,  {}  }, // 1110
4684
  { "TRCRSCTLR22", "TRCRSCTLR22", 0x88B1, true, true,  {}  }, // 1111
4685
  { "TRCRSCTLR23", "TRCRSCTLR23", 0x88B9, true, true,  {}  }, // 1112
4686
  { "TRCRSCTLR24", "TRCRSCTLR24", 0x88C1, true, true,  {}  }, // 1113
4687
  { "TRCRSCTLR25", "TRCRSCTLR25", 0x88C9, true, true,  {}  }, // 1114
4688
  { "TRCRSCTLR26", "TRCRSCTLR26", 0x88D1, true, true,  {}  }, // 1115
4689
  { "TRCRSCTLR27", "TRCRSCTLR27", 0x88D9, true, true,  {}  }, // 1116
4690
  { "TRCRSCTLR28", "TRCRSCTLR28", 0x88E1, true, true,  {}  }, // 1117
4691
  { "TRCRSCTLR29", "TRCRSCTLR29", 0x88E9, true, true,  {}  }, // 1118
4692
  { "TRCRSCTLR3", "TRCRSCTLR3", 0x8898, true, true,  {}  }, // 1119
4693
  { "TRCRSCTLR30", "TRCRSCTLR30", 0x88F1, true, true,  {}  }, // 1120
4694
  { "TRCRSCTLR31", "TRCRSCTLR31", 0x88F9, true, true,  {}  }, // 1121
4695
  { "TRCRSCTLR4", "TRCRSCTLR4", 0x88A0, true, true,  {}  }, // 1122
4696
  { "TRCRSCTLR5", "TRCRSCTLR5", 0x88A8, true, true,  {}  }, // 1123
4697
  { "TRCRSCTLR6", "TRCRSCTLR6", 0x88B0, true, true,  {}  }, // 1124
4698
  { "TRCRSCTLR7", "TRCRSCTLR7", 0x88B8, true, true,  {}  }, // 1125
4699
  { "TRCRSCTLR8", "TRCRSCTLR8", 0x88C0, true, true,  {}  }, // 1126
4700
  { "TRCRSCTLR9", "TRCRSCTLR9", 0x88C8, true, true,  {}  }, // 1127
4701
  { "TRCRSR", "TRCRSR", 0x8850, true, true,  {AArch64::FeatureETE}  }, // 1128
4702
  { "TRCSEQEVR0", "TRCSEQEVR0", 0x8804, true, true,  {}  }, // 1129
4703
  { "TRCSEQEVR1", "TRCSEQEVR1", 0x880C, true, true,  {}  }, // 1130
4704
  { "TRCSEQEVR2", "TRCSEQEVR2", 0x8814, true, true,  {}  }, // 1131
4705
  { "TRCSEQRSTEVR", "TRCSEQRSTEVR", 0x8834, true, true,  {}  }, // 1132
4706
  { "TRCSEQSTR", "TRCSEQSTR", 0x883C, true, true,  {}  }, // 1133
4707
  { "TRCSSCCR0", "TRCSSCCR0", 0x8882, true, true,  {}  }, // 1134
4708
  { "TRCSSCCR1", "TRCSSCCR1", 0x888A, true, true,  {}  }, // 1135
4709
  { "TRCSSCCR2", "TRCSSCCR2", 0x8892, true, true,  {}  }, // 1136
4710
  { "TRCSSCCR3", "TRCSSCCR3", 0x889A, true, true,  {}  }, // 1137
4711
  { "TRCSSCCR4", "TRCSSCCR4", 0x88A2, true, true,  {}  }, // 1138
4712
  { "TRCSSCCR5", "TRCSSCCR5", 0x88AA, true, true,  {}  }, // 1139
4713
  { "TRCSSCCR6", "TRCSSCCR6", 0x88B2, true, true,  {}  }, // 1140
4714
  { "TRCSSCCR7", "TRCSSCCR7", 0x88BA, true, true,  {}  }, // 1141
4715
  { "TRCSSCSR0", "TRCSSCSR0", 0x88C2, true, true,  {}  }, // 1142
4716
  { "TRCSSCSR1", "TRCSSCSR1", 0x88CA, true, true,  {}  }, // 1143
4717
  { "TRCSSCSR2", "TRCSSCSR2", 0x88D2, true, true,  {}  }, // 1144
4718
  { "TRCSSCSR3", "TRCSSCSR3", 0x88DA, true, true,  {}  }, // 1145
4719
  { "TRCSSCSR4", "TRCSSCSR4", 0x88E2, true, true,  {}  }, // 1146
4720
  { "TRCSSCSR5", "TRCSSCSR5", 0x88EA, true, true,  {}  }, // 1147
4721
  { "TRCSSCSR6", "TRCSSCSR6", 0x88F2, true, true,  {}  }, // 1148
4722
  { "TRCSSCSR7", "TRCSSCSR7", 0x88FA, true, true,  {}  }, // 1149
4723
  { "TRCSSPCICR0", "TRCSSPCICR0", 0x8883, true, true,  {}  }, // 1150
4724
  { "TRCSSPCICR1", "TRCSSPCICR1", 0x888B, true, true,  {}  }, // 1151
4725
  { "TRCSSPCICR2", "TRCSSPCICR2", 0x8893, true, true,  {}  }, // 1152
4726
  { "TRCSSPCICR3", "TRCSSPCICR3", 0x889B, true, true,  {}  }, // 1153
4727
  { "TRCSSPCICR4", "TRCSSPCICR4", 0x88A3, true, true,  {}  }, // 1154
4728
  { "TRCSSPCICR5", "TRCSSPCICR5", 0x88AB, true, true,  {}  }, // 1155
4729
  { "TRCSSPCICR6", "TRCSSPCICR6", 0x88B3, true, true,  {}  }, // 1156
4730
  { "TRCSSPCICR7", "TRCSSPCICR7", 0x88BB, true, true,  {}  }, // 1157
4731
  { "TRCSTALLCTLR", "TRCSTALLCTLR", 0x8858, true, true,  {}  }, // 1158
4732
  { "TRCSTATR", "TRCSTATR", 0x8818, true, false,  {}  }, // 1159
4733
  { "TRCSYNCPR", "TRCSYNCPR", 0x8868, true, true,  {}  }, // 1160
4734
  { "TRCTRACEIDR", "TRCTRACEIDR", 0x8801, true, true,  {}  }, // 1161
4735
  { "TRCTSCTLR", "TRCTSCTLR", 0x8860, true, true,  {}  }, // 1162
4736
  { "TRCVDARCCTLR", "TRCVDARCCTLR", 0x8852, true, true,  {}  }, // 1163
4737
  { "TRCVDCTLR", "TRCVDCTLR", 0x8842, true, true,  {}  }, // 1164
4738
  { "TRCVDSACCTLR", "TRCVDSACCTLR", 0x884A, true, true,  {}  }, // 1165
4739
  { "TRCVICTLR", "TRCVICTLR", 0x8802, true, true,  {}  }, // 1166
4740
  { "TRCVIIECTLR", "TRCVIIECTLR", 0x880A, true, true,  {}  }, // 1167
4741
  { "TRCVIPCSSCTLR", "TRCVIPCSSCTLR", 0x881A, true, true,  {}  }, // 1168
4742
  { "TRCVISSCTLR", "TRCVISSCTLR", 0x8812, true, true,  {}  }, // 1169
4743
  { "TRCVMIDCCTLR0", "TRCVMIDCCTLR0", 0x8992, true, true,  {}  }, // 1170
4744
  { "TRCVMIDCCTLR1", "TRCVMIDCCTLR1", 0x899A, true, true,  {}  }, // 1171
4745
  { "TRCVMIDCVR0", "TRCVMIDCVR0", 0x8981, true, true,  {}  }, // 1172
4746
  { "TRCVMIDCVR1", "TRCVMIDCVR1", 0x8991, true, true,  {}  }, // 1173
4747
  { "TRCVMIDCVR2", "TRCVMIDCVR2", 0x89A1, true, true,  {}  }, // 1174
4748
  { "TRCVMIDCVR3", "TRCVMIDCVR3", 0x89B1, true, true,  {}  }, // 1175
4749
  { "TRCVMIDCVR4", "TRCVMIDCVR4", 0x89C1, true, true,  {}  }, // 1176
4750
  { "TRCVMIDCVR5", "TRCVMIDCVR5", 0x89D1, true, true,  {}  }, // 1177
4751
  { "TRCVMIDCVR6", "TRCVMIDCVR6", 0x89E1, true, true,  {}  }, // 1178
4752
  { "TRCVMIDCVR7", "TRCVMIDCVR7", 0x89F1, true, true,  {}  }, // 1179
4753
  { "TRFCR_EL1", "TRFCR_EL1", 0xC091, true, true,  {AArch64::FeatureTRACEV8_4}  }, // 1180
4754
  { "TRFCR_EL12", "TRFCR_EL12", 0xE891, true, true,  {AArch64::FeatureTRACEV8_4}  }, // 1181
4755
  { "TRFCR_EL2", "TRFCR_EL2", 0xE091, true, true,  {AArch64::FeatureTRACEV8_4}  }, // 1182
4756
  { "TTBR0_EL1", "TTBR0_EL1", 0xC100, true, true,  {}  }, // 1183
4757
  { "TTBR0_EL12", "TTBR0_EL12", 0xE900, true, true,  {AArch64::FeatureVH}  }, // 1184
4758
  { "TTBR0_EL2", "VSCTLR_EL2", 0xE100, true, true,  {AArch64::FeatureEL2VMSA}  }, // 1185
4759
  { "TTBR0_EL3", "TTBR0_EL3", 0xF100, true, true,  {}  }, // 1186
4760
  { "TTBR1_EL1", "TTBR1_EL1", 0xC101, true, true,  {}  }, // 1187
4761
  { "TTBR1_EL12", "TTBR1_EL12", 0xE901, true, true,  {AArch64::FeatureVH}  }, // 1188
4762
  { "TTBR1_EL2", "TTBR1_EL2", 0xE101, true, true,  {AArch64::FeatureVH}  }, // 1189
4763
  { "UAO", "UAO", 0xC214, true, true,  {AArch64::FeaturePsUAO}  }, // 1190
4764
  { "VBAR_EL1", "VBAR_EL1", 0xC600, true, true,  {}  }, // 1191
4765
  { "VBAR_EL12", "VBAR_EL12", 0xEE00, true, true,  {AArch64::FeatureVH}  }, // 1192
4766
  { "VBAR_EL2", "VBAR_EL2", 0xE600, true, true,  {}  }, // 1193
4767
  { "VBAR_EL3", "VBAR_EL3", 0xF600, true, true,  {}  }, // 1194
4768
  { "VDISR_EL2", "VDISR_EL2", 0xE609, true, true,  {AArch64::FeatureRAS}  }, // 1195
4769
  { "VDISR_EL3", "VDISR_EL3", 0xF609, true, true,  {}  }, // 1196
4770
  { "VMECID_A_EL2", "VMECID_A_EL2", 0xE549, true, true,  {AArch64::FeatureMEC}  }, // 1197
4771
  { "VMECID_P_EL2", "VMECID_P_EL2", 0xE548, true, true,  {AArch64::FeatureMEC}  }, // 1198
4772
  { "VMPIDR_EL2", "VMPIDR_EL2", 0xE005, true, true,  {}  }, // 1199
4773
  { "VNCR_EL2", "VNCR_EL2", 0xE110, true, true,  {AArch64::FeatureNV}  }, // 1200
4774
  { "VPIDR_EL2", "VPIDR_EL2", 0xE000, true, true,  {}  }, // 1201
4775
  { "VSCTLR_EL2", "TTBR0_EL2", 0xE100, true, true,  {AArch64::HasV8_0rOps}  }, // 1202
4776
  { "VSESR_EL2", "VSESR_EL2", 0xE293, true, true,  {AArch64::FeatureRAS}  }, // 1203
4777
  { "VSESR_EL3", "VSESR_EL3", 0xF293, true, true,  {}  }, // 1204
4778
  { "VSTCR_EL2", "VSTCR_EL2", 0xE132, true, true,  {AArch64::FeatureSEL2}  }, // 1205
4779
  { "VSTTBR_EL2", "VSTTBR_EL2", 0xE130, true, true,  {AArch64::HasV8_0aOps}  }, // 1206
4780
  { "VTCR_EL2", "VTCR_EL2", 0xE10A, true, true,  {}  }, // 1207
4781
  { "VTTBR_EL2", "VTTBR_EL2", 0xE108, true, true,  {AArch64::FeatureEL2VMSA}  }, // 1208
4782
  { "ZCR_EL1", "ZCR_EL1", 0xC090, true, true,  {AArch64::FeatureSVE}  }, // 1209
4783
  { "ZCR_EL12", "ZCR_EL12", 0xE890, true, true,  {AArch64::FeatureSVE}  }, // 1210
4784
  { "ZCR_EL2", "ZCR_EL2", 0xE090, true, true,  {AArch64::FeatureSVE}  }, // 1211
4785
  { "ZCR_EL3", "ZCR_EL3", 0xF090, true, true,  {AArch64::FeatureSVE}  }, // 1212
4786
 };
4787
4788
0
const SysReg *lookupSysRegByName(StringRef Name) {
4789
0
  struct IndexType {
4790
0
    const char * Name;
4791
0
    unsigned _index;
4792
0
  };
4793
0
  static const struct IndexType Index[] = {
4794
0
    { "ACCDATA_EL1", 0 },
4795
0
    { "ACTLR_EL1", 1 },
4796
0
    { "ACTLR_EL2", 2 },
4797
0
    { "ACTLR_EL3", 3 },
4798
0
    { "AFSR0_EL1", 4 },
4799
0
    { "AFSR0_EL12", 5 },
4800
0
    { "AFSR0_EL2", 6 },
4801
0
    { "AFSR0_EL3", 7 },
4802
0
    { "AFSR1_EL1", 8 },
4803
0
    { "AFSR1_EL12", 9 },
4804
0
    { "AFSR1_EL2", 10 },
4805
0
    { "AFSR1_EL3", 11 },
4806
0
    { "AIDR_EL1", 12 },
4807
0
    { "ALLINT", 13 },
4808
0
    { "AMAIR2_EL1", 14 },
4809
0
    { "AMAIR2_EL12", 15 },
4810
0
    { "AMAIR2_EL2", 16 },
4811
0
    { "AMAIR2_EL3", 17 },
4812
0
    { "AMAIR_EL1", 18 },
4813
0
    { "AMAIR_EL12", 19 },
4814
0
    { "AMAIR_EL2", 20 },
4815
0
    { "AMAIR_EL3", 21 },
4816
0
    { "AMCFGR_EL0", 22 },
4817
0
    { "AMCG1IDR_EL0", 23 },
4818
0
    { "AMCGCR_EL0", 24 },
4819
0
    { "AMCNTENCLR0_EL0", 25 },
4820
0
    { "AMCNTENCLR1_EL0", 26 },
4821
0
    { "AMCNTENSET0_EL0", 27 },
4822
0
    { "AMCNTENSET1_EL0", 28 },
4823
0
    { "AMCR_EL0", 29 },
4824
0
    { "AMEVCNTR00_EL0", 30 },
4825
0
    { "AMEVCNTR01_EL0", 31 },
4826
0
    { "AMEVCNTR02_EL0", 32 },
4827
0
    { "AMEVCNTR03_EL0", 33 },
4828
0
    { "AMEVCNTR10_EL0", 34 },
4829
0
    { "AMEVCNTR110_EL0", 35 },
4830
0
    { "AMEVCNTR111_EL0", 36 },
4831
0
    { "AMEVCNTR112_EL0", 37 },
4832
0
    { "AMEVCNTR113_EL0", 38 },
4833
0
    { "AMEVCNTR114_EL0", 39 },
4834
0
    { "AMEVCNTR115_EL0", 40 },
4835
0
    { "AMEVCNTR11_EL0", 41 },
4836
0
    { "AMEVCNTR12_EL0", 42 },
4837
0
    { "AMEVCNTR13_EL0", 43 },
4838
0
    { "AMEVCNTR14_EL0", 44 },
4839
0
    { "AMEVCNTR15_EL0", 45 },
4840
0
    { "AMEVCNTR16_EL0", 46 },
4841
0
    { "AMEVCNTR17_EL0", 47 },
4842
0
    { "AMEVCNTR18_EL0", 48 },
4843
0
    { "AMEVCNTR19_EL0", 49 },
4844
0
    { "AMEVCNTVOFF00_EL2", 50 },
4845
0
    { "AMEVCNTVOFF010_EL2", 51 },
4846
0
    { "AMEVCNTVOFF011_EL2", 52 },
4847
0
    { "AMEVCNTVOFF012_EL2", 53 },
4848
0
    { "AMEVCNTVOFF013_EL2", 54 },
4849
0
    { "AMEVCNTVOFF014_EL2", 55 },
4850
0
    { "AMEVCNTVOFF015_EL2", 56 },
4851
0
    { "AMEVCNTVOFF01_EL2", 57 },
4852
0
    { "AMEVCNTVOFF02_EL2", 58 },
4853
0
    { "AMEVCNTVOFF03_EL2", 59 },
4854
0
    { "AMEVCNTVOFF04_EL2", 60 },
4855
0
    { "AMEVCNTVOFF05_EL2", 61 },
4856
0
    { "AMEVCNTVOFF06_EL2", 62 },
4857
0
    { "AMEVCNTVOFF07_EL2", 63 },
4858
0
    { "AMEVCNTVOFF08_EL2", 64 },
4859
0
    { "AMEVCNTVOFF09_EL2", 65 },
4860
0
    { "AMEVCNTVOFF10_EL2", 66 },
4861
0
    { "AMEVCNTVOFF110_EL2", 67 },
4862
0
    { "AMEVCNTVOFF111_EL2", 68 },
4863
0
    { "AMEVCNTVOFF112_EL2", 69 },
4864
0
    { "AMEVCNTVOFF113_EL2", 70 },
4865
0
    { "AMEVCNTVOFF114_EL2", 71 },
4866
0
    { "AMEVCNTVOFF115_EL2", 72 },
4867
0
    { "AMEVCNTVOFF11_EL2", 73 },
4868
0
    { "AMEVCNTVOFF12_EL2", 74 },
4869
0
    { "AMEVCNTVOFF13_EL2", 75 },
4870
0
    { "AMEVCNTVOFF14_EL2", 76 },
4871
0
    { "AMEVCNTVOFF15_EL2", 77 },
4872
0
    { "AMEVCNTVOFF16_EL2", 78 },
4873
0
    { "AMEVCNTVOFF17_EL2", 79 },
4874
0
    { "AMEVCNTVOFF18_EL2", 80 },
4875
0
    { "AMEVCNTVOFF19_EL2", 81 },
4876
0
    { "AMEVTYPER00_EL0", 82 },
4877
0
    { "AMEVTYPER01_EL0", 83 },
4878
0
    { "AMEVTYPER02_EL0", 84 },
4879
0
    { "AMEVTYPER03_EL0", 85 },
4880
0
    { "AMEVTYPER10_EL0", 86 },
4881
0
    { "AMEVTYPER110_EL0", 87 },
4882
0
    { "AMEVTYPER111_EL0", 88 },
4883
0
    { "AMEVTYPER112_EL0", 89 },
4884
0
    { "AMEVTYPER113_EL0", 90 },
4885
0
    { "AMEVTYPER114_EL0", 91 },
4886
0
    { "AMEVTYPER115_EL0", 92 },
4887
0
    { "AMEVTYPER11_EL0", 93 },
4888
0
    { "AMEVTYPER12_EL0", 94 },
4889
0
    { "AMEVTYPER13_EL0", 95 },
4890
0
    { "AMEVTYPER14_EL0", 96 },
4891
0
    { "AMEVTYPER15_EL0", 97 },
4892
0
    { "AMEVTYPER16_EL0", 98 },
4893
0
    { "AMEVTYPER17_EL0", 99 },
4894
0
    { "AMEVTYPER18_EL0", 100 },
4895
0
    { "AMEVTYPER19_EL0", 101 },
4896
0
    { "AMUSERENR_EL0", 102 },
4897
0
    { "APDAKEYHI_EL1", 103 },
4898
0
    { "APDAKEYLO_EL1", 104 },
4899
0
    { "APDBKEYHI_EL1", 105 },
4900
0
    { "APDBKEYLO_EL1", 106 },
4901
0
    { "APGAKEYHI_EL1", 107 },
4902
0
    { "APGAKEYLO_EL1", 108 },
4903
0
    { "APIAKEYHI_EL1", 109 },
4904
0
    { "APIAKEYLO_EL1", 110 },
4905
0
    { "APIBKEYHI_EL1", 111 },
4906
0
    { "APIBKEYLO_EL1", 112 },
4907
0
    { "BRBCR_EL1", 113 },
4908
0
    { "BRBCR_EL12", 114 },
4909
0
    { "BRBCR_EL2", 115 },
4910
0
    { "BRBFCR_EL1", 116 },
4911
0
    { "BRBIDR0_EL1", 117 },
4912
0
    { "BRBINF0_EL1", 118 },
4913
0
    { "BRBINF10_EL1", 119 },
4914
0
    { "BRBINF11_EL1", 120 },
4915
0
    { "BRBINF12_EL1", 121 },
4916
0
    { "BRBINF13_EL1", 122 },
4917
0
    { "BRBINF14_EL1", 123 },
4918
0
    { "BRBINF15_EL1", 124 },
4919
0
    { "BRBINF16_EL1", 125 },
4920
0
    { "BRBINF17_EL1", 126 },
4921
0
    { "BRBINF18_EL1", 127 },
4922
0
    { "BRBINF19_EL1", 128 },
4923
0
    { "BRBINF1_EL1", 129 },
4924
0
    { "BRBINF20_EL1", 130 },
4925
0
    { "BRBINF21_EL1", 131 },
4926
0
    { "BRBINF22_EL1", 132 },
4927
0
    { "BRBINF23_EL1", 133 },
4928
0
    { "BRBINF24_EL1", 134 },
4929
0
    { "BRBINF25_EL1", 135 },
4930
0
    { "BRBINF26_EL1", 136 },
4931
0
    { "BRBINF27_EL1", 137 },
4932
0
    { "BRBINF28_EL1", 138 },
4933
0
    { "BRBINF29_EL1", 139 },
4934
0
    { "BRBINF2_EL1", 140 },
4935
0
    { "BRBINF30_EL1", 141 },
4936
0
    { "BRBINF31_EL1", 142 },
4937
0
    { "BRBINF3_EL1", 143 },
4938
0
    { "BRBINF4_EL1", 144 },
4939
0
    { "BRBINF5_EL1", 145 },
4940
0
    { "BRBINF6_EL1", 146 },
4941
0
    { "BRBINF7_EL1", 147 },
4942
0
    { "BRBINF8_EL1", 148 },
4943
0
    { "BRBINF9_EL1", 149 },
4944
0
    { "BRBINFINJ_EL1", 150 },
4945
0
    { "BRBSRC0_EL1", 151 },
4946
0
    { "BRBSRC10_EL1", 152 },
4947
0
    { "BRBSRC11_EL1", 153 },
4948
0
    { "BRBSRC12_EL1", 154 },
4949
0
    { "BRBSRC13_EL1", 155 },
4950
0
    { "BRBSRC14_EL1", 156 },
4951
0
    { "BRBSRC15_EL1", 157 },
4952
0
    { "BRBSRC16_EL1", 158 },
4953
0
    { "BRBSRC17_EL1", 159 },
4954
0
    { "BRBSRC18_EL1", 160 },
4955
0
    { "BRBSRC19_EL1", 161 },
4956
0
    { "BRBSRC1_EL1", 162 },
4957
0
    { "BRBSRC20_EL1", 163 },
4958
0
    { "BRBSRC21_EL1", 164 },
4959
0
    { "BRBSRC22_EL1", 165 },
4960
0
    { "BRBSRC23_EL1", 166 },
4961
0
    { "BRBSRC24_EL1", 167 },
4962
0
    { "BRBSRC25_EL1", 168 },
4963
0
    { "BRBSRC26_EL1", 169 },
4964
0
    { "BRBSRC27_EL1", 170 },
4965
0
    { "BRBSRC28_EL1", 171 },
4966
0
    { "BRBSRC29_EL1", 172 },
4967
0
    { "BRBSRC2_EL1", 173 },
4968
0
    { "BRBSRC30_EL1", 174 },
4969
0
    { "BRBSRC31_EL1", 175 },
4970
0
    { "BRBSRC3_EL1", 176 },
4971
0
    { "BRBSRC4_EL1", 177 },
4972
0
    { "BRBSRC5_EL1", 178 },
4973
0
    { "BRBSRC6_EL1", 179 },
4974
0
    { "BRBSRC7_EL1", 180 },
4975
0
    { "BRBSRC8_EL1", 181 },
4976
0
    { "BRBSRC9_EL1", 182 },
4977
0
    { "BRBSRCINJ_EL1", 183 },
4978
0
    { "BRBTGT0_EL1", 184 },
4979
0
    { "BRBTGT10_EL1", 185 },
4980
0
    { "BRBTGT11_EL1", 186 },
4981
0
    { "BRBTGT12_EL1", 187 },
4982
0
    { "BRBTGT13_EL1", 188 },
4983
0
    { "BRBTGT14_EL1", 189 },
4984
0
    { "BRBTGT15_EL1", 190 },
4985
0
    { "BRBTGT16_EL1", 191 },
4986
0
    { "BRBTGT17_EL1", 192 },
4987
0
    { "BRBTGT18_EL1", 193 },
4988
0
    { "BRBTGT19_EL1", 194 },
4989
0
    { "BRBTGT1_EL1", 195 },
4990
0
    { "BRBTGT20_EL1", 196 },
4991
0
    { "BRBTGT21_EL1", 197 },
4992
0
    { "BRBTGT22_EL1", 198 },
4993
0
    { "BRBTGT23_EL1", 199 },
4994
0
    { "BRBTGT24_EL1", 200 },
4995
0
    { "BRBTGT25_EL1", 201 },
4996
0
    { "BRBTGT26_EL1", 202 },
4997
0
    { "BRBTGT27_EL1", 203 },
4998
0
    { "BRBTGT28_EL1", 204 },
4999
0
    { "BRBTGT29_EL1", 205 },
5000
0
    { "BRBTGT2_EL1", 206 },
5001
0
    { "BRBTGT30_EL1", 207 },
5002
0
    { "BRBTGT31_EL1", 208 },
5003
0
    { "BRBTGT3_EL1", 209 },
5004
0
    { "BRBTGT4_EL1", 210 },
5005
0
    { "BRBTGT5_EL1", 211 },
5006
0
    { "BRBTGT6_EL1", 212 },
5007
0
    { "BRBTGT7_EL1", 213 },
5008
0
    { "BRBTGT8_EL1", 214 },
5009
0
    { "BRBTGT9_EL1", 215 },
5010
0
    { "BRBTGTINJ_EL1", 216 },
5011
0
    { "BRBTS_EL1", 217 },
5012
0
    { "CCSIDR2_EL1", 218 },
5013
0
    { "CCSIDR_EL1", 219 },
5014
0
    { "CLIDR_EL1", 220 },
5015
0
    { "CNTFRQ_EL0", 221 },
5016
0
    { "CNTHCTL_EL2", 222 },
5017
0
    { "CNTHPS_CTL_EL2", 223 },
5018
0
    { "CNTHPS_CVAL_EL2", 224 },
5019
0
    { "CNTHPS_TVAL_EL2", 225 },
5020
0
    { "CNTHP_CTL_EL2", 226 },
5021
0
    { "CNTHP_CVAL_EL2", 227 },
5022
0
    { "CNTHP_TVAL_EL2", 228 },
5023
0
    { "CNTHVS_CTL_EL2", 229 },
5024
0
    { "CNTHVS_CVAL_EL2", 230 },
5025
0
    { "CNTHVS_TVAL_EL2", 231 },
5026
0
    { "CNTHV_CTL_EL2", 232 },
5027
0
    { "CNTHV_CVAL_EL2", 233 },
5028
0
    { "CNTHV_TVAL_EL2", 234 },
5029
0
    { "CNTISCALE_EL2", 235 },
5030
0
    { "CNTKCTL_EL1", 236 },
5031
0
    { "CNTKCTL_EL12", 237 },
5032
0
    { "CNTPCTSS_EL0", 238 },
5033
0
    { "CNTPCT_EL0", 239 },
5034
0
    { "CNTPOFF_EL2", 240 },
5035
0
    { "CNTPS_CTL_EL1", 241 },
5036
0
    { "CNTPS_CVAL_EL1", 242 },
5037
0
    { "CNTPS_TVAL_EL1", 243 },
5038
0
    { "CNTP_CTL_EL0", 244 },
5039
0
    { "CNTP_CTL_EL02", 245 },
5040
0
    { "CNTP_CVAL_EL0", 246 },
5041
0
    { "CNTP_CVAL_EL02", 247 },
5042
0
    { "CNTP_TVAL_EL0", 248 },
5043
0
    { "CNTP_TVAL_EL02", 249 },
5044
0
    { "CNTSCALE_EL2", 250 },
5045
0
    { "CNTVCTSS_EL0", 251 },
5046
0
    { "CNTVCT_EL0", 252 },
5047
0
    { "CNTVFRQ_EL2", 253 },
5048
0
    { "CNTVOFF_EL2", 254 },
5049
0
    { "CNTV_CTL_EL0", 255 },
5050
0
    { "CNTV_CTL_EL02", 256 },
5051
0
    { "CNTV_CVAL_EL0", 257 },
5052
0
    { "CNTV_CVAL_EL02", 258 },
5053
0
    { "CNTV_TVAL_EL0", 259 },
5054
0
    { "CNTV_TVAL_EL02", 260 },
5055
0
    { "CONTEXTIDR_EL1", 261 },
5056
0
    { "CONTEXTIDR_EL12", 262 },
5057
0
    { "CONTEXTIDR_EL2", 263 },
5058
0
    { "CPACR_EL1", 264 },
5059
0
    { "CPACR_EL12", 265 },
5060
0
    { "CPM_IOACC_CTL_EL3", 266 },
5061
0
    { "CPTR_EL2", 267 },
5062
0
    { "CPTR_EL3", 268 },
5063
0
    { "CSSELR_EL1", 269 },
5064
0
    { "CTR_EL0", 270 },
5065
0
    { "CURRENTEL", 271 },
5066
0
    { "DACR32_EL2", 272 },
5067
0
    { "DAIF", 273 },
5068
0
    { "DBGAUTHSTATUS_EL1", 274 },
5069
0
    { "DBGBCR0_EL1", 275 },
5070
0
    { "DBGBCR10_EL1", 276 },
5071
0
    { "DBGBCR11_EL1", 277 },
5072
0
    { "DBGBCR12_EL1", 278 },
5073
0
    { "DBGBCR13_EL1", 279 },
5074
0
    { "DBGBCR14_EL1", 280 },
5075
0
    { "DBGBCR15_EL1", 281 },
5076
0
    { "DBGBCR1_EL1", 282 },
5077
0
    { "DBGBCR2_EL1", 283 },
5078
0
    { "DBGBCR3_EL1", 284 },
5079
0
    { "DBGBCR4_EL1", 285 },
5080
0
    { "DBGBCR5_EL1", 286 },
5081
0
    { "DBGBCR6_EL1", 287 },
5082
0
    { "DBGBCR7_EL1", 288 },
5083
0
    { "DBGBCR8_EL1", 289 },
5084
0
    { "DBGBCR9_EL1", 290 },
5085
0
    { "DBGBVR0_EL1", 291 },
5086
0
    { "DBGBVR10_EL1", 292 },
5087
0
    { "DBGBVR11_EL1", 293 },
5088
0
    { "DBGBVR12_EL1", 294 },
5089
0
    { "DBGBVR13_EL1", 295 },
5090
0
    { "DBGBVR14_EL1", 296 },
5091
0
    { "DBGBVR15_EL1", 297 },
5092
0
    { "DBGBVR1_EL1", 298 },
5093
0
    { "DBGBVR2_EL1", 299 },
5094
0
    { "DBGBVR3_EL1", 300 },
5095
0
    { "DBGBVR4_EL1", 301 },
5096
0
    { "DBGBVR5_EL1", 302 },
5097
0
    { "DBGBVR6_EL1", 303 },
5098
0
    { "DBGBVR7_EL1", 304 },
5099
0
    { "DBGBVR8_EL1", 305 },
5100
0
    { "DBGBVR9_EL1", 306 },
5101
0
    { "DBGCLAIMCLR_EL1", 307 },
5102
0
    { "DBGCLAIMSET_EL1", 308 },
5103
0
    { "DBGDTRRX_EL0", 309 },
5104
0
    { "DBGDTRTX_EL0", 310 },
5105
0
    { "DBGDTR_EL0", 311 },
5106
0
    { "DBGPRCR_EL1", 312 },
5107
0
    { "DBGVCR32_EL2", 313 },
5108
0
    { "DBGWCR0_EL1", 314 },
5109
0
    { "DBGWCR10_EL1", 315 },
5110
0
    { "DBGWCR11_EL1", 316 },
5111
0
    { "DBGWCR12_EL1", 317 },
5112
0
    { "DBGWCR13_EL1", 318 },
5113
0
    { "DBGWCR14_EL1", 319 },
5114
0
    { "DBGWCR15_EL1", 320 },
5115
0
    { "DBGWCR1_EL1", 321 },
5116
0
    { "DBGWCR2_EL1", 322 },
5117
0
    { "DBGWCR3_EL1", 323 },
5118
0
    { "DBGWCR4_EL1", 324 },
5119
0
    { "DBGWCR5_EL1", 325 },
5120
0
    { "DBGWCR6_EL1", 326 },
5121
0
    { "DBGWCR7_EL1", 327 },
5122
0
    { "DBGWCR8_EL1", 328 },
5123
0
    { "DBGWCR9_EL1", 329 },
5124
0
    { "DBGWVR0_EL1", 330 },
5125
0
    { "DBGWVR10_EL1", 331 },
5126
0
    { "DBGWVR11_EL1", 332 },
5127
0
    { "DBGWVR12_EL1", 333 },
5128
0
    { "DBGWVR13_EL1", 334 },
5129
0
    { "DBGWVR14_EL1", 335 },
5130
0
    { "DBGWVR15_EL1", 336 },
5131
0
    { "DBGWVR1_EL1", 337 },
5132
0
    { "DBGWVR2_EL1", 338 },
5133
0
    { "DBGWVR3_EL1", 339 },
5134
0
    { "DBGWVR4_EL1", 340 },
5135
0
    { "DBGWVR5_EL1", 341 },
5136
0
    { "DBGWVR6_EL1", 342 },
5137
0
    { "DBGWVR7_EL1", 343 },
5138
0
    { "DBGWVR8_EL1", 344 },
5139
0
    { "DBGWVR9_EL1", 345 },
5140
0
    { "DCZID_EL0", 346 },
5141
0
    { "DISR_EL1", 347 },
5142
0
    { "DIT", 348 },
5143
0
    { "DLR_EL0", 349 },
5144
0
    { "DSPSR_EL0", 350 },
5145
0
    { "ELR_EL1", 351 },
5146
0
    { "ELR_EL12", 352 },
5147
0
    { "ELR_EL2", 353 },
5148
0
    { "ELR_EL3", 354 },
5149
0
    { "ERRIDR_EL1", 355 },
5150
0
    { "ERRSELR_EL1", 356 },
5151
0
    { "ERXADDR_EL1", 357 },
5152
0
    { "ERXCTLR_EL1", 358 },
5153
0
    { "ERXFR_EL1", 359 },
5154
0
    { "ERXGSR_EL1", 360 },
5155
0
    { "ERXMISC0_EL1", 361 },
5156
0
    { "ERXMISC1_EL1", 362 },
5157
0
    { "ERXMISC2_EL1", 363 },
5158
0
    { "ERXMISC3_EL1", 364 },
5159
0
    { "ERXPFGCDN_EL1", 365 },
5160
0
    { "ERXPFGCTL_EL1", 366 },
5161
0
    { "ERXPFGF_EL1", 367 },
5162
0
    { "ERXSTATUS_EL1", 368 },
5163
0
    { "ESR_EL1", 369 },
5164
0
    { "ESR_EL12", 370 },
5165
0
    { "ESR_EL2", 371 },
5166
0
    { "ESR_EL3", 372 },
5167
0
    { "FAR_EL1", 373 },
5168
0
    { "FAR_EL12", 374 },
5169
0
    { "FAR_EL2", 375 },
5170
0
    { "FAR_EL3", 376 },
5171
0
    { "FGWTE3_EL3", 377 },
5172
0
    { "FPCR", 378 },
5173
0
    { "FPEXC32_EL2", 379 },
5174
0
    { "FPMR", 380 },
5175
0
    { "FPSR", 381 },
5176
0
    { "GCR_EL1", 382 },
5177
0
    { "GCSCRE0_EL1", 383 },
5178
0
    { "GCSCR_EL1", 384 },
5179
0
    { "GCSCR_EL12", 385 },
5180
0
    { "GCSCR_EL2", 386 },
5181
0
    { "GCSCR_EL3", 387 },
5182
0
    { "GCSPR_EL0", 388 },
5183
0
    { "GCSPR_EL1", 389 },
5184
0
    { "GCSPR_EL12", 390 },
5185
0
    { "GCSPR_EL2", 391 },
5186
0
    { "GCSPR_EL3", 392 },
5187
0
    { "GMID_EL1", 393 },
5188
0
    { "GPCCR_EL3", 394 },
5189
0
    { "GPTBR_EL3", 395 },
5190
0
    { "HACDBSBR_EL2", 396 },
5191
0
    { "HACDBSCONS_EL2", 397 },
5192
0
    { "HACR_EL2", 398 },
5193
0
    { "HAFGRTR_EL2", 399 },
5194
0
    { "HCRX_EL2", 400 },
5195
0
    { "HCR_EL2", 401 },
5196
0
    { "HDBSSBR_EL2", 402 },
5197
0
    { "HDBSSPROD_EL2", 403 },
5198
0
    { "HDFGRTR2_EL2", 404 },
5199
0
    { "HDFGRTR_EL2", 405 },
5200
0
    { "HDFGWTR2_EL2", 406 },
5201
0
    { "HDFGWTR_EL2", 407 },
5202
0
    { "HFGITR2_EL2", 408 },
5203
0
    { "HFGITR_EL2", 409 },
5204
0
    { "HFGRTR2_EL2", 410 },
5205
0
    { "HFGRTR_EL2", 411 },
5206
0
    { "HFGWTR2_EL2", 412 },
5207
0
    { "HFGWTR_EL2", 413 },
5208
0
    { "HPFAR_EL2", 414 },
5209
0
    { "HSTR_EL2", 415 },
5210
0
    { "ICC_AP0R0_EL1", 416 },
5211
0
    { "ICC_AP0R1_EL1", 417 },
5212
0
    { "ICC_AP0R2_EL1", 418 },
5213
0
    { "ICC_AP0R3_EL1", 419 },
5214
0
    { "ICC_AP1R0_EL1", 420 },
5215
0
    { "ICC_AP1R1_EL1", 421 },
5216
0
    { "ICC_AP1R2_EL1", 422 },
5217
0
    { "ICC_AP1R3_EL1", 423 },
5218
0
    { "ICC_ASGI1R_EL1", 424 },
5219
0
    { "ICC_BPR0_EL1", 425 },
5220
0
    { "ICC_BPR1_EL1", 426 },
5221
0
    { "ICC_CTLR_EL1", 427 },
5222
0
    { "ICC_CTLR_EL3", 428 },
5223
0
    { "ICC_DIR_EL1", 429 },
5224
0
    { "ICC_EOIR0_EL1", 430 },
5225
0
    { "ICC_EOIR1_EL1", 431 },
5226
0
    { "ICC_HPPIR0_EL1", 432 },
5227
0
    { "ICC_HPPIR1_EL1", 433 },
5228
0
    { "ICC_IAR0_EL1", 434 },
5229
0
    { "ICC_IAR1_EL1", 435 },
5230
0
    { "ICC_IGRPEN0_EL1", 436 },
5231
0
    { "ICC_IGRPEN1_EL1", 437 },
5232
0
    { "ICC_IGRPEN1_EL3", 438 },
5233
0
    { "ICC_NMIAR1_EL1", 439 },
5234
0
    { "ICC_PMR_EL1", 440 },
5235
0
    { "ICC_RPR_EL1", 441 },
5236
0
    { "ICC_SGI0R_EL1", 442 },
5237
0
    { "ICC_SGI1R_EL1", 443 },
5238
0
    { "ICC_SRE_EL1", 444 },
5239
0
    { "ICC_SRE_EL2", 445 },
5240
0
    { "ICC_SRE_EL3", 446 },
5241
0
    { "ICH_AP0R0_EL2", 447 },
5242
0
    { "ICH_AP0R1_EL2", 448 },
5243
0
    { "ICH_AP0R2_EL2", 449 },
5244
0
    { "ICH_AP0R3_EL2", 450 },
5245
0
    { "ICH_AP1R0_EL2", 451 },
5246
0
    { "ICH_AP1R1_EL2", 452 },
5247
0
    { "ICH_AP1R2_EL2", 453 },
5248
0
    { "ICH_AP1R3_EL2", 454 },
5249
0
    { "ICH_EISR_EL2", 455 },
5250
0
    { "ICH_ELRSR_EL2", 456 },
5251
0
    { "ICH_HCR_EL2", 457 },
5252
0
    { "ICH_LR0_EL2", 458 },
5253
0
    { "ICH_LR10_EL2", 459 },
5254
0
    { "ICH_LR11_EL2", 460 },
5255
0
    { "ICH_LR12_EL2", 461 },
5256
0
    { "ICH_LR13_EL2", 462 },
5257
0
    { "ICH_LR14_EL2", 463 },
5258
0
    { "ICH_LR15_EL2", 464 },
5259
0
    { "ICH_LR1_EL2", 465 },
5260
0
    { "ICH_LR2_EL2", 466 },
5261
0
    { "ICH_LR3_EL2", 467 },
5262
0
    { "ICH_LR4_EL2", 468 },
5263
0
    { "ICH_LR5_EL2", 469 },
5264
0
    { "ICH_LR6_EL2", 470 },
5265
0
    { "ICH_LR7_EL2", 471 },
5266
0
    { "ICH_LR8_EL2", 472 },
5267
0
    { "ICH_LR9_EL2", 473 },
5268
0
    { "ICH_MISR_EL2", 474 },
5269
0
    { "ICH_VMCR_EL2", 475 },
5270
0
    { "ICH_VTR_EL2", 476 },
5271
0
    { "ID_AA64AFR0_EL1", 477 },
5272
0
    { "ID_AA64AFR1_EL1", 478 },
5273
0
    { "ID_AA64DFR0_EL1", 479 },
5274
0
    { "ID_AA64DFR1_EL1", 480 },
5275
0
    { "ID_AA64DFR2_EL1", 481 },
5276
0
    { "ID_AA64FPFR0_EL1", 482 },
5277
0
    { "ID_AA64ISAR0_EL1", 483 },
5278
0
    { "ID_AA64ISAR1_EL1", 484 },
5279
0
    { "ID_AA64ISAR2_EL1", 485 },
5280
0
    { "ID_AA64ISAR3_EL1", 486 },
5281
0
    { "ID_AA64MMFR0_EL1", 487 },
5282
0
    { "ID_AA64MMFR1_EL1", 488 },
5283
0
    { "ID_AA64MMFR2_EL1", 489 },
5284
0
    { "ID_AA64MMFR3_EL1", 490 },
5285
0
    { "ID_AA64MMFR4_EL1", 491 },
5286
0
    { "ID_AA64PFR0_EL1", 492 },
5287
0
    { "ID_AA64PFR1_EL1", 493 },
5288
0
    { "ID_AA64PFR2_EL1", 494 },
5289
0
    { "ID_AA64SMFR0_EL1", 495 },
5290
0
    { "ID_AA64ZFR0_EL1", 496 },
5291
0
    { "ID_AFR0_EL1", 497 },
5292
0
    { "ID_DFR0_EL1", 498 },
5293
0
    { "ID_DFR1_EL1", 499 },
5294
0
    { "ID_ISAR0_EL1", 500 },
5295
0
    { "ID_ISAR1_EL1", 501 },
5296
0
    { "ID_ISAR2_EL1", 502 },
5297
0
    { "ID_ISAR3_EL1", 503 },
5298
0
    { "ID_ISAR4_EL1", 504 },
5299
0
    { "ID_ISAR5_EL1", 505 },
5300
0
    { "ID_ISAR6_EL1", 506 },
5301
0
    { "ID_MMFR0_EL1", 507 },
5302
0
    { "ID_MMFR1_EL1", 508 },
5303
0
    { "ID_MMFR2_EL1", 509 },
5304
0
    { "ID_MMFR3_EL1", 510 },
5305
0
    { "ID_MMFR4_EL1", 511 },
5306
0
    { "ID_MMFR5_EL1", 512 },
5307
0
    { "ID_PFR0_EL1", 513 },
5308
0
    { "ID_PFR1_EL1", 514 },
5309
0
    { "ID_PFR2_EL1", 515 },
5310
0
    { "IFSR32_EL2", 516 },
5311
0
    { "ISR_EL1", 517 },
5312
0
    { "LORC_EL1", 518 },
5313
0
    { "LOREA_EL1", 519 },
5314
0
    { "LORID_EL1", 520 },
5315
0
    { "LORN_EL1", 521 },
5316
0
    { "LORSA_EL1", 522 },
5317
0
    { "MAIR2_EL1", 523 },
5318
0
    { "MAIR2_EL12", 524 },
5319
0
    { "MAIR2_EL2", 525 },
5320
0
    { "MAIR2_EL3", 526 },
5321
0
    { "MAIR_EL1", 527 },
5322
0
    { "MAIR_EL12", 528 },
5323
0
    { "MAIR_EL2", 529 },
5324
0
    { "MAIR_EL3", 530 },
5325
0
    { "MDCCINT_EL1", 531 },
5326
0
    { "MDCCSR_EL0", 532 },
5327
0
    { "MDCR_EL2", 533 },
5328
0
    { "MDCR_EL3", 534 },
5329
0
    { "MDRAR_EL1", 535 },
5330
0
    { "MDSCR_EL1", 536 },
5331
0
    { "MDSELR_EL1", 537 },
5332
0
    { "MDSTEPOP_EL1", 538 },
5333
0
    { "MECIDR_EL2", 539 },
5334
0
    { "MECID_A0_EL2", 540 },
5335
0
    { "MECID_A1_EL2", 541 },
5336
0
    { "MECID_P0_EL2", 542 },
5337
0
    { "MECID_P1_EL2", 543 },
5338
0
    { "MECID_RL_A_EL3", 544 },
5339
0
    { "MFAR_EL3", 545 },
5340
0
    { "MIDR_EL1", 546 },
5341
0
    { "MPAM0_EL1", 547 },
5342
0
    { "MPAM1_EL1", 548 },
5343
0
    { "MPAM1_EL12", 549 },
5344
0
    { "MPAM2_EL2", 550 },
5345
0
    { "MPAM3_EL3", 551 },
5346
0
    { "MPAMHCR_EL2", 552 },
5347
0
    { "MPAMIDR_EL1", 553 },
5348
0
    { "MPAMSM_EL1", 554 },
5349
0
    { "MPAMVPM0_EL2", 555 },
5350
0
    { "MPAMVPM1_EL2", 556 },
5351
0
    { "MPAMVPM2_EL2", 557 },
5352
0
    { "MPAMVPM3_EL2", 558 },
5353
0
    { "MPAMVPM4_EL2", 559 },
5354
0
    { "MPAMVPM5_EL2", 560 },
5355
0
    { "MPAMVPM6_EL2", 561 },
5356
0
    { "MPAMVPM7_EL2", 562 },
5357
0
    { "MPAMVPMV_EL2", 563 },
5358
0
    { "MPIDR_EL1", 564 },
5359
0
    { "MPUIR_EL1", 565 },
5360
0
    { "MPUIR_EL2", 566 },
5361
0
    { "MVFR0_EL1", 567 },
5362
0
    { "MVFR1_EL1", 568 },
5363
0
    { "MVFR2_EL1", 569 },
5364
0
    { "NZCV", 570 },
5365
0
    { "OSDLR_EL1", 571 },
5366
0
    { "OSDTRRX_EL1", 572 },
5367
0
    { "OSDTRTX_EL1", 573 },
5368
0
    { "OSECCR_EL1", 574 },
5369
0
    { "OSLAR_EL1", 575 },
5370
0
    { "OSLSR_EL1", 576 },
5371
0
    { "PAN", 577 },
5372
0
    { "PAR_EL1", 578 },
5373
0
    { "PFAR_EL1", 579 },
5374
0
    { "PFAR_EL12", 580 },
5375
0
    { "PFAR_EL2", 581 },
5376
0
    { "PIRE0_EL1", 582 },
5377
0
    { "PIRE0_EL12", 583 },
5378
0
    { "PIRE0_EL2", 584 },
5379
0
    { "PIR_EL1", 585 },
5380
0
    { "PIR_EL12", 586 },
5381
0
    { "PIR_EL2", 587 },
5382
0
    { "PIR_EL3", 588 },
5383
0
    { "PM", 589 },
5384
0
    { "PMBIDR_EL1", 590 },
5385
0
    { "PMBLIMITR_EL1", 591 },
5386
0
    { "PMBPTR_EL1", 592 },
5387
0
    { "PMBSR_EL1", 593 },
5388
0
    { "PMCCFILTR_EL0", 594 },
5389
0
    { "PMCCNTR_EL0", 595 },
5390
0
    { "PMCCNTSVR_EL1", 596 },
5391
0
    { "PMCEID0_EL0", 597 },
5392
0
    { "PMCEID1_EL0", 598 },
5393
0
    { "PMCNTENCLR_EL0", 599 },
5394
0
    { "PMCNTENSET_EL0", 600 },
5395
0
    { "PMCR_EL0", 601 },
5396
0
    { "PMECR_EL1", 602 },
5397
0
    { "PMEVCNTR0_EL0", 603 },
5398
0
    { "PMEVCNTR10_EL0", 604 },
5399
0
    { "PMEVCNTR11_EL0", 605 },
5400
0
    { "PMEVCNTR12_EL0", 606 },
5401
0
    { "PMEVCNTR13_EL0", 607 },
5402
0
    { "PMEVCNTR14_EL0", 608 },
5403
0
    { "PMEVCNTR15_EL0", 609 },
5404
0
    { "PMEVCNTR16_EL0", 610 },
5405
0
    { "PMEVCNTR17_EL0", 611 },
5406
0
    { "PMEVCNTR18_EL0", 612 },
5407
0
    { "PMEVCNTR19_EL0", 613 },
5408
0
    { "PMEVCNTR1_EL0", 614 },
5409
0
    { "PMEVCNTR20_EL0", 615 },
5410
0
    { "PMEVCNTR21_EL0", 616 },
5411
0
    { "PMEVCNTR22_EL0", 617 },
5412
0
    { "PMEVCNTR23_EL0", 618 },
5413
0
    { "PMEVCNTR24_EL0", 619 },
5414
0
    { "PMEVCNTR25_EL0", 620 },
5415
0
    { "PMEVCNTR26_EL0", 621 },
5416
0
    { "PMEVCNTR27_EL0", 622 },
5417
0
    { "PMEVCNTR28_EL0", 623 },
5418
0
    { "PMEVCNTR29_EL0", 624 },
5419
0
    { "PMEVCNTR2_EL0", 625 },
5420
0
    { "PMEVCNTR30_EL0", 626 },
5421
0
    { "PMEVCNTR3_EL0", 627 },
5422
0
    { "PMEVCNTR4_EL0", 628 },
5423
0
    { "PMEVCNTR5_EL0", 629 },
5424
0
    { "PMEVCNTR6_EL0", 630 },
5425
0
    { "PMEVCNTR7_EL0", 631 },
5426
0
    { "PMEVCNTR8_EL0", 632 },
5427
0
    { "PMEVCNTR9_EL0", 633 },
5428
0
    { "PMEVCNTSVR0_EL1", 634 },
5429
0
    { "PMEVCNTSVR10_EL1", 635 },
5430
0
    { "PMEVCNTSVR11_EL1", 636 },
5431
0
    { "PMEVCNTSVR12_EL1", 637 },
5432
0
    { "PMEVCNTSVR13_EL1", 638 },
5433
0
    { "PMEVCNTSVR14_EL1", 639 },
5434
0
    { "PMEVCNTSVR15_EL1", 640 },
5435
0
    { "PMEVCNTSVR16_EL1", 641 },
5436
0
    { "PMEVCNTSVR17_EL1", 642 },
5437
0
    { "PMEVCNTSVR18_EL1", 643 },
5438
0
    { "PMEVCNTSVR19_EL1", 644 },
5439
0
    { "PMEVCNTSVR1_EL1", 645 },
5440
0
    { "PMEVCNTSVR20_EL1", 646 },
5441
0
    { "PMEVCNTSVR21_EL1", 647 },
5442
0
    { "PMEVCNTSVR22_EL1", 648 },
5443
0
    { "PMEVCNTSVR23_EL1", 649 },
5444
0
    { "PMEVCNTSVR24_EL1", 650 },
5445
0
    { "PMEVCNTSVR25_EL1", 651 },
5446
0
    { "PMEVCNTSVR26_EL1", 652 },
5447
0
    { "PMEVCNTSVR27_EL1", 653 },
5448
0
    { "PMEVCNTSVR28_EL1", 654 },
5449
0
    { "PMEVCNTSVR29_EL1", 655 },
5450
0
    { "PMEVCNTSVR2_EL1", 656 },
5451
0
    { "PMEVCNTSVR30_EL1", 657 },
5452
0
    { "PMEVCNTSVR3_EL1", 658 },
5453
0
    { "PMEVCNTSVR4_EL1", 659 },
5454
0
    { "PMEVCNTSVR5_EL1", 660 },
5455
0
    { "PMEVCNTSVR6_EL1", 661 },
5456
0
    { "PMEVCNTSVR7_EL1", 662 },
5457
0
    { "PMEVCNTSVR8_EL1", 663 },
5458
0
    { "PMEVCNTSVR9_EL1", 664 },
5459
0
    { "PMEVTYPER0_EL0", 665 },
5460
0
    { "PMEVTYPER10_EL0", 666 },
5461
0
    { "PMEVTYPER11_EL0", 667 },
5462
0
    { "PMEVTYPER12_EL0", 668 },
5463
0
    { "PMEVTYPER13_EL0", 669 },
5464
0
    { "PMEVTYPER14_EL0", 670 },
5465
0
    { "PMEVTYPER15_EL0", 671 },
5466
0
    { "PMEVTYPER16_EL0", 672 },
5467
0
    { "PMEVTYPER17_EL0", 673 },
5468
0
    { "PMEVTYPER18_EL0", 674 },
5469
0
    { "PMEVTYPER19_EL0", 675 },
5470
0
    { "PMEVTYPER1_EL0", 676 },
5471
0
    { "PMEVTYPER20_EL0", 677 },
5472
0
    { "PMEVTYPER21_EL0", 678 },
5473
0
    { "PMEVTYPER22_EL0", 679 },
5474
0
    { "PMEVTYPER23_EL0", 680 },
5475
0
    { "PMEVTYPER24_EL0", 681 },
5476
0
    { "PMEVTYPER25_EL0", 682 },
5477
0
    { "PMEVTYPER26_EL0", 683 },
5478
0
    { "PMEVTYPER27_EL0", 684 },
5479
0
    { "PMEVTYPER28_EL0", 685 },
5480
0
    { "PMEVTYPER29_EL0", 686 },
5481
0
    { "PMEVTYPER2_EL0", 687 },
5482
0
    { "PMEVTYPER30_EL0", 688 },
5483
0
    { "PMEVTYPER3_EL0", 689 },
5484
0
    { "PMEVTYPER4_EL0", 690 },
5485
0
    { "PMEVTYPER5_EL0", 691 },
5486
0
    { "PMEVTYPER6_EL0", 692 },
5487
0
    { "PMEVTYPER7_EL0", 693 },
5488
0
    { "PMEVTYPER8_EL0", 694 },
5489
0
    { "PMEVTYPER9_EL0", 695 },
5490
0
    { "PMIAR_EL1", 696 },
5491
0
    { "PMICFILTR_EL0", 697 },
5492
0
    { "PMICNTR_EL0", 698 },
5493
0
    { "PMICNTSVR_EL1", 699 },
5494
0
    { "PMINTENCLR_EL1", 700 },
5495
0
    { "PMINTENSET_EL1", 701 },
5496
0
    { "PMMIR_EL1", 702 },
5497
0
    { "PMOVSCLR_EL0", 703 },
5498
0
    { "PMOVSSET_EL0", 704 },
5499
0
    { "PMSCR_EL1", 705 },
5500
0
    { "PMSCR_EL12", 706 },
5501
0
    { "PMSCR_EL2", 707 },
5502
0
    { "PMSDSFR_EL1", 708 },
5503
0
    { "PMSELR_EL0", 709 },
5504
0
    { "PMSEVFR_EL1", 710 },
5505
0
    { "PMSFCR_EL1", 711 },
5506
0
    { "PMSICR_EL1", 712 },
5507
0
    { "PMSIDR_EL1", 713 },
5508
0
    { "PMSIRR_EL1", 714 },
5509
0
    { "PMSLATFR_EL1", 715 },
5510
0
    { "PMSNEVFR_EL1", 716 },
5511
0
    { "PMSSCR_EL1", 717 },
5512
0
    { "PMSWINC_EL0", 718 },
5513
0
    { "PMUACR_EL1", 719 },
5514
0
    { "PMUSERENR_EL0", 720 },
5515
0
    { "PMXEVCNTR_EL0", 721 },
5516
0
    { "PMXEVTYPER_EL0", 722 },
5517
0
    { "PMZR_EL0", 723 },
5518
0
    { "POR_EL0", 724 },
5519
0
    { "POR_EL1", 725 },
5520
0
    { "POR_EL12", 726 },
5521
0
    { "POR_EL2", 727 },
5522
0
    { "POR_EL3", 728 },
5523
0
    { "PRBAR10_EL1", 729 },
5524
0
    { "PRBAR10_EL2", 730 },
5525
0
    { "PRBAR11_EL1", 731 },
5526
0
    { "PRBAR11_EL2", 732 },
5527
0
    { "PRBAR12_EL1", 733 },
5528
0
    { "PRBAR12_EL2", 734 },
5529
0
    { "PRBAR13_EL1", 735 },
5530
0
    { "PRBAR13_EL2", 736 },
5531
0
    { "PRBAR14_EL1", 737 },
5532
0
    { "PRBAR14_EL2", 738 },
5533
0
    { "PRBAR15_EL1", 739 },
5534
0
    { "PRBAR15_EL2", 740 },
5535
0
    { "PRBAR1_EL1", 741 },
5536
0
    { "PRBAR1_EL2", 742 },
5537
0
    { "PRBAR2_EL1", 743 },
5538
0
    { "PRBAR2_EL2", 744 },
5539
0
    { "PRBAR3_EL1", 745 },
5540
0
    { "PRBAR3_EL2", 746 },
5541
0
    { "PRBAR4_EL1", 747 },
5542
0
    { "PRBAR4_EL2", 748 },
5543
0
    { "PRBAR5_EL1", 749 },
5544
0
    { "PRBAR5_EL2", 750 },
5545
0
    { "PRBAR6_EL1", 751 },
5546
0
    { "PRBAR6_EL2", 752 },
5547
0
    { "PRBAR7_EL1", 753 },
5548
0
    { "PRBAR7_EL2", 754 },
5549
0
    { "PRBAR8_EL1", 755 },
5550
0
    { "PRBAR8_EL2", 756 },
5551
0
    { "PRBAR9_EL1", 757 },
5552
0
    { "PRBAR9_EL2", 758 },
5553
0
    { "PRBAR_EL1", 759 },
5554
0
    { "PRBAR_EL2", 760 },
5555
0
    { "PRENR_EL1", 761 },
5556
0
    { "PRENR_EL2", 762 },
5557
0
    { "PRLAR10_EL1", 763 },
5558
0
    { "PRLAR10_EL2", 764 },
5559
0
    { "PRLAR11_EL1", 765 },
5560
0
    { "PRLAR11_EL2", 766 },
5561
0
    { "PRLAR12_EL1", 767 },
5562
0
    { "PRLAR12_EL2", 768 },
5563
0
    { "PRLAR13_EL1", 769 },
5564
0
    { "PRLAR13_EL2", 770 },
5565
0
    { "PRLAR14_EL1", 771 },
5566
0
    { "PRLAR14_EL2", 772 },
5567
0
    { "PRLAR15_EL1", 773 },
5568
0
    { "PRLAR15_EL2", 774 },
5569
0
    { "PRLAR1_EL1", 775 },
5570
0
    { "PRLAR1_EL2", 776 },
5571
0
    { "PRLAR2_EL1", 777 },
5572
0
    { "PRLAR2_EL2", 778 },
5573
0
    { "PRLAR3_EL1", 779 },
5574
0
    { "PRLAR3_EL2", 780 },
5575
0
    { "PRLAR4_EL1", 781 },
5576
0
    { "PRLAR4_EL2", 782 },
5577
0
    { "PRLAR5_EL1", 783 },
5578
0
    { "PRLAR5_EL2", 784 },
5579
0
    { "PRLAR6_EL1", 785 },
5580
0
    { "PRLAR6_EL2", 786 },
5581
0
    { "PRLAR7_EL1", 787 },
5582
0
    { "PRLAR7_EL2", 788 },
5583
0
    { "PRLAR8_EL1", 789 },
5584
0
    { "PRLAR8_EL2", 790 },
5585
0
    { "PRLAR9_EL1", 791 },
5586
0
    { "PRLAR9_EL2", 792 },
5587
0
    { "PRLAR_EL1", 793 },
5588
0
    { "PRLAR_EL2", 794 },
5589
0
    { "PRSELR_EL1", 795 },
5590
0
    { "PRSELR_EL2", 796 },
5591
0
    { "RCWMASK_EL1", 797 },
5592
0
    { "RCWSMASK_EL1", 798 },
5593
0
    { "REVIDR_EL1", 799 },
5594
0
    { "RGSR_EL1", 800 },
5595
0
    { "RMR_EL1", 801 },
5596
0
    { "RMR_EL2", 802 },
5597
0
    { "RMR_EL3", 803 },
5598
0
    { "RNDR", 804 },
5599
0
    { "RNDRRS", 805 },
5600
0
    { "RVBAR_EL1", 806 },
5601
0
    { "RVBAR_EL2", 807 },
5602
0
    { "RVBAR_EL3", 808 },
5603
0
    { "S2PIR_EL2", 809 },
5604
0
    { "S2POR_EL1", 810 },
5605
0
    { "SCR_EL3", 811 },
5606
0
    { "SCTLR2_EL1", 812 },
5607
0
    { "SCTLR2_EL12", 813 },
5608
0
    { "SCTLR2_EL2", 814 },
5609
0
    { "SCTLR2_EL3", 815 },
5610
0
    { "SCTLR_EL1", 816 },
5611
0
    { "SCTLR_EL12", 817 },
5612
0
    { "SCTLR_EL2", 818 },
5613
0
    { "SCTLR_EL3", 819 },
5614
0
    { "SCXTNUM_EL0", 820 },
5615
0
    { "SCXTNUM_EL1", 821 },
5616
0
    { "SCXTNUM_EL12", 822 },
5617
0
    { "SCXTNUM_EL2", 823 },
5618
0
    { "SCXTNUM_EL3", 824 },
5619
0
    { "SDER32_EL2", 825 },
5620
0
    { "SDER32_EL3", 826 },
5621
0
    { "SMCR_EL1", 827 },
5622
0
    { "SMCR_EL12", 828 },
5623
0
    { "SMCR_EL2", 829 },
5624
0
    { "SMCR_EL3", 830 },
5625
0
    { "SMIDR_EL1", 831 },
5626
0
    { "SMPRIMAP_EL2", 832 },
5627
0
    { "SMPRI_EL1", 833 },
5628
0
    { "SPMACCESSR_EL1", 834 },
5629
0
    { "SPMACCESSR_EL12", 835 },
5630
0
    { "SPMACCESSR_EL2", 836 },
5631
0
    { "SPMACCESSR_EL3", 837 },
5632
0
    { "SPMCFGR_EL1", 838 },
5633
0
    { "SPMCGCR0_EL1", 839 },
5634
0
    { "SPMCGCR1_EL1", 840 },
5635
0
    { "SPMCNTENCLR_EL0", 841 },
5636
0
    { "SPMCNTENSET_EL0", 842 },
5637
0
    { "SPMCR_EL0", 843 },
5638
0
    { "SPMDEVAFF_EL1", 844 },
5639
0
    { "SPMDEVARCH_EL1", 845 },
5640
0
    { "SPMEVCNTR0_EL0", 846 },
5641
0
    { "SPMEVCNTR10_EL0", 847 },
5642
0
    { "SPMEVCNTR11_EL0", 848 },
5643
0
    { "SPMEVCNTR12_EL0", 849 },
5644
0
    { "SPMEVCNTR13_EL0", 850 },
5645
0
    { "SPMEVCNTR14_EL0", 851 },
5646
0
    { "SPMEVCNTR15_EL0", 852 },
5647
0
    { "SPMEVCNTR1_EL0", 853 },
5648
0
    { "SPMEVCNTR2_EL0", 854 },
5649
0
    { "SPMEVCNTR3_EL0", 855 },
5650
0
    { "SPMEVCNTR4_EL0", 856 },
5651
0
    { "SPMEVCNTR5_EL0", 857 },
5652
0
    { "SPMEVCNTR6_EL0", 858 },
5653
0
    { "SPMEVCNTR7_EL0", 859 },
5654
0
    { "SPMEVCNTR8_EL0", 860 },
5655
0
    { "SPMEVCNTR9_EL0", 861 },
5656
0
    { "SPMEVFILT2R0_EL0", 862 },
5657
0
    { "SPMEVFILT2R10_EL0", 863 },
5658
0
    { "SPMEVFILT2R11_EL0", 864 },
5659
0
    { "SPMEVFILT2R12_EL0", 865 },
5660
0
    { "SPMEVFILT2R13_EL0", 866 },
5661
0
    { "SPMEVFILT2R14_EL0", 867 },
5662
0
    { "SPMEVFILT2R15_EL0", 868 },
5663
0
    { "SPMEVFILT2R1_EL0", 869 },
5664
0
    { "SPMEVFILT2R2_EL0", 870 },
5665
0
    { "SPMEVFILT2R3_EL0", 871 },
5666
0
    { "SPMEVFILT2R4_EL0", 872 },
5667
0
    { "SPMEVFILT2R5_EL0", 873 },
5668
0
    { "SPMEVFILT2R6_EL0", 874 },
5669
0
    { "SPMEVFILT2R7_EL0", 875 },
5670
0
    { "SPMEVFILT2R8_EL0", 876 },
5671
0
    { "SPMEVFILT2R9_EL0", 877 },
5672
0
    { "SPMEVFILTR0_EL0", 878 },
5673
0
    { "SPMEVFILTR10_EL0", 879 },
5674
0
    { "SPMEVFILTR11_EL0", 880 },
5675
0
    { "SPMEVFILTR12_EL0", 881 },
5676
0
    { "SPMEVFILTR13_EL0", 882 },
5677
0
    { "SPMEVFILTR14_EL0", 883 },
5678
0
    { "SPMEVFILTR15_EL0", 884 },
5679
0
    { "SPMEVFILTR1_EL0", 885 },
5680
0
    { "SPMEVFILTR2_EL0", 886 },
5681
0
    { "SPMEVFILTR3_EL0", 887 },
5682
0
    { "SPMEVFILTR4_EL0", 888 },
5683
0
    { "SPMEVFILTR5_EL0", 889 },
5684
0
    { "SPMEVFILTR6_EL0", 890 },
5685
0
    { "SPMEVFILTR7_EL0", 891 },
5686
0
    { "SPMEVFILTR8_EL0", 892 },
5687
0
    { "SPMEVFILTR9_EL0", 893 },
5688
0
    { "SPMEVTYPER0_EL0", 894 },
5689
0
    { "SPMEVTYPER10_EL0", 895 },
5690
0
    { "SPMEVTYPER11_EL0", 896 },
5691
0
    { "SPMEVTYPER12_EL0", 897 },
5692
0
    { "SPMEVTYPER13_EL0", 898 },
5693
0
    { "SPMEVTYPER14_EL0", 899 },
5694
0
    { "SPMEVTYPER15_EL0", 900 },
5695
0
    { "SPMEVTYPER1_EL0", 901 },
5696
0
    { "SPMEVTYPER2_EL0", 902 },
5697
0
    { "SPMEVTYPER3_EL0", 903 },
5698
0
    { "SPMEVTYPER4_EL0", 904 },
5699
0
    { "SPMEVTYPER5_EL0", 905 },
5700
0
    { "SPMEVTYPER6_EL0", 906 },
5701
0
    { "SPMEVTYPER7_EL0", 907 },
5702
0
    { "SPMEVTYPER8_EL0", 908 },
5703
0
    { "SPMEVTYPER9_EL0", 909 },
5704
0
    { "SPMIIDR_EL1", 910 },
5705
0
    { "SPMINTENCLR_EL1", 911 },
5706
0
    { "SPMINTENSET_EL1", 912 },
5707
0
    { "SPMOVSCLR_EL0", 913 },
5708
0
    { "SPMOVSSET_EL0", 914 },
5709
0
    { "SPMROOTCR_EL3", 915 },
5710
0
    { "SPMSCR_EL1", 916 },
5711
0
    { "SPMSELR_EL0", 917 },
5712
0
    { "SPMZR_EL0", 918 },
5713
0
    { "SPSEL", 919 },
5714
0
    { "SPSR_ABT", 920 },
5715
0
    { "SPSR_EL1", 921 },
5716
0
    { "SPSR_EL12", 922 },
5717
0
    { "SPSR_EL2", 923 },
5718
0
    { "SPSR_EL3", 924 },
5719
0
    { "SPSR_FIQ", 925 },
5720
0
    { "SPSR_IRQ", 926 },
5721
0
    { "SPSR_UND", 927 },
5722
0
    { "SP_EL0", 928 },
5723
0
    { "SP_EL1", 929 },
5724
0
    { "SP_EL2", 930 },
5725
0
    { "SSBS", 931 },
5726
0
    { "SVCR", 932 },
5727
0
    { "TCO", 933 },
5728
0
    { "TCR2_EL1", 934 },
5729
0
    { "TCR2_EL12", 935 },
5730
0
    { "TCR2_EL2", 936 },
5731
0
    { "TCR_EL1", 937 },
5732
0
    { "TCR_EL12", 938 },
5733
0
    { "TCR_EL2", 939 },
5734
0
    { "TCR_EL3", 940 },
5735
0
    { "TEECR32_EL1", 941 },
5736
0
    { "TEEHBR32_EL1", 942 },
5737
0
    { "TFSRE0_EL1", 943 },
5738
0
    { "TFSR_EL1", 944 },
5739
0
    { "TFSR_EL12", 945 },
5740
0
    { "TFSR_EL2", 946 },
5741
0
    { "TFSR_EL3", 947 },
5742
0
    { "TPIDR2_EL0", 948 },
5743
0
    { "TPIDRRO_EL0", 949 },
5744
0
    { "TPIDR_EL0", 950 },
5745
0
    { "TPIDR_EL1", 951 },
5746
0
    { "TPIDR_EL2", 952 },
5747
0
    { "TPIDR_EL3", 953 },
5748
0
    { "TRBBASER_EL1", 954 },
5749
0
    { "TRBIDR_EL1", 955 },
5750
0
    { "TRBLIMITR_EL1", 956 },
5751
0
    { "TRBMAR_EL1", 957 },
5752
0
    { "TRBPTR_EL1", 958 },
5753
0
    { "TRBSR_EL1", 959 },
5754
0
    { "TRBTRG_EL1", 960 },
5755
0
    { "TRCACATR0", 961 },
5756
0
    { "TRCACATR1", 962 },
5757
0
    { "TRCACATR10", 963 },
5758
0
    { "TRCACATR11", 964 },
5759
0
    { "TRCACATR12", 965 },
5760
0
    { "TRCACATR13", 966 },
5761
0
    { "TRCACATR14", 967 },
5762
0
    { "TRCACATR15", 968 },
5763
0
    { "TRCACATR2", 969 },
5764
0
    { "TRCACATR3", 970 },
5765
0
    { "TRCACATR4", 971 },
5766
0
    { "TRCACATR5", 972 },
5767
0
    { "TRCACATR6", 973 },
5768
0
    { "TRCACATR7", 974 },
5769
0
    { "TRCACATR8", 975 },
5770
0
    { "TRCACATR9", 976 },
5771
0
    { "TRCACVR0", 977 },
5772
0
    { "TRCACVR1", 978 },
5773
0
    { "TRCACVR10", 979 },
5774
0
    { "TRCACVR11", 980 },
5775
0
    { "TRCACVR12", 981 },
5776
0
    { "TRCACVR13", 982 },
5777
0
    { "TRCACVR14", 983 },
5778
0
    { "TRCACVR15", 984 },
5779
0
    { "TRCACVR2", 985 },
5780
0
    { "TRCACVR3", 986 },
5781
0
    { "TRCACVR4", 987 },
5782
0
    { "TRCACVR5", 988 },
5783
0
    { "TRCACVR6", 989 },
5784
0
    { "TRCACVR7", 990 },
5785
0
    { "TRCACVR8", 991 },
5786
0
    { "TRCACVR9", 992 },
5787
0
    { "TRCAUTHSTATUS", 993 },
5788
0
    { "TRCAUXCTLR", 994 },
5789
0
    { "TRCBBCTLR", 995 },
5790
0
    { "TRCCCCTLR", 996 },
5791
0
    { "TRCCIDCCTLR0", 997 },
5792
0
    { "TRCCIDCCTLR1", 998 },
5793
0
    { "TRCCIDCVR0", 999 },
5794
0
    { "TRCCIDCVR1", 1000 },
5795
0
    { "TRCCIDCVR2", 1001 },
5796
0
    { "TRCCIDCVR3", 1002 },
5797
0
    { "TRCCIDCVR4", 1003 },
5798
0
    { "TRCCIDCVR5", 1004 },
5799
0
    { "TRCCIDCVR6", 1005 },
5800
0
    { "TRCCIDCVR7", 1006 },
5801
0
    { "TRCCIDR0", 1007 },
5802
0
    { "TRCCIDR1", 1008 },
5803
0
    { "TRCCIDR2", 1009 },
5804
0
    { "TRCCIDR3", 1010 },
5805
0
    { "TRCCLAIMCLR", 1011 },
5806
0
    { "TRCCLAIMSET", 1012 },
5807
0
    { "TRCCNTCTLR0", 1013 },
5808
0
    { "TRCCNTCTLR1", 1014 },
5809
0
    { "TRCCNTCTLR2", 1015 },
5810
0
    { "TRCCNTCTLR3", 1016 },
5811
0
    { "TRCCNTRLDVR0", 1017 },
5812
0
    { "TRCCNTRLDVR1", 1018 },
5813
0
    { "TRCCNTRLDVR2", 1019 },
5814
0
    { "TRCCNTRLDVR3", 1020 },
5815
0
    { "TRCCNTVR0", 1021 },
5816
0
    { "TRCCNTVR1", 1022 },
5817
0
    { "TRCCNTVR2", 1023 },
5818
0
    { "TRCCNTVR3", 1024 },
5819
0
    { "TRCCONFIGR", 1025 },
5820
0
    { "TRCDEVAFF0", 1026 },
5821
0
    { "TRCDEVAFF1", 1027 },
5822
0
    { "TRCDEVARCH", 1028 },
5823
0
    { "TRCDEVID", 1029 },
5824
0
    { "TRCDEVTYPE", 1030 },
5825
0
    { "TRCDVCMR0", 1031 },
5826
0
    { "TRCDVCMR1", 1032 },
5827
0
    { "TRCDVCMR2", 1033 },
5828
0
    { "TRCDVCMR3", 1034 },
5829
0
    { "TRCDVCMR4", 1035 },
5830
0
    { "TRCDVCMR5", 1036 },
5831
0
    { "TRCDVCMR6", 1037 },
5832
0
    { "TRCDVCMR7", 1038 },
5833
0
    { "TRCDVCVR0", 1039 },
5834
0
    { "TRCDVCVR1", 1040 },
5835
0
    { "TRCDVCVR2", 1041 },
5836
0
    { "TRCDVCVR3", 1042 },
5837
0
    { "TRCDVCVR4", 1043 },
5838
0
    { "TRCDVCVR5", 1044 },
5839
0
    { "TRCDVCVR6", 1045 },
5840
0
    { "TRCDVCVR7", 1046 },
5841
0
    { "TRCEVENTCTL0R", 1047 },
5842
0
    { "TRCEVENTCTL1R", 1048 },
5843
0
    { "TRCEXTINSELR", 1049 },
5844
0
    { "TRCEXTINSELR0", 1050 },
5845
0
    { "TRCEXTINSELR1", 1051 },
5846
0
    { "TRCEXTINSELR2", 1052 },
5847
0
    { "TRCEXTINSELR3", 1053 },
5848
0
    { "TRCIDR0", 1054 },
5849
0
    { "TRCIDR1", 1055 },
5850
0
    { "TRCIDR10", 1056 },
5851
0
    { "TRCIDR11", 1057 },
5852
0
    { "TRCIDR12", 1058 },
5853
0
    { "TRCIDR13", 1059 },
5854
0
    { "TRCIDR2", 1060 },
5855
0
    { "TRCIDR3", 1061 },
5856
0
    { "TRCIDR4", 1062 },
5857
0
    { "TRCIDR5", 1063 },
5858
0
    { "TRCIDR6", 1064 },
5859
0
    { "TRCIDR7", 1065 },
5860
0
    { "TRCIDR8", 1066 },
5861
0
    { "TRCIDR9", 1067 },
5862
0
    { "TRCIMSPEC0", 1068 },
5863
0
    { "TRCIMSPEC1", 1069 },
5864
0
    { "TRCIMSPEC2", 1070 },
5865
0
    { "TRCIMSPEC3", 1071 },
5866
0
    { "TRCIMSPEC4", 1072 },
5867
0
    { "TRCIMSPEC5", 1073 },
5868
0
    { "TRCIMSPEC6", 1074 },
5869
0
    { "TRCIMSPEC7", 1075 },
5870
0
    { "TRCITCTRL", 1076 },
5871
0
    { "TRCITECR_EL1", 1077 },
5872
0
    { "TRCITECR_EL12", 1078 },
5873
0
    { "TRCITECR_EL2", 1079 },
5874
0
    { "TRCITEEDCR", 1080 },
5875
0
    { "TRCLAR", 1081 },
5876
0
    { "TRCLSR", 1082 },
5877
0
    { "TRCOSLAR", 1083 },
5878
0
    { "TRCOSLSR", 1084 },
5879
0
    { "TRCPDCR", 1085 },
5880
0
    { "TRCPDSR", 1086 },
5881
0
    { "TRCPIDR0", 1087 },
5882
0
    { "TRCPIDR1", 1088 },
5883
0
    { "TRCPIDR2", 1089 },
5884
0
    { "TRCPIDR3", 1090 },
5885
0
    { "TRCPIDR4", 1091 },
5886
0
    { "TRCPIDR5", 1092 },
5887
0
    { "TRCPIDR6", 1093 },
5888
0
    { "TRCPIDR7", 1094 },
5889
0
    { "TRCPRGCTLR", 1095 },
5890
0
    { "TRCPROCSELR", 1096 },
5891
0
    { "TRCQCTLR", 1097 },
5892
0
    { "TRCRSCTLR10", 1098 },
5893
0
    { "TRCRSCTLR11", 1099 },
5894
0
    { "TRCRSCTLR12", 1100 },
5895
0
    { "TRCRSCTLR13", 1101 },
5896
0
    { "TRCRSCTLR14", 1102 },
5897
0
    { "TRCRSCTLR15", 1103 },
5898
0
    { "TRCRSCTLR16", 1104 },
5899
0
    { "TRCRSCTLR17", 1105 },
5900
0
    { "TRCRSCTLR18", 1106 },
5901
0
    { "TRCRSCTLR19", 1107 },
5902
0
    { "TRCRSCTLR2", 1108 },
5903
0
    { "TRCRSCTLR20", 1109 },
5904
0
    { "TRCRSCTLR21", 1110 },
5905
0
    { "TRCRSCTLR22", 1111 },
5906
0
    { "TRCRSCTLR23", 1112 },
5907
0
    { "TRCRSCTLR24", 1113 },
5908
0
    { "TRCRSCTLR25", 1114 },
5909
0
    { "TRCRSCTLR26", 1115 },
5910
0
    { "TRCRSCTLR27", 1116 },
5911
0
    { "TRCRSCTLR28", 1117 },
5912
0
    { "TRCRSCTLR29", 1118 },
5913
0
    { "TRCRSCTLR3", 1119 },
5914
0
    { "TRCRSCTLR30", 1120 },
5915
0
    { "TRCRSCTLR31", 1121 },
5916
0
    { "TRCRSCTLR4", 1122 },
5917
0
    { "TRCRSCTLR5", 1123 },
5918
0
    { "TRCRSCTLR6", 1124 },
5919
0
    { "TRCRSCTLR7", 1125 },
5920
0
    { "TRCRSCTLR8", 1126 },
5921
0
    { "TRCRSCTLR9", 1127 },
5922
0
    { "TRCRSR", 1128 },
5923
0
    { "TRCSEQEVR0", 1129 },
5924
0
    { "TRCSEQEVR1", 1130 },
5925
0
    { "TRCSEQEVR2", 1131 },
5926
0
    { "TRCSEQRSTEVR", 1132 },
5927
0
    { "TRCSEQSTR", 1133 },
5928
0
    { "TRCSSCCR0", 1134 },
5929
0
    { "TRCSSCCR1", 1135 },
5930
0
    { "TRCSSCCR2", 1136 },
5931
0
    { "TRCSSCCR3", 1137 },
5932
0
    { "TRCSSCCR4", 1138 },
5933
0
    { "TRCSSCCR5", 1139 },
5934
0
    { "TRCSSCCR6", 1140 },
5935
0
    { "TRCSSCCR7", 1141 },
5936
0
    { "TRCSSCSR0", 1142 },
5937
0
    { "TRCSSCSR1", 1143 },
5938
0
    { "TRCSSCSR2", 1144 },
5939
0
    { "TRCSSCSR3", 1145 },
5940
0
    { "TRCSSCSR4", 1146 },
5941
0
    { "TRCSSCSR5", 1147 },
5942
0
    { "TRCSSCSR6", 1148 },
5943
0
    { "TRCSSCSR7", 1149 },
5944
0
    { "TRCSSPCICR0", 1150 },
5945
0
    { "TRCSSPCICR1", 1151 },
5946
0
    { "TRCSSPCICR2", 1152 },
5947
0
    { "TRCSSPCICR3", 1153 },
5948
0
    { "TRCSSPCICR4", 1154 },
5949
0
    { "TRCSSPCICR5", 1155 },
5950
0
    { "TRCSSPCICR6", 1156 },
5951
0
    { "TRCSSPCICR7", 1157 },
5952
0
    { "TRCSTALLCTLR", 1158 },
5953
0
    { "TRCSTATR", 1159 },
5954
0
    { "TRCSYNCPR", 1160 },
5955
0
    { "TRCTRACEIDR", 1161 },
5956
0
    { "TRCTSCTLR", 1162 },
5957
0
    { "TRCVDARCCTLR", 1163 },
5958
0
    { "TRCVDCTLR", 1164 },
5959
0
    { "TRCVDSACCTLR", 1165 },
5960
0
    { "TRCVICTLR", 1166 },
5961
0
    { "TRCVIIECTLR", 1167 },
5962
0
    { "TRCVIPCSSCTLR", 1168 },
5963
0
    { "TRCVISSCTLR", 1169 },
5964
0
    { "TRCVMIDCCTLR0", 1170 },
5965
0
    { "TRCVMIDCCTLR1", 1171 },
5966
0
    { "TRCVMIDCVR0", 1172 },
5967
0
    { "TRCVMIDCVR1", 1173 },
5968
0
    { "TRCVMIDCVR2", 1174 },
5969
0
    { "TRCVMIDCVR3", 1175 },
5970
0
    { "TRCVMIDCVR4", 1176 },
5971
0
    { "TRCVMIDCVR5", 1177 },
5972
0
    { "TRCVMIDCVR6", 1178 },
5973
0
    { "TRCVMIDCVR7", 1179 },
5974
0
    { "TRFCR_EL1", 1180 },
5975
0
    { "TRFCR_EL12", 1181 },
5976
0
    { "TRFCR_EL2", 1182 },
5977
0
    { "TTBR0_EL1", 1183 },
5978
0
    { "TTBR0_EL12", 1184 },
5979
0
    { "TTBR0_EL2", 1185 },
5980
0
    { "TTBR0_EL3", 1186 },
5981
0
    { "TTBR1_EL1", 1187 },
5982
0
    { "TTBR1_EL12", 1188 },
5983
0
    { "TTBR1_EL2", 1189 },
5984
0
    { "UAO", 1190 },
5985
0
    { "VBAR_EL1", 1191 },
5986
0
    { "VBAR_EL12", 1192 },
5987
0
    { "VBAR_EL2", 1193 },
5988
0
    { "VBAR_EL3", 1194 },
5989
0
    { "VDISR_EL2", 1195 },
5990
0
    { "VDISR_EL3", 1196 },
5991
0
    { "VMECID_A_EL2", 1197 },
5992
0
    { "VMECID_P_EL2", 1198 },
5993
0
    { "VMPIDR_EL2", 1199 },
5994
0
    { "VNCR_EL2", 1200 },
5995
0
    { "VPIDR_EL2", 1201 },
5996
0
    { "VSCTLR_EL2", 1202 },
5997
0
    { "VSESR_EL2", 1203 },
5998
0
    { "VSESR_EL3", 1204 },
5999
0
    { "VSTCR_EL2", 1205 },
6000
0
    { "VSTTBR_EL2", 1206 },
6001
0
    { "VTCR_EL2", 1207 },
6002
0
    { "VTTBR_EL2", 1208 },
6003
0
    { "ZCR_EL1", 1209 },
6004
0
    { "ZCR_EL12", 1210 },
6005
0
    { "ZCR_EL2", 1211 },
6006
0
    { "ZCR_EL3", 1212 },
6007
0
  };
6008
6009
0
  struct KeyType {
6010
0
    std::string Name;
6011
0
  };
6012
0
  KeyType Key = {Name.upper()};
6013
0
  auto Table = ArrayRef(Index);
6014
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
6015
0
    [](const IndexType &LHS, const KeyType &RHS) {
6016
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
6017
0
      if (CmpName < 0) return true;
6018
0
      if (CmpName > 0) return false;
6019
0
      return false;
6020
0
    });
6021
6022
0
  if (Idx == Table.end() ||
6023
0
      Key.Name != Idx->Name)
6024
0
    return nullptr;
6025
0
  return &SysRegsList[Idx->_index];
6026
0
}
6027
6028
0
const SysReg *lookupSysRegByEncoding(uint16_t Encoding) {
6029
0
  struct IndexType {
6030
0
    uint16_t Encoding;
6031
0
    unsigned _index;
6032
0
  };
6033
0
  static const struct IndexType Index[] = {
6034
0
    { 0x8002, 572 },
6035
0
    { 0x8004, 291 },
6036
0
    { 0x8005, 275 },
6037
0
    { 0x8006, 330 },
6038
0
    { 0x8007, 314 },
6039
0
    { 0x800C, 298 },
6040
0
    { 0x800D, 282 },
6041
0
    { 0x800E, 337 },
6042
0
    { 0x800F, 321 },
6043
0
    { 0x8010, 531 },
6044
0
    { 0x8012, 536 },
6045
0
    { 0x8014, 299 },
6046
0
    { 0x8015, 283 },
6047
0
    { 0x8016, 338 },
6048
0
    { 0x8017, 322 },
6049
0
    { 0x801A, 573 },
6050
0
    { 0x801C, 300 },
6051
0
    { 0x801D, 284 },
6052
0
    { 0x801E, 339 },
6053
0
    { 0x801F, 323 },
6054
0
    { 0x8022, 537 },
6055
0
    { 0x8024, 301 },
6056
0
    { 0x8025, 285 },
6057
0
    { 0x8026, 340 },
6058
0
    { 0x8027, 324 },
6059
0
    { 0x802A, 538 },
6060
0
    { 0x802C, 302 },
6061
0
    { 0x802D, 286 },
6062
0
    { 0x802E, 341 },
6063
0
    { 0x802F, 325 },
6064
0
    { 0x8032, 574 },
6065
0
    { 0x8034, 303 },
6066
0
    { 0x8035, 287 },
6067
0
    { 0x8036, 342 },
6068
0
    { 0x8037, 326 },
6069
0
    { 0x803C, 304 },
6070
0
    { 0x803D, 288 },
6071
0
    { 0x803E, 343 },
6072
0
    { 0x803F, 327 },
6073
0
    { 0x8044, 305 },
6074
0
    { 0x8045, 289 },
6075
0
    { 0x8046, 344 },
6076
0
    { 0x8047, 328 },
6077
0
    { 0x804C, 306 },
6078
0
    { 0x804D, 290 },
6079
0
    { 0x804E, 345 },
6080
0
    { 0x804F, 329 },
6081
0
    { 0x8054, 292 },
6082
0
    { 0x8055, 276 },
6083
0
    { 0x8056, 331 },
6084
0
    { 0x8057, 315 },
6085
0
    { 0x805C, 293 },
6086
0
    { 0x805D, 277 },
6087
0
    { 0x805E, 332 },
6088
0
    { 0x805F, 316 },
6089
0
    { 0x8064, 294 },
6090
0
    { 0x8065, 278 },
6091
0
    { 0x8066, 333 },
6092
0
    { 0x8067, 317 },
6093
0
    { 0x806C, 295 },
6094
0
    { 0x806D, 279 },
6095
0
    { 0x806E, 334 },
6096
0
    { 0x806F, 318 },
6097
0
    { 0x8074, 296 },
6098
0
    { 0x8075, 280 },
6099
0
    { 0x8076, 335 },
6100
0
    { 0x8077, 319 },
6101
0
    { 0x807C, 297 },
6102
0
    { 0x807D, 281 },
6103
0
    { 0x807E, 336 },
6104
0
    { 0x807F, 320 },
6105
0
    { 0x8080, 535 },
6106
0
    { 0x8084, 575 },
6107
0
    { 0x808C, 576 },
6108
0
    { 0x809C, 571 },
6109
0
    { 0x80A4, 312 },
6110
0
    { 0x83C6, 308 },
6111
0
    { 0x83CE, 307 },
6112
0
    { 0x83F6, 274 },
6113
0
    { 0x84E8, 839 },
6114
0
    { 0x84E9, 840 },
6115
0
    { 0x84EB, 834 },
6116
0
    { 0x84EC, 910 },
6117
0
    { 0x84ED, 845 },
6118
0
    { 0x84EE, 844 },
6119
0
    { 0x84EF, 838 },
6120
0
    { 0x84F1, 912 },
6121
0
    { 0x84F2, 911 },
6122
0
    { 0x8740, 634 },
6123
0
    { 0x8741, 645 },
6124
0
    { 0x8742, 656 },
6125
0
    { 0x8743, 658 },
6126
0
    { 0x8744, 659 },
6127
0
    { 0x8745, 660 },
6128
0
    { 0x8746, 661 },
6129
0
    { 0x8747, 662 },
6130
0
    { 0x8748, 663 },
6131
0
    { 0x8749, 664 },
6132
0
    { 0x874A, 635 },
6133
0
    { 0x874B, 636 },
6134
0
    { 0x874C, 637 },
6135
0
    { 0x874D, 638 },
6136
0
    { 0x874E, 639 },
6137
0
    { 0x874F, 640 },
6138
0
    { 0x8750, 641 },
6139
0
    { 0x8751, 642 },
6140
0
    { 0x8752, 643 },
6141
0
    { 0x8753, 644 },
6142
0
    { 0x8754, 646 },
6143
0
    { 0x8755, 647 },
6144
0
    { 0x8756, 648 },
6145
0
    { 0x8757, 649 },
6146
0
    { 0x8758, 650 },
6147
0
    { 0x8759, 651 },
6148
0
    { 0x875A, 652 },
6149
0
    { 0x875B, 653 },
6150
0
    { 0x875C, 654 },
6151
0
    { 0x875D, 655 },
6152
0
    { 0x875E, 657 },
6153
0
    { 0x875F, 596 },
6154
0
    { 0x8760, 699 },
6155
0
    { 0x8801, 1161 },
6156
0
    { 0x8802, 1166 },
6157
0
    { 0x8804, 1129 },
6158
0
    { 0x8805, 1017 },
6159
0
    { 0x8806, 1066 },
6160
0
    { 0x8807, 1068 },
6161
0
    { 0x8808, 1095 },
6162
0
    { 0x8809, 1097 },
6163
0
    { 0x880A, 1167 },
6164
0
    { 0x880C, 1130 },
6165
0
    { 0x880D, 1018 },
6166
0
    { 0x880E, 1067 },
6167
0
    { 0x880F, 1069 },
6168
0
    { 0x8810, 1096 },
6169
0
    { 0x8811, 1080 },
6170
0
    { 0x8812, 1169 },
6171
0
    { 0x8814, 1131 },
6172
0
    { 0x8815, 1019 },
6173
0
    { 0x8816, 1056 },
6174
0
    { 0x8817, 1070 },
6175
0
    { 0x8818, 1159 },
6176
0
    { 0x881A, 1168 },
6177
0
    { 0x881D, 1020 },
6178
0
    { 0x881E, 1057 },
6179
0
    { 0x881F, 1071 },
6180
0
    { 0x8820, 1025 },
6181
0
    { 0x8825, 1013 },
6182
0
    { 0x8826, 1058 },
6183
0
    { 0x8827, 1072 },
6184
0
    { 0x882D, 1014 },
6185
0
    { 0x882E, 1059 },
6186
0
    { 0x882F, 1073 },
6187
0
    { 0x8830, 994 },
6188
0
    { 0x8834, 1132 },
6189
0
    { 0x8835, 1015 },
6190
0
    { 0x8837, 1074 },
6191
0
    { 0x883C, 1133 },
6192
0
    { 0x883D, 1016 },
6193
0
    { 0x883F, 1075 },
6194
0
    { 0x8840, 1047 },
6195
0
    { 0x8842, 1164 },
6196
0
    { 0x8844, 1049 },
6197
0
    { 0x8844, 1050 },
6198
0
    { 0x8845, 1021 },
6199
0
    { 0x8847, 1054 },
6200
0
    { 0x8848, 1048 },
6201
0
    { 0x884A, 1165 },
6202
0
    { 0x884C, 1051 },
6203
0
    { 0x884D, 1022 },
6204
0
    { 0x884F, 1055 },
6205
0
    { 0x8850, 1128 },
6206
0
    { 0x8852, 1163 },
6207
0
    { 0x8854, 1052 },
6208
0
    { 0x8855, 1023 },
6209
0
    { 0x8857, 1060 },
6210
0
    { 0x8858, 1158 },
6211
0
    { 0x885C, 1053 },
6212
0
    { 0x885D, 1024 },
6213
0
    { 0x885F, 1061 },
6214
0
    { 0x8860, 1162 },
6215
0
    { 0x8867, 1062 },
6216
0
    { 0x8868, 1160 },
6217
0
    { 0x886F, 1063 },
6218
0
    { 0x8870, 996 },
6219
0
    { 0x8877, 1064 },
6220
0
    { 0x8878, 995 },
6221
0
    { 0x887F, 1065 },
6222
0
    { 0x8881, 1104 },
6223
0
    { 0x8882, 1134 },
6224
0
    { 0x8883, 1150 },
6225
0
    { 0x8884, 1083 },
6226
0
    { 0x8889, 1105 },
6227
0
    { 0x888A, 1135 },
6228
0
    { 0x888B, 1151 },
6229
0
    { 0x888C, 1084 },
6230
0
    { 0x8890, 1108 },
6231
0
    { 0x8891, 1106 },
6232
0
    { 0x8892, 1136 },
6233
0
    { 0x8893, 1152 },
6234
0
    { 0x8898, 1119 },
6235
0
    { 0x8899, 1107 },
6236
0
    { 0x889A, 1137 },
6237
0
    { 0x889B, 1153 },
6238
0
    { 0x88A0, 1122 },
6239
0
    { 0x88A1, 1109 },
6240
0
    { 0x88A2, 1138 },
6241
0
    { 0x88A3, 1154 },
6242
0
    { 0x88A4, 1085 },
6243
0
    { 0x88A8, 1123 },
6244
0
    { 0x88A9, 1110 },
6245
0
    { 0x88AA, 1139 },
6246
0
    { 0x88AB, 1155 },
6247
0
    { 0x88AC, 1086 },
6248
0
    { 0x88B0, 1124 },
6249
0
    { 0x88B1, 1111 },
6250
0
    { 0x88B2, 1140 },
6251
0
    { 0x88B3, 1156 },
6252
0
    { 0x88B8, 1125 },
6253
0
    { 0x88B9, 1112 },
6254
0
    { 0x88BA, 1141 },
6255
0
    { 0x88BB, 1157 },
6256
0
    { 0x88C0, 1126 },
6257
0
    { 0x88C1, 1113 },
6258
0
    { 0x88C2, 1142 },
6259
0
    { 0x88C8, 1127 },
6260
0
    { 0x88C9, 1114 },
6261
0
    { 0x88CA, 1143 },
6262
0
    { 0x88D0, 1098 },
6263
0
    { 0x88D1, 1115 },
6264
0
    { 0x88D2, 1144 },
6265
0
    { 0x88D8, 1099 },
6266
0
    { 0x88D9, 1116 },
6267
0
    { 0x88DA, 1145 },
6268
0
    { 0x88E0, 1100 },
6269
0
    { 0x88E1, 1117 },
6270
0
    { 0x88E2, 1146 },
6271
0
    { 0x88E8, 1101 },
6272
0
    { 0x88E9, 1118 },
6273
0
    { 0x88EA, 1147 },
6274
0
    { 0x88F0, 1102 },
6275
0
    { 0x88F1, 1120 },
6276
0
    { 0x88F2, 1148 },
6277
0
    { 0x88F8, 1103 },
6278
0
    { 0x88F9, 1121 },
6279
0
    { 0x88FA, 1149 },
6280
0
    { 0x8900, 977 },
6281
0
    { 0x8901, 991 },
6282
0
    { 0x8902, 961 },
6283
0
    { 0x8903, 975 },
6284
0
    { 0x8904, 1039 },
6285
0
    { 0x8905, 1043 },
6286
0
    { 0x8906, 1031 },
6287
0
    { 0x8907, 1035 },
6288
0
    { 0x8910, 978 },
6289
0
    { 0x8911, 992 },
6290
0
    { 0x8912, 962 },
6291
0
    { 0x8913, 976 },
6292
0
    { 0x8920, 985 },
6293
0
    { 0x8921, 979 },
6294
0
    { 0x8922, 969 },
6295
0
    { 0x8923, 963 },
6296
0
    { 0x8924, 1040 },
6297
0
    { 0x8925, 1044 },
6298
0
    { 0x8926, 1032 },
6299
0
    { 0x8927, 1036 },
6300
0
    { 0x8930, 986 },
6301
0
    { 0x8931, 980 },
6302
0
    { 0x8932, 970 },
6303
0
    { 0x8933, 964 },
6304
0
    { 0x8940, 987 },
6305
0
    { 0x8941, 981 },
6306
0
    { 0x8942, 971 },
6307
0
    { 0x8943, 965 },
6308
0
    { 0x8944, 1041 },
6309
0
    { 0x8945, 1045 },
6310
0
    { 0x8946, 1033 },
6311
0
    { 0x8947, 1037 },
6312
0
    { 0x8950, 988 },
6313
0
    { 0x8951, 982 },
6314
0
    { 0x8952, 972 },
6315
0
    { 0x8953, 966 },
6316
0
    { 0x8960, 989 },
6317
0
    { 0x8961, 983 },
6318
0
    { 0x8962, 973 },
6319
0
    { 0x8963, 967 },
6320
0
    { 0x8964, 1042 },
6321
0
    { 0x8965, 1046 },
6322
0
    { 0x8966, 1034 },
6323
0
    { 0x8967, 1038 },
6324
0
    { 0x8970, 990 },
6325
0
    { 0x8971, 984 },
6326
0
    { 0x8972, 974 },
6327
0
    { 0x8973, 968 },
6328
0
    { 0x8980, 999 },
6329
0
    { 0x8981, 1172 },
6330
0
    { 0x8982, 997 },
6331
0
    { 0x898A, 998 },
6332
0
    { 0x8990, 1000 },
6333
0
    { 0x8991, 1173 },
6334
0
    { 0x8992, 1170 },
6335
0
    { 0x899A, 1171 },
6336
0
    { 0x89A0, 1001 },
6337
0
    { 0x89A1, 1174 },
6338
0
    { 0x89B0, 1002 },
6339
0
    { 0x89B1, 1175 },
6340
0
    { 0x89C0, 1003 },
6341
0
    { 0x89C1, 1176 },
6342
0
    { 0x89D0, 1004 },
6343
0
    { 0x89D1, 1177 },
6344
0
    { 0x89E0, 1005 },
6345
0
    { 0x89E1, 1178 },
6346
0
    { 0x89F0, 1006 },
6347
0
    { 0x89F1, 1179 },
6348
0
    { 0x8B84, 1076 },
6349
0
    { 0x8B97, 1029 },
6350
0
    { 0x8B9F, 1030 },
6351
0
    { 0x8BA7, 1091 },
6352
0
    { 0x8BAF, 1092 },
6353
0
    { 0x8BB7, 1093 },
6354
0
    { 0x8BBF, 1094 },
6355
0
    { 0x8BC6, 1012 },
6356
0
    { 0x8BC7, 1087 },
6357
0
    { 0x8BCE, 1011 },
6358
0
    { 0x8BCF, 1088 },
6359
0
    { 0x8BD6, 1026 },
6360
0
    { 0x8BD7, 1089 },
6361
0
    { 0x8BDE, 1027 },
6362
0
    { 0x8BDF, 1090 },
6363
0
    { 0x8BE6, 1081 },
6364
0
    { 0x8BE7, 1007 },
6365
0
    { 0x8BEE, 1082 },
6366
0
    { 0x8BEF, 1008 },
6367
0
    { 0x8BF6, 993 },
6368
0
    { 0x8BF7, 1009 },
6369
0
    { 0x8BFE, 1028 },
6370
0
    { 0x8BFF, 1010 },
6371
0
    { 0x8C00, 118 },
6372
0
    { 0x8C01, 151 },
6373
0
    { 0x8C02, 184 },
6374
0
    { 0x8C04, 125 },
6375
0
    { 0x8C05, 158 },
6376
0
    { 0x8C06, 191 },
6377
0
    { 0x8C08, 129 },
6378
0
    { 0x8C09, 162 },
6379
0
    { 0x8C0A, 195 },
6380
0
    { 0x8C0C, 126 },
6381
0
    { 0x8C0D, 159 },
6382
0
    { 0x8C0E, 192 },
6383
0
    { 0x8C10, 140 },
6384
0
    { 0x8C11, 173 },
6385
0
    { 0x8C12, 206 },
6386
0
    { 0x8C14, 127 },
6387
0
    { 0x8C15, 160 },
6388
0
    { 0x8C16, 193 },
6389
0
    { 0x8C18, 143 },
6390
0
    { 0x8C19, 176 },
6391
0
    { 0x8C1A, 209 },
6392
0
    { 0x8C1C, 128 },
6393
0
    { 0x8C1D, 161 },
6394
0
    { 0x8C1E, 194 },
6395
0
    { 0x8C20, 144 },
6396
0
    { 0x8C21, 177 },
6397
0
    { 0x8C22, 210 },
6398
0
    { 0x8C24, 130 },
6399
0
    { 0x8C25, 163 },
6400
0
    { 0x8C26, 196 },
6401
0
    { 0x8C28, 145 },
6402
0
    { 0x8C29, 178 },
6403
0
    { 0x8C2A, 211 },
6404
0
    { 0x8C2C, 131 },
6405
0
    { 0x8C2D, 164 },
6406
0
    { 0x8C2E, 197 },
6407
0
    { 0x8C30, 146 },
6408
0
    { 0x8C31, 179 },
6409
0
    { 0x8C32, 212 },
6410
0
    { 0x8C34, 132 },
6411
0
    { 0x8C35, 165 },
6412
0
    { 0x8C36, 198 },
6413
0
    { 0x8C38, 147 },
6414
0
    { 0x8C39, 180 },
6415
0
    { 0x8C3A, 213 },
6416
0
    { 0x8C3C, 133 },
6417
0
    { 0x8C3D, 166 },
6418
0
    { 0x8C3E, 199 },
6419
0
    { 0x8C40, 148 },
6420
0
    { 0x8C41, 181 },
6421
0
    { 0x8C42, 214 },
6422
0
    { 0x8C44, 134 },
6423
0
    { 0x8C45, 167 },
6424
0
    { 0x8C46, 200 },
6425
0
    { 0x8C48, 149 },
6426
0
    { 0x8C49, 182 },
6427
0
    { 0x8C4A, 215 },
6428
0
    { 0x8C4C, 135 },
6429
0
    { 0x8C4D, 168 },
6430
0
    { 0x8C4E, 201 },
6431
0
    { 0x8C50, 119 },
6432
0
    { 0x8C51, 152 },
6433
0
    { 0x8C52, 185 },
6434
0
    { 0x8C54, 136 },
6435
0
    { 0x8C55, 169 },
6436
0
    { 0x8C56, 202 },
6437
0
    { 0x8C58, 120 },
6438
0
    { 0x8C59, 153 },
6439
0
    { 0x8C5A, 186 },
6440
0
    { 0x8C5C, 137 },
6441
0
    { 0x8C5D, 170 },
6442
0
    { 0x8C5E, 203 },
6443
0
    { 0x8C60, 121 },
6444
0
    { 0x8C61, 154 },
6445
0
    { 0x8C62, 187 },
6446
0
    { 0x8C64, 138 },
6447
0
    { 0x8C65, 171 },
6448
0
    { 0x8C66, 204 },
6449
0
    { 0x8C68, 122 },
6450
0
    { 0x8C69, 155 },
6451
0
    { 0x8C6A, 188 },
6452
0
    { 0x8C6C, 139 },
6453
0
    { 0x8C6D, 172 },
6454
0
    { 0x8C6E, 205 },
6455
0
    { 0x8C70, 123 },
6456
0
    { 0x8C71, 156 },
6457
0
    { 0x8C72, 189 },
6458
0
    { 0x8C74, 141 },
6459
0
    { 0x8C75, 174 },
6460
0
    { 0x8C76, 207 },
6461
0
    { 0x8C78, 124 },
6462
0
    { 0x8C79, 157 },
6463
0
    { 0x8C7A, 190 },
6464
0
    { 0x8C7C, 142 },
6465
0
    { 0x8C7D, 175 },
6466
0
    { 0x8C7E, 208 },
6467
0
    { 0x8C80, 113 },
6468
0
    { 0x8C81, 116 },
6469
0
    { 0x8C82, 217 },
6470
0
    { 0x8C88, 150 },
6471
0
    { 0x8C89, 183 },
6472
0
    { 0x8C8A, 216 },
6473
0
    { 0x8C90, 117 },
6474
0
    { 0x9000, 941 },
6475
0
    { 0x9080, 942 },
6476
0
    { 0x9808, 532 },
6477
0
    { 0x9820, 311 },
6478
0
    { 0x9828, 309 },
6479
0
    { 0x9828, 310 },
6480
0
    { 0x9CE0, 843 },
6481
0
    { 0x9CE1, 842 },
6482
0
    { 0x9CE2, 841 },
6483
0
    { 0x9CE3, 913 },
6484
0
    { 0x9CE4, 918 },
6485
0
    { 0x9CE5, 917 },
6486
0
    { 0x9CF3, 914 },
6487
0
    { 0x9F00, 846 },
6488
0
    { 0x9F01, 853 },
6489
0
    { 0x9F02, 854 },
6490
0
    { 0x9F03, 855 },
6491
0
    { 0x9F04, 856 },
6492
0
    { 0x9F05, 857 },
6493
0
    { 0x9F06, 858 },
6494
0
    { 0x9F07, 859 },
6495
0
    { 0x9F08, 860 },
6496
0
    { 0x9F09, 861 },
6497
0
    { 0x9F0A, 847 },
6498
0
    { 0x9F0B, 848 },
6499
0
    { 0x9F0C, 849 },
6500
0
    { 0x9F0D, 850 },
6501
0
    { 0x9F0E, 851 },
6502
0
    { 0x9F0F, 852 },
6503
0
    { 0x9F10, 894 },
6504
0
    { 0x9F11, 901 },
6505
0
    { 0x9F12, 902 },
6506
0
    { 0x9F13, 903 },
6507
0
    { 0x9F14, 904 },
6508
0
    { 0x9F15, 905 },
6509
0
    { 0x9F16, 906 },
6510
0
    { 0x9F17, 907 },
6511
0
    { 0x9F18, 908 },
6512
0
    { 0x9F19, 909 },
6513
0
    { 0x9F1A, 895 },
6514
0
    { 0x9F1B, 896 },
6515
0
    { 0x9F1C, 897 },
6516
0
    { 0x9F1D, 898 },
6517
0
    { 0x9F1E, 899 },
6518
0
    { 0x9F1F, 900 },
6519
0
    { 0x9F20, 878 },
6520
0
    { 0x9F21, 885 },
6521
0
    { 0x9F22, 886 },
6522
0
    { 0x9F23, 887 },
6523
0
    { 0x9F24, 888 },
6524
0
    { 0x9F25, 889 },
6525
0
    { 0x9F26, 890 },
6526
0
    { 0x9F27, 891 },
6527
0
    { 0x9F28, 892 },
6528
0
    { 0x9F29, 893 },
6529
0
    { 0x9F2A, 879 },
6530
0
    { 0x9F2B, 880 },
6531
0
    { 0x9F2C, 881 },
6532
0
    { 0x9F2D, 882 },
6533
0
    { 0x9F2E, 883 },
6534
0
    { 0x9F2F, 884 },
6535
0
    { 0x9F30, 862 },
6536
0
    { 0x9F31, 869 },
6537
0
    { 0x9F32, 870 },
6538
0
    { 0x9F33, 871 },
6539
0
    { 0x9F34, 872 },
6540
0
    { 0x9F35, 873 },
6541
0
    { 0x9F36, 874 },
6542
0
    { 0x9F37, 875 },
6543
0
    { 0x9F38, 876 },
6544
0
    { 0x9F39, 877 },
6545
0
    { 0x9F3A, 863 },
6546
0
    { 0x9F3B, 864 },
6547
0
    { 0x9F3C, 865 },
6548
0
    { 0x9F3D, 866 },
6549
0
    { 0x9F3E, 867 },
6550
0
    { 0x9F3F, 868 },
6551
0
    { 0xA038, 313 },
6552
0
    { 0xA480, 115 },
6553
0
    { 0xA4EB, 836 },
6554
0
    { 0xAC80, 114 },
6555
0
    { 0xACEB, 835 },
6556
0
    { 0xB4EB, 837 },
6557
0
    { 0xB4F7, 915 },
6558
0
    { 0xBCF7, 916 },
6559
0
    { 0xC000, 546 },
6560
0
    { 0xC004, 565 },
6561
0
    { 0xC005, 564 },
6562
0
    { 0xC006, 799 },
6563
0
    { 0xC008, 513 },
6564
0
    { 0xC009, 514 },
6565
0
    { 0xC00A, 498 },
6566
0
    { 0xC00B, 497 },
6567
0
    { 0xC00C, 507 },
6568
0
    { 0xC00D, 508 },
6569
0
    { 0xC00E, 509 },
6570
0
    { 0xC00F, 510 },
6571
0
    { 0xC010, 500 },
6572
0
    { 0xC011, 501 },
6573
0
    { 0xC012, 502 },
6574
0
    { 0xC013, 503 },
6575
0
    { 0xC014, 504 },
6576
0
    { 0xC015, 505 },
6577
0
    { 0xC016, 511 },
6578
0
    { 0xC017, 506 },
6579
0
    { 0xC018, 567 },
6580
0
    { 0xC019, 568 },
6581
0
    { 0xC01A, 569 },
6582
0
    { 0xC01C, 515 },
6583
0
    { 0xC01D, 499 },
6584
0
    { 0xC01E, 512 },
6585
0
    { 0xC020, 492 },
6586
0
    { 0xC021, 493 },
6587
0
    { 0xC022, 494 },
6588
0
    { 0xC024, 496 },
6589
0
    { 0xC025, 495 },
6590
0
    { 0xC027, 482 },
6591
0
    { 0xC028, 479 },
6592
0
    { 0xC029, 480 },
6593
0
    { 0xC02A, 481 },
6594
0
    { 0xC02C, 477 },
6595
0
    { 0xC02D, 478 },
6596
0
    { 0xC030, 483 },
6597
0
    { 0xC031, 484 },
6598
0
    { 0xC032, 485 },
6599
0
    { 0xC033, 486 },
6600
0
    { 0xC038, 487 },
6601
0
    { 0xC039, 488 },
6602
0
    { 0xC03A, 489 },
6603
0
    { 0xC03B, 490 },
6604
0
    { 0xC03C, 491 },
6605
0
    { 0xC080, 816 },
6606
0
    { 0xC081, 1 },
6607
0
    { 0xC082, 264 },
6608
0
    { 0xC083, 812 },
6609
0
    { 0xC085, 800 },
6610
0
    { 0xC086, 382 },
6611
0
    { 0xC090, 1209 },
6612
0
    { 0xC091, 1180 },
6613
0
    { 0xC093, 1077 },
6614
0
    { 0xC094, 833 },
6615
0
    { 0xC096, 827 },
6616
0
    { 0xC100, 1183 },
6617
0
    { 0xC101, 1187 },
6618
0
    { 0xC102, 937 },
6619
0
    { 0xC103, 934 },
6620
0
    { 0xC108, 110 },
6621
0
    { 0xC109, 109 },
6622
0
    { 0xC10A, 112 },
6623
0
    { 0xC10B, 111 },
6624
0
    { 0xC110, 104 },
6625
0
    { 0xC111, 103 },
6626
0
    { 0xC112, 106 },
6627
0
    { 0xC113, 105 },
6628
0
    { 0xC118, 108 },
6629
0
    { 0xC119, 107 },
6630
0
    { 0xC128, 384 },
6631
0
    { 0xC129, 389 },
6632
0
    { 0xC12A, 383 },
6633
0
    { 0xC200, 921 },
6634
0
    { 0xC201, 351 },
6635
0
    { 0xC208, 928 },
6636
0
    { 0xC210, 919 },
6637
0
    { 0xC212, 271 },
6638
0
    { 0xC213, 577 },
6639
0
    { 0xC214, 1190 },
6640
0
    { 0xC218, 13 },
6641
0
    { 0xC219, 589 },
6642
0
    { 0xC230, 440 },
6643
0
    { 0xC288, 4 },
6644
0
    { 0xC289, 8 },
6645
0
    { 0xC290, 369 },
6646
0
    { 0xC298, 355 },
6647
0
    { 0xC299, 356 },
6648
0
    { 0xC29A, 360 },
6649
0
    { 0xC2A0, 359 },
6650
0
    { 0xC2A1, 358 },
6651
0
    { 0xC2A2, 368 },
6652
0
    { 0xC2A3, 357 },
6653
0
    { 0xC2A4, 367 },
6654
0
    { 0xC2A5, 366 },
6655
0
    { 0xC2A6, 365 },
6656
0
    { 0xC2A8, 361 },
6657
0
    { 0xC2A9, 362 },
6658
0
    { 0xC2AA, 363 },
6659
0
    { 0xC2AB, 364 },
6660
0
    { 0xC2B0, 944 },
6661
0
    { 0xC2B1, 943 },
6662
0
    { 0xC300, 373 },
6663
0
    { 0xC305, 579 },
6664
0
    { 0xC309, 761 },
6665
0
    { 0xC311, 795 },
6666
0
    { 0xC340, 759 },
6667
0
    { 0xC341, 793 },
6668
0
    { 0xC344, 741 },
6669
0
    { 0xC345, 775 },
6670
0
    { 0xC348, 743 },
6671
0
    { 0xC349, 777 },
6672
0
    { 0xC34C, 745 },
6673
0
    { 0xC34D, 779 },
6674
0
    { 0xC350, 747 },
6675
0
    { 0xC351, 781 },
6676
0
    { 0xC354, 749 },
6677
0
    { 0xC355, 783 },
6678
0
    { 0xC358, 751 },
6679
0
    { 0xC359, 785 },
6680
0
    { 0xC35C, 753 },
6681
0
    { 0xC35D, 787 },
6682
0
    { 0xC360, 755 },
6683
0
    { 0xC361, 789 },
6684
0
    { 0xC364, 757 },
6685
0
    { 0xC365, 791 },
6686
0
    { 0xC368, 729 },
6687
0
    { 0xC369, 763 },
6688
0
    { 0xC36C, 731 },
6689
0
    { 0xC36D, 765 },
6690
0
    { 0xC370, 733 },
6691
0
    { 0xC371, 767 },
6692
0
    { 0xC374, 735 },
6693
0
    { 0xC375, 769 },
6694
0
    { 0xC378, 737 },
6695
0
    { 0xC379, 771 },
6696
0
    { 0xC37C, 739 },
6697
0
    { 0xC37D, 773 },
6698
0
    { 0xC3A0, 578 },
6699
0
    { 0xC4C8, 705 },
6700
0
    { 0xC4C9, 716 },
6701
0
    { 0xC4CA, 712 },
6702
0
    { 0xC4CB, 714 },
6703
0
    { 0xC4CC, 711 },
6704
0
    { 0xC4CD, 710 },
6705
0
    { 0xC4CE, 715 },
6706
0
    { 0xC4CF, 713 },
6707
0
    { 0xC4D0, 591 },
6708
0
    { 0xC4D1, 592 },
6709
0
    { 0xC4D3, 593 },
6710
0
    { 0xC4D4, 708 },
6711
0
    { 0xC4D7, 590 },
6712
0
    { 0xC4D8, 956 },
6713
0
    { 0xC4D9, 958 },
6714
0
    { 0xC4DA, 954 },
6715
0
    { 0xC4DB, 959 },
6716
0
    { 0xC4DC, 957 },
6717
0
    { 0xC4DE, 960 },
6718
0
    { 0xC4DF, 955 },
6719
0
    { 0xC4EB, 717 },
6720
0
    { 0xC4F1, 701 },
6721
0
    { 0xC4F2, 700 },
6722
0
    { 0xC4F4, 719 },
6723
0
    { 0xC4F5, 602 },
6724
0
    { 0xC4F6, 702 },
6725
0
    { 0xC4F7, 696 },
6726
0
    { 0xC510, 527 },
6727
0
    { 0xC511, 523 },
6728
0
    { 0xC512, 582 },
6729
0
    { 0xC513, 585 },
6730
0
    { 0xC514, 725 },
6731
0
    { 0xC515, 810 },
6732
0
    { 0xC518, 18 },
6733
0
    { 0xC519, 14 },
6734
0
    { 0xC520, 522 },
6735
0
    { 0xC521, 519 },
6736
0
    { 0xC522, 521 },
6737
0
    { 0xC523, 518 },
6738
0
    { 0xC524, 553 },
6739
0
    { 0xC527, 520 },
6740
0
    { 0xC528, 548 },
6741
0
    { 0xC529, 547 },
6742
0
    { 0xC52B, 554 },
6743
0
    { 0xC600, 1191 },
6744
0
    { 0xC601, 806 },
6745
0
    { 0xC602, 801 },
6746
0
    { 0xC608, 517 },
6747
0
    { 0xC609, 347 },
6748
0
    { 0xC640, 434 },
6749
0
    { 0xC641, 430 },
6750
0
    { 0xC642, 432 },
6751
0
    { 0xC643, 425 },
6752
0
    { 0xC644, 416 },
6753
0
    { 0xC645, 417 },
6754
0
    { 0xC646, 418 },
6755
0
    { 0xC647, 419 },
6756
0
    { 0xC648, 420 },
6757
0
    { 0xC649, 421 },
6758
0
    { 0xC64A, 422 },
6759
0
    { 0xC64B, 423 },
6760
0
    { 0xC64D, 439 },
6761
0
    { 0xC659, 429 },
6762
0
    { 0xC65B, 441 },
6763
0
    { 0xC65D, 443 },
6764
0
    { 0xC65E, 424 },
6765
0
    { 0xC65F, 442 },
6766
0
    { 0xC660, 435 },
6767
0
    { 0xC661, 431 },
6768
0
    { 0xC662, 433 },
6769
0
    { 0xC663, 426 },
6770
0
    { 0xC664, 427 },
6771
0
    { 0xC665, 444 },
6772
0
    { 0xC666, 436 },
6773
0
    { 0xC667, 437 },
6774
0
    { 0xC681, 261 },
6775
0
    { 0xC683, 798 },
6776
0
    { 0xC684, 951 },
6777
0
    { 0xC685, 0 },
6778
0
    { 0xC686, 797 },
6779
0
    { 0xC687, 821 },
6780
0
    { 0xC708, 236 },
6781
0
    { 0xC800, 219 },
6782
0
    { 0xC801, 220 },
6783
0
    { 0xC802, 218 },
6784
0
    { 0xC804, 393 },
6785
0
    { 0xC806, 831 },
6786
0
    { 0xC807, 12 },
6787
0
    { 0xD000, 269 },
6788
0
    { 0xD801, 270 },
6789
0
    { 0xD807, 346 },
6790
0
    { 0xD920, 804 },
6791
0
    { 0xD921, 805 },
6792
0
    { 0xD929, 388 },
6793
0
    { 0xDA10, 570 },
6794
0
    { 0xDA11, 273 },
6795
0
    { 0xDA12, 932 },
6796
0
    { 0xDA15, 348 },
6797
0
    { 0xDA16, 931 },
6798
0
    { 0xDA17, 933 },
6799
0
    { 0xDA20, 378 },
6800
0
    { 0xDA21, 381 },
6801
0
    { 0xDA22, 380 },
6802
0
    { 0xDA28, 350 },
6803
0
    { 0xDA29, 349 },
6804
0
    { 0xDCA0, 698 },
6805
0
    { 0xDCB0, 697 },
6806
0
    { 0xDCE0, 601 },
6807
0
    { 0xDCE1, 600 },
6808
0
    { 0xDCE2, 599 },
6809
0
    { 0xDCE3, 703 },
6810
0
    { 0xDCE4, 718 },
6811
0
    { 0xDCE5, 709 },
6812
0
    { 0xDCE6, 597 },
6813
0
    { 0xDCE7, 598 },
6814
0
    { 0xDCE8, 595 },
6815
0
    { 0xDCE9, 722 },
6816
0
    { 0xDCEA, 721 },
6817
0
    { 0xDCEC, 723 },
6818
0
    { 0xDCF0, 720 },
6819
0
    { 0xDCF3, 704 },
6820
0
    { 0xDD14, 724 },
6821
0
    { 0xDE82, 950 },
6822
0
    { 0xDE83, 949 },
6823
0
    { 0xDE85, 948 },
6824
0
    { 0xDE87, 820 },
6825
0
    { 0xDE90, 29 },
6826
0
    { 0xDE91, 22 },
6827
0
    { 0xDE92, 24 },
6828
0
    { 0xDE93, 102 },
6829
0
    { 0xDE94, 25 },
6830
0
    { 0xDE95, 27 },
6831
0
    { 0xDE96, 23 },
6832
0
    { 0xDE98, 26 },
6833
0
    { 0xDE99, 28 },
6834
0
    { 0xDEA0, 30 },
6835
0
    { 0xDEA1, 31 },
6836
0
    { 0xDEA2, 32 },
6837
0
    { 0xDEA3, 33 },
6838
0
    { 0xDEB0, 82 },
6839
0
    { 0xDEB1, 83 },
6840
0
    { 0xDEB2, 84 },
6841
0
    { 0xDEB3, 85 },
6842
0
    { 0xDEE0, 34 },
6843
0
    { 0xDEE1, 41 },
6844
0
    { 0xDEE2, 42 },
6845
0
    { 0xDEE3, 43 },
6846
0
    { 0xDEE4, 44 },
6847
0
    { 0xDEE5, 45 },
6848
0
    { 0xDEE6, 46 },
6849
0
    { 0xDEE7, 47 },
6850
0
    { 0xDEE8, 48 },
6851
0
    { 0xDEE9, 49 },
6852
0
    { 0xDEEA, 35 },
6853
0
    { 0xDEEB, 36 },
6854
0
    { 0xDEEC, 37 },
6855
0
    { 0xDEED, 38 },
6856
0
    { 0xDEEE, 39 },
6857
0
    { 0xDEEF, 40 },
6858
0
    { 0xDEF0, 86 },
6859
0
    { 0xDEF1, 93 },
6860
0
    { 0xDEF2, 94 },
6861
0
    { 0xDEF3, 95 },
6862
0
    { 0xDEF4, 96 },
6863
0
    { 0xDEF5, 97 },
6864
0
    { 0xDEF6, 98 },
6865
0
    { 0xDEF7, 99 },
6866
0
    { 0xDEF8, 100 },
6867
0
    { 0xDEF9, 101 },
6868
0
    { 0xDEFA, 87 },
6869
0
    { 0xDEFB, 88 },
6870
0
    { 0xDEFC, 89 },
6871
0
    { 0xDEFD, 90 },
6872
0
    { 0xDEFE, 91 },
6873
0
    { 0xDEFF, 92 },
6874
0
    { 0xDF00, 221 },
6875
0
    { 0xDF01, 239 },
6876
0
    { 0xDF02, 252 },
6877
0
    { 0xDF05, 238 },
6878
0
    { 0xDF06, 251 },
6879
0
    { 0xDF10, 248 },
6880
0
    { 0xDF11, 244 },
6881
0
    { 0xDF12, 246 },
6882
0
    { 0xDF18, 259 },
6883
0
    { 0xDF19, 255 },
6884
0
    { 0xDF1A, 257 },
6885
0
    { 0xDF40, 603 },
6886
0
    { 0xDF41, 614 },
6887
0
    { 0xDF42, 625 },
6888
0
    { 0xDF43, 627 },
6889
0
    { 0xDF44, 628 },
6890
0
    { 0xDF45, 629 },
6891
0
    { 0xDF46, 630 },
6892
0
    { 0xDF47, 631 },
6893
0
    { 0xDF48, 632 },
6894
0
    { 0xDF49, 633 },
6895
0
    { 0xDF4A, 604 },
6896
0
    { 0xDF4B, 605 },
6897
0
    { 0xDF4C, 606 },
6898
0
    { 0xDF4D, 607 },
6899
0
    { 0xDF4E, 608 },
6900
0
    { 0xDF4F, 609 },
6901
0
    { 0xDF50, 610 },
6902
0
    { 0xDF51, 611 },
6903
0
    { 0xDF52, 612 },
6904
0
    { 0xDF53, 613 },
6905
0
    { 0xDF54, 615 },
6906
0
    { 0xDF55, 616 },
6907
0
    { 0xDF56, 617 },
6908
0
    { 0xDF57, 618 },
6909
0
    { 0xDF58, 619 },
6910
0
    { 0xDF59, 620 },
6911
0
    { 0xDF5A, 621 },
6912
0
    { 0xDF5B, 622 },
6913
0
    { 0xDF5C, 623 },
6914
0
    { 0xDF5D, 624 },
6915
0
    { 0xDF5E, 626 },
6916
0
    { 0xDF60, 665 },
6917
0
    { 0xDF61, 676 },
6918
0
    { 0xDF62, 687 },
6919
0
    { 0xDF63, 689 },
6920
0
    { 0xDF64, 690 },
6921
0
    { 0xDF65, 691 },
6922
0
    { 0xDF66, 692 },
6923
0
    { 0xDF67, 693 },
6924
0
    { 0xDF68, 694 },
6925
0
    { 0xDF69, 695 },
6926
0
    { 0xDF6A, 666 },
6927
0
    { 0xDF6B, 667 },
6928
0
    { 0xDF6C, 668 },
6929
0
    { 0xDF6D, 669 },
6930
0
    { 0xDF6E, 670 },
6931
0
    { 0xDF6F, 671 },
6932
0
    { 0xDF70, 672 },
6933
0
    { 0xDF71, 673 },
6934
0
    { 0xDF72, 674 },
6935
0
    { 0xDF73, 675 },
6936
0
    { 0xDF74, 677 },
6937
0
    { 0xDF75, 678 },
6938
0
    { 0xDF76, 679 },
6939
0
    { 0xDF77, 680 },
6940
0
    { 0xDF78, 681 },
6941
0
    { 0xDF79, 682 },
6942
0
    { 0xDF7A, 683 },
6943
0
    { 0xDF7B, 684 },
6944
0
    { 0xDF7C, 685 },
6945
0
    { 0xDF7D, 686 },
6946
0
    { 0xDF7E, 688 },
6947
0
    { 0xDF7F, 594 },
6948
0
    { 0xE000, 1201 },
6949
0
    { 0xE004, 566 },
6950
0
    { 0xE005, 1199 },
6951
0
    { 0xE080, 818 },
6952
0
    { 0xE081, 2 },
6953
0
    { 0xE083, 814 },
6954
0
    { 0xE088, 401 },
6955
0
    { 0xE089, 533 },
6956
0
    { 0xE08A, 267 },
6957
0
    { 0xE08B, 415 },
6958
0
    { 0xE08C, 411 },
6959
0
    { 0xE08D, 413 },
6960
0
    { 0xE08E, 409 },
6961
0
    { 0xE08F, 398 },
6962
0
    { 0xE090, 1211 },
6963
0
    { 0xE091, 1182 },
6964
0
    { 0xE092, 400 },
6965
0
    { 0xE093, 1079 },
6966
0
    { 0xE095, 832 },
6967
0
    { 0xE096, 829 },
6968
0
    { 0xE099, 825 },
6969
0
    { 0xE100, 1185 },
6970
0
    { 0xE100, 1202 },
6971
0
    { 0xE101, 1189 },
6972
0
    { 0xE102, 939 },
6973
0
    { 0xE103, 936 },
6974
0
    { 0xE108, 1208 },
6975
0
    { 0xE10A, 1207 },
6976
0
    { 0xE110, 1200 },
6977
0
    { 0xE11A, 402 },
6978
0
    { 0xE11B, 403 },
6979
0
    { 0xE11C, 396 },
6980
0
    { 0xE11D, 397 },
6981
0
    { 0xE128, 386 },
6982
0
    { 0xE129, 391 },
6983
0
    { 0xE130, 1206 },
6984
0
    { 0xE132, 1205 },
6985
0
    { 0xE180, 272 },
6986
0
    { 0xE188, 404 },
6987
0
    { 0xE189, 406 },
6988
0
    { 0xE18A, 410 },
6989
0
    { 0xE18B, 412 },
6990
0
    { 0xE18C, 405 },
6991
0
    { 0xE18D, 407 },
6992
0
    { 0xE18E, 399 },
6993
0
    { 0xE18F, 408 },
6994
0
    { 0xE200, 923 },
6995
0
    { 0xE201, 353 },
6996
0
    { 0xE208, 929 },
6997
0
    { 0xE218, 926 },
6998
0
    { 0xE219, 920 },
6999
0
    { 0xE21A, 927 },
7000
0
    { 0xE21B, 925 },
7001
0
    { 0xE281, 516 },
7002
0
    { 0xE288, 6 },
7003
0
    { 0xE289, 10 },
7004
0
    { 0xE290, 371 },
7005
0
    { 0xE293, 1203 },
7006
0
    { 0xE298, 379 },
7007
0
    { 0xE2B0, 946 },
7008
0
    { 0xE300, 375 },
7009
0
    { 0xE304, 414 },
7010
0
    { 0xE305, 581 },
7011
0
    { 0xE309, 762 },
7012
0
    { 0xE311, 796 },
7013
0
    { 0xE340, 760 },
7014
0
    { 0xE341, 794 },
7015
0
    { 0xE344, 742 },
7016
0
    { 0xE345, 776 },
7017
0
    { 0xE348, 744 },
7018
0
    { 0xE349, 778 },
7019
0
    { 0xE34C, 746 },
7020
0
    { 0xE34D, 780 },
7021
0
    { 0xE350, 748 },
7022
0
    { 0xE351, 782 },
7023
0
    { 0xE354, 750 },
7024
0
    { 0xE355, 784 },
7025
0
    { 0xE358, 752 },
7026
0
    { 0xE359, 786 },
7027
0
    { 0xE35C, 754 },
7028
0
    { 0xE35D, 788 },
7029
0
    { 0xE360, 756 },
7030
0
    { 0xE361, 790 },
7031
0
    { 0xE364, 758 },
7032
0
    { 0xE365, 792 },
7033
0
    { 0xE368, 730 },
7034
0
    { 0xE369, 764 },
7035
0
    { 0xE36C, 732 },
7036
0
    { 0xE36D, 766 },
7037
0
    { 0xE370, 734 },
7038
0
    { 0xE371, 768 },
7039
0
    { 0xE374, 736 },
7040
0
    { 0xE375, 770 },
7041
0
    { 0xE378, 738 },
7042
0
    { 0xE379, 772 },
7043
0
    { 0xE37C, 740 },
7044
0
    { 0xE37D, 774 },
7045
0
    { 0xE4C8, 707 },
7046
0
    { 0xE509, 525 },
7047
0
    { 0xE510, 529 },
7048
0
    { 0xE512, 584 },
7049
0
    { 0xE513, 587 },
7050
0
    { 0xE514, 727 },
7051
0
    { 0xE515, 809 },
7052
0
    { 0xE518, 20 },
7053
0
    { 0xE519, 16 },
7054
0
    { 0xE520, 552 },
7055
0
    { 0xE521, 563 },
7056
0
    { 0xE528, 550 },
7057
0
    { 0xE530, 555 },
7058
0
    { 0xE531, 556 },
7059
0
    { 0xE532, 557 },
7060
0
    { 0xE533, 558 },
7061
0
    { 0xE534, 559 },
7062
0
    { 0xE535, 560 },
7063
0
    { 0xE536, 561 },
7064
0
    { 0xE537, 562 },
7065
0
    { 0xE540, 542 },
7066
0
    { 0xE541, 540 },
7067
0
    { 0xE542, 543 },
7068
0
    { 0xE543, 541 },
7069
0
    { 0xE547, 539 },
7070
0
    { 0xE548, 1198 },
7071
0
    { 0xE549, 1197 },
7072
0
    { 0xE600, 1193 },
7073
0
    { 0xE601, 807 },
7074
0
    { 0xE602, 802 },
7075
0
    { 0xE609, 1195 },
7076
0
    { 0xE640, 447 },
7077
0
    { 0xE641, 448 },
7078
0
    { 0xE642, 449 },
7079
0
    { 0xE643, 450 },
7080
0
    { 0xE648, 451 },
7081
0
    { 0xE649, 452 },
7082
0
    { 0xE64A, 453 },
7083
0
    { 0xE64B, 454 },
7084
0
    { 0xE64D, 445 },
7085
0
    { 0xE658, 457 },
7086
0
    { 0xE659, 476 },
7087
0
    { 0xE65A, 474 },
7088
0
    { 0xE65B, 455 },
7089
0
    { 0xE65D, 456 },
7090
0
    { 0xE65F, 475 },
7091
0
    { 0xE660, 458 },
7092
0
    { 0xE661, 465 },
7093
0
    { 0xE662, 466 },
7094
0
    { 0xE663, 467 },
7095
0
    { 0xE664, 468 },
7096
0
    { 0xE665, 469 },
7097
0
    { 0xE666, 470 },
7098
0
    { 0xE667, 471 },
7099
0
    { 0xE668, 472 },
7100
0
    { 0xE669, 473 },
7101
0
    { 0xE66A, 459 },
7102
0
    { 0xE66B, 460 },
7103
0
    { 0xE66C, 461 },
7104
0
    { 0xE66D, 462 },
7105
0
    { 0xE66E, 463 },
7106
0
    { 0xE66F, 464 },
7107
0
    { 0xE681, 263 },
7108
0
    { 0xE682, 952 },
7109
0
    { 0xE687, 823 },
7110
0
    { 0xE6C0, 50 },
7111
0
    { 0xE6C1, 57 },
7112
0
    { 0xE6C2, 58 },
7113
0
    { 0xE6C3, 59 },
7114
0
    { 0xE6C4, 60 },
7115
0
    { 0xE6C5, 61 },
7116
0
    { 0xE6C6, 62 },
7117
0
    { 0xE6C7, 63 },
7118
0
    { 0xE6C8, 64 },
7119
0
    { 0xE6C9, 65 },
7120
0
    { 0xE6CA, 51 },
7121
0
    { 0xE6CB, 52 },
7122
0
    { 0xE6CC, 53 },
7123
0
    { 0xE6CD, 54 },
7124
0
    { 0xE6CE, 55 },
7125
0
    { 0xE6CF, 56 },
7126
0
    { 0xE6D0, 66 },
7127
0
    { 0xE6D1, 73 },
7128
0
    { 0xE6D2, 74 },
7129
0
    { 0xE6D3, 75 },
7130
0
    { 0xE6D4, 76 },
7131
0
    { 0xE6D5, 77 },
7132
0
    { 0xE6D6, 78 },
7133
0
    { 0xE6D7, 79 },
7134
0
    { 0xE6D8, 80 },
7135
0
    { 0xE6D9, 81 },
7136
0
    { 0xE6DA, 67 },
7137
0
    { 0xE6DB, 68 },
7138
0
    { 0xE6DC, 69 },
7139
0
    { 0xE6DD, 70 },
7140
0
    { 0xE6DE, 71 },
7141
0
    { 0xE6DF, 72 },
7142
0
    { 0xE703, 254 },
7143
0
    { 0xE704, 250 },
7144
0
    { 0xE705, 235 },
7145
0
    { 0xE706, 240 },
7146
0
    { 0xE707, 253 },
7147
0
    { 0xE708, 222 },
7148
0
    { 0xE710, 228 },
7149
0
    { 0xE711, 226 },
7150
0
    { 0xE712, 227 },
7151
0
    { 0xE718, 234 },
7152
0
    { 0xE719, 232 },
7153
0
    { 0xE71A, 233 },
7154
0
    { 0xE720, 231 },
7155
0
    { 0xE721, 229 },
7156
0
    { 0xE722, 230 },
7157
0
    { 0xE728, 225 },
7158
0
    { 0xE729, 223 },
7159
0
    { 0xE72A, 224 },
7160
0
    { 0xE880, 817 },
7161
0
    { 0xE882, 265 },
7162
0
    { 0xE883, 813 },
7163
0
    { 0xE890, 1210 },
7164
0
    { 0xE891, 1181 },
7165
0
    { 0xE893, 1078 },
7166
0
    { 0xE896, 828 },
7167
0
    { 0xE900, 1184 },
7168
0
    { 0xE901, 1188 },
7169
0
    { 0xE902, 938 },
7170
0
    { 0xE903, 935 },
7171
0
    { 0xE928, 385 },
7172
0
    { 0xE929, 390 },
7173
0
    { 0xEA00, 922 },
7174
0
    { 0xEA01, 352 },
7175
0
    { 0xEA88, 5 },
7176
0
    { 0xEA89, 9 },
7177
0
    { 0xEA90, 370 },
7178
0
    { 0xEAB0, 945 },
7179
0
    { 0xEB00, 374 },
7180
0
    { 0xEB05, 580 },
7181
0
    { 0xECC8, 706 },
7182
0
    { 0xED10, 528 },
7183
0
    { 0xED11, 524 },
7184
0
    { 0xED12, 583 },
7185
0
    { 0xED13, 586 },
7186
0
    { 0xED14, 726 },
7187
0
    { 0xED18, 19 },
7188
0
    { 0xED19, 15 },
7189
0
    { 0xED28, 549 },
7190
0
    { 0xEE00, 1192 },
7191
0
    { 0xEE81, 262 },
7192
0
    { 0xEE87, 822 },
7193
0
    { 0xEF08, 237 },
7194
0
    { 0xEF10, 249 },
7195
0
    { 0xEF11, 245 },
7196
0
    { 0xEF12, 247 },
7197
0
    { 0xEF18, 260 },
7198
0
    { 0xEF19, 256 },
7199
0
    { 0xEF1A, 258 },
7200
0
    { 0xF080, 819 },
7201
0
    { 0xF081, 3 },
7202
0
    { 0xF083, 815 },
7203
0
    { 0xF088, 811 },
7204
0
    { 0xF089, 826 },
7205
0
    { 0xF08A, 268 },
7206
0
    { 0xF08D, 377 },
7207
0
    { 0xF090, 1212 },
7208
0
    { 0xF096, 830 },
7209
0
    { 0xF099, 534 },
7210
0
    { 0xF100, 1186 },
7211
0
    { 0xF102, 940 },
7212
0
    { 0xF10C, 395 },
7213
0
    { 0xF10E, 394 },
7214
0
    { 0xF128, 387 },
7215
0
    { 0xF129, 392 },
7216
0
    { 0xF200, 924 },
7217
0
    { 0xF201, 354 },
7218
0
    { 0xF208, 930 },
7219
0
    { 0xF288, 7 },
7220
0
    { 0xF289, 11 },
7221
0
    { 0xF290, 372 },
7222
0
    { 0xF293, 1204 },
7223
0
    { 0xF2B0, 947 },
7224
0
    { 0xF300, 376 },
7225
0
    { 0xF305, 545 },
7226
0
    { 0xF509, 526 },
7227
0
    { 0xF510, 530 },
7228
0
    { 0xF513, 588 },
7229
0
    { 0xF514, 728 },
7230
0
    { 0xF518, 21 },
7231
0
    { 0xF519, 17 },
7232
0
    { 0xF528, 551 },
7233
0
    { 0xF551, 544 },
7234
0
    { 0xF600, 1194 },
7235
0
    { 0xF601, 808 },
7236
0
    { 0xF602, 803 },
7237
0
    { 0xF609, 1196 },
7238
0
    { 0xF664, 428 },
7239
0
    { 0xF665, 446 },
7240
0
    { 0xF667, 438 },
7241
0
    { 0xF682, 953 },
7242
0
    { 0xF687, 824 },
7243
0
    { 0xFF10, 243 },
7244
0
    { 0xFF11, 241 },
7245
0
    { 0xFF12, 242 },
7246
0
    { 0xFF90, 266 },
7247
0
  };
7248
7249
0
  struct KeyType {
7250
0
    uint16_t Encoding;
7251
0
  };
7252
0
  KeyType Key = {Encoding};
7253
0
  auto Table = ArrayRef(Index);
7254
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
7255
0
    [](const IndexType &LHS, const KeyType &RHS) {
7256
0
      if (LHS.Encoding < RHS.Encoding)
7257
0
        return true;
7258
0
      if (LHS.Encoding > RHS.Encoding)
7259
0
        return false;
7260
0
      return false;
7261
0
    });
7262
7263
0
  if (Idx == Table.end() ||
7264
0
      Key.Encoding != Idx->Encoding)
7265
0
    return nullptr;
7266
0
  return &SysRegsList[Idx->_index];
7267
0
}
7268
#endif
7269
7270
#ifdef GET_TSB_DECL
7271
const TSB *lookupTSBByName(StringRef Name);
7272
const TSB *lookupTSBByEncoding(uint8_t Encoding);
7273
#endif
7274
7275
#ifdef GET_TSB_IMPL
7276
constexpr TSB TSBsList[] = {
7277
  { "csync", 0x0,  {AArch64::FeatureTRACEV8_4}  }, // 0
7278
 };
7279
7280
0
const TSB *lookupTSBByName(StringRef Name) {
7281
0
  struct IndexType {
7282
0
    const char * Name;
7283
0
    unsigned _index;
7284
0
  };
7285
0
  static const struct IndexType Index[] = {
7286
0
    { "CSYNC", 0 },
7287
0
  };
7288
7289
0
  struct KeyType {
7290
0
    std::string Name;
7291
0
  };
7292
0
  KeyType Key = {Name.upper()};
7293
0
  auto Table = ArrayRef(Index);
7294
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
7295
0
    [](const IndexType &LHS, const KeyType &RHS) {
7296
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
7297
0
      if (CmpName < 0) return true;
7298
0
      if (CmpName > 0) return false;
7299
0
      return false;
7300
0
    });
7301
7302
0
  if (Idx == Table.end() ||
7303
0
      Key.Name != Idx->Name)
7304
0
    return nullptr;
7305
0
  return &TSBsList[Idx->_index];
7306
0
}
7307
7308
0
const TSB *lookupTSBByEncoding(uint8_t Encoding) {
7309
0
  struct IndexType {
7310
0
    uint8_t Encoding;
7311
0
    unsigned _index;
7312
0
  };
7313
0
  static const struct IndexType Index[] = {
7314
0
    { 0x0, 0 },
7315
0
  };
7316
7317
0
  auto Table = ArrayRef(Index);
7318
0
  size_t Idx = Encoding;
7319
0
  return Idx >= Table.size() ? nullptr : &TSBsList[Table[Idx]._index];
7320
0
}
7321
#endif
7322
7323
#undef GET_AT_DECL
7324
#undef GET_AT_IMPL
7325
#undef GET_BTI_DECL
7326
#undef GET_BTI_IMPL
7327
#undef GET_DBNXS_DECL
7328
#undef GET_DBNXS_IMPL
7329
#undef GET_DB_DECL
7330
#undef GET_DB_IMPL
7331
#undef GET_DC_DECL
7332
#undef GET_DC_IMPL
7333
#undef GET_EXACTFPIMM_DECL
7334
#undef GET_EXACTFPIMM_IMPL
7335
#undef GET_IC_DECL
7336
#undef GET_IC_IMPL
7337
#undef GET_ISB_DECL
7338
#undef GET_ISB_IMPL
7339
#undef GET_PRFM_DECL
7340
#undef GET_PRFM_IMPL
7341
#undef GET_PSB_DECL
7342
#undef GET_PSB_IMPL
7343
#undef GET_PSTATEIMM0_15_DECL
7344
#undef GET_PSTATEIMM0_15_IMPL
7345
#undef GET_PSTATEIMM0_1_DECL
7346
#undef GET_PSTATEIMM0_1_IMPL
7347
#undef GET_RPRFM_DECL
7348
#undef GET_RPRFM_IMPL
7349
#undef GET_SVCR_DECL
7350
#undef GET_SVCR_IMPL
7351
#undef GET_SVEPREDPAT_DECL
7352
#undef GET_SVEPREDPAT_IMPL
7353
#undef GET_SVEPRFM_DECL
7354
#undef GET_SVEPRFM_IMPL
7355
#undef GET_SVEVECLENSPECIFIER_DECL
7356
#undef GET_SVEVECLENSPECIFIER_IMPL
7357
#undef GET_SYSREG_DECL
7358
#undef GET_SYSREG_IMPL
7359
#undef GET_TLBITable_DECL
7360
#undef GET_TLBITable_IMPL
7361
#undef GET_TSB_DECL
7362
#undef GET_TSB_IMPL