Coverage Report

Created: 2018-09-17 19:50

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/clang-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
};
18
#endif
19
20
#ifdef GET_DB_DECL
21
enum DBValues {
22
  oshld = 1,
23
  oshst = 2,
24
  osh = 3,
25
  nshld = 5,
26
  nshst = 6,
27
  nsh = 7,
28
  ishld = 9,
29
  ishst = 10,
30
  ish = 11,
31
  ld = 13,
32
  st = 14,
33
  sy = 15,
34
};
35
#endif
36
37
#ifdef GET_DC_DECL
38
enum DCValues {
39
  ZVA = 7073,
40
  IVAC = 945,
41
  ISW = 946,
42
  CVAC = 7121,
43
  CSW = 978,
44
  CVAU = 7129,
45
  CIVAC = 7153,
46
  CISW = 1010,
47
  CVAP = 7137,
48
};
49
#endif
50
51
#ifdef GET_EXACTFPIMM_DECL
52
enum ExactFPImmValues {
53
  zero = 0,
54
  half = 1,
55
  one = 2,
56
  two = 3,
57
};
58
#endif
59
60
#ifdef GET_IC_DECL
61
enum ICValues {
62
  IALLUIS = 904,
63
  IALLU = 936,
64
  IVAU = 7081,
65
};
66
#endif
67
68
#ifdef GET_ISB_DECL
69
enum ISBValues {
70
  sy = 15,
71
};
72
#endif
73
74
#ifdef GET_PRFM_DECL
75
enum PRFMValues {
76
  pldl1keep = 0,
77
  pldl1strm = 1,
78
  pldl2keep = 2,
79
  pldl2strm = 3,
80
  pldl3keep = 4,
81
  pldl3strm = 5,
82
  plil1keep = 8,
83
  plil1strm = 9,
84
  plil2keep = 10,
85
  plil2strm = 11,
86
  plil3keep = 12,
87
  plil3strm = 13,
88
  pstl1keep = 16,
89
  pstl1strm = 17,
90
  pstl2keep = 18,
91
  pstl2strm = 19,
92
  pstl3keep = 20,
93
  pstl3strm = 21,
94
};
95
#endif
96
97
#ifdef GET_PSB_DECL
98
enum PSBValues {
99
  csync = 17,
100
};
101
#endif
102
103
#ifdef GET_PSTATE_DECL
104
enum PStateValues {
105
  SPSel = 5,
106
  DAIFSet = 30,
107
  DAIFClr = 31,
108
  PAN = 4,
109
  UAO = 3,
110
  DIT = 26,
111
};
112
#endif
113
114
#ifdef GET_SVEPREDPAT_DECL
115
enum SVEPREDPATValues {
116
  pow2 = 0,
117
  vl1 = 1,
118
  vl2 = 2,
119
  vl3 = 3,
120
  vl4 = 4,
121
  vl5 = 5,
122
  vl6 = 6,
123
  vl7 = 7,
124
  vl8 = 8,
125
  vl16 = 9,
126
  vl32 = 10,
127
  vl64 = 11,
128
  vl128 = 12,
129
  vl256 = 13,
130
  mul4 = 29,
131
  mul3 = 30,
132
  all = 31,
133
};
134
#endif
135
136
#ifdef GET_SVEPRFM_DECL
137
enum SVEPRFMValues {
138
  pldl1keep = 0,
139
  pldl1strm = 1,
140
  pldl2keep = 2,
141
  pldl2strm = 3,
142
  pldl3keep = 4,
143
  pldl3strm = 5,
144
  pstl1keep = 8,
145
  pstl1strm = 9,
146
  pstl2keep = 10,
147
  pstl2strm = 11,
148
  pstl3keep = 12,
149
  pstl3strm = 13,
150
};
151
#endif
152
153
#ifdef GET_SYSREG_DECL
154
enum SysRegValues {
155
  MDCCSR_EL0 = 38920,
156
  DBGDTRRX_EL0 = 38952,
157
  MDRAR_EL1 = 32896,
158
  OSLSR_EL1 = 32908,
159
  DBGAUTHSTATUS_EL1 = 33782,
160
  PMCEID0_EL0 = 56550,
161
  PMCEID1_EL0 = 56551,
162
  MIDR_EL1 = 49152,
163
  CCSIDR_EL1 = 51200,
164
  CCSIDR2_EL1 = 51202,
165
  CLIDR_EL1 = 51201,
166
  CTR_EL0 = 55297,
167
  MPIDR_EL1 = 49157,
168
  REVIDR_EL1 = 49158,
169
  AIDR_EL1 = 51207,
170
  DCZID_EL0 = 55303,
171
  ID_PFR0_EL1 = 49160,
172
  ID_PFR1_EL1 = 49161,
173
  ID_DFR0_EL1 = 49162,
174
  ID_AFR0_EL1 = 49163,
175
  ID_MMFR0_EL1 = 49164,
176
  ID_MMFR1_EL1 = 49165,
177
  ID_MMFR2_EL1 = 49166,
178
  ID_MMFR3_EL1 = 49167,
179
  ID_ISAR0_EL1 = 49168,
180
  ID_ISAR1_EL1 = 49169,
181
  ID_ISAR2_EL1 = 49170,
182
  ID_ISAR3_EL1 = 49171,
183
  ID_ISAR4_EL1 = 49172,
184
  ID_ISAR5_EL1 = 49173,
185
  ID_ISAR6_EL1 = 49175,
186
  ID_AA64PFR0_EL1 = 49184,
187
  ID_AA64PFR1_EL1 = 49185,
188
  ID_AA64DFR0_EL1 = 49192,
189
  ID_AA64DFR1_EL1 = 49193,
190
  ID_AA64AFR0_EL1 = 49196,
191
  ID_AA64AFR1_EL1 = 49197,
192
  ID_AA64ISAR0_EL1 = 49200,
193
  ID_AA64ISAR1_EL1 = 49201,
194
  ID_AA64MMFR0_EL1 = 49208,
195
  ID_AA64MMFR1_EL1 = 49209,
196
  ID_AA64MMFR2_EL1 = 49210,
197
  MVFR0_EL1 = 49176,
198
  MVFR1_EL1 = 49177,
199
  MVFR2_EL1 = 49178,
200
  RVBAR_EL1 = 50689,
201
  RVBAR_EL2 = 58881,
202
  RVBAR_EL3 = 62977,
203
  ISR_EL1 = 50696,
204
  CNTPCT_EL0 = 57089,
205
  CNTVCT_EL0 = 57090,
206
  ID_MMFR4_EL1 = 49174,
207
  TRCSTATR = 34840,
208
  TRCIDR8 = 34822,
209
  TRCIDR9 = 34830,
210
  TRCIDR10 = 34838,
211
  TRCIDR11 = 34846,
212
  TRCIDR12 = 34854,
213
  TRCIDR13 = 34862,
214
  TRCIDR0 = 34887,
215
  TRCIDR1 = 34895,
216
  TRCIDR2 = 34903,
217
  TRCIDR3 = 34911,
218
  TRCIDR4 = 34919,
219
  TRCIDR5 = 34927,
220
  TRCIDR6 = 34935,
221
  TRCIDR7 = 34943,
222
  TRCOSLSR = 34956,
223
  TRCPDSR = 34988,
224
  TRCDEVAFF0 = 35798,
225
  TRCDEVAFF1 = 35806,
226
  TRCLSR = 35822,
227
  TRCAUTHSTATUS = 35830,
228
  TRCDEVARCH = 35838,
229
  TRCDEVID = 35735,
230
  TRCDEVTYPE = 35743,
231
  TRCPIDR4 = 35751,
232
  TRCPIDR5 = 35759,
233
  TRCPIDR6 = 35767,
234
  TRCPIDR7 = 35775,
235
  TRCPIDR0 = 35783,
236
  TRCPIDR1 = 35791,
237
  TRCPIDR2 = 35799,
238
  TRCPIDR3 = 35807,
239
  TRCCIDR0 = 35815,
240
  TRCCIDR1 = 35823,
241
  TRCCIDR2 = 35831,
242
  TRCCIDR3 = 35839,
243
  ICC_IAR1_EL1 = 50784,
244
  ICC_IAR0_EL1 = 50752,
245
  ICC_HPPIR1_EL1 = 50786,
246
  ICC_HPPIR0_EL1 = 50754,
247
  ICC_RPR_EL1 = 50779,
248
  ICH_VTR_EL2 = 58969,
249
  ICH_EISR_EL2 = 58971,
250
  ICH_ELRSR_EL2 = 58973,
251
  ID_AA64ZFR0_EL1 = 49188,
252
  LORID_EL1 = 50471,
253
  ERRIDR_EL1 = 49816,
254
  ERXFR_EL1 = 49824,
255
  DBGDTRTX_EL0 = 38952,
256
  OSLAR_EL1 = 32900,
257
  PMSWINC_EL0 = 56548,
258
  TRCOSLAR = 34948,
259
  TRCLAR = 35814,
260
  ICC_EOIR1_EL1 = 50785,
261
  ICC_EOIR0_EL1 = 50753,
262
  ICC_DIR_EL1 = 50777,
263
  ICC_SGI1R_EL1 = 50781,
264
  ICC_ASGI1R_EL1 = 50782,
265
  ICC_SGI0R_EL1 = 50783,
266
  OSDTRRX_EL1 = 32770,
267
  OSDTRTX_EL1 = 32794,
268
  TEECR32_EL1 = 36864,
269
  MDCCINT_EL1 = 32784,
270
  MDSCR_EL1 = 32786,
271
  DBGDTR_EL0 = 38944,
272
  OSECCR_EL1 = 32818,
273
  DBGVCR32_EL2 = 41016,
274
  DBGBVR0_EL1 = 32772,
275
  DBGBVR1_EL1 = 32780,
276
  DBGBVR2_EL1 = 32788,
277
  DBGBVR3_EL1 = 32796,
278
  DBGBVR4_EL1 = 32804,
279
  DBGBVR5_EL1 = 32812,
280
  DBGBVR6_EL1 = 32820,
281
  DBGBVR7_EL1 = 32828,
282
  DBGBVR8_EL1 = 32836,
283
  DBGBVR9_EL1 = 32844,
284
  DBGBVR10_EL1 = 32852,
285
  DBGBVR11_EL1 = 32860,
286
  DBGBVR12_EL1 = 32868,
287
  DBGBVR13_EL1 = 32876,
288
  DBGBVR14_EL1 = 32884,
289
  DBGBVR15_EL1 = 32892,
290
  DBGBCR0_EL1 = 32773,
291
  DBGBCR1_EL1 = 32781,
292
  DBGBCR2_EL1 = 32789,
293
  DBGBCR3_EL1 = 32797,
294
  DBGBCR4_EL1 = 32805,
295
  DBGBCR5_EL1 = 32813,
296
  DBGBCR6_EL1 = 32821,
297
  DBGBCR7_EL1 = 32829,
298
  DBGBCR8_EL1 = 32837,
299
  DBGBCR9_EL1 = 32845,
300
  DBGBCR10_EL1 = 32853,
301
  DBGBCR11_EL1 = 32861,
302
  DBGBCR12_EL1 = 32869,
303
  DBGBCR13_EL1 = 32877,
304
  DBGBCR14_EL1 = 32885,
305
  DBGBCR15_EL1 = 32893,
306
  DBGWVR0_EL1 = 32774,
307
  DBGWVR1_EL1 = 32782,
308
  DBGWVR2_EL1 = 32790,
309
  DBGWVR3_EL1 = 32798,
310
  DBGWVR4_EL1 = 32806,
311
  DBGWVR5_EL1 = 32814,
312
  DBGWVR6_EL1 = 32822,
313
  DBGWVR7_EL1 = 32830,
314
  DBGWVR8_EL1 = 32838,
315
  DBGWVR9_EL1 = 32846,
316
  DBGWVR10_EL1 = 32854,
317
  DBGWVR11_EL1 = 32862,
318
  DBGWVR12_EL1 = 32870,
319
  DBGWVR13_EL1 = 32878,
320
  DBGWVR14_EL1 = 32886,
321
  DBGWVR15_EL1 = 32894,
322
  DBGWCR0_EL1 = 32775,
323
  DBGWCR1_EL1 = 32783,
324
  DBGWCR2_EL1 = 32791,
325
  DBGWCR3_EL1 = 32799,
326
  DBGWCR4_EL1 = 32807,
327
  DBGWCR5_EL1 = 32815,
328
  DBGWCR6_EL1 = 32823,
329
  DBGWCR7_EL1 = 32831,
330
  DBGWCR8_EL1 = 32839,
331
  DBGWCR9_EL1 = 32847,
332
  DBGWCR10_EL1 = 32855,
333
  DBGWCR11_EL1 = 32863,
334
  DBGWCR12_EL1 = 32871,
335
  DBGWCR13_EL1 = 32879,
336
  DBGWCR14_EL1 = 32887,
337
  DBGWCR15_EL1 = 32895,
338
  TEEHBR32_EL1 = 36992,
339
  OSDLR_EL1 = 32924,
340
  DBGPRCR_EL1 = 32932,
341
  DBGCLAIMSET_EL1 = 33734,
342
  DBGCLAIMCLR_EL1 = 33742,
343
  CSSELR_EL1 = 53248,
344
  VPIDR_EL2 = 57344,
345
  VMPIDR_EL2 = 57349,
346
  CPACR_EL1 = 49282,
347
  SCTLR_EL1 = 49280,
348
  SCTLR_EL2 = 57472,
349
  SCTLR_EL3 = 61568,
350
  ACTLR_EL1 = 49281,
351
  ACTLR_EL2 = 57473,
352
  ACTLR_EL3 = 61569,
353
  HCR_EL2 = 57480,
354
  SCR_EL3 = 61576,
355
  MDCR_EL2 = 57481,
356
  SDER32_EL3 = 61577,
357
  CPTR_EL2 = 57482,
358
  CPTR_EL3 = 61578,
359
  HSTR_EL2 = 57483,
360
  HACR_EL2 = 57487,
361
  MDCR_EL3 = 61593,
362
  TTBR0_EL1 = 49408,
363
  TTBR0_EL2 = 57600,
364
  TTBR0_EL3 = 61696,
365
  TTBR1_EL1 = 49409,
366
  TCR_EL1 = 49410,
367
  TCR_EL2 = 57602,
368
  TCR_EL3 = 61698,
369
  VTTBR_EL2 = 57608,
370
  VTCR_EL2 = 57610,
371
  DACR32_EL2 = 57728,
372
  SPSR_EL1 = 49664,
373
  SPSR_EL2 = 57856,
374
  SPSR_EL3 = 61952,
375
  ELR_EL1 = 49665,
376
  ELR_EL2 = 57857,
377
  ELR_EL3 = 61953,
378
  SP_EL0 = 49672,
379
  SP_EL1 = 57864,
380
  SP_EL2 = 61960,
381
  SPSel = 49680,
382
  NZCV = 55824,
383
  DAIF = 55825,
384
  CurrentEL = 49682,
385
  SPSR_irq = 57880,
386
  SPSR_abt = 57881,
387
  SPSR_und = 57882,
388
  SPSR_fiq = 57883,
389
  FPCR = 55840,
390
  FPSR = 55841,
391
  DSPSR_EL0 = 55848,
392
  DLR_EL0 = 55849,
393
  IFSR32_EL2 = 57985,
394
  AFSR0_EL1 = 49800,
395
  AFSR0_EL2 = 57992,
396
  AFSR0_EL3 = 62088,
397
  AFSR1_EL1 = 49801,
398
  AFSR1_EL2 = 57993,
399
  AFSR1_EL3 = 62089,
400
  ESR_EL1 = 49808,
401
  ESR_EL2 = 58000,
402
  ESR_EL3 = 62096,
403
  FPEXC32_EL2 = 58008,
404
  FAR_EL1 = 49920,
405
  FAR_EL2 = 58112,
406
  FAR_EL3 = 62208,
407
  HPFAR_EL2 = 58116,
408
  PAR_EL1 = 50080,
409
  PMCR_EL0 = 56544,
410
  PMCNTENSET_EL0 = 56545,
411
  PMCNTENCLR_EL0 = 56546,
412
  PMOVSCLR_EL0 = 56547,
413
  PMSELR_EL0 = 56549,
414
  PMCCNTR_EL0 = 56552,
415
  PMXEVTYPER_EL0 = 56553,
416
  PMXEVCNTR_EL0 = 56554,
417
  PMUSERENR_EL0 = 56560,
418
  PMINTENSET_EL1 = 50417,
419
  PMINTENCLR_EL1 = 50418,
420
  PMOVSSET_EL0 = 56563,
421
  MAIR_EL1 = 50448,
422
  MAIR_EL2 = 58640,
423
  MAIR_EL3 = 62736,
424
  AMAIR_EL1 = 50456,
425
  AMAIR_EL2 = 58648,
426
  AMAIR_EL3 = 62744,
427
  VBAR_EL1 = 50688,
428
  VBAR_EL2 = 58880,
429
  VBAR_EL3 = 62976,
430
  RMR_EL1 = 50690,
431
  RMR_EL2 = 58882,
432
  RMR_EL3 = 62978,
433
  CONTEXTIDR_EL1 = 50817,
434
  TPIDR_EL0 = 56962,
435
  TPIDR_EL2 = 59010,
436
  TPIDR_EL3 = 63106,
437
  TPIDRRO_EL0 = 56963,
438
  TPIDR_EL1 = 50820,
439
  CNTFRQ_EL0 = 57088,
440
  CNTVOFF_EL2 = 59139,
441
  CNTKCTL_EL1 = 50952,
442
  CNTHCTL_EL2 = 59144,
443
  CNTP_TVAL_EL0 = 57104,
444
  CNTHP_TVAL_EL2 = 59152,
445
  CNTPS_TVAL_EL1 = 65296,
446
  CNTP_CTL_EL0 = 57105,
447
  CNTHP_CTL_EL2 = 59153,
448
  CNTPS_CTL_EL1 = 65297,
449
  CNTP_CVAL_EL0 = 57106,
450
  CNTHP_CVAL_EL2 = 59154,
451
  CNTPS_CVAL_EL1 = 65298,
452
  CNTV_TVAL_EL0 = 57112,
453
  CNTV_CTL_EL0 = 57113,
454
  CNTV_CVAL_EL0 = 57114,
455
  PMEVCNTR0_EL0 = 57152,
456
  PMEVCNTR1_EL0 = 57153,
457
  PMEVCNTR2_EL0 = 57154,
458
  PMEVCNTR3_EL0 = 57155,
459
  PMEVCNTR4_EL0 = 57156,
460
  PMEVCNTR5_EL0 = 57157,
461
  PMEVCNTR6_EL0 = 57158,
462
  PMEVCNTR7_EL0 = 57159,
463
  PMEVCNTR8_EL0 = 57160,
464
  PMEVCNTR9_EL0 = 57161,
465
  PMEVCNTR10_EL0 = 57162,
466
  PMEVCNTR11_EL0 = 57163,
467
  PMEVCNTR12_EL0 = 57164,
468
  PMEVCNTR13_EL0 = 57165,
469
  PMEVCNTR14_EL0 = 57166,
470
  PMEVCNTR15_EL0 = 57167,
471
  PMEVCNTR16_EL0 = 57168,
472
  PMEVCNTR17_EL0 = 57169,
473
  PMEVCNTR18_EL0 = 57170,
474
  PMEVCNTR19_EL0 = 57171,
475
  PMEVCNTR20_EL0 = 57172,
476
  PMEVCNTR21_EL0 = 57173,
477
  PMEVCNTR22_EL0 = 57174,
478
  PMEVCNTR23_EL0 = 57175,
479
  PMEVCNTR24_EL0 = 57176,
480
  PMEVCNTR25_EL0 = 57177,
481
  PMEVCNTR26_EL0 = 57178,
482
  PMEVCNTR27_EL0 = 57179,
483
  PMEVCNTR28_EL0 = 57180,
484
  PMEVCNTR29_EL0 = 57181,
485
  PMEVCNTR30_EL0 = 57182,
486
  PMCCFILTR_EL0 = 57215,
487
  PMEVTYPER0_EL0 = 57184,
488
  PMEVTYPER1_EL0 = 57185,
489
  PMEVTYPER2_EL0 = 57186,
490
  PMEVTYPER3_EL0 = 57187,
491
  PMEVTYPER4_EL0 = 57188,
492
  PMEVTYPER5_EL0 = 57189,
493
  PMEVTYPER6_EL0 = 57190,
494
  PMEVTYPER7_EL0 = 57191,
495
  PMEVTYPER8_EL0 = 57192,
496
  PMEVTYPER9_EL0 = 57193,
497
  PMEVTYPER10_EL0 = 57194,
498
  PMEVTYPER11_EL0 = 57195,
499
  PMEVTYPER12_EL0 = 57196,
500
  PMEVTYPER13_EL0 = 57197,
501
  PMEVTYPER14_EL0 = 57198,
502
  PMEVTYPER15_EL0 = 57199,
503
  PMEVTYPER16_EL0 = 57200,
504
  PMEVTYPER17_EL0 = 57201,
505
  PMEVTYPER18_EL0 = 57202,
506
  PMEVTYPER19_EL0 = 57203,
507
  PMEVTYPER20_EL0 = 57204,
508
  PMEVTYPER21_EL0 = 57205,
509
  PMEVTYPER22_EL0 = 57206,
510
  PMEVTYPER23_EL0 = 57207,
511
  PMEVTYPER24_EL0 = 57208,
512
  PMEVTYPER25_EL0 = 57209,
513
  PMEVTYPER26_EL0 = 57210,
514
  PMEVTYPER27_EL0 = 57211,
515
  PMEVTYPER28_EL0 = 57212,
516
  PMEVTYPER29_EL0 = 57213,
517
  PMEVTYPER30_EL0 = 57214,
518
  TRCPRGCTLR = 34824,
519
  TRCPROCSELR = 34832,
520
  TRCCONFIGR = 34848,
521
  TRCAUXCTLR = 34864,
522
  TRCEVENTCTL0R = 34880,
523
  TRCEVENTCTL1R = 34888,
524
  TRCSTALLCTLR = 34904,
525
  TRCTSCTLR = 34912,
526
  TRCSYNCPR = 34920,
527
  TRCCCCTLR = 34928,
528
  TRCBBCTLR = 34936,
529
  TRCTRACEIDR = 34817,
530
  TRCQCTLR = 34825,
531
  TRCVICTLR = 34818,
532
  TRCVIIECTLR = 34826,
533
  TRCVISSCTLR = 34834,
534
  TRCVIPCSSCTLR = 34842,
535
  TRCVDCTLR = 34882,
536
  TRCVDSACCTLR = 34890,
537
  TRCVDARCCTLR = 34898,
538
  TRCSEQEVR0 = 34820,
539
  TRCSEQEVR1 = 34828,
540
  TRCSEQEVR2 = 34836,
541
  TRCSEQRSTEVR = 34868,
542
  TRCSEQSTR = 34876,
543
  TRCEXTINSELR = 34884,
544
  TRCCNTRLDVR0 = 34821,
545
  TRCCNTRLDVR1 = 34829,
546
  TRCCNTRLDVR2 = 34837,
547
  TRCCNTRLDVR3 = 34845,
548
  TRCCNTCTLR0 = 34853,
549
  TRCCNTCTLR1 = 34861,
550
  TRCCNTCTLR2 = 34869,
551
  TRCCNTCTLR3 = 34877,
552
  TRCCNTVR0 = 34885,
553
  TRCCNTVR1 = 34893,
554
  TRCCNTVR2 = 34901,
555
  TRCCNTVR3 = 34909,
556
  TRCIMSPEC0 = 34823,
557
  TRCIMSPEC1 = 34831,
558
  TRCIMSPEC2 = 34839,
559
  TRCIMSPEC3 = 34847,
560
  TRCIMSPEC4 = 34855,
561
  TRCIMSPEC5 = 34863,
562
  TRCIMSPEC6 = 34871,
563
  TRCIMSPEC7 = 34879,
564
  TRCRSCTLR2 = 34960,
565
  TRCRSCTLR3 = 34968,
566
  TRCRSCTLR4 = 34976,
567
  TRCRSCTLR5 = 34984,
568
  TRCRSCTLR6 = 34992,
569
  TRCRSCTLR7 = 35000,
570
  TRCRSCTLR8 = 35008,
571
  TRCRSCTLR9 = 35016,
572
  TRCRSCTLR10 = 35024,
573
  TRCRSCTLR11 = 35032,
574
  TRCRSCTLR12 = 35040,
575
  TRCRSCTLR13 = 35048,
576
  TRCRSCTLR14 = 35056,
577
  TRCRSCTLR15 = 35064,
578
  TRCRSCTLR16 = 34945,
579
  TRCRSCTLR17 = 34953,
580
  TRCRSCTLR18 = 34961,
581
  TRCRSCTLR19 = 34969,
582
  TRCRSCTLR20 = 34977,
583
  TRCRSCTLR21 = 34985,
584
  TRCRSCTLR22 = 34993,
585
  TRCRSCTLR23 = 35001,
586
  TRCRSCTLR24 = 35009,
587
  TRCRSCTLR25 = 35017,
588
  TRCRSCTLR26 = 35025,
589
  TRCRSCTLR27 = 35033,
590
  TRCRSCTLR28 = 35041,
591
  TRCRSCTLR29 = 35049,
592
  TRCRSCTLR30 = 35057,
593
  TRCRSCTLR31 = 35065,
594
  TRCSSCCR0 = 34946,
595
  TRCSSCCR1 = 34954,
596
  TRCSSCCR2 = 34962,
597
  TRCSSCCR3 = 34970,
598
  TRCSSCCR4 = 34978,
599
  TRCSSCCR5 = 34986,
600
  TRCSSCCR6 = 34994,
601
  TRCSSCCR7 = 35002,
602
  TRCSSCSR0 = 35010,
603
  TRCSSCSR1 = 35018,
604
  TRCSSCSR2 = 35026,
605
  TRCSSCSR3 = 35034,
606
  TRCSSCSR4 = 35042,
607
  TRCSSCSR5 = 35050,
608
  TRCSSCSR6 = 35058,
609
  TRCSSCSR7 = 35066,
610
  TRCSSPCICR0 = 34947,
611
  TRCSSPCICR1 = 34955,
612
  TRCSSPCICR2 = 34963,
613
  TRCSSPCICR3 = 34971,
614
  TRCSSPCICR4 = 34979,
615
  TRCSSPCICR5 = 34987,
616
  TRCSSPCICR6 = 34995,
617
  TRCSSPCICR7 = 35003,
618
  TRCPDCR = 34980,
619
  TRCACVR0 = 35072,
620
  TRCACVR1 = 35088,
621
  TRCACVR2 = 35104,
622
  TRCACVR3 = 35120,
623
  TRCACVR4 = 35136,
624
  TRCACVR5 = 35152,
625
  TRCACVR6 = 35168,
626
  TRCACVR7 = 35184,
627
  TRCACVR8 = 35073,
628
  TRCACVR9 = 35089,
629
  TRCACVR10 = 35105,
630
  TRCACVR11 = 35121,
631
  TRCACVR12 = 35137,
632
  TRCACVR13 = 35153,
633
  TRCACVR14 = 35169,
634
  TRCACVR15 = 35185,
635
  TRCACATR0 = 35074,
636
  TRCACATR1 = 35090,
637
  TRCACATR2 = 35106,
638
  TRCACATR3 = 35122,
639
  TRCACATR4 = 35138,
640
  TRCACATR5 = 35154,
641
  TRCACATR6 = 35170,
642
  TRCACATR7 = 35186,
643
  TRCACATR8 = 35075,
644
  TRCACATR9 = 35091,
645
  TRCACATR10 = 35107,
646
  TRCACATR11 = 35123,
647
  TRCACATR12 = 35139,
648
  TRCACATR13 = 35155,
649
  TRCACATR14 = 35171,
650
  TRCACATR15 = 35187,
651
  TRCDVCVR0 = 35076,
652
  TRCDVCVR1 = 35108,
653
  TRCDVCVR2 = 35140,
654
  TRCDVCVR3 = 35172,
655
  TRCDVCVR4 = 35077,
656
  TRCDVCVR5 = 35109,
657
  TRCDVCVR6 = 35141,
658
  TRCDVCVR7 = 35173,
659
  TRCDVCMR0 = 35078,
660
  TRCDVCMR1 = 35110,
661
  TRCDVCMR2 = 35142,
662
  TRCDVCMR3 = 35174,
663
  TRCDVCMR4 = 35079,
664
  TRCDVCMR5 = 35111,
665
  TRCDVCMR6 = 35143,
666
  TRCDVCMR7 = 35175,
667
  TRCCIDCVR0 = 35200,
668
  TRCCIDCVR1 = 35216,
669
  TRCCIDCVR2 = 35232,
670
  TRCCIDCVR3 = 35248,
671
  TRCCIDCVR4 = 35264,
672
  TRCCIDCVR5 = 35280,
673
  TRCCIDCVR6 = 35296,
674
  TRCCIDCVR7 = 35312,
675
  TRCVMIDCVR0 = 35201,
676
  TRCVMIDCVR1 = 35217,
677
  TRCVMIDCVR2 = 35233,
678
  TRCVMIDCVR3 = 35249,
679
  TRCVMIDCVR4 = 35265,
680
  TRCVMIDCVR5 = 35281,
681
  TRCVMIDCVR6 = 35297,
682
  TRCVMIDCVR7 = 35313,
683
  TRCCIDCCTLR0 = 35202,
684
  TRCCIDCCTLR1 = 35210,
685
  TRCVMIDCCTLR0 = 35218,
686
  TRCVMIDCCTLR1 = 35226,
687
  TRCITCTRL = 35716,
688
  TRCCLAIMSET = 35782,
689
  TRCCLAIMCLR = 35790,
690
  ICC_BPR1_EL1 = 50787,
691
  ICC_BPR0_EL1 = 50755,
692
  ICC_PMR_EL1 = 49712,
693
  ICC_CTLR_EL1 = 50788,
694
  ICC_CTLR_EL3 = 63076,
695
  ICC_SRE_EL1 = 50789,
696
  ICC_SRE_EL2 = 58957,
697
  ICC_SRE_EL3 = 63077,
698
  ICC_IGRPEN0_EL1 = 50790,
699
  ICC_IGRPEN1_EL1 = 50791,
700
  ICC_IGRPEN1_EL3 = 63079,
701
  ICC_SEIEN_EL1 = 50792,
702
  ICC_AP0R0_EL1 = 50756,
703
  ICC_AP0R1_EL1 = 50757,
704
  ICC_AP0R2_EL1 = 50758,
705
  ICC_AP0R3_EL1 = 50759,
706
  ICC_AP1R0_EL1 = 50760,
707
  ICC_AP1R1_EL1 = 50761,
708
  ICC_AP1R2_EL1 = 50762,
709
  ICC_AP1R3_EL1 = 50763,
710
  ICH_AP0R0_EL2 = 58944,
711
  ICH_AP0R1_EL2 = 58945,
712
  ICH_AP0R2_EL2 = 58946,
713
  ICH_AP0R3_EL2 = 58947,
714
  ICH_AP1R0_EL2 = 58952,
715
  ICH_AP1R1_EL2 = 58953,
716
  ICH_AP1R2_EL2 = 58954,
717
  ICH_AP1R3_EL2 = 58955,
718
  ICH_HCR_EL2 = 58968,
719
  ICH_MISR_EL2 = 58970,
720
  ICH_VMCR_EL2 = 58975,
721
  ICH_VSEIR_EL2 = 58956,
722
  ICH_LR0_EL2 = 58976,
723
  ICH_LR1_EL2 = 58977,
724
  ICH_LR2_EL2 = 58978,
725
  ICH_LR3_EL2 = 58979,
726
  ICH_LR4_EL2 = 58980,
727
  ICH_LR5_EL2 = 58981,
728
  ICH_LR6_EL2 = 58982,
729
  ICH_LR7_EL2 = 58983,
730
  ICH_LR8_EL2 = 58984,
731
  ICH_LR9_EL2 = 58985,
732
  ICH_LR10_EL2 = 58986,
733
  ICH_LR11_EL2 = 58987,
734
  ICH_LR12_EL2 = 58988,
735
  ICH_LR13_EL2 = 58989,
736
  ICH_LR14_EL2 = 58990,
737
  ICH_LR15_EL2 = 58991,
738
  PAN = 49683,
739
  LORSA_EL1 = 50464,
740
  LOREA_EL1 = 50465,
741
  LORN_EL1 = 50466,
742
  LORC_EL1 = 50467,
743
  TTBR1_EL2 = 57601,
744
  CONTEXTIDR_EL2 = 59009,
745
  CNTHV_TVAL_EL2 = 59160,
746
  CNTHV_CVAL_EL2 = 59162,
747
  CNTHV_CTL_EL2 = 59161,
748
  SCTLR_EL12 = 59520,
749
  CPACR_EL12 = 59522,
750
  TTBR0_EL12 = 59648,
751
  TTBR1_EL12 = 59649,
752
  TCR_EL12 = 59650,
753
  AFSR0_EL12 = 60040,
754
  AFSR1_EL12 = 60041,
755
  ESR_EL12 = 60048,
756
  FAR_EL12 = 60160,
757
  MAIR_EL12 = 60688,
758
  AMAIR_EL12 = 60696,
759
  VBAR_EL12 = 60928,
760
  CONTEXTIDR_EL12 = 61057,
761
  CNTKCTL_EL12 = 61192,
762
  CNTP_TVAL_EL02 = 61200,
763
  CNTP_CTL_EL02 = 61201,
764
  CNTP_CVAL_EL02 = 61202,
765
  CNTV_TVAL_EL02 = 61208,
766
  CNTV_CTL_EL02 = 61209,
767
  CNTV_CVAL_EL02 = 61210,
768
  SPSR_EL12 = 59904,
769
  ELR_EL12 = 59905,
770
  UAO = 49684,
771
  PMBLIMITR_EL1 = 50384,
772
  PMBPTR_EL1 = 50385,
773
  PMBSR_EL1 = 50387,
774
  PMBIDR_EL1 = 50391,
775
  PMSCR_EL2 = 58568,
776
  PMSCR_EL12 = 60616,
777
  PMSCR_EL1 = 50376,
778
  PMSICR_EL1 = 50378,
779
  PMSIRR_EL1 = 50379,
780
  PMSFCR_EL1 = 50380,
781
  PMSEVFR_EL1 = 50381,
782
  PMSLATFR_EL1 = 50382,
783
  PMSIDR_EL1 = 50383,
784
  ERRSELR_EL1 = 49817,
785
  ERXCTLR_EL1 = 49825,
786
  ERXSTATUS_EL1 = 49826,
787
  ERXADDR_EL1 = 49827,
788
  ERXMISC0_EL1 = 49832,
789
  ERXMISC1_EL1 = 49833,
790
  DISR_EL1 = 50697,
791
  VDISR_EL2 = 58889,
792
  VSESR_EL2 = 58003,
793
  APIAKeyLo_EL1 = 49416,
794
  APIAKeyHi_EL1 = 49417,
795
  APIBKeyLo_EL1 = 49418,
796
  APIBKeyHi_EL1 = 49419,
797
  APDAKeyLo_EL1 = 49424,
798
  APDAKeyHi_EL1 = 49425,
799
  APDBKeyLo_EL1 = 49426,
800
  APDBKeyHi_EL1 = 49427,
801
  APGAKeyLo_EL1 = 49432,
802
  APGAKeyHi_EL1 = 49433,
803
  VSTCR_EL2 = 57650,
804
  VSTTBR_EL2 = 57648,
805
  CNTHVS_TVAL_EL2 = 59168,
806
  CNTHVS_CVAL_EL2 = 59170,
807
  CNTHVS_CTL_EL2 = 59169,
808
  CNTHPS_TVAL_EL2 = 59176,
809
  CNTHPS_CVAL_EL2 = 59178,
810
  CNTHPS_CTL_EL2 = 59177,
811
  SDER32_EL2 = 57497,
812
  ERXPFGCTL_EL1 = 49829,
813
  ERXPFGCDN_EL1 = 49830,
814
  ERXTS_EL1 = 49839,
815
  ERXMISC2_EL1 = 49834,
816
  ERXMISC3_EL1 = 49835,
817
  ERXPFGF_EL1 = 49828,
818
  MPAM0_EL1 = 50473,
819
  MPAM1_EL1 = 50472,
820
  MPAM2_EL2 = 58664,
821
  MPAM3_EL3 = 62760,
822
  MPAM1_EL12 = 60712,
823
  MPAMHCR_EL2 = 58656,
824
  MPAMVPMV_EL2 = 58657,
825
  MPAMVPM0_EL2 = 58672,
826
  MPAMVPM1_EL2 = 58673,
827
  MPAMVPM2_EL2 = 58674,
828
  MPAMVPM3_EL2 = 58675,
829
  MPAMVPM4_EL2 = 58676,
830
  MPAMVPM5_EL2 = 58677,
831
  MPAMVPM6_EL2 = 58678,
832
  MPAMVPM7_EL2 = 58679,
833
  MPAMIDR_EL1 = 50468,
834
  AMCR_EL0 = 56976,
835
  AMCFGR_EL0 = 56977,
836
  AMCGCR_EL0 = 56978,
837
  AMUSERENR_EL0 = 56979,
838
  AMCNTENCLR0_EL0 = 56980,
839
  AMCNTENSET0_EL0 = 56981,
840
  AMEVCNTR00_EL0 = 56992,
841
  AMEVCNTR01_EL0 = 56993,
842
  AMEVCNTR02_EL0 = 56994,
843
  AMEVCNTR03_EL0 = 56995,
844
  AMEVTYPER00_EL0 = 57008,
845
  AMEVTYPER01_EL0 = 57009,
846
  AMEVTYPER02_EL0 = 57010,
847
  AMEVTYPER03_EL0 = 57011,
848
  AMCNTENCLR1_EL0 = 56984,
849
  AMCNTENSET1_EL0 = 56985,
850
  AMEVCNTR10_EL0 = 57056,
851
  AMEVCNTR11_EL0 = 57057,
852
  AMEVCNTR12_EL0 = 57058,
853
  AMEVCNTR13_EL0 = 57059,
854
  AMEVCNTR14_EL0 = 57060,
855
  AMEVCNTR15_EL0 = 57061,
856
  AMEVCNTR16_EL0 = 57062,
857
  AMEVCNTR17_EL0 = 57063,
858
  AMEVCNTR18_EL0 = 57064,
859
  AMEVCNTR19_EL0 = 57065,
860
  AMEVCNTR110_EL0 = 57066,
861
  AMEVCNTR111_EL0 = 57067,
862
  AMEVCNTR112_EL0 = 57068,
863
  AMEVCNTR113_EL0 = 57069,
864
  AMEVCNTR114_EL0 = 57070,
865
  AMEVCNTR115_EL0 = 57071,
866
  AMEVTYPER10_EL0 = 57072,
867
  AMEVTYPER11_EL0 = 57073,
868
  AMEVTYPER12_EL0 = 57074,
869
  AMEVTYPER13_EL0 = 57075,
870
  AMEVTYPER14_EL0 = 57076,
871
  AMEVTYPER15_EL0 = 57077,
872
  AMEVTYPER16_EL0 = 57078,
873
  AMEVTYPER17_EL0 = 57079,
874
  AMEVTYPER18_EL0 = 57080,
875
  AMEVTYPER19_EL0 = 57081,
876
  AMEVTYPER110_EL0 = 57082,
877
  AMEVTYPER111_EL0 = 57083,
878
  AMEVTYPER112_EL0 = 57084,
879
  AMEVTYPER113_EL0 = 57085,
880
  AMEVTYPER114_EL0 = 57086,
881
  AMEVTYPER115_EL0 = 57087,
882
  TRFCR_EL1 = 49297,
883
  TRFCR_EL2 = 57489,
884
  TRFCR_EL12 = 59537,
885
  DIT = 55829,
886
  VNCR_EL2 = 57616,
887
  ZCR_EL1 = 49296,
888
  ZCR_EL2 = 57488,
889
  ZCR_EL3 = 61584,
890
  ZCR_EL12 = 59536,
891
  CPM_IOACC_CTL_EL3 = 65424,
892
};
893
#endif
894
895
#ifdef GET_TLBI_DECL
896
enum TLBIValues {
897
  IPAS2E1IS = 9217,
898
  IPAS2LE1IS = 9221,
899
  VMALLE1IS = 1048,
900
  ALLE2IS = 9240,
901
  ALLE3IS = 13336,
902
  VAE1IS = 1049,
903
  VAE2IS = 9241,
904
  VAE3IS = 13337,
905
  ASIDE1IS = 1050,
906
  VAAE1IS = 1051,
907
  ALLE1IS = 9244,
908
  VALE1IS = 1053,
909
  VALE2IS = 9245,
910
  VALE3IS = 13341,
911
  VMALLS12E1IS = 9246,
912
  VAALE1IS = 1055,
913
  IPAS2E1 = 9249,
914
  IPAS2LE1 = 9253,
915
  VMALLE1 = 1080,
916
  ALLE2 = 9272,
917
  ALLE3 = 13368,
918
  VAE1 = 1081,
919
  VAE2 = 9273,
920
  VAE3 = 13369,
921
  ASIDE1 = 1082,
922
  VAAE1 = 1083,
923
  ALLE1 = 9276,
924
  VALE1 = 1085,
925
  VALE2 = 9277,
926
  VALE3 = 13373,
927
  VMALLS12E1 = 9278,
928
  VAALE1 = 1087,
929
  VMALLE1OS = 1032,
930
  VAE1OS = 1033,
931
  ASIDE1OS = 1034,
932
  VAAE1OS = 1035,
933
  VALE1OS = 1037,
934
  VAALE1OS = 1039,
935
  IPAS2E1OS = 9248,
936
  IPAS2LE1OS = 9252,
937
  VAE2OS = 9225,
938
  VALE2OS = 9229,
939
  VMALLS12E1OS = 9230,
940
  VAE3OS = 13321,
941
  VALE3OS = 13325,
942
  ALLE2OS = 9224,
943
  ALLE1OS = 9228,
944
  ALLE3OS = 13320,
945
  RVAE1 = 1073,
946
  RVAAE1 = 1075,
947
  RVALE1 = 1077,
948
  RVAALE1 = 1079,
949
  RVAE1IS = 1041,
950
  RVAAE1IS = 1043,
951
  RVALE1IS = 1045,
952
  RVAALE1IS = 1047,
953
  RVAE1OS = 1065,
954
  RVAAE1OS = 1067,
955
  RVALE1OS = 1069,
956
  RVAALE1OS = 1071,
957
  RIPAS2E1IS = 9218,
958
  RIPAS2LE1IS = 9222,
959
  RIPAS2E1 = 9250,
960
  RIPAS2LE1 = 9254,
961
  RIPAS2E1OS = 9251,
962
  RIPAS2LE1OS = 9255,
963
  RVAE2 = 9265,
964
  RVALE2 = 9269,
965
  RVAE2IS = 9233,
966
  RVALE2IS = 9237,
967
  RVAE2OS = 9257,
968
  RVALE2OS = 9261,
969
  RVAE3 = 13361,
970
  RVALE3 = 13365,
971
  RVAE3IS = 13329,
972
  RVALE3IS = 13333,
973
  RVAE3OS = 13353,
974
  RVALE3OS = 13357,
975
};
976
#endif
977
978
#ifdef GET_TSB_DECL
979
enum TSBValues {
980
  csync = 0,
981
};
982
#endif
983
984
#ifdef GET_AT_DECL
985
const AT *lookupATByName(StringRef Name);
986
const AT *lookupATByEncoding(uint16_t Encoding);
987
#endif
988
989
#ifdef GET_AT_IMPL
990
const AT ATsList[] = {
991
  { "S1E1R", 0x3C0,  {}  }, // 0
992
  { "S1E2R", 0x23C0,  {}  }, // 1
993
  { "S1E3R", 0x33C0,  {}  }, // 2
994
  { "S1E1W", 0x3C1,  {}  }, // 3
995
  { "S1E2W", 0x23C1,  {}  }, // 4
996
  { "S1E3W", 0x33C1,  {}  }, // 5
997
  { "S1E0R", 0x3C2,  {}  }, // 6
998
  { "S1E0W", 0x3C3,  {}  }, // 7
999
  { "S12E1R", 0x23C4,  {}  }, // 8
1000
  { "S12E1W", 0x23C5,  {}  }, // 9
1001
  { "S12E0R", 0x23C6,  {}  }, // 10
1002
  { "S12E0W", 0x23C7,  {}  }, // 11
1003
  { "S1E1RP", 0x3C8,  {AArch64::HasV8_2aOps}  }, // 12
1004
  { "S1E1WP", 0x3C9,  {AArch64::HasV8_2aOps}  }, // 13
1005
 };
1006
1007
40
const AT *lookupATByName(StringRef Name) {
1008
40
  struct IndexType {
1009
40
    const char * Name;
1010
40
    unsigned _index;
1011
40
  };
1012
40
  static const struct IndexType Index[] = {
1013
40
    { "S12E0R", 10 },
1014
40
    { "S12E0W", 11 },
1015
40
    { "S12E1R", 8 },
1016
40
    { "S12E1W", 9 },
1017
40
    { "S1E0R", 6 },
1018
40
    { "S1E0W", 7 },
1019
40
    { "S1E1R", 0 },
1020
40
    { "S1E1RP", 12 },
1021
40
    { "S1E1W", 3 },
1022
40
    { "S1E1WP", 13 },
1023
40
    { "S1E2R", 1 },
1024
40
    { "S1E2W", 4 },
1025
40
    { "S1E3R", 2 },
1026
40
    { "S1E3W", 5 },
1027
40
  };
1028
40
1029
40
  struct KeyType {
1030
40
    std::string Name;
1031
40
  };
1032
40
  KeyType Key = { Name.upper() };
1033
40
  auto Table = makeArrayRef(Index);
1034
40
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1035
160
    [](const IndexType &LHS, const KeyType &RHS) {
1036
160
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1037
160
      if (CmpName < 0) 
return true70
;
1038
90
      if (CmpName > 0) 
return false50
;
1039
40
      return false;
1040
40
    });
1041
40
1042
40
  if (Idx == Table.end() ||
1043
40
      Key.Name != Idx->Name)
1044
0
    return nullptr;
1045
40
  return &ATsList[Idx->_index];
1046
40
}
1047
1048
42
const AT *lookupATByEncoding(uint16_t Encoding) {
1049
42
  struct IndexType {
1050
42
    uint16_t Encoding;
1051
42
    unsigned _index;
1052
42
  };
1053
42
  static const struct IndexType Index[] = {
1054
42
    { 0x3C0, 0 },
1055
42
    { 0x3C1, 3 },
1056
42
    { 0x3C2, 6 },
1057
42
    { 0x3C3, 7 },
1058
42
    { 0x3C8, 12 },
1059
42
    { 0x3C9, 13 },
1060
42
    { 0x23C0, 1 },
1061
42
    { 0x23C1, 4 },
1062
42
    { 0x23C4, 8 },
1063
42
    { 0x23C5, 9 },
1064
42
    { 0x23C6, 10 },
1065
42
    { 0x23C7, 11 },
1066
42
    { 0x33C0, 2 },
1067
42
    { 0x33C1, 5 },
1068
42
  };
1069
42
1070
42
  struct KeyType {
1071
42
    uint16_t Encoding;
1072
42
  };
1073
42
  KeyType Key = { Encoding };
1074
42
  auto Table = makeArrayRef(Index);
1075
42
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1076
168
    [](const IndexType &LHS, const KeyType &RHS) {
1077
168
      if (LHS.Encoding < RHS.Encoding)
1078
75
        return true;
1079
93
      if (LHS.Encoding > RHS.Encoding)
1080
51
        return false;
1081
42
      return false;
1082
42
    });
1083
42
1084
42
  if (Idx == Table.end() ||
1085
42
      Key.Encoding != Idx->Encoding)
1086
0
    return nullptr;
1087
42
  return &ATsList[Idx->_index];
1088
42
}
1089
#endif
1090
1091
#ifdef GET_DB_DECL
1092
const DB *lookupDBByName(StringRef Name);
1093
const DB *lookupDBByEncoding(uint8_t Encoding);
1094
#endif
1095
1096
#ifdef GET_DB_IMPL
1097
const DB DBsList[] = {
1098
  { "oshld", 0x1 }, // 0
1099
  { "oshst", 0x2 }, // 1
1100
  { "osh", 0x3 }, // 2
1101
  { "nshld", 0x5 }, // 3
1102
  { "nshst", 0x6 }, // 4
1103
  { "nsh", 0x7 }, // 5
1104
  { "ishld", 0x9 }, // 6
1105
  { "ishst", 0xA }, // 7
1106
  { "ish", 0xB }, // 8
1107
  { "ld", 0xD }, // 9
1108
  { "st", 0xE }, // 10
1109
  { "sy", 0xF }, // 11
1110
 };
1111
1112
37
const DB *lookupDBByName(StringRef Name) {
1113
37
  struct IndexType {
1114
37
    const char * Name;
1115
37
    unsigned _index;
1116
37
  };
1117
37
  static const struct IndexType Index[] = {
1118
37
    { "ISH", 8 },
1119
37
    { "ISHLD", 6 },
1120
37
    { "ISHST", 7 },
1121
37
    { "LD", 9 },
1122
37
    { "NSH", 5 },
1123
37
    { "NSHLD", 3 },
1124
37
    { "NSHST", 4 },
1125
37
    { "OSH", 2 },
1126
37
    { "OSHLD", 0 },
1127
37
    { "OSHST", 1 },
1128
37
    { "ST", 10 },
1129
37
    { "SY", 11 },
1130
37
  };
1131
37
1132
37
  struct KeyType {
1133
37
    std::string Name;
1134
37
  };
1135
37
  KeyType Key = { Name.upper() };
1136
37
  auto Table = makeArrayRef(Index);
1137
37
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1138
144
    [](const IndexType &LHS, const KeyType &RHS) {
1139
144
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1140
144
      if (CmpName < 0) 
return true51
;
1141
93
      if (CmpName > 0) 
return false62
;
1142
31
      return false;
1143
31
    });
1144
37
1145
37
  if (Idx == Table.end() ||
1146
37
      Key.Name != Idx->Name)
1147
6
    return nullptr;
1148
31
  return &DBsList[Idx->_index];
1149
31
}
1150
1151
186
const DB *lookupDBByEncoding(uint8_t Encoding) {
1152
186
  struct IndexType {
1153
186
    uint8_t Encoding;
1154
186
    unsigned _index;
1155
186
  };
1156
186
  static const struct IndexType Index[] = {
1157
186
    { 0x1, 0 },
1158
186
    { 0x2, 1 },
1159
186
    { 0x3, 2 },
1160
186
    { 0x5, 3 },
1161
186
    { 0x6, 4 },
1162
186
    { 0x7, 5 },
1163
186
    { 0x9, 6 },
1164
186
    { 0xA, 7 },
1165
186
    { 0xB, 8 },
1166
186
    { 0xD, 9 },
1167
186
    { 0xE, 10 },
1168
186
    { 0xF, 11 },
1169
186
  };
1170
186
1171
186
  struct KeyType {
1172
186
    uint8_t Encoding;
1173
186
  };
1174
186
  KeyType Key = { Encoding };
1175
186
  auto Table = makeArrayRef(Index);
1176
186
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1177
709
    [](const IndexType &LHS, const KeyType &RHS) {
1178
709
      if (LHS.Encoding < RHS.Encoding)
1179
306
        return true;
1180
403
      if (LHS.Encoding > RHS.Encoding)
1181
242
        return false;
1182
161
      return false;
1183
161
    });
1184
186
1185
186
  if (Idx == Table.end() ||
1186
186
      Key.Encoding != Idx->Encoding)
1187
25
    return nullptr;
1188
161
  return &DBsList[Idx->_index];
1189
161
}
1190
#endif
1191
1192
#ifdef GET_DC_DECL
1193
const DC *lookupDCByName(StringRef Name);
1194
const DC *lookupDCByEncoding(uint16_t Encoding);
1195
#endif
1196
1197
#ifdef GET_DC_IMPL
1198
const DC DCsList[] = {
1199
  { "ZVA", 0x1BA1,  {}  }, // 0
1200
  { "IVAC", 0x3B1,  {}  }, // 1
1201
  { "ISW", 0x3B2,  {}  }, // 2
1202
  { "CVAC", 0x1BD1,  {}  }, // 3
1203
  { "CSW", 0x3D2,  {}  }, // 4
1204
  { "CVAU", 0x1BD9,  {}  }, // 5
1205
  { "CIVAC", 0x1BF1,  {}  }, // 6
1206
  { "CISW", 0x3F2,  {}  }, // 7
1207
  { "CVAP", 0x1BE1,  {AArch64::HasV8_2aOps}  }, // 8
1208
 };
1209
1210
26
const DC *lookupDCByName(StringRef Name) {
1211
26
  struct IndexType {
1212
26
    const char * Name;
1213
26
    unsigned _index;
1214
26
  };
1215
26
  static const struct IndexType Index[] = {
1216
26
    { "CISW", 7 },
1217
26
    { "CIVAC", 6 },
1218
26
    { "CSW", 4 },
1219
26
    { "CVAC", 3 },
1220
26
    { "CVAP", 8 },
1221
26
    { "CVAU", 5 },
1222
26
    { "ISW", 2 },
1223
26
    { "IVAC", 1 },
1224
26
    { "ZVA", 0 },
1225
26
  };
1226
26
1227
26
  struct KeyType {
1228
26
    std::string Name;
1229
26
  };
1230
26
  KeyType Key = { Name.upper() };
1231
26
  auto Table = makeArrayRef(Index);
1232
26
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1233
90
    [](const IndexType &LHS, const KeyType &RHS) {
1234
90
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1235
90
      if (CmpName < 0) 
return true34
;
1236
56
      if (CmpName > 0) 
return false30
;
1237
26
      return false;
1238
26
    });
1239
26
1240
26
  if (Idx == Table.end() ||
1241
26
      Key.Name != Idx->Name)
1242
0
    return nullptr;
1243
26
  return &DCsList[Idx->_index];
1244
26
}
1245
1246
60
const DC *lookupDCByEncoding(uint16_t Encoding) {
1247
60
  struct IndexType {
1248
60
    uint16_t Encoding;
1249
60
    unsigned _index;
1250
60
  };
1251
60
  static const struct IndexType Index[] = {
1252
60
    { 0x3B1, 1 },
1253
60
    { 0x3B2, 2 },
1254
60
    { 0x3D2, 4 },
1255
60
    { 0x3F2, 7 },
1256
60
    { 0x1BA1, 0 },
1257
60
    { 0x1BD1, 3 },
1258
60
    { 0x1BD9, 5 },
1259
60
    { 0x1BE1, 8 },
1260
60
    { 0x1BF1, 6 },
1261
60
  };
1262
60
1263
60
  struct KeyType {
1264
60
    uint16_t Encoding;
1265
60
  };
1266
60
  KeyType Key = { Encoding };
1267
60
  auto Table = makeArrayRef(Index);
1268
60
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1269
209
    [](const IndexType &LHS, const KeyType &RHS) {
1270
209
      if (LHS.Encoding < RHS.Encoding)
1271
76
        return true;
1272
133
      if (LHS.Encoding > RHS.Encoding)
1273
73
        return false;
1274
60
      return false;
1275
60
    });
1276
60
1277
60
  if (Idx == Table.end() ||
1278
60
      Key.Encoding != Idx->Encoding)
1279
0
    return nullptr;
1280
60
  return &DCsList[Idx->_index];
1281
60
}
1282
#endif
1283
1284
#ifdef GET_EXACTFPIMM_DECL
1285
const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum);
1286
const ExactFPImm *lookupExactFPImmByRepr(StringRef Repr);
1287
#endif
1288
1289
#ifdef GET_EXACTFPIMM_IMPL
1290
const ExactFPImm ExactFPImmsList[] = {
1291
  { "zero", 0x0, "0.0" }, // 0
1292
  { "half", 0x1, "0.5" }, // 1
1293
  { "one", 0x2, "1.0" }, // 2
1294
  { "two", 0x3, "2.0" }, // 3
1295
 };
1296
1297
1.20k
const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum) {
1298
1.20k
  struct IndexType {
1299
1.20k
    uint8_t Enum;
1300
1.20k
    unsigned _index;
1301
1.20k
  };
1302
1.20k
  static const struct IndexType Index[] = {
1303
1.20k
    { 0x0, 0 },
1304
1.20k
    { 0x1, 1 },
1305
1.20k
    { 0x2, 2 },
1306
1.20k
    { 0x3, 3 },
1307
1.20k
  };
1308
1.20k
1309
1.20k
  auto Table = makeArrayRef(Index);
1310
1.20k
  size_t Idx = Enum;
1311
1.20k
  return Idx >= Table.size() ? 
nullptr0
: &ExactFPImmsList[Table[Idx]._index];
1312
1.20k
}
1313
1314
0
const ExactFPImm *lookupExactFPImmByRepr(StringRef Repr) {
1315
0
  struct IndexType {
1316
0
    const char * Repr;
1317
0
    unsigned _index;
1318
0
  };
1319
0
  static const struct IndexType Index[] = {
1320
0
    { "0.0", 0 },
1321
0
    { "0.5", 1 },
1322
0
    { "1.0", 2 },
1323
0
    { "2.0", 3 },
1324
0
  };
1325
0
1326
0
  struct KeyType {
1327
0
    std::string Repr;
1328
0
  };
1329
0
  KeyType Key = { Repr.upper() };
1330
0
  auto Table = makeArrayRef(Index);
1331
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1332
0
    [](const IndexType &LHS, const KeyType &RHS) {
1333
0
      int CmpRepr = StringRef(LHS.Repr).compare(RHS.Repr);
1334
0
      if (CmpRepr < 0) return true;
1335
0
      if (CmpRepr > 0) return false;
1336
0
      return false;
1337
0
    });
1338
0
1339
0
  if (Idx == Table.end() ||
1340
0
      Key.Repr != Idx->Repr)
1341
0
    return nullptr;
1342
0
  return &ExactFPImmsList[Idx->_index];
1343
0
}
1344
#endif
1345
1346
#ifdef GET_IC_DECL
1347
const IC *lookupICByName(StringRef Name);
1348
const IC *lookupICByEncoding(uint16_t Encoding);
1349
#endif
1350
1351
#ifdef GET_IC_IMPL
1352
const IC ICsList[] = {
1353
  { "IALLUIS", 0x388, false }, // 0
1354
  { "IALLU", 0x3A8, false }, // 1
1355
  { "IVAU", 0x1BA9, true }, // 2
1356
 };
1357
1358
12
const IC *lookupICByName(StringRef Name) {
1359
12
  struct IndexType {
1360
12
    const char * Name;
1361
12
    unsigned _index;
1362
12
  };
1363
12
  static const struct IndexType Index[] = {
1364
12
    { "IALLU", 1 },
1365
12
    { "IALLUIS", 0 },
1366
12
    { "IVAU", 2 },
1367
12
  };
1368
12
1369
12
  struct KeyType {
1370
12
    std::string Name;
1371
12
  };
1372
12
  KeyType Key = { Name.upper() };
1373
12
  auto Table = makeArrayRef(Index);
1374
12
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1375
24
    [](const IndexType &LHS, const KeyType &RHS) {
1376
24
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1377
24
      if (CmpName < 0) 
return true8
;
1378
16
      if (CmpName > 0) 
return false5
;
1379
11
      return false;
1380
11
    });
1381
12
1382
12
  if (Idx == Table.end() ||
1383
12
      Key.Name != Idx->Name)
1384
1
    return nullptr;
1385
11
  return &ICsList[Idx->_index];
1386
11
}
1387
1388
21
const IC *lookupICByEncoding(uint16_t Encoding) {
1389
21
  struct IndexType {
1390
21
    uint16_t Encoding;
1391
21
    unsigned _index;
1392
21
  };
1393
21
  static const struct IndexType Index[] = {
1394
21
    { 0x388, 0 },
1395
21
    { 0x3A8, 1 },
1396
21
    { 0x1BA9, 2 },
1397
21
  };
1398
21
1399
21
  struct KeyType {
1400
21
    uint16_t Encoding;
1401
21
  };
1402
21
  KeyType Key = { Encoding };
1403
21
  auto Table = makeArrayRef(Index);
1404
21
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1405
42
    [](const IndexType &LHS, const KeyType &RHS) {
1406
42
      if (LHS.Encoding < RHS.Encoding)
1407
14
        return true;
1408
28
      if (LHS.Encoding > RHS.Encoding)
1409
7
        return false;
1410
21
      return false;
1411
21
    });
1412
21
1413
21
  if (Idx == Table.end() ||
1414
21
      Key.Encoding != Idx->Encoding)
1415
0
    return nullptr;
1416
21
  return &ICsList[Idx->_index];
1417
21
}
1418
#endif
1419
1420
#ifdef GET_ISB_DECL
1421
const ISB *lookupISBByName(StringRef Name);
1422
const ISB *lookupISBByEncoding(uint8_t Encoding);
1423
#endif
1424
1425
#ifdef GET_ISB_IMPL
1426
const ISB ISBsList[] = {
1427
  { "sy", 0xF }, // 0
1428
 };
1429
1430
0
const ISB *lookupISBByName(StringRef Name) {
1431
0
  struct IndexType {
1432
0
    const char * Name;
1433
0
    unsigned _index;
1434
0
  };
1435
0
  static const struct IndexType Index[] = {
1436
0
    { "SY", 0 },
1437
0
  };
1438
0
1439
0
  struct KeyType {
1440
0
    std::string Name;
1441
0
  };
1442
0
  KeyType Key = { Name.upper() };
1443
0
  auto Table = makeArrayRef(Index);
1444
0
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1445
0
    [](const IndexType &LHS, const KeyType &RHS) {
1446
0
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1447
0
      if (CmpName < 0) return true;
1448
0
      if (CmpName > 0) return false;
1449
0
      return false;
1450
0
    });
1451
0
1452
0
  if (Idx == Table.end() ||
1453
0
      Key.Name != Idx->Name)
1454
0
    return nullptr;
1455
0
  return &ISBsList[Idx->_index];
1456
0
}
1457
1458
6
const ISB *lookupISBByEncoding(uint8_t Encoding) {
1459
6
  struct IndexType {
1460
6
    uint8_t Encoding;
1461
6
    unsigned _index;
1462
6
  };
1463
6
  static const struct IndexType Index[] = {
1464
6
    { 0xF, 0 },
1465
6
  };
1466
6
1467
6
  struct KeyType {
1468
6
    uint8_t Encoding;
1469
6
  };
1470
6
  KeyType Key = { Encoding };
1471
6
  auto Table = makeArrayRef(Index);
1472
6
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1473
6
    [](const IndexType &LHS, const KeyType &RHS) {
1474
6
      if (LHS.Encoding < RHS.Encoding)
1475
0
        return true;
1476
6
      if (LHS.Encoding > RHS.Encoding)
1477
6
        return false;
1478
0
      return false;
1479
0
    });
1480
6
1481
6
  if (Idx == Table.end() ||
1482
6
      Key.Encoding != Idx->Encoding)
1483
6
    return nullptr;
1484
0
  return &ISBsList[Idx->_index];
1485
0
}
1486
#endif
1487
1488
#ifdef GET_PRFM_DECL
1489
const PRFM *lookupPRFMByName(StringRef Name);
1490
const PRFM *lookupPRFMByEncoding(uint8_t Encoding);
1491
#endif
1492
1493
#ifdef GET_PRFM_IMPL
1494
const PRFM PRFMsList[] = {
1495
  { "pldl1keep", 0x0 }, // 0
1496
  { "pldl1strm", 0x1 }, // 1
1497
  { "pldl2keep", 0x2 }, // 2
1498
  { "pldl2strm", 0x3 }, // 3
1499
  { "pldl3keep", 0x4 }, // 4
1500
  { "pldl3strm", 0x5 }, // 5
1501
  { "plil1keep", 0x8 }, // 6
1502
  { "plil1strm", 0x9 }, // 7
1503
  { "plil2keep", 0xA }, // 8
1504
  { "plil2strm", 0xB }, // 9
1505
  { "plil3keep", 0xC }, // 10
1506
  { "plil3strm", 0xD }, // 11
1507
  { "pstl1keep", 0x10 }, // 12
1508
  { "pstl1strm", 0x11 }, // 13
1509
  { "pstl2keep", 0x12 }, // 14
1510
  { "pstl2strm", 0x13 }, // 15
1511
  { "pstl3keep", 0x14 }, // 16
1512
  { "pstl3strm", 0x15 }, // 17
1513
 };
1514
1515
41
const PRFM *lookupPRFMByName(StringRef Name) {
1516
41
  struct IndexType {
1517
41
    const char * Name;
1518
41
    unsigned _index;
1519
41
  };
1520
41
  static const struct IndexType Index[] = {
1521
41
    { "PLDL1KEEP", 0 },
1522
41
    { "PLDL1STRM", 1 },
1523
41
    { "PLDL2KEEP", 2 },
1524
41
    { "PLDL2STRM", 3 },
1525
41
    { "PLDL3KEEP", 4 },
1526
41
    { "PLDL3STRM", 5 },
1527
41
    { "PLIL1KEEP", 6 },
1528
41
    { "PLIL1STRM", 7 },
1529
41
    { "PLIL2KEEP", 8 },
1530
41
    { "PLIL2STRM", 9 },
1531
41
    { "PLIL3KEEP", 10 },
1532
41
    { "PLIL3STRM", 11 },
1533
41
    { "PSTL1KEEP", 12 },
1534
41
    { "PSTL1STRM", 13 },
1535
41
    { "PSTL2KEEP", 14 },
1536
41
    { "PSTL2STRM", 15 },
1537
41
    { "PSTL3KEEP", 16 },
1538
41
    { "PSTL3STRM", 17 },
1539
41
  };
1540
41
1541
41
  struct KeyType {
1542
41
    std::string Name;
1543
41
  };
1544
41
  KeyType Key = { Name.upper() };
1545
41
  auto Table = makeArrayRef(Index);
1546
41
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1547
176
    [](const IndexType &LHS, const KeyType &RHS) {
1548
176
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1549
176
      if (CmpName < 0) 
return true76
;
1550
100
      if (CmpName > 0) 
return false60
;
1551
40
      return false;
1552
40
    });
1553
41
1554
41
  if (Idx == Table.end() ||
1555
41
      
Key.Name != Idx->Name40
)
1556
1
    return nullptr;
1557
40
  return &PRFMsList[Idx->_index];
1558
40
}
1559
1560
175
const PRFM *lookupPRFMByEncoding(uint8_t Encoding) {
1561
175
  struct IndexType {
1562
175
    uint8_t Encoding;
1563
175
    unsigned _index;
1564
175
  };
1565
175
  static const struct IndexType Index[] = {
1566
175
    { 0x0, 0 },
1567
175
    { 0x1, 1 },
1568
175
    { 0x2, 2 },
1569
175
    { 0x3, 3 },
1570
175
    { 0x4, 4 },
1571
175
    { 0x5, 5 },
1572
175
    { 0x8, 6 },
1573
175
    { 0x9, 7 },
1574
175
    { 0xA, 8 },
1575
175
    { 0xB, 9 },
1576
175
    { 0xC, 10 },
1577
175
    { 0xD, 11 },
1578
175
    { 0x10, 12 },
1579
175
    { 0x11, 13 },
1580
175
    { 0x12, 14 },
1581
175
    { 0x13, 15 },
1582
175
    { 0x14, 16 },
1583
175
    { 0x15, 17 },
1584
175
  };
1585
175
1586
175
  struct KeyType {
1587
175
    uint8_t Encoding;
1588
175
  };
1589
175
  KeyType Key = { Encoding };
1590
175
  auto Table = makeArrayRef(Index);
1591
175
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1592
764
    [](const IndexType &LHS, const KeyType &RHS) {
1593
764
      if (LHS.Encoding < RHS.Encoding)
1594
313
        return true;
1595
451
      if (LHS.Encoding > RHS.Encoding)
1596
288
        return false;
1597
163
      return false;
1598
163
    });
1599
175
1600
175
  if (Idx == Table.end() ||
1601
175
      
Key.Encoding != Idx->Encoding167
)
1602
12
    return nullptr;
1603
163
  return &PRFMsList[Idx->_index];
1604
163
}
1605
#endif
1606
1607
#ifdef GET_PSB_DECL
1608
const PSB *lookupPSBByName(StringRef Name);
1609
const PSB *lookupPSBByEncoding(uint8_t Encoding);
1610
#endif
1611
1612
#ifdef GET_PSB_IMPL
1613
const PSB PSBsList[] = {
1614
  { "csync", 0x11 }, // 0
1615
 };
1616
1617
2
const PSB *lookupPSBByName(StringRef Name) {
1618
2
  struct IndexType {
1619
2
    const char * Name;
1620
2
    unsigned _index;
1621
2
  };
1622
2
  static const struct IndexType Index[] = {
1623
2
    { "CSYNC", 0 },
1624
2
  };
1625
2
1626
2
  struct KeyType {
1627
2
    std::string Name;
1628
2
  };
1629
2
  KeyType Key = { Name.upper() };
1630
2
  auto Table = makeArrayRef(Index);
1631
2
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1632
2
    [](const IndexType &LHS, const KeyType &RHS) {
1633
2
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1634
2
      if (CmpName < 0) 
return true0
;
1635
2
      if (CmpName > 0) 
return false0
;
1636
2
      return false;
1637
2
    });
1638
2
1639
2
  if (Idx == Table.end() ||
1640
2
      Key.Name != Idx->Name)
1641
0
    return nullptr;
1642
2
  return &PSBsList[Idx->_index];
1643
2
}
1644
1645
12
const PSB *lookupPSBByEncoding(uint8_t Encoding) {
1646
12
  struct IndexType {
1647
12
    uint8_t Encoding;
1648
12
    unsigned _index;
1649
12
  };
1650
12
  static const struct IndexType Index[] = {
1651
12
    { 0x11, 0 },
1652
12
  };
1653
12
1654
12
  struct KeyType {
1655
12
    uint8_t Encoding;
1656
12
  };
1657
12
  KeyType Key = { Encoding };
1658
12
  auto Table = makeArrayRef(Index);
1659
12
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1660
12
    [](const IndexType &LHS, const KeyType &RHS) {
1661
12
      if (LHS.Encoding < RHS.Encoding)
1662
6
        return true;
1663
6
      if (LHS.Encoding > RHS.Encoding)
1664
1
        return false;
1665
5
      return false;
1666
5
    });
1667
12
1668
12
  if (Idx == Table.end() ||
1669
12
      
Key.Encoding != Idx->Encoding6
)
1670
7
    return nullptr;
1671
5
  return &PSBsList[Idx->_index];
1672
5
}
1673
#endif
1674
1675
#ifdef GET_PSTATE_DECL
1676
const PState *lookupPStateByName(StringRef Name);
1677
const PState *lookupPStateByEncoding(uint8_t Encoding);
1678
#endif
1679
1680
#ifdef GET_PSTATE_IMPL
1681
const PState PStatesList[] = {
1682
  { "SPSel", 0x5,  {}  }, // 0
1683
  { "DAIFSet", 0x1E,  {}  }, // 1
1684
  { "DAIFClr", 0x1F,  {}  }, // 2
1685
  { "PAN", 0x4,  {AArch64::HasV8_1aOps}  }, // 3
1686
  { "UAO", 0x3,  {AArch64::HasV8_2aOps}  }, // 4
1687
  { "DIT", 0x1A,  {AArch64::HasV8_4aOps}  }, // 5
1688
 };
1689
1690
2.36k
const PState *lookupPStateByName(StringRef Name) {
1691
2.36k
  struct IndexType {
1692
2.36k
    const char * Name;
1693
2.36k
    unsigned _index;
1694
2.36k
  };
1695
2.36k
  static const struct IndexType Index[] = {
1696
2.36k
    { "DAIFCLR", 2 },
1697
2.36k
    { "DAIFSET", 1 },
1698
2.36k
    { "DIT", 5 },
1699
2.36k
    { "PAN", 3 },
1700
2.36k
    { "SPSEL", 0 },
1701
2.36k
    { "UAO", 4 },
1702
2.36k
  };
1703
2.36k
1704
2.36k
  struct KeyType {
1705
2.36k
    std::string Name;
1706
2.36k
  };
1707
2.36k
  KeyType Key = { Name.upper() };
1708
2.36k
  auto Table = makeArrayRef(Index);
1709
2.36k
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1710
6.98k
    [](const IndexType &LHS, const KeyType &RHS) {
1711
6.98k
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1712
6.98k
      if (CmpName < 0) 
return true3.11k
;
1713
3.87k
      if (CmpName > 0) 
return false3.83k
;
1714
41
      return false;
1715
41
    });
1716
2.36k
1717
2.36k
  if (Idx == Table.end() ||
1718
2.36k
      
Key.Name != Idx->Name2.25k
)
1719
2.32k
    return nullptr;
1720
41
  return &PStatesList[Idx->_index];
1721
41
}
1722
1723
61
const PState *lookupPStateByEncoding(uint8_t Encoding) {
1724
61
  struct IndexType {
1725
61
    uint8_t Encoding;
1726
61
    unsigned _index;
1727
61
  };
1728
61
  static const struct IndexType Index[] = {
1729
61
    { 0x3, 4 },
1730
61
    { 0x4, 3 },
1731
61
    { 0x5, 0 },
1732
61
    { 0x1A, 5 },
1733
61
    { 0x1E, 1 },
1734
61
    { 0x1F, 2 },
1735
61
  };
1736
61
1737
61
  struct KeyType {
1738
61
    uint8_t Encoding;
1739
61
  };
1740
61
  KeyType Key = { Encoding };
1741
61
  auto Table = makeArrayRef(Index);
1742
61
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1743
183
    [](const IndexType &LHS, const KeyType &RHS) {
1744
183
      if (LHS.Encoding < RHS.Encoding)
1745
57
        return true;
1746
126
      if (LHS.Encoding > RHS.Encoding)
1747
73
        return false;
1748
53
      return false;
1749
53
    });
1750
61
1751
61
  if (Idx == Table.end() ||
1752
61
      Key.Encoding != Idx->Encoding)
1753
8
    return nullptr;
1754
53
  return &PStatesList[Idx->_index];
1755
53
}
1756
#endif
1757
1758
#ifdef GET_SVEPREDPAT_DECL
1759
const SVEPREDPAT *lookupSVEPREDPATByName(StringRef Name);
1760
const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint8_t Encoding);
1761
#endif
1762
1763
#ifdef GET_SVEPREDPAT_IMPL
1764
const SVEPREDPAT SVEPREDPATsList[] = {
1765
  { "pow2", 0x0 }, // 0
1766
  { "vl1", 0x1 }, // 1
1767
  { "vl2", 0x2 }, // 2
1768
  { "vl3", 0x3 }, // 3
1769
  { "vl4", 0x4 }, // 4
1770
  { "vl5", 0x5 }, // 5
1771
  { "vl6", 0x6 }, // 6
1772
  { "vl7", 0x7 }, // 7
1773
  { "vl8", 0x8 }, // 8
1774
  { "vl16", 0x9 }, // 9
1775
  { "vl32", 0xA }, // 10
1776
  { "vl64", 0xB }, // 11
1777
  { "vl128", 0xC }, // 12
1778
  { "vl256", 0xD }, // 13
1779
  { "mul4", 0x1D }, // 14
1780
  { "mul3", 0x1E }, // 15
1781
  { "all", 0x1F }, // 16
1782
 };
1783
1784
4.15k
const SVEPREDPAT *lookupSVEPREDPATByName(StringRef Name) {
1785
4.15k
  struct IndexType {
1786
4.15k
    const char * Name;
1787
4.15k
    unsigned _index;
1788
4.15k
  };
1789
4.15k
  static const struct IndexType Index[] = {
1790
4.15k
    { "ALL", 16 },
1791
4.15k
    { "MUL3", 15 },
1792
4.15k
    { "MUL4", 14 },
1793
4.15k
    { "POW2", 0 },
1794
4.15k
    { "VL1", 1 },
1795
4.15k
    { "VL128", 12 },
1796
4.15k
    { "VL16", 9 },
1797
4.15k
    { "VL2", 2 },
1798
4.15k
    { "VL256", 13 },
1799
4.15k
    { "VL3", 3 },
1800
4.15k
    { "VL32", 10 },
1801
4.15k
    { "VL4", 4 },
1802
4.15k
    { "VL5", 5 },
1803
4.15k
    { "VL6", 6 },
1804
4.15k
    { "VL64", 11 },
1805
4.15k
    { "VL7", 7 },
1806
4.15k
    { "VL8", 8 },
1807
4.15k
  };
1808
4.15k
1809
4.15k
  struct KeyType {
1810
4.15k
    std::string Name;
1811
4.15k
  };
1812
4.15k
  KeyType Key = { Name.upper() };
1813
4.15k
  auto Table = makeArrayRef(Index);
1814
4.15k
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1815
18.4k
    [](const IndexType &LHS, const KeyType &RHS) {
1816
18.4k
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1817
18.4k
      if (CmpName < 0) 
return true6.79k
;
1818
11.6k
      if (CmpName > 0) 
return false8.96k
;
1819
2.68k
      return false;
1820
2.68k
    });
1821
4.15k
1822
4.15k
  if (Idx == Table.end() ||
1823
4.15k
      
Key.Name != Idx->Name3.67k
)
1824
1.47k
    return nullptr;
1825
2.68k
  return &SVEPREDPATsList[Idx->_index];
1826
2.68k
}
1827
1828
1.65k
const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint8_t Encoding) {
1829
1.65k
  struct IndexType {
1830
1.65k
    uint8_t Encoding;
1831
1.65k
    unsigned _index;
1832
1.65k
  };
1833
1.65k
  static const struct IndexType Index[] = {
1834
1.65k
    { 0x0, 0 },
1835
1.65k
    { 0x1, 1 },
1836
1.65k
    { 0x2, 2 },
1837
1.65k
    { 0x3, 3 },
1838
1.65k
    { 0x4, 4 },
1839
1.65k
    { 0x5, 5 },
1840
1.65k
    { 0x6, 6 },
1841
1.65k
    { 0x7, 7 },
1842
1.65k
    { 0x8, 8 },
1843
1.65k
    { 0x9, 9 },
1844
1.65k
    { 0xA, 10 },
1845
1.65k
    { 0xB, 11 },
1846
1.65k
    { 0xC, 12 },
1847
1.65k
    { 0xD, 13 },
1848
1.65k
    { 0x1D, 14 },
1849
1.65k
    { 0x1E, 15 },
1850
1.65k
    { 0x1F, 16 },
1851
1.65k
  };
1852
1.65k
1853
1.65k
  struct KeyType {
1854
1.65k
    uint8_t Encoding;
1855
1.65k
  };
1856
1.65k
  KeyType Key = { Encoding };
1857
1.65k
  auto Table = makeArrayRef(Index);
1858
1.65k
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1859
6.99k
    [](const IndexType &LHS, const KeyType &RHS) {
1860
6.99k
      if (LHS.Encoding < RHS.Encoding)
1861
2.80k
        return true;
1862
4.18k
      if (LHS.Encoding > RHS.Encoding)
1863
3.14k
        return false;
1864
1.04k
      return false;
1865
1.04k
    });
1866
1.65k
1867
1.65k
  if (Idx == Table.end() ||
1868
1.65k
      Key.Encoding != Idx->Encoding)
1869
606
    return nullptr;
1870
1.04k
  return &SVEPREDPATsList[Idx->_index];
1871
1.04k
}
1872
#endif
1873
1874
#ifdef GET_SVEPRFM_DECL
1875
const SVEPRFM *lookupSVEPRFMByName(StringRef Name);
1876
const SVEPRFM *lookupSVEPRFMByEncoding(uint8_t Encoding);
1877
#endif
1878
1879
#ifdef GET_SVEPRFM_IMPL
1880
const SVEPRFM SVEPRFMsList[] = {
1881
  { "pldl1keep", 0x0,  {AArch64::FeatureSVE}  }, // 0
1882
  { "pldl1strm", 0x1,  {AArch64::FeatureSVE}  }, // 1
1883
  { "pldl2keep", 0x2,  {AArch64::FeatureSVE}  }, // 2
1884
  { "pldl2strm", 0x3,  {AArch64::FeatureSVE}  }, // 3
1885
  { "pldl3keep", 0x4,  {AArch64::FeatureSVE}  }, // 4
1886
  { "pldl3strm", 0x5,  {AArch64::FeatureSVE}  }, // 5
1887
  { "pstl1keep", 0x8,  {AArch64::FeatureSVE}  }, // 6
1888
  { "pstl1strm", 0x9,  {AArch64::FeatureSVE}  }, // 7
1889
  { "pstl2keep", 0xA,  {AArch64::FeatureSVE}  }, // 8
1890
  { "pstl2strm", 0xB,  {AArch64::FeatureSVE}  }, // 9
1891
  { "pstl3keep", 0xC,  {AArch64::FeatureSVE}  }, // 10
1892
  { "pstl3strm", 0xD,  {AArch64::FeatureSVE}  }, // 11
1893
 };
1894
1895
316
const SVEPRFM *lookupSVEPRFMByName(StringRef Name) {
1896
316
  struct IndexType {
1897
316
    const char * Name;
1898
316
    unsigned _index;
1899
316
  };
1900
316
  static const struct IndexType Index[] = {
1901
316
    { "PLDL1KEEP", 0 },
1902
316
    { "PLDL1STRM", 1 },
1903
316
    { "PLDL2KEEP", 2 },
1904
316
    { "PLDL2STRM", 3 },
1905
316
    { "PLDL3KEEP", 4 },
1906
316
    { "PLDL3STRM", 5 },
1907
316
    { "PSTL1KEEP", 6 },
1908
316
    { "PSTL1STRM", 7 },
1909
316
    { "PSTL2KEEP", 8 },
1910
316
    { "PSTL2STRM", 9 },
1911
316
    { "PSTL3KEEP", 10 },
1912
316
    { "PSTL3STRM", 11 },
1913
316
  };
1914
316
1915
316
  struct KeyType {
1916
316
    std::string Name;
1917
316
  };
1918
316
  KeyType Key = { Name.upper() };
1919
316
  auto Table = makeArrayRef(Index);
1920
316
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1921
1.22k
    [](const IndexType &LHS, const KeyType &RHS) {
1922
1.22k
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1923
1.22k
      if (CmpName < 0) 
return true420
;
1924
808
      if (CmpName > 0) 
return false500
;
1925
308
      return false;
1926
308
    });
1927
316
1928
316
  if (Idx == Table.end() ||
1929
316
      Key.Name != Idx->Name)
1930
8
    return nullptr;
1931
308
  return &SVEPRFMsList[Idx->_index];
1932
308
}
1933
1934
717
const SVEPRFM *lookupSVEPRFMByEncoding(uint8_t Encoding) {
1935
717
  struct IndexType {
1936
717
    uint8_t Encoding;
1937
717
    unsigned _index;
1938
717
  };
1939
717
  static const struct IndexType Index[] = {
1940
717
    { 0x0, 0 },
1941
717
    { 0x1, 1 },
1942
717
    { 0x2, 2 },
1943
717
    { 0x3, 3 },
1944
717
    { 0x4, 4 },
1945
717
    { 0x5, 5 },
1946
717
    { 0x8, 6 },
1947
717
    { 0x9, 7 },
1948
717
    { 0xA, 8 },
1949
717
    { 0xB, 9 },
1950
717
    { 0xC, 10 },
1951
717
    { 0xD, 11 },
1952
717
  };
1953
717
1954
717
  struct KeyType {
1955
717
    uint8_t Encoding;
1956
717
  };
1957
717
  KeyType Key = { Encoding };
1958
717
  auto Table = makeArrayRef(Index);
1959
717
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
1960
2.61k
    [](const IndexType &LHS, const KeyType &RHS) {
1961
2.61k
      if (LHS.Encoding < RHS.Encoding)
1962
1.16k
        return true;
1963
1.44k
      if (LHS.Encoding > RHS.Encoding)
1964
919
        return false;
1965
529
      return false;
1966
529
    });
1967
717
1968
717
  if (Idx == Table.end() ||
1969
717
      
Key.Encoding != Idx->Encoding597
)
1970
188
    return nullptr;
1971
529
  return &SVEPRFMsList[Idx->_index];
1972
529
}
1973
#endif
1974
1975
#ifdef GET_SYSREG_DECL
1976
const SysReg *lookupSysRegByName(StringRef Name);
1977
const SysReg *lookupSysRegByEncoding(uint16_t Encoding);
1978
#endif
1979
1980
#ifdef GET_SYSREG_IMPL
1981
const SysReg SysRegsList[] = {
1982
  { "MDCCSR_EL0", 0x9808, true, false,  {}  }, // 0
1983
  { "DBGDTRRX_EL0", 0x9828, true, false,  {}  }, // 1
1984
  { "MDRAR_EL1", 0x8080, true, false,  {}  }, // 2
1985
  { "OSLSR_EL1", 0x808C, true, false,  {}  }, // 3
1986
  { "DBGAUTHSTATUS_EL1", 0x83F6, true, false,  {}  }, // 4
1987
  { "PMCEID0_EL0", 0xDCE6, true, false,  {}  }, // 5
1988
  { "PMCEID1_EL0", 0xDCE7, true, false,  {}  }, // 6
1989
  { "MIDR_EL1", 0xC000, true, false,  {}  }, // 7
1990
  { "CCSIDR_EL1", 0xC800, true, false,  {}  }, // 8
1991
  { "CCSIDR2_EL1", 0xC802, true, false,  {AArch64::HasV8_3aOps}  }, // 9
1992
  { "CLIDR_EL1", 0xC801, true, false,  {}  }, // 10
1993
  { "CTR_EL0", 0xD801, true, false,  {}  }, // 11
1994
  { "MPIDR_EL1", 0xC005, true, false,  {}  }, // 12
1995
  { "REVIDR_EL1", 0xC006, true, false,  {}  }, // 13
1996
  { "AIDR_EL1", 0xC807, true, false,  {}  }, // 14
1997
  { "DCZID_EL0", 0xD807, true, false,  {}  }, // 15
1998
  { "ID_PFR0_EL1", 0xC008, true, false,  {}  }, // 16
1999
  { "ID_PFR1_EL1", 0xC009, true, false,  {}  }, // 17
2000
  { "ID_DFR0_EL1", 0xC00A, true, false,  {}  }, // 18
2001
  { "ID_AFR0_EL1", 0xC00B, true, false,  {}  }, // 19
2002
  { "ID_MMFR0_EL1", 0xC00C, true, false,  {}  }, // 20
2003
  { "ID_MMFR1_EL1", 0xC00D, true, false,  {}  }, // 21
2004
  { "ID_MMFR2_EL1", 0xC00E, true, false,  {}  }, // 22
2005
  { "ID_MMFR3_EL1", 0xC00F, true, false,  {}  }, // 23
2006
  { "ID_ISAR0_EL1", 0xC010, true, false,  {}  }, // 24
2007
  { "ID_ISAR1_EL1", 0xC011, true, false,  {}  }, // 25
2008
  { "ID_ISAR2_EL1", 0xC012, true, false,  {}  }, // 26
2009
  { "ID_ISAR3_EL1", 0xC013, true, false,  {}  }, // 27
2010
  { "ID_ISAR4_EL1", 0xC014, true, false,  {}  }, // 28
2011
  { "ID_ISAR5_EL1", 0xC015, true, false,  {}  }, // 29
2012
  { "ID_ISAR6_EL1", 0xC017, true, false,  {AArch64::HasV8_2aOps}  }, // 30
2013
  { "ID_AA64PFR0_EL1", 0xC020, true, false,  {}  }, // 31
2014
  { "ID_AA64PFR1_EL1", 0xC021, true, false,  {}  }, // 32
2015
  { "ID_AA64DFR0_EL1", 0xC028, true, false,  {}  }, // 33
2016
  { "ID_AA64DFR1_EL1", 0xC029, true, false,  {}  }, // 34
2017
  { "ID_AA64AFR0_EL1", 0xC02C, true, false,  {}  }, // 35
2018
  { "ID_AA64AFR1_EL1", 0xC02D, true, false,  {}  }, // 36
2019
  { "ID_AA64ISAR0_EL1", 0xC030, true, false,  {}  }, // 37
2020
  { "ID_AA64ISAR1_EL1", 0xC031, true, false,  {}  }, // 38
2021
  { "ID_AA64MMFR0_EL1", 0xC038, true, false,  {}  }, // 39
2022
  { "ID_AA64MMFR1_EL1", 0xC039, true, false,  {}  }, // 40
2023
  { "ID_AA64MMFR2_EL1", 0xC03A, true, false,  {AArch64::HasV8_2aOps}  }, // 41
2024
  { "MVFR0_EL1", 0xC018, true, false,  {}  }, // 42
2025
  { "MVFR1_EL1", 0xC019, true, false,  {}  }, // 43
2026
  { "MVFR2_EL1", 0xC01A, true, false,  {}  }, // 44
2027
  { "RVBAR_EL1", 0xC601, true, false,  {}  }, // 45
2028
  { "RVBAR_EL2", 0xE601, true, false,  {}  }, // 46
2029
  { "RVBAR_EL3", 0xF601, true, false,  {}  }, // 47
2030
  { "ISR_EL1", 0xC608, true, false,  {}  }, // 48
2031
  { "CNTPCT_EL0", 0xDF01, true, false,  {}  }, // 49
2032
  { "CNTVCT_EL0", 0xDF02, true, false,  {}  }, // 50
2033
  { "ID_MMFR4_EL1", 0xC016, true, false,  {}  }, // 51
2034
  { "TRCSTATR", 0x8818, true, false,  {}  }, // 52
2035
  { "TRCIDR8", 0x8806, true, false,  {}  }, // 53
2036
  { "TRCIDR9", 0x880E, true, false,  {}  }, // 54
2037
  { "TRCIDR10", 0x8816, true, false,  {}  }, // 55
2038
  { "TRCIDR11", 0x881E, true, false,  {}  }, // 56
2039
  { "TRCIDR12", 0x8826, true, false,  {}  }, // 57
2040
  { "TRCIDR13", 0x882E, true, false,  {}  }, // 58
2041
  { "TRCIDR0", 0x8847, true, false,  {}  }, // 59
2042
  { "TRCIDR1", 0x884F, true, false,  {}  }, // 60
2043
  { "TRCIDR2", 0x8857, true, false,  {}  }, // 61
2044
  { "TRCIDR3", 0x885F, true, false,  {}  }, // 62
2045
  { "TRCIDR4", 0x8867, true, false,  {}  }, // 63
2046
  { "TRCIDR5", 0x886F, true, false,  {}  }, // 64
2047
  { "TRCIDR6", 0x8877, true, false,  {}  }, // 65
2048
  { "TRCIDR7", 0x887F, true, false,  {}  }, // 66
2049
  { "TRCOSLSR", 0x888C, true, false,  {}  }, // 67
2050
  { "TRCPDSR", 0x88AC, true, false,  {}  }, // 68
2051
  { "TRCDEVAFF0", 0x8BD6, true, false,  {}  }, // 69
2052
  { "TRCDEVAFF1", 0x8BDE, true, false,  {}  }, // 70
2053
  { "TRCLSR", 0x8BEE, true, false,  {}  }, // 71
2054
  { "TRCAUTHSTATUS", 0x8BF6, true, false,  {}  }, // 72
2055
  { "TRCDEVARCH", 0x8BFE, true, false,  {}  }, // 73
2056
  { "TRCDEVID", 0x8B97, true, false,  {}  }, // 74
2057
  { "TRCDEVTYPE", 0x8B9F, true, false,  {}  }, // 75
2058
  { "TRCPIDR4", 0x8BA7, true, false,  {}  }, // 76
2059
  { "TRCPIDR5", 0x8BAF, true, false,  {}  }, // 77
2060
  { "TRCPIDR6", 0x8BB7, true, false,  {}  }, // 78
2061
  { "TRCPIDR7", 0x8BBF, true, false,  {}  }, // 79
2062
  { "TRCPIDR0", 0x8BC7, true, false,  {}  }, // 80
2063
  { "TRCPIDR1", 0x8BCF, true, false,  {}  }, // 81
2064
  { "TRCPIDR2", 0x8BD7, true, false,  {}  }, // 82
2065
  { "TRCPIDR3", 0x8BDF, true, false,  {}  }, // 83
2066
  { "TRCCIDR0", 0x8BE7, true, false,  {}  }, // 84
2067
  { "TRCCIDR1", 0x8BEF, true, false,  {}  }, // 85
2068
  { "TRCCIDR2", 0x8BF7, true, false,  {}  }, // 86
2069
  { "TRCCIDR3", 0x8BFF, true, false,  {}  }, // 87
2070
  { "ICC_IAR1_EL1", 0xC660, true, false,  {}  }, // 88
2071
  { "ICC_IAR0_EL1", 0xC640, true, false,  {}  }, // 89
2072
  { "ICC_HPPIR1_EL1", 0xC662, true, false,  {}  }, // 90
2073
  { "ICC_HPPIR0_EL1", 0xC642, true, false,  {}  }, // 91
2074
  { "ICC_RPR_EL1", 0xC65B, true, false,  {}  }, // 92
2075
  { "ICH_VTR_EL2", 0xE659, true, false,  {}  }, // 93
2076
  { "ICH_EISR_EL2", 0xE65B, true, false,  {}  }, // 94
2077
  { "ICH_ELRSR_EL2", 0xE65D, true, false,  {}  }, // 95
2078
  { "ID_AA64ZFR0_EL1", 0xC024, true, false,  {AArch64::FeatureSVE}  }, // 96
2079
  { "LORID_EL1", 0xC527, true, false,  {AArch64::HasV8_1aOps}  }, // 97
2080
  { "ERRIDR_EL1", 0xC298, true, false,  {AArch64::FeatureRAS}  }, // 98
2081
  { "ERXFR_EL1", 0xC2A0, true, false,  {AArch64::FeatureRAS}  }, // 99
2082
  { "DBGDTRTX_EL0", 0x9828, false, true,  {}  }, // 100
2083
  { "OSLAR_EL1", 0x8084, false, true,  {}  }, // 101
2084
  { "PMSWINC_EL0", 0xDCE4, false, true,  {}  }, // 102
2085
  { "TRCOSLAR", 0x8884, false, true,  {}  }, // 103
2086
  { "TRCLAR", 0x8BE6, false, true,  {}  }, // 104
2087
  { "ICC_EOIR1_EL1", 0xC661, false, true,  {}  }, // 105
2088
  { "ICC_EOIR0_EL1", 0xC641, false, true,  {}  }, // 106
2089
  { "ICC_DIR_EL1", 0xC659, false, true,  {}  }, // 107
2090
  { "ICC_SGI1R_EL1", 0xC65D, false, true,  {}  }, // 108
2091
  { "ICC_ASGI1R_EL1", 0xC65E, false, true,  {}  }, // 109
2092
  { "ICC_SGI0R_EL1", 0xC65F, false, true,  {}  }, // 110
2093
  { "OSDTRRX_EL1", 0x8002, true, true,  {}  }, // 111
2094
  { "OSDTRTX_EL1", 0x801A, true, true,  {}  }, // 112
2095
  { "TEECR32_EL1", 0x9000, true, true,  {}  }, // 113
2096
  { "MDCCINT_EL1", 0x8010, true, true,  {}  }, // 114
2097
  { "MDSCR_EL1", 0x8012, true, true,  {}  }, // 115
2098
  { "DBGDTR_EL0", 0x9820, true, true,  {}  }, // 116
2099
  { "OSECCR_EL1", 0x8032, true, true,  {}  }, // 117
2100
  { "DBGVCR32_EL2", 0xA038, true, true,  {}  }, // 118
2101
  { "DBGBVR0_EL1", 0x8004, true, true,  {}  }, // 119
2102
  { "DBGBVR1_EL1", 0x800C, true, true,  {}  }, // 120
2103
  { "DBGBVR2_EL1", 0x8014, true, true,  {}  }, // 121
2104
  { "DBGBVR3_EL1", 0x801C, true, true,  {}  }, // 122
2105
  { "DBGBVR4_EL1", 0x8024, true, true,  {}  }, // 123
2106
  { "DBGBVR5_EL1", 0x802C, true, true,  {}  }, // 124
2107
  { "DBGBVR6_EL1", 0x8034, true, true,  {}  }, // 125
2108
  { "DBGBVR7_EL1", 0x803C, true, true,  {}  }, // 126
2109
  { "DBGBVR8_EL1", 0x8044, true, true,  {}  }, // 127
2110
  { "DBGBVR9_EL1", 0x804C, true, true,  {}  }, // 128
2111
  { "DBGBVR10_EL1", 0x8054, true, true,  {}  }, // 129
2112
  { "DBGBVR11_EL1", 0x805C, true, true,  {}  }, // 130
2113
  { "DBGBVR12_EL1", 0x8064, true, true,  {}  }, // 131
2114
  { "DBGBVR13_EL1", 0x806C, true, true,  {}  }, // 132
2115
  { "DBGBVR14_EL1", 0x8074, true, true,  {}  }, // 133
2116
  { "DBGBVR15_EL1", 0x807C, true, true,  {}  }, // 134
2117
  { "DBGBCR0_EL1", 0x8005, true, true,  {}  }, // 135
2118
  { "DBGBCR1_EL1", 0x800D, true, true,  {}  }, // 136
2119
  { "DBGBCR2_EL1", 0x8015, true, true,  {}  }, // 137
2120
  { "DBGBCR3_EL1", 0x801D, true, true,  {}  }, // 138
2121
  { "DBGBCR4_EL1", 0x8025, true, true,  {}  }, // 139
2122
  { "DBGBCR5_EL1", 0x802D, true, true,  {}  }, // 140
2123
  { "DBGBCR6_EL1", 0x8035, true, true,  {}  }, // 141
2124
  { "DBGBCR7_EL1", 0x803D, true, true,  {}  }, // 142
2125
  { "DBGBCR8_EL1", 0x8045, true, true,  {}  }, // 143
2126
  { "DBGBCR9_EL1", 0x804D, true, true,  {}  }, // 144
2127
  { "DBGBCR10_EL1", 0x8055, true, true,  {}  }, // 145
2128
  { "DBGBCR11_EL1", 0x805D, true, true,  {}  }, // 146
2129
  { "DBGBCR12_EL1", 0x8065, true, true,  {}  }, // 147
2130
  { "DBGBCR13_EL1", 0x806D, true, true,  {}  }, // 148
2131
  { "DBGBCR14_EL1", 0x8075, true, true,  {}  }, // 149
2132
  { "DBGBCR15_EL1", 0x807D, true, true,  {}  }, // 150
2133
  { "DBGWVR0_EL1", 0x8006, true, true,  {}  }, // 151
2134
  { "DBGWVR1_EL1", 0x800E, true, true,  {}  }, // 152
2135
  { "DBGWVR2_EL1", 0x8016, true, true,  {}  }, // 153
2136
  { "DBGWVR3_EL1", 0x801E, true, true,  {}  }, // 154
2137
  { "DBGWVR4_EL1", 0x8026, true, true,  {}  }, // 155
2138
  { "DBGWVR5_EL1", 0x802E, true, true,  {}  }, // 156
2139
  { "DBGWVR6_EL1", 0x8036, true, true,  {}  }, // 157
2140
  { "DBGWVR7_EL1", 0x803E, true, true,  {}  }, // 158
2141
  { "DBGWVR8_EL1", 0x8046, true, true,  {}  }, // 159
2142
  { "DBGWVR9_EL1", 0x804E, true, true,  {}  }, // 160
2143
  { "DBGWVR10_EL1", 0x8056, true, true,  {}  }, // 161
2144
  { "DBGWVR11_EL1", 0x805E, true, true,  {}  }, // 162
2145
  { "DBGWVR12_EL1", 0x8066, true, true,  {}  }, // 163
2146
  { "DBGWVR13_EL1", 0x806E, true, true,  {}  }, // 164
2147
  { "DBGWVR14_EL1", 0x8076, true, true,  {}  }, // 165
2148
  { "DBGWVR15_EL1", 0x807E, true, true,  {}  }, // 166
2149
  { "DBGWCR0_EL1", 0x8007, true, true,  {}  }, // 167
2150
  { "DBGWCR1_EL1", 0x800F, true, true,  {}  }, // 168
2151
  { "DBGWCR2_EL1", 0x8017, true, true,  {}  }, // 169
2152
  { "DBGWCR3_EL1", 0x801F, true, true,  {}  }, // 170
2153
  { "DBGWCR4_EL1", 0x8027, true, true,  {}  }, // 171
2154
  { "DBGWCR5_EL1", 0x802F, true, true,  {}  }, // 172
2155
  { "DBGWCR6_EL1", 0x8037, true, true,  {}  }, // 173
2156
  { "DBGWCR7_EL1", 0x803F, true, true,  {}  }, // 174
2157
  { "DBGWCR8_EL1", 0x8047, true, true,  {}  }, // 175
2158
  { "DBGWCR9_EL1", 0x804F, true, true,  {}  }, // 176
2159
  { "DBGWCR10_EL1", 0x8057, true, true,  {}  }, // 177
2160
  { "DBGWCR11_EL1", 0x805F, true, true,  {}  }, // 178
2161
  { "DBGWCR12_EL1", 0x8067, true, true,  {}  }, // 179
2162
  { "DBGWCR13_EL1", 0x806F, true, true,  {}  }, // 180
2163
  { "DBGWCR14_EL1", 0x8077, true, true,  {}  }, // 181
2164
  { "DBGWCR15_EL1", 0x807F, true, true,  {}  }, // 182
2165
  { "TEEHBR32_EL1", 0x9080, true, true,  {}  }, // 183
2166
  { "OSDLR_EL1", 0x809C, true, true,  {}  }, // 184
2167
  { "DBGPRCR_EL1", 0x80A4, true, true,  {}  }, // 185
2168
  { "DBGCLAIMSET_EL1", 0x83C6, true, true,  {}  }, // 186
2169
  { "DBGCLAIMCLR_EL1", 0x83CE, true, true,  {}  }, // 187
2170
  { "CSSELR_EL1", 0xD000, true, true,  {}  }, // 188
2171
  { "VPIDR_EL2", 0xE000, true, true,  {}  }, // 189
2172
  { "VMPIDR_EL2", 0xE005, true, true,  {}  }, // 190
2173
  { "CPACR_EL1", 0xC082, true, true,  {}  }, // 191
2174
  { "SCTLR_EL1", 0xC080, true, true,  {}  }, // 192
2175
  { "SCTLR_EL2", 0xE080, true, true,  {}  }, // 193
2176
  { "SCTLR_EL3", 0xF080, true, true,  {}  }, // 194
2177
  { "ACTLR_EL1", 0xC081, true, true,  {}  }, // 195
2178
  { "ACTLR_EL2", 0xE081, true, true,  {}  }, // 196
2179
  { "ACTLR_EL3", 0xF081, true, true,  {}  }, // 197
2180
  { "HCR_EL2", 0xE088, true, true,  {}  }, // 198
2181
  { "SCR_EL3", 0xF088, true, true,  {}  }, // 199
2182
  { "MDCR_EL2", 0xE089, true, true,  {}  }, // 200
2183
  { "SDER32_EL3", 0xF089, true, true,  {}  }, // 201
2184
  { "CPTR_EL2", 0xE08A, true, true,  {}  }, // 202
2185
  { "CPTR_EL3", 0xF08A, true, true,  {}  }, // 203
2186
  { "HSTR_EL2", 0xE08B, true, true,  {}  }, // 204
2187
  { "HACR_EL2", 0xE08F, true, true,  {}  }, // 205
2188
  { "MDCR_EL3", 0xF099, true, true,  {}  }, // 206
2189
  { "TTBR0_EL1", 0xC100, true, true,  {}  }, // 207
2190
  { "TTBR0_EL2", 0xE100, true, true,  {}  }, // 208
2191
  { "TTBR0_EL3", 0xF100, true, true,  {}  }, // 209
2192
  { "TTBR1_EL1", 0xC101, true, true,  {}  }, // 210
2193
  { "TCR_EL1", 0xC102, true, true,  {}  }, // 211
2194
  { "TCR_EL2", 0xE102, true, true,  {}  }, // 212
2195
  { "TCR_EL3", 0xF102, true, true,  {}  }, // 213
2196
  { "VTTBR_EL2", 0xE108, true, true,  {}  }, // 214
2197
  { "VTCR_EL2", 0xE10A, true, true,  {}  }, // 215
2198
  { "DACR32_EL2", 0xE180, true, true,  {}  }, // 216
2199
  { "SPSR_EL1", 0xC200, true, true,  {}  }, // 217
2200
  { "SPSR_EL2", 0xE200, true, true,  {}  }, // 218
2201
  { "SPSR_EL3", 0xF200, true, true,  {}  }, // 219
2202
  { "ELR_EL1", 0xC201, true, true,  {}  }, // 220
2203
  { "ELR_EL2", 0xE201, true, true,  {}  }, // 221
2204
  { "ELR_EL3", 0xF201, true, true,  {}  }, // 222
2205
  { "SP_EL0", 0xC208, true, true,  {}  }, // 223
2206
  { "SP_EL1", 0xE208, true, true,  {}  }, // 224
2207
  { "SP_EL2", 0xF208, true, true,  {}  }, // 225
2208
  { "SPSel", 0xC210, true, true,  {}  }, // 226
2209
  { "NZCV", 0xDA10, true, true,  {}  }, // 227
2210
  { "DAIF", 0xDA11, true, true,  {}  }, // 228
2211
  { "CurrentEL", 0xC212, true, true,  {}  }, // 229
2212
  { "SPSR_irq", 0xE218, true, true,  {}  }, // 230
2213
  { "SPSR_abt", 0xE219, true, true,  {}  }, // 231
2214
  { "SPSR_und", 0xE21A, true, true,  {}  }, // 232
2215
  { "SPSR_fiq", 0xE21B, true, true,  {}  }, // 233
2216
  { "FPCR", 0xDA20, true, true,  {}  }, // 234
2217
  { "FPSR", 0xDA21, true, true,  {}  }, // 235
2218
  { "DSPSR_EL0", 0xDA28, true, true,  {}  }, // 236
2219
  { "DLR_EL0", 0xDA29, true, true,  {}  }, // 237
2220
  { "IFSR32_EL2", 0xE281, true, true,  {}  }, // 238
2221
  { "AFSR0_EL1", 0xC288, true, true,  {}  }, // 239
2222
  { "AFSR0_EL2", 0xE288, true, true,  {}  }, // 240
2223
  { "AFSR0_EL3", 0xF288, true, true,  {}  }, // 241
2224
  { "AFSR1_EL1", 0xC289, true, true,  {}  }, // 242
2225
  { "AFSR1_EL2", 0xE289, true, true,  {}  }, // 243
2226
  { "AFSR1_EL3", 0xF289, true, true,  {}  }, // 244
2227
  { "ESR_EL1", 0xC290, true, true,  {}  }, // 245
2228
  { "ESR_EL2", 0xE290, true, true,  {}  }, // 246
2229
  { "ESR_EL3", 0xF290, true, true,  {}  }, // 247
2230
  { "FPEXC32_EL2", 0xE298, true, true,  {}  }, // 248
2231
  { "FAR_EL1", 0xC300, true, true,  {}  }, // 249
2232
  { "FAR_EL2", 0xE300, true, true,  {}  }, // 250
2233
  { "FAR_EL3", 0xF300, true, true,  {}  }, // 251
2234
  { "HPFAR_EL2", 0xE304, true, true,  {}  }, // 252
2235
  { "PAR_EL1", 0xC3A0, true, true,  {}  }, // 253
2236
  { "PMCR_EL0", 0xDCE0, true, true,  {}  }, // 254
2237
  { "PMCNTENSET_EL0", 0xDCE1, true, true,  {}  }, // 255
2238
  { "PMCNTENCLR_EL0", 0xDCE2, true, true,  {}  }, // 256
2239
  { "PMOVSCLR_EL0", 0xDCE3, true, true,  {}  }, // 257
2240
  { "PMSELR_EL0", 0xDCE5, true, true,  {}  }, // 258
2241
  { "PMCCNTR_EL0", 0xDCE8, true, true,  {}  }, // 259
2242
  { "PMXEVTYPER_EL0", 0xDCE9, true, true,  {}  }, // 260
2243
  { "PMXEVCNTR_EL0", 0xDCEA, true, true,  {}  }, // 261
2244
  { "PMUSERENR_EL0", 0xDCF0, true, true,  {}  }, // 262
2245
  { "PMINTENSET_EL1", 0xC4F1, true, true,  {}  }, // 263
2246
  { "PMINTENCLR_EL1", 0xC4F2, true, true,  {}  }, // 264
2247
  { "PMOVSSET_EL0", 0xDCF3, true, true,  {}  }, // 265
2248
  { "MAIR_EL1", 0xC510, true, true,  {}  }, // 266
2249
  { "MAIR_EL2", 0xE510, true, true,  {}  }, // 267
2250
  { "MAIR_EL3", 0xF510, true, true,  {}  }, // 268
2251
  { "AMAIR_EL1", 0xC518, true, true,  {}  }, // 269
2252
  { "AMAIR_EL2", 0xE518, true, true,  {}  }, // 270
2253
  { "AMAIR_EL3", 0xF518, true, true,  {}  }, // 271
2254
  { "VBAR_EL1", 0xC600, true, true,  {}  }, // 272
2255
  { "VBAR_EL2", 0xE600, true, true,  {}  }, // 273
2256
  { "VBAR_EL3", 0xF600, true, true,  {}  }, // 274
2257
  { "RMR_EL1", 0xC602, true, true,  {}  }, // 275
2258
  { "RMR_EL2", 0xE602, true, true,  {}  }, // 276
2259
  { "RMR_EL3", 0xF602, true, true,  {}  }, // 277
2260
  { "CONTEXTIDR_EL1", 0xC681, true, true,  {}  }, // 278
2261
  { "TPIDR_EL0", 0xDE82, true, true,  {}  }, // 279
2262
  { "TPIDR_EL2", 0xE682, true, true,  {}  }, // 280
2263
  { "TPIDR_EL3", 0xF682, true, true,  {}  }, // 281
2264
  { "TPIDRRO_EL0", 0xDE83, true, true,  {}  }, // 282
2265
  { "TPIDR_EL1", 0xC684, true, true,  {}  }, // 283
2266
  { "CNTFRQ_EL0", 0xDF00, true, true,  {}  }, // 284
2267
  { "CNTVOFF_EL2", 0xE703, true, true,  {}  }, // 285
2268
  { "CNTKCTL_EL1", 0xC708, true, true,  {}  }, // 286
2269
  { "CNTHCTL_EL2", 0xE708, true, true,  {}  }, // 287
2270
  { "CNTP_TVAL_EL0", 0xDF10, true, true,  {}  }, // 288
2271
  { "CNTHP_TVAL_EL2", 0xE710, true, true,  {}  }, // 289
2272
  { "CNTPS_TVAL_EL1", 0xFF10, true, true,  {}  }, // 290
2273
  { "CNTP_CTL_EL0", 0xDF11, true, true,  {}  }, // 291
2274
  { "CNTHP_CTL_EL2", 0xE711, true, true,  {}  }, // 292
2275
  { "CNTPS_CTL_EL1", 0xFF11, true, true,  {}  }, // 293
2276
  { "CNTP_CVAL_EL0", 0xDF12, true, true,  {}  }, // 294
2277
  { "CNTHP_CVAL_EL2", 0xE712, true, true,  {}  }, // 295
2278
  { "CNTPS_CVAL_EL1", 0xFF12, true, true,  {}  }, // 296
2279
  { "CNTV_TVAL_EL0", 0xDF18, true, true,  {}  }, // 297
2280
  { "CNTV_CTL_EL0", 0xDF19, true, true,  {}  }, // 298
2281
  { "CNTV_CVAL_EL0", 0xDF1A, true, true,  {}  }, // 299
2282
  { "PMEVCNTR0_EL0", 0xDF40, true, true,  {}  }, // 300
2283
  { "PMEVCNTR1_EL0", 0xDF41, true, true,  {}  }, // 301
2284
  { "PMEVCNTR2_EL0", 0xDF42, true, true,  {}  }, // 302
2285
  { "PMEVCNTR3_EL0", 0xDF43, true, true,  {}  }, // 303
2286
  { "PMEVCNTR4_EL0", 0xDF44, true, true,  {}  }, // 304
2287
  { "PMEVCNTR5_EL0", 0xDF45, true, true,  {}  }, // 305
2288
  { "PMEVCNTR6_EL0", 0xDF46, true, true,  {}  }, // 306
2289
  { "PMEVCNTR7_EL0", 0xDF47, true, true,  {}  }, // 307
2290
  { "PMEVCNTR8_EL0", 0xDF48, true, true,  {}  }, // 308
2291
  { "PMEVCNTR9_EL0", 0xDF49, true, true,  {}  }, // 309
2292
  { "PMEVCNTR10_EL0", 0xDF4A, true, true,  {}  }, // 310
2293
  { "PMEVCNTR11_EL0", 0xDF4B, true, true,  {}  }, // 311
2294
  { "PMEVCNTR12_EL0", 0xDF4C, true, true,  {}  }, // 312
2295
  { "PMEVCNTR13_EL0", 0xDF4D, true, true,  {}  }, // 313
2296
  { "PMEVCNTR14_EL0", 0xDF4E, true, true,  {}  }, // 314
2297
  { "PMEVCNTR15_EL0", 0xDF4F, true, true,  {}  }, // 315
2298
  { "PMEVCNTR16_EL0", 0xDF50, true, true,  {}  }, // 316
2299
  { "PMEVCNTR17_EL0", 0xDF51, true, true,  {}  }, // 317
2300
  { "PMEVCNTR18_EL0", 0xDF52, true, true,  {}  }, // 318
2301
  { "PMEVCNTR19_EL0", 0xDF53, true, true,  {}  }, // 319
2302
  { "PMEVCNTR20_EL0", 0xDF54, true, true,  {}  }, // 320
2303
  { "PMEVCNTR21_EL0", 0xDF55, true, true,  {}  }, // 321
2304
  { "PMEVCNTR22_EL0", 0xDF56, true, true,  {}  }, // 322
2305
  { "PMEVCNTR23_EL0", 0xDF57, true, true,  {}  }, // 323
2306
  { "PMEVCNTR24_EL0", 0xDF58, true, true,  {}  }, // 324
2307
  { "PMEVCNTR25_EL0", 0xDF59, true, true,  {}  }, // 325
2308
  { "PMEVCNTR26_EL0", 0xDF5A, true, true,  {}  }, // 326
2309
  { "PMEVCNTR27_EL0", 0xDF5B, true, true,  {}  }, // 327
2310
  { "PMEVCNTR28_EL0", 0xDF5C, true, true,  {}  }, // 328
2311
  { "PMEVCNTR29_EL0", 0xDF5D, true, true,  {}  }, // 329
2312
  { "PMEVCNTR30_EL0", 0xDF5E, true, true,  {}  }, // 330
2313
  { "PMCCFILTR_EL0", 0xDF7F, true, true,  {}  }, // 331
2314
  { "PMEVTYPER0_EL0", 0xDF60, true, true,  {}  }, // 332
2315
  { "PMEVTYPER1_EL0", 0xDF61, true, true,  {}  }, // 333
2316
  { "PMEVTYPER2_EL0", 0xDF62, true, true,  {}  }, // 334
2317
  { "PMEVTYPER3_EL0", 0xDF63, true, true,  {}  }, // 335
2318
  { "PMEVTYPER4_EL0", 0xDF64, true, true,  {}  }, // 336
2319
  { "PMEVTYPER5_EL0", 0xDF65, true, true,  {}  }, // 337
2320
  { "PMEVTYPER6_EL0", 0xDF66, true, true,  {}  }, // 338
2321
  { "PMEVTYPER7_EL0", 0xDF67, true, true,  {}  }, // 339
2322
  { "PMEVTYPER8_EL0", 0xDF68, true, true,  {}  }, // 340
2323
  { "PMEVTYPER9_EL0", 0xDF69, true, true,  {}  }, // 341
2324
  { "PMEVTYPER10_EL0", 0xDF6A, true, true,  {}  }, // 342
2325
  { "PMEVTYPER11_EL0", 0xDF6B, true, true,  {}  }, // 343
2326
  { "PMEVTYPER12_EL0", 0xDF6C, true, true,  {}  }, // 344
2327
  { "PMEVTYPER13_EL0", 0xDF6D, true, true,  {}  }, // 345
2328
  { "PMEVTYPER14_EL0", 0xDF6E, true, true,  {}  }, // 346
2329
  { "PMEVTYPER15_EL0", 0xDF6F, true, true,  {}  }, // 347
2330
  { "PMEVTYPER16_EL0", 0xDF70, true, true,  {}  }, // 348
2331
  { "PMEVTYPER17_EL0", 0xDF71, true, true,  {}  }, // 349
2332
  { "PMEVTYPER18_EL0", 0xDF72, true, true,  {}  }, // 350
2333
  { "PMEVTYPER19_EL0", 0xDF73, true, true,  {}  }, // 351
2334
  { "PMEVTYPER20_EL0", 0xDF74, true, true,  {}  }, // 352
2335
  { "PMEVTYPER21_EL0", 0xDF75, true, true,  {}  }, // 353
2336
  { "PMEVTYPER22_EL0", 0xDF76, true, true,  {}  }, // 354
2337
  { "PMEVTYPER23_EL0", 0xDF77, true, true,  {}  }, // 355
2338
  { "PMEVTYPER24_EL0", 0xDF78, true, true,  {}  }, // 356
2339
  { "PMEVTYPER25_EL0", 0xDF79, true, true,  {}  }, // 357
2340
  { "PMEVTYPER26_EL0", 0xDF7A, true, true,  {}  }, // 358
2341
  { "PMEVTYPER27_EL0", 0xDF7B, true, true,  {}  }, // 359
2342
  { "PMEVTYPER28_EL0", 0xDF7C, true, true,  {}  }, // 360
2343
  { "PMEVTYPER29_EL0", 0xDF7D, true, true,  {}  }, // 361
2344
  { "PMEVTYPER30_EL0", 0xDF7E, true, true,  {}  }, // 362
2345
  { "TRCPRGCTLR", 0x8808, true, true,  {}  }, // 363
2346
  { "TRCPROCSELR", 0x8810, true, true,  {}  }, // 364
2347
  { "TRCCONFIGR", 0x8820, true, true,  {}  }, // 365
2348
  { "TRCAUXCTLR", 0x8830, true, true,  {}  }, // 366
2349
  { "TRCEVENTCTL0R", 0x8840, true, true,  {}  }, // 367
2350
  { "TRCEVENTCTL1R", 0x8848, true, true,  {}  }, // 368
2351
  { "TRCSTALLCTLR", 0x8858, true, true,  {}  }, // 369
2352
  { "TRCTSCTLR", 0x8860, true, true,  {}  }, // 370
2353
  { "TRCSYNCPR", 0x8868, true, true,  {}  }, // 371
2354
  { "TRCCCCTLR", 0x8870, true, true,  {}  }, // 372
2355
  { "TRCBBCTLR", 0x8878, true, true,  {}  }, // 373
2356
  { "TRCTRACEIDR", 0x8801, true, true,  {}  }, // 374
2357
  { "TRCQCTLR", 0x8809, true, true,  {}  }, // 375
2358
  { "TRCVICTLR", 0x8802, true, true,  {}  }, // 376
2359
  { "TRCVIIECTLR", 0x880A, true, true,  {}  }, // 377
2360
  { "TRCVISSCTLR", 0x8812, true, true,  {}  }, // 378
2361
  { "TRCVIPCSSCTLR", 0x881A, true, true,  {}  }, // 379
2362
  { "TRCVDCTLR", 0x8842, true, true,  {}  }, // 380
2363
  { "TRCVDSACCTLR", 0x884A, true, true,  {}  }, // 381
2364
  { "TRCVDARCCTLR", 0x8852, true, true,  {}  }, // 382
2365
  { "TRCSEQEVR0", 0x8804, true, true,  {}  }, // 383
2366
  { "TRCSEQEVR1", 0x880C, true, true,  {}  }, // 384
2367
  { "TRCSEQEVR2", 0x8814, true, true,  {}  }, // 385
2368
  { "TRCSEQRSTEVR", 0x8834, true, true,  {}  }, // 386
2369
  { "TRCSEQSTR", 0x883C, true, true,  {}  }, // 387
2370
  { "TRCEXTINSELR", 0x8844, true, true,  {}  }, // 388
2371
  { "TRCCNTRLDVR0", 0x8805, true, true,  {}  }, // 389
2372
  { "TRCCNTRLDVR1", 0x880D, true, true,  {}  }, // 390
2373
  { "TRCCNTRLDVR2", 0x8815, true, true,  {}  }, // 391
2374
  { "TRCCNTRLDVR3", 0x881D, true, true,  {}  }, // 392
2375
  { "TRCCNTCTLR0", 0x8825, true, true,  {}  }, // 393
2376
  { "TRCCNTCTLR1", 0x882D, true, true,  {}  }, // 394
2377
  { "TRCCNTCTLR2", 0x8835, true, true,  {}  }, // 395
2378
  { "TRCCNTCTLR3", 0x883D, true, true,  {}  }, // 396
2379
  { "TRCCNTVR0", 0x8845, true, true,  {}  }, // 397
2380
  { "TRCCNTVR1", 0x884D, true, true,  {}  }, // 398
2381
  { "TRCCNTVR2", 0x8855, true, true,  {}  }, // 399
2382
  { "TRCCNTVR3", 0x885D, true, true,  {}  }, // 400
2383
  { "TRCIMSPEC0", 0x8807, true, true,  {}  }, // 401
2384
  { "TRCIMSPEC1", 0x880F, true, true,  {}  }, // 402
2385
  { "TRCIMSPEC2", 0x8817, true, true,  {}  }, // 403
2386
  { "TRCIMSPEC3", 0x881F, true, true,  {}  }, // 404
2387
  { "TRCIMSPEC4", 0x8827, true, true,  {}  }, // 405
2388
  { "TRCIMSPEC5", 0x882F, true, true,  {}  }, // 406
2389
  { "TRCIMSPEC6", 0x8837, true, true,  {}  }, // 407
2390
  { "TRCIMSPEC7", 0x883F, true, true,  {}  }, // 408
2391
  { "TRCRSCTLR2", 0x8890, true, true,  {}  }, // 409
2392
  { "TRCRSCTLR3", 0x8898, true, true,  {}  }, // 410
2393
  { "TRCRSCTLR4", 0x88A0, true, true,  {}  }, // 411
2394
  { "TRCRSCTLR5", 0x88A8, true, true,  {}  }, // 412
2395
  { "TRCRSCTLR6", 0x88B0, true, true,  {}  }, // 413
2396
  { "TRCRSCTLR7", 0x88B8, true, true,  {}  }, // 414
2397
  { "TRCRSCTLR8", 0x88C0, true, true,  {}  }, // 415
2398
  { "TRCRSCTLR9", 0x88C8, true, true,  {}  }, // 416
2399
  { "TRCRSCTLR10", 0x88D0, true, true,  {}  }, // 417
2400
  { "TRCRSCTLR11", 0x88D8, true, true,  {}  }, // 418
2401
  { "TRCRSCTLR12", 0x88E0, true, true,  {}  }, // 419
2402
  { "TRCRSCTLR13", 0x88E8, true, true,  {}  }, // 420
2403
  { "TRCRSCTLR14", 0x88F0, true, true,  {}  }, // 421
2404
  { "TRCRSCTLR15", 0x88F8, true, true,  {}  }, // 422
2405
  { "TRCRSCTLR16", 0x8881, true, true,  {}  }, // 423
2406
  { "TRCRSCTLR17", 0x8889, true, true,  {}  }, // 424
2407
  { "TRCRSCTLR18", 0x8891, true, true,  {}  }, // 425
2408
  { "TRCRSCTLR19", 0x8899, true, true,  {}  }, // 426
2409
  { "TRCRSCTLR20", 0x88A1, true, true,  {}  }, // 427
2410
  { "TRCRSCTLR21", 0x88A9, true, true,  {}  }, // 428
2411
  { "TRCRSCTLR22", 0x88B1, true, true,  {}  }, // 429
2412
  { "TRCRSCTLR23", 0x88B9, true, true,  {}  }, // 430
2413
  { "TRCRSCTLR24", 0x88C1, true, true,  {}  }, // 431
2414
  { "TRCRSCTLR25", 0x88C9, true, true,  {}  }, // 432
2415
  { "TRCRSCTLR26", 0x88D1, true, true,  {}  }, // 433
2416
  { "TRCRSCTLR27", 0x88D9, true, true,  {}  }, // 434
2417
  { "TRCRSCTLR28", 0x88E1, true, true,  {}  }, // 435
2418
  { "TRCRSCTLR29", 0x88E9, true, true,  {}  }, // 436
2419
  { "TRCRSCTLR30", 0x88F1, true, true,  {}  }, // 437
2420
  { "TRCRSCTLR31", 0x88F9, true, true,  {}  }, // 438
2421
  { "TRCSSCCR0", 0x8882, true, true,  {}  }, // 439
2422
  { "TRCSSCCR1", 0x888A, true, true,  {}  }, // 440
2423
  { "TRCSSCCR2", 0x8892, true, true,  {}  }, // 441
2424
  { "TRCSSCCR3", 0x889A, true, true,  {}  }, // 442
2425
  { "TRCSSCCR4", 0x88A2, true, true,  {}  }, // 443
2426
  { "TRCSSCCR5", 0x88AA, true, true,  {}  }, // 444
2427
  { "TRCSSCCR6", 0x88B2, true, true,  {}  }, // 445
2428
  { "TRCSSCCR7", 0x88BA, true, true,  {}  }, // 446
2429
  { "TRCSSCSR0", 0x88C2, true, true,  {}  }, // 447
2430
  { "TRCSSCSR1", 0x88CA, true, true,  {}  }, // 448
2431
  { "TRCSSCSR2", 0x88D2, true, true,  {}  }, // 449
2432
  { "TRCSSCSR3", 0x88DA, true, true,  {}  }, // 450
2433
  { "TRCSSCSR4", 0x88E2, true, true,  {}  }, // 451
2434
  { "TRCSSCSR5", 0x88EA, true, true,  {}  }, // 452
2435
  { "TRCSSCSR6", 0x88F2, true, true,  {}  }, // 453
2436
  { "TRCSSCSR7", 0x88FA, true, true,  {}  }, // 454
2437
  { "TRCSSPCICR0", 0x8883, true, true,  {}  }, // 455
2438
  { "TRCSSPCICR1", 0x888B, true, true,  {}  }, // 456
2439
  { "TRCSSPCICR2", 0x8893, true, true,  {}  }, // 457
2440
  { "TRCSSPCICR3", 0x889B, true, true,  {}  }, // 458
2441
  { "TRCSSPCICR4", 0x88A3, true, true,  {}  }, // 459
2442
  { "TRCSSPCICR5", 0x88AB, true, true,  {}  }, // 460
2443
  { "TRCSSPCICR6", 0x88B3, true, true,  {}  }, // 461
2444
  { "TRCSSPCICR7", 0x88BB, true, true,  {}  }, // 462
2445
  { "TRCPDCR", 0x88A4, true, true,  {}  }, // 463
2446
  { "TRCACVR0", 0x8900, true, true,  {}  }, // 464
2447
  { "TRCACVR1", 0x8910, true, true,  {}  }, // 465
2448
  { "TRCACVR2", 0x8920, true, true,  {}  }, // 466
2449
  { "TRCACVR3", 0x8930, true, true,  {}  }, // 467
2450
  { "TRCACVR4", 0x8940, true, true,  {}  }, // 468
2451
  { "TRCACVR5", 0x8950, true, true,  {}  }, // 469
2452
  { "TRCACVR6", 0x8960, true, true,  {}  }, // 470
2453
  { "TRCACVR7", 0x8970, true, true,  {}  }, // 471
2454
  { "TRCACVR8", 0x8901, true, true,  {}  }, // 472
2455
  { "TRCACVR9", 0x8911, true, true,  {}  }, // 473
2456
  { "TRCACVR10", 0x8921, true, true,  {}  }, // 474
2457
  { "TRCACVR11", 0x8931, true, true,  {}  }, // 475
2458
  { "TRCACVR12", 0x8941, true, true,  {}  }, // 476
2459
  { "TRCACVR13", 0x8951, true, true,  {}  }, // 477
2460
  { "TRCACVR14", 0x8961, true, true,  {}  }, // 478
2461
  { "TRCACVR15", 0x8971, true, true,  {}  }, // 479
2462
  { "TRCACATR0", 0x8902, true, true,  {}  }, // 480
2463
  { "TRCACATR1", 0x8912, true, true,  {}  }, // 481
2464
  { "TRCACATR2", 0x8922, true, true,  {}  }, // 482
2465
  { "TRCACATR3", 0x8932, true, true,  {}  }, // 483
2466
  { "TRCACATR4", 0x8942, true, true,  {}  }, // 484
2467
  { "TRCACATR5", 0x8952, true, true,  {}  }, // 485
2468
  { "TRCACATR6", 0x8962, true, true,  {}  }, // 486
2469
  { "TRCACATR7", 0x8972, true, true,  {}  }, // 487
2470
  { "TRCACATR8", 0x8903, true, true,  {}  }, // 488
2471
  { "TRCACATR9", 0x8913, true, true,  {}  }, // 489
2472
  { "TRCACATR10", 0x8923, true, true,  {}  }, // 490
2473
  { "TRCACATR11", 0x8933, true, true,  {}  }, // 491
2474
  { "TRCACATR12", 0x8943, true, true,  {}  }, // 492
2475
  { "TRCACATR13", 0x8953, true, true,  {}  }, // 493
2476
  { "TRCACATR14", 0x8963, true, true,  {}  }, // 494
2477
  { "TRCACATR15", 0x8973, true, true,  {}  }, // 495
2478
  { "TRCDVCVR0", 0x8904, true, true,  {}  }, // 496
2479
  { "TRCDVCVR1", 0x8924, true, true,  {}  }, // 497
2480
  { "TRCDVCVR2", 0x8944, true, true,  {}  }, // 498
2481
  { "TRCDVCVR3", 0x8964, true, true,  {}  }, // 499
2482
  { "TRCDVCVR4", 0x8905, true, true,  {}  }, // 500
2483
  { "TRCDVCVR5", 0x8925, true, true,  {}  }, // 501
2484
  { "TRCDVCVR6", 0x8945, true, true,  {}  }, // 502
2485
  { "TRCDVCVR7", 0x8965, true, true,  {}  }, // 503
2486
  { "TRCDVCMR0", 0x8906, true, true,  {}  }, // 504
2487
  { "TRCDVCMR1", 0x8926, true, true,  {}  }, // 505
2488
  { "TRCDVCMR2", 0x8946, true, true,  {}  }, // 506
2489
  { "TRCDVCMR3", 0x8966, true, true,  {}  }, // 507
2490
  { "TRCDVCMR4", 0x8907, true, true,  {}  }, // 508
2491
  { "TRCDVCMR5", 0x8927, true, true,  {}  }, // 509
2492
  { "TRCDVCMR6", 0x8947, true, true,  {}  }, // 510
2493
  { "TRCDVCMR7", 0x8967, true, true,  {}  }, // 511
2494
  { "TRCCIDCVR0", 0x8980, true, true,  {}  }, // 512
2495
  { "TRCCIDCVR1", 0x8990, true, true,  {}  }, // 513
2496
  { "TRCCIDCVR2", 0x89A0, true, true,  {}  }, // 514
2497
  { "TRCCIDCVR3", 0x89B0, true, true,  {}  }, // 515
2498
  { "TRCCIDCVR4", 0x89C0, true, true,  {}  }, // 516
2499
  { "TRCCIDCVR5", 0x89D0, true, true,  {}  }, // 517
2500
  { "TRCCIDCVR6", 0x89E0, true, true,  {}  }, // 518
2501
  { "TRCCIDCVR7", 0x89F0, true, true,  {}  }, // 519
2502
  { "TRCVMIDCVR0", 0x8981, true, true,  {}  }, // 520
2503
  { "TRCVMIDCVR1", 0x8991, true, true,  {}  }, // 521
2504
  { "TRCVMIDCVR2", 0x89A1, true, true,  {}  }, // 522
2505
  { "TRCVMIDCVR3", 0x89B1, true, true,  {}  }, // 523
2506
  { "TRCVMIDCVR4", 0x89C1, true, true,  {}  }, // 524
2507
  { "TRCVMIDCVR5", 0x89D1, true, true,  {}  }, // 525
2508
  { "TRCVMIDCVR6", 0x89E1, true, true,  {}  }, // 526
2509
  { "TRCVMIDCVR7", 0x89F1, true, true,  {}  }, // 527
2510
  { "TRCCIDCCTLR0", 0x8982, true, true,  {}  }, // 528
2511
  { "TRCCIDCCTLR1", 0x898A, true, true,  {}  }, // 529
2512
  { "TRCVMIDCCTLR0", 0x8992, true, true,  {}  }, // 530
2513
  { "TRCVMIDCCTLR1", 0x899A, true, true,  {}  }, // 531
2514
  { "TRCITCTRL", 0x8B84, true, true,  {}  }, // 532
2515
  { "TRCCLAIMSET", 0x8BC6, true, true,  {}  }, // 533
2516
  { "TRCCLAIMCLR", 0x8BCE, true, true,  {}  }, // 534
2517
  { "ICC_BPR1_EL1", 0xC663, true, true,  {}  }, // 535
2518
  { "ICC_BPR0_EL1", 0xC643, true, true,  {}  }, // 536
2519
  { "ICC_PMR_EL1", 0xC230, true, true,  {}  }, // 537
2520
  { "ICC_CTLR_EL1", 0xC664, true, true,  {}  }, // 538
2521
  { "ICC_CTLR_EL3", 0xF664, true, true,  {}  }, // 539
2522
  { "ICC_SRE_EL1", 0xC665, true, true,  {}  }, // 540
2523
  { "ICC_SRE_EL2", 0xE64D, true, true,  {}  }, // 541
2524
  { "ICC_SRE_EL3", 0xF665, true, true,  {}  }, // 542
2525
  { "ICC_IGRPEN0_EL1", 0xC666, true, true,  {}  }, // 543
2526
  { "ICC_IGRPEN1_EL1", 0xC667, true, true,  {}  }, // 544
2527
  { "ICC_IGRPEN1_EL3", 0xF667, true, true,  {}  }, // 545
2528
  { "ICC_SEIEN_EL1", 0xC668, true, true,  {}  }, // 546
2529
  { "ICC_AP0R0_EL1", 0xC644, true, true,  {}  }, // 547
2530
  { "ICC_AP0R1_EL1", 0xC645, true, true,  {}  }, // 548
2531
  { "ICC_AP0R2_EL1", 0xC646, true, true,  {}  }, // 549
2532
  { "ICC_AP0R3_EL1", 0xC647, true, true,  {}  }, // 550
2533
  { "ICC_AP1R0_EL1", 0xC648, true, true,  {}  }, // 551
2534
  { "ICC_AP1R1_EL1", 0xC649, true, true,  {}  }, // 552
2535
  { "ICC_AP1R2_EL1", 0xC64A, true, true,  {}  }, // 553
2536
  { "ICC_AP1R3_EL1", 0xC64B, true, true,  {}  }, // 554
2537
  { "ICH_AP0R0_EL2", 0xE640, true, true,  {}  }, // 555
2538
  { "ICH_AP0R1_EL2", 0xE641, true, true,  {}  }, // 556
2539
  { "ICH_AP0R2_EL2", 0xE642, true, true,  {}  }, // 557
2540
  { "ICH_AP0R3_EL2", 0xE643, true, true,  {}  }, // 558
2541
  { "ICH_AP1R0_EL2", 0xE648, true, true,  {}  }, // 559
2542
  { "ICH_AP1R1_EL2", 0xE649, true, true,  {}  }, // 560
2543
  { "ICH_AP1R2_EL2", 0xE64A, true, true,  {}  }, // 561
2544
  { "ICH_AP1R3_EL2", 0xE64B, true, true,  {}  }, // 562
2545
  { "ICH_HCR_EL2", 0xE658, true, true,  {}  }, // 563
2546
  { "ICH_MISR_EL2", 0xE65A, true, true,  {}  }, // 564
2547
  { "ICH_VMCR_EL2", 0xE65F, true, true,  {}  }, // 565
2548
  { "ICH_VSEIR_EL2", 0xE64C, true, true,  {}  }, // 566
2549
  { "ICH_LR0_EL2", 0xE660, true, true,  {}  }, // 567
2550
  { "ICH_LR1_EL2", 0xE661, true, true,  {}  }, // 568
2551
  { "ICH_LR2_EL2", 0xE662, true, true,  {}  }, // 569
2552
  { "ICH_LR3_EL2", 0xE663, true, true,  {}  }, // 570
2553
  { "ICH_LR4_EL2", 0xE664, true, true,  {}  }, // 571
2554
  { "ICH_LR5_EL2", 0xE665, true, true,  {}  }, // 572
2555
  { "ICH_LR6_EL2", 0xE666, true, true,  {}  }, // 573
2556
  { "ICH_LR7_EL2", 0xE667, true, true,  {}  }, // 574
2557
  { "ICH_LR8_EL2", 0xE668, true, true,  {}  }, // 575
2558
  { "ICH_LR9_EL2", 0xE669, true, true,  {}  }, // 576
2559
  { "ICH_LR10_EL2", 0xE66A, true, true,  {}  }, // 577
2560
  { "ICH_LR11_EL2", 0xE66B, true, true,  {}  }, // 578
2561
  { "ICH_LR12_EL2", 0xE66C, true, true,  {}  }, // 579
2562
  { "ICH_LR13_EL2", 0xE66D, true, true,  {}  }, // 580
2563
  { "ICH_LR14_EL2", 0xE66E, true, true,  {}  }, // 581
2564
  { "ICH_LR15_EL2", 0xE66F, true, true,  {}  }, // 582
2565
  { "PAN", 0xC213, true, true,  {AArch64::HasV8_1aOps}  }, // 583
2566
  { "LORSA_EL1", 0xC520, true, true,  {AArch64::HasV8_1aOps}  }, // 584
2567
  { "LOREA_EL1", 0xC521, true, true,  {AArch64::HasV8_1aOps}  }, // 585
2568
  { "LORN_EL1", 0xC522, true, true,  {AArch64::HasV8_1aOps}  }, // 586
2569
  { "LORC_EL1", 0xC523, true, true,  {AArch64::HasV8_1aOps}  }, // 587
2570
  { "TTBR1_EL2", 0xE101, true, true,  {AArch64::HasV8_1aOps}  }, // 588
2571
  { "CONTEXTIDR_EL2", 0xE681, true, true,  {AArch64::HasV8_1aOps}  }, // 589
2572
  { "CNTHV_TVAL_EL2", 0xE718, true, true,  {AArch64::HasV8_1aOps}  }, // 590
2573
  { "CNTHV_CVAL_EL2", 0xE71A, true, true,  {AArch64::HasV8_1aOps}  }, // 591
2574
  { "CNTHV_CTL_EL2", 0xE719, true, true,  {AArch64::HasV8_1aOps}  }, // 592
2575
  { "SCTLR_EL12", 0xE880, true, true,  {AArch64::HasV8_1aOps}  }, // 593
2576
  { "CPACR_EL12", 0xE882, true, true,  {AArch64::HasV8_1aOps}  }, // 594
2577
  { "TTBR0_EL12", 0xE900, true, true,  {AArch64::HasV8_1aOps}  }, // 595
2578
  { "TTBR1_EL12", 0xE901, true, true,  {AArch64::HasV8_1aOps}  }, // 596
2579
  { "TCR_EL12", 0xE902, true, true,  {AArch64::HasV8_1aOps}  }, // 597
2580
  { "AFSR0_EL12", 0xEA88, true, true,  {AArch64::HasV8_1aOps}  }, // 598
2581
  { "AFSR1_EL12", 0xEA89, true, true,  {AArch64::HasV8_1aOps}  }, // 599
2582
  { "ESR_EL12", 0xEA90, true, true,  {AArch64::HasV8_1aOps}  }, // 600
2583
  { "FAR_EL12", 0xEB00, true, true,  {AArch64::HasV8_1aOps}  }, // 601
2584
  { "MAIR_EL12", 0xED10, true, true,  {AArch64::HasV8_1aOps}  }, // 602
2585
  { "AMAIR_EL12", 0xED18, true, true,  {AArch64::HasV8_1aOps}  }, // 603
2586
  { "VBAR_EL12", 0xEE00, true, true,  {AArch64::HasV8_1aOps}  }, // 604
2587
  { "CONTEXTIDR_EL12", 0xEE81, true, true,  {AArch64::HasV8_1aOps}  }, // 605
2588
  { "CNTKCTL_EL12", 0xEF08, true, true,  {AArch64::HasV8_1aOps}  }, // 606
2589
  { "CNTP_TVAL_EL02", 0xEF10, true, true,  {AArch64::HasV8_1aOps}  }, // 607
2590
  { "CNTP_CTL_EL02", 0xEF11, true, true,  {AArch64::HasV8_1aOps}  }, // 608
2591
  { "CNTP_CVAL_EL02", 0xEF12, true, true,  {AArch64::HasV8_1aOps}  }, // 609
2592
  { "CNTV_TVAL_EL02", 0xEF18, true, true,  {AArch64::HasV8_1aOps}  }, // 610
2593
  { "CNTV_CTL_EL02", 0xEF19, true, true,  {AArch64::HasV8_1aOps}  }, // 611
2594
  { "CNTV_CVAL_EL02", 0xEF1A, true, true,  {AArch64::HasV8_1aOps}  }, // 612
2595
  { "SPSR_EL12", 0xEA00, true, true,  {AArch64::HasV8_1aOps}  }, // 613
2596
  { "ELR_EL12", 0xEA01, true, true,  {AArch64::HasV8_1aOps}  }, // 614
2597
  { "UAO", 0xC214, true, true,  {AArch64::HasV8_2aOps}  }, // 615
2598
  { "PMBLIMITR_EL1", 0xC4D0, true, true,  {AArch64::FeatureSPE}  }, // 616
2599
  { "PMBPTR_EL1", 0xC4D1, true, true,  {AArch64::FeatureSPE}  }, // 617
2600
  { "PMBSR_EL1", 0xC4D3, true, true,  {AArch64::FeatureSPE}  }, // 618
2601
  { "PMBIDR_EL1", 0xC4D7, true, true,  {AArch64::FeatureSPE}  }, // 619
2602
  { "PMSCR_EL2", 0xE4C8, true, true,  {AArch64::FeatureSPE}  }, // 620
2603
  { "PMSCR_EL12", 0xECC8, true, true,  {AArch64::FeatureSPE}  }, // 621
2604
  { "PMSCR_EL1", 0xC4C8, true, true,  {AArch64::FeatureSPE}  }, // 622
2605
  { "PMSICR_EL1", 0xC4CA, true, true,  {AArch64::FeatureSPE}  }, // 623
2606
  { "PMSIRR_EL1", 0xC4CB, true, true,  {AArch64::FeatureSPE}  }, // 624
2607
  { "PMSFCR_EL1", 0xC4CC, true, true,  {AArch64::FeatureSPE}  }, // 625
2608
  { "PMSEVFR_EL1", 0xC4CD, true, true,  {AArch64::FeatureSPE}  }, // 626
2609
  { "PMSLATFR_EL1", 0xC4CE, true, true,  {AArch64::FeatureSPE}  }, // 627
2610
  { "PMSIDR_EL1", 0xC4CF, true, true,  {AArch64::FeatureSPE}  }, // 628
2611
  { "ERRSELR_EL1", 0xC299, true, true,  {AArch64::FeatureRAS}  }, // 629
2612
  { "ERXCTLR_EL1", 0xC2A1, true, true,  {AArch64::FeatureRAS}  }, // 630
2613
  { "ERXSTATUS_EL1", 0xC2A2, true, true,  {AArch64::FeatureRAS}  }, // 631
2614
  { "ERXADDR_EL1", 0xC2A3, true, true,  {AArch64::FeatureRAS}  }, // 632
2615
  { "ERXMISC0_EL1", 0xC2A8, true, true,  {AArch64::FeatureRAS}  }, // 633
2616
  { "ERXMISC1_EL1", 0xC2A9, true, true,  {AArch64::FeatureRAS}  }, // 634
2617
  { "DISR_EL1", 0xC609, true, true,  {AArch64::FeatureRAS}  }, // 635
2618
  { "VDISR_EL2", 0xE609, true, true,  {AArch64::FeatureRAS}  }, // 636
2619
  { "VSESR_EL2", 0xE293, true, true,  {AArch64::FeatureRAS}  }, // 637
2620
  { "APIAKeyLo_EL1", 0xC108, true, true,  {AArch64::HasV8_3aOps}  }, // 638
2621
  { "APIAKeyHi_EL1", 0xC109, true, true,  {AArch64::HasV8_3aOps}  }, // 639
2622
  { "APIBKeyLo_EL1", 0xC10A, true, true,  {AArch64::HasV8_3aOps}  }, // 640
2623
  { "APIBKeyHi_EL1", 0xC10B, true, true,  {AArch64::HasV8_3aOps}  }, // 641
2624
  { "APDAKeyLo_EL1", 0xC110, true, true,  {AArch64::HasV8_3aOps}  }, // 642
2625
  { "APDAKeyHi_EL1", 0xC111, true, true,  {AArch64::HasV8_3aOps}  }, // 643
2626
  { "APDBKeyLo_EL1", 0xC112, true, true,  {AArch64::HasV8_3aOps}  }, // 644
2627
  { "APDBKeyHi_EL1", 0xC113, true, true,  {AArch64::HasV8_3aOps}  }, // 645
2628
  { "APGAKeyLo_EL1", 0xC118, true, true,  {AArch64::HasV8_3aOps}  }, // 646
2629
  { "APGAKeyHi_EL1", 0xC119, true, true,  {AArch64::HasV8_3aOps}  }, // 647
2630
  { "VSTCR_EL2", 0xE132, true, true,  {AArch64::HasV8_4aOps}  }, // 648
2631
  { "VSTTBR_EL2", 0xE130, true, true,  {AArch64::HasV8_4aOps}  }, // 649
2632
  { "CNTHVS_TVAL_EL2", 0xE720, true, true,  {AArch64::HasV8_4aOps}  }, // 650
2633
  { "CNTHVS_CVAL_EL2", 0xE722, true, true,  {AArch64::HasV8_4aOps}  }, // 651
2634
  { "CNTHVS_CTL_EL2", 0xE721, true, true,  {AArch64::HasV8_4aOps}  }, // 652
2635
  { "CNTHPS_TVAL_EL2", 0xE728, true, true,  {AArch64::HasV8_4aOps}  }, // 653
2636
  { "CNTHPS_CVAL_EL2", 0xE72A, true, true,  {AArch64::HasV8_4aOps}  }, // 654
2637
  { "CNTHPS_CTL_EL2", 0xE729, true, true,  {AArch64::HasV8_4aOps}  }, // 655
2638
  { "SDER32_EL2", 0xE099, true, true,  {AArch64::HasV8_4aOps}  }, // 656
2639
  { "ERXPFGCTL_EL1", 0xC2A5, true, true,  {AArch64::HasV8_4aOps}  }, // 657
2640
  { "ERXPFGCDN_EL1", 0xC2A6, true, true,  {AArch64::HasV8_4aOps}  }, // 658
2641
  { "ERXTS_EL1", 0xC2AF, true, true,  {AArch64::HasV8_4aOps}  }, // 659
2642
  { "ERXMISC2_EL1", 0xC2AA, true, true,  {AArch64::HasV8_4aOps}  }, // 660
2643
  { "ERXMISC3_EL1", 0xC2AB, true, true,  {AArch64::HasV8_4aOps}  }, // 661
2644
  { "ERXPFGF_EL1", 0xC2A4, true, false,  {AArch64::HasV8_4aOps}  }, // 662
2645
  { "MPAM0_EL1", 0xC529, true, true,  {AArch64::HasV8_4aOps}  }, // 663
2646
  { "MPAM1_EL1", 0xC528, true, true,  {AArch64::HasV8_4aOps}  }, // 664
2647
  { "MPAM2_EL2", 0xE528, true, true,  {AArch64::HasV8_4aOps}  }, // 665
2648
  { "MPAM3_EL3", 0xF528, true, true,  {AArch64::HasV8_4aOps}  }, // 666
2649
  { "MPAM1_EL12", 0xED28, true, true,  {AArch64::HasV8_4aOps}  }, // 667
2650
  { "MPAMHCR_EL2", 0xE520, true, true,  {AArch64::HasV8_4aOps}  }, // 668
2651
  { "MPAMVPMV_EL2", 0xE521, true, true,  {AArch64::HasV8_4aOps}  }, // 669
2652
  { "MPAMVPM0_EL2", 0xE530, true, true,  {AArch64::HasV8_4aOps}  }, // 670
2653
  { "MPAMVPM1_EL2", 0xE531, true, true,  {AArch64::HasV8_4aOps}  }, // 671
2654
  { "MPAMVPM2_EL2", 0xE532, true, true,  {AArch64::HasV8_4aOps}  }, // 672
2655
  { "MPAMVPM3_EL2", 0xE533, true, true,  {AArch64::HasV8_4aOps}  }, // 673
2656
  { "MPAMVPM4_EL2", 0xE534, true, true,  {AArch64::HasV8_4aOps}  }, // 674
2657
  { "MPAMVPM5_EL2", 0xE535, true, true,  {AArch64::HasV8_4aOps}  }, // 675
2658
  { "MPAMVPM6_EL2", 0xE536, true, true,  {AArch64::HasV8_4aOps}  }, // 676
2659
  { "MPAMVPM7_EL2", 0xE537, true, true,  {AArch64::HasV8_4aOps}  }, // 677
2660
  { "MPAMIDR_EL1", 0xC524, true, false,  {AArch64::HasV8_4aOps}  }, // 678
2661
  { "AMCR_EL0", 0xDE90, true, true,  {AArch64::HasV8_4aOps}  }, // 679
2662
  { "AMCFGR_EL0", 0xDE91, true, false,  {AArch64::HasV8_4aOps}  }, // 680
2663
  { "AMCGCR_EL0", 0xDE92, true, false,  {AArch64::HasV8_4aOps}  }, // 681
2664
  { "AMUSERENR_EL0", 0xDE93, true, true,  {AArch64::HasV8_4aOps}  }, // 682
2665
  { "AMCNTENCLR0_EL0", 0xDE94, true, true,  {AArch64::HasV8_4aOps}  }, // 683
2666
  { "AMCNTENSET0_EL0", 0xDE95, true, true,  {AArch64::HasV8_4aOps}  }, // 684
2667
  { "AMEVCNTR00_EL0", 0xDEA0, true, true,  {AArch64::HasV8_4aOps}  }, // 685
2668
  { "AMEVCNTR01_EL0", 0xDEA1, true, true,  {AArch64::HasV8_4aOps}  }, // 686
2669
  { "AMEVCNTR02_EL0", 0xDEA2, true, true,  {AArch64::HasV8_4aOps}  }, // 687
2670
  { "AMEVCNTR03_EL0", 0xDEA3, true, true,  {AArch64::HasV8_4aOps}  }, // 688
2671
  { "AMEVTYPER00_EL0", 0xDEB0, true, false,  {AArch64::HasV8_4aOps}  }, // 689
2672
  { "AMEVTYPER01_EL0", 0xDEB1, true, false,  {AArch64::HasV8_4aOps}  }, // 690
2673
  { "AMEVTYPER02_EL0", 0xDEB2, true, false,  {AArch64::HasV8_4aOps}  }, // 691
2674
  { "AMEVTYPER03_EL0", 0xDEB3, true, false,  {AArch64::HasV8_4aOps}  }, // 692
2675
  { "AMCNTENCLR1_EL0", 0xDE98, true, true,  {AArch64::HasV8_4aOps}  }, // 693
2676
  { "AMCNTENSET1_EL0", 0xDE99, true, true,  {AArch64::HasV8_4aOps}  }, // 694
2677
  { "AMEVCNTR10_EL0", 0xDEE0, true, true,  {AArch64::HasV8_4aOps}  }, // 695
2678
  { "AMEVCNTR11_EL0", 0xDEE1, true, true,  {AArch64::HasV8_4aOps}  }, // 696
2679
  { "AMEVCNTR12_EL0", 0xDEE2, true, true,  {AArch64::HasV8_4aOps}  }, // 697
2680
  { "AMEVCNTR13_EL0", 0xDEE3, true, true,  {AArch64::HasV8_4aOps}  }, // 698
2681
  { "AMEVCNTR14_EL0", 0xDEE4, true, true,  {AArch64::HasV8_4aOps}  }, // 699
2682
  { "AMEVCNTR15_EL0", 0xDEE5, true, true,  {AArch64::HasV8_4aOps}  }, // 700
2683
  { "AMEVCNTR16_EL0", 0xDEE6, true, true,  {AArch64::HasV8_4aOps}  }, // 701
2684
  { "AMEVCNTR17_EL0", 0xDEE7, true, true,  {AArch64::HasV8_4aOps}  }, // 702
2685
  { "AMEVCNTR18_EL0", 0xDEE8, true, true,  {AArch64::HasV8_4aOps}  }, // 703
2686
  { "AMEVCNTR19_EL0", 0xDEE9, true, true,  {AArch64::HasV8_4aOps}  }, // 704
2687
  { "AMEVCNTR110_EL0", 0xDEEA, true, true,  {AArch64::HasV8_4aOps}  }, // 705
2688
  { "AMEVCNTR111_EL0", 0xDEEB, true, true,  {AArch64::HasV8_4aOps}  }, // 706
2689
  { "AMEVCNTR112_EL0", 0xDEEC, true, true,  {AArch64::HasV8_4aOps}  }, // 707
2690
  { "AMEVCNTR113_EL0", 0xDEED, true, true,  {AArch64::HasV8_4aOps}  }, // 708
2691
  { "AMEVCNTR114_EL0", 0xDEEE, true, true,  {AArch64::HasV8_4aOps}  }, // 709
2692
  { "AMEVCNTR115_EL0", 0xDEEF, true, true,  {AArch64::HasV8_4aOps}  }, // 710
2693
  { "AMEVTYPER10_EL0", 0xDEF0, true, true,  {AArch64::HasV8_4aOps}  }, // 711
2694
  { "AMEVTYPER11_EL0", 0xDEF1, true, true,  {AArch64::HasV8_4aOps}  }, // 712
2695
  { "AMEVTYPER12_EL0", 0xDEF2, true, true,  {AArch64::HasV8_4aOps}  }, // 713
2696
  { "AMEVTYPER13_EL0", 0xDEF3, true, true,  {AArch64::HasV8_4aOps}  }, // 714
2697
  { "AMEVTYPER14_EL0", 0xDEF4, true, true,  {AArch64::HasV8_4aOps}  }, // 715
2698
  { "AMEVTYPER15_EL0", 0xDEF5, true, true,  {AArch64::HasV8_4aOps}  }, // 716
2699
  { "AMEVTYPER16_EL0", 0xDEF6, true, true,  {AArch64::HasV8_4aOps}  }, // 717
2700
  { "AMEVTYPER17_EL0", 0xDEF7, true, true,  {AArch64::HasV8_4aOps}  }, // 718
2701
  { "AMEVTYPER18_EL0", 0xDEF8, true, true,  {AArch64::HasV8_4aOps}  }, // 719
2702
  { "AMEVTYPER19_EL0", 0xDEF9, true, true,  {AArch64::HasV8_4aOps}  }, // 720
2703
  { "AMEVTYPER110_EL0", 0xDEFA, true, true,  {AArch64::HasV8_4aOps}  }, // 721
2704
  { "AMEVTYPER111_EL0", 0xDEFB, true, true,  {AArch64::HasV8_4aOps}  }, // 722
2705
  { "AMEVTYPER112_EL0", 0xDEFC, true, true,  {AArch64::HasV8_4aOps}  }, // 723
2706
  { "AMEVTYPER113_EL0", 0xDEFD, true, true,  {AArch64::HasV8_4aOps}  }, // 724
2707
  { "AMEVTYPER114_EL0", 0xDEFE, true, true,  {AArch64::HasV8_4aOps}  }, // 725
2708
  { "AMEVTYPER115_EL0", 0xDEFF, true, true,  {AArch64::HasV8_4aOps}  }, // 726
2709
  { "TRFCR_EL1", 0xC091, true, true,  {AArch64::HasV8_4aOps}  }, // 727
2710
  { "TRFCR_EL2", 0xE091, true, true,  {AArch64::HasV8_4aOps}  }, // 728
2711
  { "TRFCR_EL12", 0xE891, true, true,  {AArch64::HasV8_4aOps}  }, // 729
2712
  { "DIT", 0xDA15, true, true,  {AArch64::HasV8_4aOps}  }, // 730
2713
  { "VNCR_EL2", 0xE110, true, true,  {AArch64::HasV8_4aOps}  }, // 731
2714
  { "ZCR_EL1", 0xC090, true, true,  {AArch64::FeatureSVE}  }, // 732
2715
  { "ZCR_EL2", 0xE090, true, true,  {AArch64::FeatureSVE}  }, // 733
2716
  { "ZCR_EL3", 0xF090, true, true,  {AArch64::FeatureSVE}  }, // 734
2717
  { "ZCR_EL12", 0xE890, true, true,  {AArch64::FeatureSVE}  }, // 735
2718
  { "CPM_IOACC_CTL_EL3", 0xFF90, true, true,  {AArch64::ProcCyclone}  }, // 736
2719
 };
2720
2721
2.37k
const SysReg *lookupSysRegByName(StringRef Name) {
2722
2.37k
  struct IndexType {
2723
2.37k
    const char * Name;
2724
2.37k
    unsigned _index;
2725
2.37k
  };
2726
2.37k
  static const struct IndexType Index[] = {
2727
2.37k
    { "ACTLR_EL1", 195 },
2728
2.37k
    { "ACTLR_EL2", 196 },
2729
2.37k
    { "ACTLR_EL3", 197 },
2730
2.37k
    { "AFSR0_EL1", 239 },
2731
2.37k
    { "AFSR0_EL12", 598 },
2732
2.37k
    { "AFSR0_EL2", 240 },
2733
2.37k
    { "AFSR0_EL3", 241 },
2734
2.37k
    { "AFSR1_EL1", 242 },
2735
2.37k
    { "AFSR1_EL12", 599 },
2736
2.37k
    { "AFSR1_EL2", 243 },
2737
2.37k
    { "AFSR1_EL3", 244 },
2738
2.37k
    { "AIDR_EL1", 14 },
2739
2.37k
    { "AMAIR_EL1", 269 },
2740
2.37k
    { "AMAIR_EL12", 603 },
2741
2.37k
    { "AMAIR_EL2", 270 },
2742
2.37k
    { "AMAIR_EL3", 271 },
2743
2.37k
    { "AMCFGR_EL0", 680 },
2744
2.37k
    { "AMCGCR_EL0", 681 },
2745
2.37k
    { "AMCNTENCLR0_EL0", 683 },
2746
2.37k
    { "AMCNTENCLR1_EL0", 693 },
2747
2.37k
    { "AMCNTENSET0_EL0", 684 },
2748
2.37k
    { "AMCNTENSET1_EL0", 694 },
2749
2.37k
    { "AMCR_EL0", 679 },
2750
2.37k
    { "AMEVCNTR00_EL0", 685 },
2751
2.37k
    { "AMEVCNTR01_EL0", 686 },
2752
2.37k
    { "AMEVCNTR02_EL0", 687 },
2753
2.37k
    { "AMEVCNTR03_EL0", 688 },
2754
2.37k
    { "AMEVCNTR10_EL0", 695 },
2755
2.37k
    { "AMEVCNTR110_EL0", 705 },
2756
2.37k
    { "AMEVCNTR111_EL0", 706 },
2757
2.37k
    { "AMEVCNTR112_EL0", 707 },
2758
2.37k
    { "AMEVCNTR113_EL0", 708 },
2759
2.37k
    { "AMEVCNTR114_EL0", 709 },
2760
2.37k
    { "AMEVCNTR115_EL0", 710 },
2761
2.37k
    { "AMEVCNTR11_EL0", 696 },
2762
2.37k
    { "AMEVCNTR12_EL0", 697 },
2763
2.37k
    { "AMEVCNTR13_EL0", 698 },
2764
2.37k
    { "AMEVCNTR14_EL0", 699 },
2765
2.37k
    { "AMEVCNTR15_EL0", 700 },
2766
2.37k
    { "AMEVCNTR16_EL0", 701 },
2767
2.37k
    { "AMEVCNTR17_EL0", 702 },
2768
2.37k
    { "AMEVCNTR18_EL0", 703 },
2769
2.37k
    { "AMEVCNTR19_EL0", 704 },
2770
2.37k
    { "AMEVTYPER00_EL0", 689 },
2771
2.37k
    { "AMEVTYPER01_EL0", 690 },
2772
2.37k
    { "AMEVTYPER02_EL0", 691 },
2773
2.37k
    { "AMEVTYPER03_EL0", 692 },
2774
2.37k
    { "AMEVTYPER10_EL0", 711 },
2775
2.37k
    { "AMEVTYPER110_EL0", 721 },
2776
2.37k
    { "AMEVTYPER111_EL0", 722 },
2777
2.37k
    { "AMEVTYPER112_EL0", 723 },
2778
2.37k
    { "AMEVTYPER113_EL0", 724 },
2779
2.37k
    { "AMEVTYPER114_EL0", 725 },
2780
2.37k
    { "AMEVTYPER115_EL0", 726 },
2781
2.37k
    { "AMEVTYPER11_EL0", 712 },
2782
2.37k
    { "AMEVTYPER12_EL0", 713 },
2783
2.37k
    { "AMEVTYPER13_EL0", 714 },
2784
2.37k
    { "AMEVTYPER14_EL0", 715 },
2785
2.37k
    { "AMEVTYPER15_EL0", 716 },
2786
2.37k
    { "AMEVTYPER16_EL0", 717 },
2787
2.37k
    { "AMEVTYPER17_EL0", 718 },
2788
2.37k
    { "AMEVTYPER18_EL0", 719 },
2789
2.37k
    { "AMEVTYPER19_EL0", 720 },
2790
2.37k
    { "AMUSERENR_EL0", 682 },
2791
2.37k
    { "APDAKEYHI_EL1", 643 },
2792
2.37k
    { "APDAKEYLO_EL1", 642 },
2793
2.37k
    { "APDBKEYHI_EL1", 645 },
2794
2.37k
    { "APDBKEYLO_EL1", 644 },
2795
2.37k
    { "APGAKEYHI_EL1", 647 },
2796
2.37k
    { "APGAKEYLO_EL1", 646 },
2797
2.37k
    { "APIAKEYHI_EL1", 639 },
2798
2.37k
    { "APIAKEYLO_EL1", 638 },
2799
2.37k
    { "APIBKEYHI_EL1", 641 },
2800
2.37k
    { "APIBKEYLO_EL1", 640 },
2801
2.37k
    { "CCSIDR2_EL1", 9 },
2802
2.37k
    { "CCSIDR_EL1", 8 },
2803
2.37k
    { "CLIDR_EL1", 10 },
2804
2.37k
    { "CNTFRQ_EL0", 284 },
2805
2.37k
    { "CNTHCTL_EL2", 287 },
2806
2.37k
    { "CNTHPS_CTL_EL2", 655 },
2807
2.37k
    { "CNTHPS_CVAL_EL2", 654 },
2808
2.37k
    { "CNTHPS_TVAL_EL2", 653 },
2809
2.37k
    { "CNTHP_CTL_EL2", 292 },
2810
2.37k
    { "CNTHP_CVAL_EL2", 295 },
2811
2.37k
    { "CNTHP_TVAL_EL2", 289 },
2812
2.37k
    { "CNTHVS_CTL_EL2", 652 },
2813
2.37k
    { "CNTHVS_CVAL_EL2", 651 },
2814
2.37k
    { "CNTHVS_TVAL_EL2", 650 },
2815
2.37k
    { "CNTHV_CTL_EL2", 592 },
2816
2.37k
    { "CNTHV_CVAL_EL2", 591 },
2817
2.37k
    { "CNTHV_TVAL_EL2", 590 },
2818
2.37k
    { "CNTKCTL_EL1", 286 },
2819
2.37k
    { "CNTKCTL_EL12", 606 },
2820
2.37k
    { "CNTPCT_EL0", 49 },
2821
2.37k
    { "CNTPS_CTL_EL1", 293 },
2822
2.37k
    { "CNTPS_CVAL_EL1", 296 },
2823
2.37k
    { "CNTPS_TVAL_EL1", 290 },
2824
2.37k
    { "CNTP_CTL_EL0", 291 },
2825
2.37k
    { "CNTP_CTL_EL02", 608 },
2826
2.37k
    { "CNTP_CVAL_EL0", 294 },
2827
2.37k
    { "CNTP_CVAL_EL02", 609 },
2828
2.37k
    { "CNTP_TVAL_EL0", 288 },
2829
2.37k
    { "CNTP_TVAL_EL02", 607 },
2830
2.37k
    { "CNTVCT_EL0", 50 },
2831
2.37k
    { "CNTVOFF_EL2", 285 },
2832
2.37k
    { "CNTV_CTL_EL0", 298 },
2833
2.37k
    { "CNTV_CTL_EL02", 611 },
2834
2.37k
    { "CNTV_CVAL_EL0", 299 },
2835
2.37k
    { "CNTV_CVAL_EL02", 612 },
2836
2.37k
    { "CNTV_TVAL_EL0", 297 },
2837
2.37k
    { "CNTV_TVAL_EL02", 610 },
2838
2.37k
    { "CONTEXTIDR_EL1", 278 },
2839
2.37k
    { "CONTEXTIDR_EL12", 605 },
2840
2.37k
    { "CONTEXTIDR_EL2", 589 },
2841
2.37k
    { "CPACR_EL1", 191 },
2842
2.37k
    { "CPACR_EL12", 594 },
2843
2.37k
    { "CPM_IOACC_CTL_EL3", 736 },
2844
2.37k
    { "CPTR_EL2", 202 },
2845
2.37k
    { "CPTR_EL3", 203 },
2846
2.37k
    { "CSSELR_EL1", 188 },
2847
2.37k
    { "CTR_EL0", 11 },
2848
2.37k
    { "CURRENTEL", 229 },
2849
2.37k
    { "DACR32_EL2", 216 },
2850
2.37k
    { "DAIF", 228 },
2851
2.37k
    { "DBGAUTHSTATUS_EL1", 4 },
2852
2.37k
    { "DBGBCR0_EL1", 135 },
2853
2.37k
    { "DBGBCR10_EL1", 145 },
2854
2.37k
    { "DBGBCR11_EL1", 146 },
2855
2.37k
    { "DBGBCR12_EL1", 147 },
2856
2.37k
    { "DBGBCR13_EL1", 148 },
2857
2.37k
    { "DBGBCR14_EL1", 149 },
2858
2.37k
    { "DBGBCR15_EL1", 150 },
2859
2.37k
    { "DBGBCR1_EL1", 136 },
2860
2.37k
    { "DBGBCR2_EL1", 137 },
2861
2.37k
    { "DBGBCR3_EL1", 138 },
2862
2.37k
    { "DBGBCR4_EL1", 139 },
2863
2.37k
    { "DBGBCR5_EL1", 140 },
2864
2.37k
    { "DBGBCR6_EL1", 141 },
2865
2.37k
    { "DBGBCR7_EL1", 142 },
2866
2.37k
    { "DBGBCR8_EL1", 143 },
2867
2.37k
    { "DBGBCR9_EL1", 144 },
2868
2.37k
    { "DBGBVR0_EL1", 119 },
2869
2.37k
    { "DBGBVR10_EL1", 129 },
2870
2.37k
    { "DBGBVR11_EL1", 130 },
2871
2.37k
    { "DBGBVR12_EL1", 131 },
2872
2.37k
    { "DBGBVR13_EL1", 132 },
2873
2.37k
    { "DBGBVR14_EL1", 133 },
2874
2.37k
    { "DBGBVR15_EL1", 134 },
2875
2.37k
    { "DBGBVR1_EL1", 120 },
2876
2.37k
    { "DBGBVR2_EL1", 121 },
2877
2.37k
    { "DBGBVR3_EL1", 122 },
2878
2.37k
    { "DBGBVR4_EL1", 123 },
2879
2.37k
    { "DBGBVR5_EL1", 124 },
2880
2.37k
    { "DBGBVR6_EL1", 125 },
2881
2.37k
    { "DBGBVR7_EL1", 126 },
2882
2.37k
    { "DBGBVR8_EL1", 127 },
2883
2.37k
    { "DBGBVR9_EL1", 128 },
2884
2.37k
    { "DBGCLAIMCLR_EL1", 187 },
2885
2.37k
    { "DBGCLAIMSET_EL1", 186 },
2886
2.37k
    { "DBGDTRRX_EL0", 1 },
2887
2.37k
    { "DBGDTRTX_EL0", 100 },
2888
2.37k
    { "DBGDTR_EL0", 116 },
2889
2.37k
    { "DBGPRCR_EL1", 185 },
2890
2.37k
    { "DBGVCR32_EL2", 118 },
2891
2.37k
    { "DBGWCR0_EL1", 167 },
2892
2.37k
    { "DBGWCR10_EL1", 177 },
2893
2.37k
    { "DBGWCR11_EL1", 178 },
2894
2.37k
    { "DBGWCR12_EL1", 179 },
2895
2.37k
    { "DBGWCR13_EL1", 180 },
2896
2.37k
    { "DBGWCR14_EL1", 181 },
2897
2.37k
    { "DBGWCR15_EL1", 182 },
2898
2.37k
    { "DBGWCR1_EL1", 168 },
2899
2.37k
    { "DBGWCR2_EL1", 169 },
2900
2.37k
    { "DBGWCR3_EL1", 170 },
2901
2.37k
    { "DBGWCR4_EL1", 171 },
2902
2.37k
    { "DBGWCR5_EL1", 172 },
2903
2.37k
    { "DBGWCR6_EL1", 173 },
2904
2.37k
    { "DBGWCR7_EL1", 174 },
2905
2.37k
    { "DBGWCR8_EL1", 175 },
2906
2.37k
    { "DBGWCR9_EL1", 176 },
2907
2.37k
    { "DBGWVR0_EL1", 151 },
2908
2.37k
    { "DBGWVR10_EL1", 161 },
2909
2.37k
    { "DBGWVR11_EL1", 162 },
2910
2.37k
    { "DBGWVR12_EL1", 163 },
2911
2.37k
    { "DBGWVR13_EL1", 164 },
2912
2.37k
    { "DBGWVR14_EL1", 165 },
2913
2.37k
    { "DBGWVR15_EL1", 166 },
2914
2.37k
    { "DBGWVR1_EL1", 152 },
2915
2.37k
    { "DBGWVR2_EL1", 153 },
2916
2.37k
    { "DBGWVR3_EL1", 154 },
2917
2.37k
    { "DBGWVR4_EL1", 155 },
2918
2.37k
    { "DBGWVR5_EL1", 156 },
2919
2.37k
    { "DBGWVR6_EL1", 157 },
2920
2.37k
    { "DBGWVR7_EL1", 158 },
2921
2.37k
    { "DBGWVR8_EL1", 159 },
2922
2.37k
    { "DBGWVR9_EL1", 160 },
2923
2.37k
    { "DCZID_EL0", 15 },
2924
2.37k
    { "DISR_EL1", 635 },
2925
2.37k
    { "DIT", 730 },
2926
2.37k
    { "DLR_EL0", 237 },
2927
2.37k
    { "DSPSR_EL0", 236 },
2928
2.37k
    { "ELR_EL1", 220 },
2929
2.37k
    { "ELR_EL12", 614 },
2930
2.37k
    { "ELR_EL2", 221 },
2931
2.37k
    { "ELR_EL3", 222 },
2932
2.37k
    { "ERRIDR_EL1", 98 },
2933
2.37k
    { "ERRSELR_EL1", 629 },
2934
2.37k
    { "ERXADDR_EL1", 632 },
2935
2.37k
    { "ERXCTLR_EL1", 630 },
2936
2.37k
    { "ERXFR_EL1", 99 },
2937
2.37k
    { "ERXMISC0_EL1", 633 },
2938
2.37k
    { "ERXMISC1_EL1", 634 },
2939
2.37k
    { "ERXMISC2_EL1", 660 },
2940
2.37k
    { "ERXMISC3_EL1", 661 },
2941
2.37k
    { "ERXPFGCDN_EL1", 658 },
2942
2.37k
    { "ERXPFGCTL_EL1", 657 },
2943
2.37k
    { "ERXPFGF_EL1", 662 },
2944
2.37k
    { "ERXSTATUS_EL1", 631 },
2945
2.37k
    { "ERXTS_EL1", 659 },
2946
2.37k
    { "ESR_EL1", 245 },
2947
2.37k
    { "ESR_EL12", 600 },
2948
2.37k
    { "ESR_EL2", 246 },
2949
2.37k
    { "ESR_EL3", 247 },
2950
2.37k
    { "FAR_EL1", 249 },
2951
2.37k
    { "FAR_EL12", 601 },
2952
2.37k
    { "FAR_EL2", 250 },
2953
2.37k
    { "FAR_EL3", 251 },
2954
2.37k
    { "FPCR", 234 },
2955
2.37k
    { "FPEXC32_EL2", 248 },
2956
2.37k
    { "FPSR", 235 },
2957
2.37k
    { "HACR_EL2", 205 },
2958
2.37k
    { "HCR_EL2", 198 },
2959
2.37k
    { "HPFAR_EL2", 252 },
2960
2.37k
    { "HSTR_EL2", 204 },
2961
2.37k
    { "ICC_AP0R0_EL1", 547 },
2962
2.37k
    { "ICC_AP0R1_EL1", 548 },
2963
2.37k
    { "ICC_AP0R2_EL1", 549 },
2964
2.37k
    { "ICC_AP0R3_EL1", 550 },
2965
2.37k
    { "ICC_AP1R0_EL1", 551 },
2966
2.37k
    { "ICC_AP1R1_EL1", 552 },
2967
2.37k
    { "ICC_AP1R2_EL1", 553 },
2968
2.37k
    { "ICC_AP1R3_EL1", 554 },
2969
2.37k
    { "ICC_ASGI1R_EL1", 109 },
2970
2.37k
    { "ICC_BPR0_EL1", 536 },
2971
2.37k
    { "ICC_BPR1_EL1", 535 },
2972
2.37k
    { "ICC_CTLR_EL1", 538 },
2973
2.37k
    { "ICC_CTLR_EL3", 539 },
2974
2.37k
    { "ICC_DIR_EL1", 107 },
2975
2.37k
    { "ICC_EOIR0_EL1", 106 },
2976
2.37k
    { "ICC_EOIR1_EL1", 105 },
2977
2.37k
    { "ICC_HPPIR0_EL1", 91 },
2978
2.37k
    { "ICC_HPPIR1_EL1", 90 },
2979
2.37k
    { "ICC_IAR0_EL1", 89 },
2980
2.37k
    { "ICC_IAR1_EL1", 88 },
2981
2.37k
    { "ICC_IGRPEN0_EL1", 543 },
2982
2.37k
    { "ICC_IGRPEN1_EL1", 544 },
2983
2.37k
    { "ICC_IGRPEN1_EL3", 545 },
2984
2.37k
    { "ICC_PMR_EL1", 537 },
2985
2.37k
    { "ICC_RPR_EL1", 92 },
2986
2.37k
    { "ICC_SEIEN_EL1", 546 },
2987
2.37k
    { "ICC_SGI0R_EL1", 110 },
2988
2.37k
    { "ICC_SGI1R_EL1", 108 },
2989
2.37k
    { "ICC_SRE_EL1", 540 },
2990
2.37k
    { "ICC_SRE_EL2", 541 },
2991
2.37k
    { "ICC_SRE_EL3", 542 },
2992
2.37k
    { "ICH_AP0R0_EL2", 555 },
2993
2.37k
    { "ICH_AP0R1_EL2", 556 },
2994
2.37k
    { "ICH_AP0R2_EL2", 557 },
2995
2.37k
    { "ICH_AP0R3_EL2", 558 },
2996
2.37k
    { "ICH_AP1R0_EL2", 559 },
2997
2.37k
    { "ICH_AP1R1_EL2", 560 },
2998
2.37k
    { "ICH_AP1R2_EL2", 561 },
2999
2.37k
    { "ICH_AP1R3_EL2", 562 },
3000
2.37k
    { "ICH_EISR_EL2", 94 },
3001
2.37k
    { "ICH_ELRSR_EL2", 95 },
3002
2.37k
    { "ICH_HCR_EL2", 563 },
3003
2.37k
    { "ICH_LR0_EL2", 567 },
3004
2.37k
    { "ICH_LR10_EL2", 577 },
3005
2.37k
    { "ICH_LR11_EL2", 578 },
3006
2.37k
    { "ICH_LR12_EL2", 579 },
3007
2.37k
    { "ICH_LR13_EL2", 580 },
3008
2.37k
    { "ICH_LR14_EL2", 581 },
3009
2.37k
    { "ICH_LR15_EL2", 582 },
3010
2.37k
    { "ICH_LR1_EL2", 568 },
3011
2.37k
    { "ICH_LR2_EL2", 569 },
3012
2.37k
    { "ICH_LR3_EL2", 570 },
3013
2.37k
    { "ICH_LR4_EL2", 571 },
3014
2.37k
    { "ICH_LR5_EL2", 572 },
3015
2.37k
    { "ICH_LR6_EL2", 573 },
3016
2.37k
    { "ICH_LR7_EL2", 574 },
3017
2.37k
    { "ICH_LR8_EL2", 575 },
3018
2.37k
    { "ICH_LR9_EL2", 576 },
3019
2.37k
    { "ICH_MISR_EL2", 564 },
3020
2.37k
    { "ICH_VMCR_EL2", 565 },
3021
2.37k
    { "ICH_VSEIR_EL2", 566 },
3022
2.37k
    { "ICH_VTR_EL2", 93 },
3023
2.37k
    { "ID_AA64AFR0_EL1", 35 },
3024
2.37k
    { "ID_AA64AFR1_EL1", 36 },
3025
2.37k
    { "ID_AA64DFR0_EL1", 33 },
3026
2.37k
    { "ID_AA64DFR1_EL1", 34 },
3027
2.37k
    { "ID_AA64ISAR0_EL1", 37 },
3028
2.37k
    { "ID_AA64ISAR1_EL1", 38 },
3029
2.37k
    { "ID_AA64MMFR0_EL1", 39 },
3030
2.37k
    { "ID_AA64MMFR1_EL1", 40 },
3031
2.37k
    { "ID_AA64MMFR2_EL1", 41 },
3032
2.37k
    { "ID_AA64PFR0_EL1", 31 },
3033
2.37k
    { "ID_AA64PFR1_EL1", 32 },
3034
2.37k
    { "ID_AA64ZFR0_EL1", 96 },
3035
2.37k
    { "ID_AFR0_EL1", 19 },
3036
2.37k
    { "ID_DFR0_EL1", 18 },
3037
2.37k
    { "ID_ISAR0_EL1", 24 },
3038
2.37k
    { "ID_ISAR1_EL1", 25 },
3039
2.37k
    { "ID_ISAR2_EL1", 26 },
3040
2.37k
    { "ID_ISAR3_EL1", 27 },
3041
2.37k
    { "ID_ISAR4_EL1", 28 },
3042
2.37k
    { "ID_ISAR5_EL1", 29 },
3043
2.37k
    { "ID_ISAR6_EL1", 30 },
3044
2.37k
    { "ID_MMFR0_EL1", 20 },
3045
2.37k
    { "ID_MMFR1_EL1", 21 },
3046
2.37k
    { "ID_MMFR2_EL1", 22 },
3047
2.37k
    { "ID_MMFR3_EL1", 23 },
3048
2.37k
    { "ID_MMFR4_EL1", 51 },
3049
2.37k
    { "ID_PFR0_EL1", 16 },
3050
2.37k
    { "ID_PFR1_EL1", 17 },
3051
2.37k
    { "IFSR32_EL2", 238 },
3052
2.37k
    { "ISR_EL1", 48 },
3053
2.37k
    { "LORC_EL1", 587 },
3054
2.37k
    { "LOREA_EL1", 585 },
3055
2.37k
    { "LORID_EL1", 97 },
3056
2.37k
    { "LORN_EL1", 586 },
3057
2.37k
    { "LORSA_EL1", 584 },
3058
2.37k
    { "MAIR_EL1", 266 },
3059
2.37k
    { "MAIR_EL12", 602 },
3060
2.37k
    { "MAIR_EL2", 267 },
3061
2.37k
    { "MAIR_EL3", 268 },
3062
2.37k
    { "MDCCINT_EL1", 114 },
3063
2.37k
    { "MDCCSR_EL0", 0 },
3064
2.37k
    { "MDCR_EL2", 200 },
3065
2.37k
    { "MDCR_EL3", 206 },
3066
2.37k
    { "MDRAR_EL1", 2 },
3067
2.37k
    { "MDSCR_EL1", 115 },
3068
2.37k
    { "MIDR_EL1", 7 },
3069
2.37k
    { "MPAM0_EL1", 663 },
3070
2.37k
    { "MPAM1_EL1", 664 },
3071
2.37k
    { "MPAM1_EL12", 667 },
3072
2.37k
    { "MPAM2_EL2", 665 },
3073
2.37k
    { "MPAM3_EL3", 666 },
3074
2.37k
    { "MPAMHCR_EL2", 668 },
3075
2.37k
    { "MPAMIDR_EL1", 678 },
3076
2.37k
    { "MPAMVPM0_EL2", 670 },
3077
2.37k
    { "MPAMVPM1_EL2", 671 },
3078
2.37k
    { "MPAMVPM2_EL2", 672 },
3079
2.37k
    { "MPAMVPM3_EL2", 673 },
3080
2.37k
    { "MPAMVPM4_EL2", 674 },
3081
2.37k
    { "MPAMVPM5_EL2", 675 },
3082
2.37k
    { "MPAMVPM6_EL2", 676 },
3083
2.37k
    { "MPAMVPM7_EL2", 677 },
3084
2.37k
    { "MPAMVPMV_EL2", 669 },
3085
2.37k
    { "MPIDR_EL1", 12 },
3086
2.37k
    { "MVFR0_EL1", 42 },
3087
2.37k
    { "MVFR1_EL1", 43 },
3088
2.37k
    { "MVFR2_EL1", 44 },
3089
2.37k
    { "NZCV", 227 },
3090
2.37k
    { "OSDLR_EL1", 184 },
3091
2.37k
    { "OSDTRRX_EL1", 111 },
3092
2.37k
    { "OSDTRTX_EL1", 112 },
3093
2.37k
    { "OSECCR_EL1", 117 },
3094
2.37k
    { "OSLAR_EL1", 101 },
3095
2.37k
    { "OSLSR_EL1", 3 },
3096
2.37k
    { "PAN", 583 },
3097
2.37k
    { "PAR_EL1", 253 },
3098
2.37k
    { "PMBIDR_EL1", 619 },
3099
2.37k
    { "PMBLIMITR_EL1", 616 },
3100
2.37k
    { "PMBPTR_EL1", 617 },
3101
2.37k
    { "PMBSR_EL1", 618 },
3102
2.37k
    { "PMCCFILTR_EL0", 331 },
3103
2.37k
    { "PMCCNTR_EL0", 259 },
3104
2.37k
    { "PMCEID0_EL0", 5 },
3105
2.37k
    { "PMCEID1_EL0", 6 },
3106
2.37k
    { "PMCNTENCLR_EL0", 256 },
3107
2.37k
    { "PMCNTENSET_EL0", 255 },
3108
2.37k
    { "PMCR_EL0", 254 },
3109
2.37k
    { "PMEVCNTR0_EL0", 300 },
3110
2.37k
    { "PMEVCNTR10_EL0", 310 },
3111
2.37k
    { "PMEVCNTR11_EL0", 311 },
3112
2.37k
    { "PMEVCNTR12_EL0", 312 },
3113
2.37k
    { "PMEVCNTR13_EL0", 313 },
3114
2.37k
    { "PMEVCNTR14_EL0", 314 },
3115
2.37k
    { "PMEVCNTR15_EL0", 315 },
3116
2.37k
    { "PMEVCNTR16_EL0", 316 },
3117
2.37k
    { "PMEVCNTR17_EL0", 317 },
3118
2.37k
    { "PMEVCNTR18_EL0", 318 },
3119
2.37k
    { "PMEVCNTR19_EL0", 319 },
3120
2.37k
    { "PMEVCNTR1_EL0", 301 },
3121
2.37k
    { "PMEVCNTR20_EL0", 320 },
3122
2.37k
    { "PMEVCNTR21_EL0", 321 },
3123
2.37k
    { "PMEVCNTR22_EL0", 322 },
3124
2.37k
    { "PMEVCNTR23_EL0", 323 },
3125
2.37k
    { "PMEVCNTR24_EL0", 324 },
3126
2.37k
    { "PMEVCNTR25_EL0", 325 },
3127
2.37k
    { "PMEVCNTR26_EL0", 326 },
3128
2.37k
    { "PMEVCNTR27_EL0", 327 },
3129
2.37k
    { "PMEVCNTR28_EL0", 328 },
3130
2.37k
    { "PMEVCNTR29_EL0", 329 },
3131
2.37k
    { "PMEVCNTR2_EL0", 302 },
3132
2.37k
    { "PMEVCNTR30_EL0", 330 },
3133
2.37k
    { "PMEVCNTR3_EL0", 303 },
3134
2.37k
    { "PMEVCNTR4_EL0", 304 },
3135
2.37k
    { "PMEVCNTR5_EL0", 305 },
3136
2.37k
    { "PMEVCNTR6_EL0", 306 },
3137
2.37k
    { "PMEVCNTR7_EL0", 307 },
3138
2.37k
    { "PMEVCNTR8_EL0", 308 },
3139
2.37k
    { "PMEVCNTR9_EL0", 309 },
3140
2.37k
    { "PMEVTYPER0_EL0", 332 },
3141
2.37k
    { "PMEVTYPER10_EL0", 342 },
3142
2.37k
    { "PMEVTYPER11_EL0", 343 },
3143
2.37k
    { "PMEVTYPER12_EL0", 344 },
3144
2.37k
    { "PMEVTYPER13_EL0", 345 },
3145
2.37k
    { "PMEVTYPER14_EL0", 346 },
3146
2.37k
    { "PMEVTYPER15_EL0", 347 },
3147
2.37k
    { "PMEVTYPER16_EL0", 348 },
3148
2.37k
    { "PMEVTYPER17_EL0", 349 },
3149
2.37k
    { "PMEVTYPER18_EL0", 350 },
3150
2.37k
    { "PMEVTYPER19_EL0", 351 },
3151
2.37k
    { "PMEVTYPER1_EL0", 333 },
3152
2.37k
    { "PMEVTYPER20_EL0", 352 },
3153
2.37k
    { "PMEVTYPER21_EL0", 353 },
3154
2.37k
    { "PMEVTYPER22_EL0", 354 },
3155
2.37k
    { "PMEVTYPER23_EL0", 355 },
3156
2.37k
    { "PMEVTYPER24_EL0", 356 },
3157
2.37k
    { "PMEVTYPER25_EL0", 357 },
3158
2.37k
    { "PMEVTYPER26_EL0", 358 },
3159
2.37k
    { "PMEVTYPER27_EL0", 359 },
3160
2.37k
    { "PMEVTYPER28_EL0", 360 },
3161
2.37k
    { "PMEVTYPER29_EL0", 361 },
3162
2.37k
    { "PMEVTYPER2_EL0", 334 },
3163
2.37k
    { "PMEVTYPER30_EL0", 362 },
3164
2.37k
    { "PMEVTYPER3_EL0", 335 },
3165
2.37k
    { "PMEVTYPER4_EL0", 336 },
3166
2.37k
    { "PMEVTYPER5_EL0", 337 },
3167
2.37k
    { "PMEVTYPER6_EL0", 338 },
3168
2.37k
    { "PMEVTYPER7_EL0", 339 },
3169
2.37k
    { "PMEVTYPER8_EL0", 340 },
3170
2.37k
    { "PMEVTYPER9_EL0", 341 },
3171
2.37k
    { "PMINTENCLR_EL1", 264 },
3172
2.37k
    { "PMINTENSET_EL1", 263 },
3173
2.37k
    { "PMOVSCLR_EL0", 257 },
3174
2.37k
    { "PMOVSSET_EL0", 265 },
3175
2.37k
    { "PMSCR_EL1", 622 },
3176
2.37k
    { "PMSCR_EL12", 621 },
3177
2.37k
    { "PMSCR_EL2", 620 },
3178
2.37k
    { "PMSELR_EL0", 258 },
3179
2.37k
    { "PMSEVFR_EL1", 626 },
3180
2.37k
    { "PMSFCR_EL1", 625 },
3181
2.37k
    { "PMSICR_EL1", 623 },
3182
2.37k
    { "PMSIDR_EL1", 628 },
3183
2.37k
    { "PMSIRR_EL1", 624 },
3184
2.37k
    { "PMSLATFR_EL1", 627 },
3185
2.37k
    { "PMSWINC_EL0", 102 },
3186
2.37k
    { "PMUSERENR_EL0", 262 },
3187
2.37k
    { "PMXEVCNTR_EL0", 261 },
3188
2.37k
    { "PMXEVTYPER_EL0", 260 },
3189
2.37k
    { "REVIDR_EL1", 13 },
3190
2.37k
    { "RMR_EL1", 275 },
3191
2.37k
    { "RMR_EL2", 276 },
3192
2.37k
    { "RMR_EL3", 277 },
3193
2.37k
    { "RVBAR_EL1", 45 },
3194
2.37k
    { "RVBAR_EL2", 46 },
3195
2.37k
    { "RVBAR_EL3", 47 },
3196
2.37k
    { "SCR_EL3", 199 },
3197
2.37k
    { "SCTLR_EL1", 192 },
3198
2.37k
    { "SCTLR_EL12", 593 },
3199
2.37k
    { "SCTLR_EL2", 193 },
3200
2.37k
    { "SCTLR_EL3", 194 },
3201
2.37k
    { "SDER32_EL2", 656 },
3202
2.37k
    { "SDER32_EL3", 201 },
3203
2.37k
    { "SPSEL", 226 },
3204
2.37k
    { "SPSR_ABT", 231 },
3205
2.37k
    { "SPSR_EL1", 217 },
3206
2.37k
    { "SPSR_EL12", 613 },
3207
2.37k
    { "SPSR_EL2", 218 },
3208
2.37k
    { "SPSR_EL3", 219 },
3209
2.37k
    { "SPSR_FIQ", 233 },
3210
2.37k
    { "SPSR_IRQ", 230 },
3211
2.37k
    { "SPSR_UND", 232 },
3212
2.37k
    { "SP_EL0", 223 },
3213
2.37k
    { "SP_EL1", 224 },
3214
2.37k
    { "SP_EL2", 225 },
3215
2.37k
    { "TCR_EL1", 211 },
3216
2.37k
    { "TCR_EL12", 597 },
3217
2.37k
    { "TCR_EL2", 212 },
3218
2.37k
    { "TCR_EL3", 213 },
3219
2.37k
    { "TEECR32_EL1", 113 },
3220
2.37k
    { "TEEHBR32_EL1", 183 },
3221
2.37k
    { "TPIDRRO_EL0", 282 },
3222
2.37k
    { "TPIDR_EL0", 279 },
3223
2.37k
    { "TPIDR_EL1", 283 },
3224
2.37k
    { "TPIDR_EL2", 280 },
3225
2.37k
    { "TPIDR_EL3", 281 },
3226
2.37k
    { "TRCACATR0", 480 },
3227
2.37k
    { "TRCACATR1", 481 },
3228
2.37k
    { "TRCACATR10", 490 },
3229
2.37k
    { "TRCACATR11", 491 },
3230
2.37k
    { "TRCACATR12", 492 },
3231
2.37k
    { "TRCACATR13", 493 },
3232
2.37k
    { "TRCACATR14", 494 },
3233
2.37k
    { "TRCACATR15", 495 },
3234
2.37k
    { "TRCACATR2", 482 },
3235
2.37k
    { "TRCACATR3", 483 },
3236
2.37k
    { "TRCACATR4", 484 },
3237
2.37k
    { "TRCACATR5", 485 },
3238
2.37k
    { "TRCACATR6", 486 },
3239
2.37k
    { "TRCACATR7", 487 },
3240
2.37k
    { "TRCACATR8", 488 },
3241
2.37k
    { "TRCACATR9", 489 },
3242
2.37k
    { "TRCACVR0", 464 },
3243
2.37k
    { "TRCACVR1", 465 },
3244
2.37k
    { "TRCACVR10", 474 },
3245
2.37k
    { "TRCACVR11", 475 },
3246
2.37k
    { "TRCACVR12", 476 },
3247
2.37k
    { "TRCACVR13", 477 },
3248
2.37k
    { "TRCACVR14", 478 },
3249
2.37k
    { "TRCACVR15", 479 },
3250
2.37k
    { "TRCACVR2", 466 },
3251
2.37k
    { "TRCACVR3", 467 },
3252
2.37k
    { "TRCACVR4", 468 },
3253
2.37k
    { "TRCACVR5", 469 },
3254
2.37k
    { "TRCACVR6", 470 },
3255
2.37k
    { "TRCACVR7", 471 },
3256
2.37k
    { "TRCACVR8", 472 },
3257
2.37k
    { "TRCACVR9", 473 },
3258
2.37k
    { "TRCAUTHSTATUS", 72 },
3259
2.37k
    { "TRCAUXCTLR", 366 },
3260
2.37k
    { "TRCBBCTLR", 373 },
3261
2.37k
    { "TRCCCCTLR", 372 },
3262
2.37k
    { "TRCCIDCCTLR0", 528 },
3263
2.37k
    { "TRCCIDCCTLR1", 529 },
3264
2.37k
    { "TRCCIDCVR0", 512 },
3265
2.37k
    { "TRCCIDCVR1", 513 },
3266
2.37k
    { "TRCCIDCVR2", 514 },
3267
2.37k
    { "TRCCIDCVR3", 515 },
3268
2.37k
    { "TRCCIDCVR4", 516 },
3269
2.37k
    { "TRCCIDCVR5", 517 },
3270
2.37k
    { "TRCCIDCVR6", 518 },
3271
2.37k
    { "TRCCIDCVR7", 519 },
3272
2.37k
    { "TRCCIDR0", 84 },
3273
2.37k
    { "TRCCIDR1", 85 },
3274
2.37k
    { "TRCCIDR2", 86 },
3275
2.37k
    { "TRCCIDR3", 87 },
3276
2.37k
    { "TRCCLAIMCLR", 534 },
3277
2.37k
    { "TRCCLAIMSET", 533 },
3278
2.37k
    { "TRCCNTCTLR0", 393 },
3279
2.37k
    { "TRCCNTCTLR1", 394 },
3280
2.37k
    { "TRCCNTCTLR2", 395 },
3281
2.37k
    { "TRCCNTCTLR3", 396 },
3282
2.37k
    { "TRCCNTRLDVR0", 389 },
3283
2.37k
    { "TRCCNTRLDVR1", 390 },
3284
2.37k
    { "TRCCNTRLDVR2", 391 },
3285
2.37k
    { "TRCCNTRLDVR3", 392 },
3286
2.37k
    { "TRCCNTVR0", 397 },
3287
2.37k
    { "TRCCNTVR1", 398 },
3288
2.37k
    { "TRCCNTVR2", 399 },
3289
2.37k
    { "TRCCNTVR3", 400 },
3290
2.37k
    { "TRCCONFIGR", 365 },
3291
2.37k
    { "TRCDEVAFF0", 69 },
3292
2.37k
    { "TRCDEVAFF1", 70 },
3293
2.37k
    { "TRCDEVARCH", 73 },
3294
2.37k
    { "TRCDEVID", 74 },
3295
2.37k
    { "TRCDEVTYPE", 75 },
3296
2.37k
    { "TRCDVCMR0", 504 },
3297
2.37k
    { "TRCDVCMR1", 505 },
3298
2.37k
    { "TRCDVCMR2", 506 },
3299
2.37k
    { "TRCDVCMR3", 507 },
3300
2.37k
    { "TRCDVCMR4", 508 },
3301
2.37k
    { "TRCDVCMR5", 509 },
3302
2.37k
    { "TRCDVCMR6", 510 },
3303
2.37k
    { "TRCDVCMR7", 511 },
3304
2.37k
    { "TRCDVCVR0", 496 },
3305
2.37k
    { "TRCDVCVR1", 497 },
3306
2.37k
    { "TRCDVCVR2", 498 },
3307
2.37k
    { "TRCDVCVR3", 499 },
3308
2.37k
    { "TRCDVCVR4", 500 },
3309
2.37k
    { "TRCDVCVR5", 501 },
3310
2.37k
    { "TRCDVCVR6", 502 },
3311
2.37k
    { "TRCDVCVR7", 503 },
3312
2.37k
    { "TRCEVENTCTL0R", 367 },
3313
2.37k
    { "TRCEVENTCTL1R", 368 },
3314
2.37k
    { "TRCEXTINSELR", 388 },
3315
2.37k
    { "TRCIDR0", 59 },
3316
2.37k
    { "TRCIDR1", 60 },
3317
2.37k
    { "TRCIDR10", 55 },
3318
2.37k
    { "TRCIDR11", 56 },
3319
2.37k
    { "TRCIDR12", 57 },
3320
2.37k
    { "TRCIDR13", 58 },
3321
2.37k
    { "TRCIDR2", 61 },
3322
2.37k
    { "TRCIDR3", 62 },
3323
2.37k
    { "TRCIDR4", 63 },
3324
2.37k
    { "TRCIDR5", 64 },
3325
2.37k
    { "TRCIDR6", 65 },
3326
2.37k
    { "TRCIDR7", 66 },
3327
2.37k
    { "TRCIDR8", 53 },
3328
2.37k
    { "TRCIDR9", 54 },
3329
2.37k
    { "TRCIMSPEC0", 401 },
3330
2.37k
    { "TRCIMSPEC1", 402 },
3331
2.37k
    { "TRCIMSPEC2", 403 },
3332
2.37k
    { "TRCIMSPEC3", 404 },
3333
2.37k
    { "TRCIMSPEC4", 405 },
3334
2.37k
    { "TRCIMSPEC5", 406 },
3335
2.37k
    { "TRCIMSPEC6", 407 },
3336
2.37k
    { "TRCIMSPEC7", 408 },
3337
2.37k
    { "TRCITCTRL", 532 },
3338
2.37k
    { "TRCLAR", 104 },
3339
2.37k
    { "TRCLSR", 71 },
3340
2.37k
    { "TRCOSLAR", 103 },
3341
2.37k
    { "TRCOSLSR", 67 },
3342
2.37k
    { "TRCPDCR", 463 },
3343
2.37k
    { "TRCPDSR", 68 },
3344
2.37k
    { "TRCPIDR0", 80 },
3345
2.37k
    { "TRCPIDR1", 81 },
3346
2.37k
    { "TRCPIDR2", 82 },
3347
2.37k
    { "TRCPIDR3", 83 },
3348
2.37k
    { "TRCPIDR4", 76 },
3349
2.37k
    { "TRCPIDR5", 77 },
3350
2.37k
    { "TRCPIDR6", 78 },
3351
2.37k
    { "TRCPIDR7", 79 },
3352
2.37k
    { "TRCPRGCTLR", 363 },
3353
2.37k
    { "TRCPROCSELR", 364 },
3354
2.37k
    { "TRCQCTLR", 375 },
3355
2.37k
    { "TRCRSCTLR10", 417 },
3356
2.37k
    { "TRCRSCTLR11", 418 },
3357
2.37k
    { "TRCRSCTLR12", 419 },
3358
2.37k
    { "TRCRSCTLR13", 420 },
3359
2.37k
    { "TRCRSCTLR14", 421 },
3360
2.37k
    { "TRCRSCTLR15", 422 },
3361
2.37k
    { "TRCRSCTLR16", 423 },
3362
2.37k
    { "TRCRSCTLR17", 424 },
3363
2.37k
    { "TRCRSCTLR18", 425 },
3364
2.37k
    { "TRCRSCTLR19", 426 },
3365
2.37k
    { "TRCRSCTLR2", 409 },
3366
2.37k
    { "TRCRSCTLR20", 427 },
3367
2.37k
    { "TRCRSCTLR21", 428 },
3368
2.37k
    { "TRCRSCTLR22", 429 },
3369
2.37k
    { "TRCRSCTLR23", 430 },
3370
2.37k
    { "TRCRSCTLR24", 431 },
3371
2.37k
    { "TRCRSCTLR25", 432 },
3372
2.37k
    { "TRCRSCTLR26", 433 },
3373
2.37k
    { "TRCRSCTLR27", 434 },
3374
2.37k
    { "TRCRSCTLR28", 435 },
3375
2.37k
    { "TRCRSCTLR29", 436 },
3376
2.37k
    { "TRCRSCTLR3", 410 },
3377
2.37k
    { "TRCRSCTLR30", 437 },
3378
2.37k
    { "TRCRSCTLR31", 438 },
3379
2.37k
    { "TRCRSCTLR4", 411 },
3380
2.37k
    { "TRCRSCTLR5", 412 },
3381
2.37k
    { "TRCRSCTLR6", 413 },
3382
2.37k
    { "TRCRSCTLR7", 414 },
3383
2.37k
    { "TRCRSCTLR8", 415 },
3384
2.37k
    { "TRCRSCTLR9", 416 },
3385
2.37k
    { "TRCSEQEVR0", 383 },
3386
2.37k
    { "TRCSEQEVR1", 384 },
3387
2.37k
    { "TRCSEQEVR2", 385 },
3388
2.37k
    { "TRCSEQRSTEVR", 386 },
3389
2.37k
    { "TRCSEQSTR", 387 },
3390
2.37k
    { "TRCSSCCR0", 439 },
3391
2.37k
    { "TRCSSCCR1", 440 },
3392
2.37k
    { "TRCSSCCR2", 441 },
3393
2.37k
    { "TRCSSCCR3", 442 },
3394
2.37k
    { "TRCSSCCR4", 443 },
3395
2.37k
    { "TRCSSCCR5", 444 },
3396
2.37k
    { "TRCSSCCR6", 445 },
3397
2.37k
    { "TRCSSCCR7", 446 },
3398
2.37k
    { "TRCSSCSR0", 447 },
3399
2.37k
    { "TRCSSCSR1", 448 },
3400
2.37k
    { "TRCSSCSR2", 449 },
3401
2.37k
    { "TRCSSCSR3", 450 },
3402
2.37k
    { "TRCSSCSR4", 451 },
3403
2.37k
    { "TRCSSCSR5", 452 },
3404
2.37k
    { "TRCSSCSR6", 453 },
3405
2.37k
    { "TRCSSCSR7", 454 },
3406
2.37k
    { "TRCSSPCICR0", 455 },
3407
2.37k
    { "TRCSSPCICR1", 456 },
3408
2.37k
    { "TRCSSPCICR2", 457 },
3409
2.37k
    { "TRCSSPCICR3", 458 },
3410
2.37k
    { "TRCSSPCICR4", 459 },
3411
2.37k
    { "TRCSSPCICR5", 460 },
3412
2.37k
    { "TRCSSPCICR6", 461 },
3413
2.37k
    { "TRCSSPCICR7", 462 },
3414
2.37k
    { "TRCSTALLCTLR", 369 },
3415
2.37k
    { "TRCSTATR", 52 },
3416
2.37k
    { "TRCSYNCPR", 371 },
3417
2.37k
    { "TRCTRACEIDR", 374 },
3418
2.37k
    { "TRCTSCTLR", 370 },
3419
2.37k
    { "TRCVDARCCTLR", 382 },
3420
2.37k
    { "TRCVDCTLR", 380 },
3421
2.37k
    { "TRCVDSACCTLR", 381 },
3422
2.37k
    { "TRCVICTLR", 376 },
3423
2.37k
    { "TRCVIIECTLR", 377 },
3424
2.37k
    { "TRCVIPCSSCTLR", 379 },
3425
2.37k
    { "TRCVISSCTLR", 378 },
3426
2.37k
    { "TRCVMIDCCTLR0", 530 },
3427
2.37k
    { "TRCVMIDCCTLR1", 531 },
3428
2.37k
    { "TRCVMIDCVR0", 520 },
3429
2.37k
    { "TRCVMIDCVR1", 521 },
3430
2.37k
    { "TRCVMIDCVR2", 522 },
3431
2.37k
    { "TRCVMIDCVR3", 523 },
3432
2.37k
    { "TRCVMIDCVR4", 524 },
3433
2.37k
    { "TRCVMIDCVR5", 525 },
3434
2.37k
    { "TRCVMIDCVR6", 526 },
3435
2.37k
    { "TRCVMIDCVR7", 527 },
3436
2.37k
    { "TRFCR_EL1", 727 },
3437
2.37k
    { "TRFCR_EL12", 729 },
3438
2.37k
    { "TRFCR_EL2", 728 },
3439
2.37k
    { "TTBR0_EL1", 207 },
3440
2.37k
    { "TTBR0_EL12", 595 },
3441
2.37k
    { "TTBR0_EL2", 208 },
3442
2.37k
    { "TTBR0_EL3", 209 },
3443
2.37k
    { "TTBR1_EL1", 210 },
3444
2.37k
    { "TTBR1_EL12", 596 },
3445
2.37k
    { "TTBR1_EL2", 588 },
3446
2.37k
    { "UAO", 615 },
3447
2.37k
    { "VBAR_EL1", 272 },
3448
2.37k
    { "VBAR_EL12", 604 },
3449
2.37k
    { "VBAR_EL2", 273 },
3450
2.37k
    { "VBAR_EL3", 274 },
3451
2.37k
    { "VDISR_EL2", 636 },
3452
2.37k
    { "VMPIDR_EL2", 190 },
3453
2.37k
    { "VNCR_EL2", 731 },
3454
2.37k
    { "VPIDR_EL2", 189 },
3455
2.37k
    { "VSESR_EL2", 637 },
3456
2.37k
    { "VSTCR_EL2", 648 },
3457
2.37k
    { "VSTTBR_EL2", 649 },
3458
2.37k
    { "VTCR_EL2", 215 },
3459
2.37k
    { "VTTBR_EL2", 214 },
3460
2.37k
    { "ZCR_EL1", 732 },
3461
2.37k
    { "ZCR_EL12", 735 },
3462
2.37k
    { "ZCR_EL2", 733 },
3463
2.37k
    { "ZCR_EL3", 734 },
3464
2.37k
  };
3465
2.37k
3466
2.37k
  struct KeyType {
3467
2.37k
    std::string Name;
3468
2.37k
  };
3469
2.37k
  KeyType Key = { Name.upper() };
3470
2.37k
  auto Table = makeArrayRef(Index);
3471
2.37k
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
3472
22.7k
    [](const IndexType &LHS, const KeyType &RHS) {
3473
22.7k
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3474
22.7k
      if (CmpName < 0) 
return true10.6k
;
3475
12.1k
      if (CmpName > 0) 
return false9.83k
;
3476
2.32k
      return false;
3477
2.32k
    });
3478
2.37k
3479
2.37k
  if (Idx == Table.end() ||
3480
2.37k
      Key.Name != Idx->Name)
3481
45
    return nullptr;
3482
2.32k
  return &SysRegsList[Idx->_index];
3483
2.32k
}
3484
3485
5.61k
const SysReg *lookupSysRegByEncoding(uint16_t Encoding) {
3486
5.61k
  struct IndexType {
3487
5.61k
    uint16_t Encoding;
3488
5.61k
    unsigned _index;
3489
5.61k
  };
3490
5.61k
  static const struct IndexType Index[] = {
3491
5.61k
    { 0x8002, 111 },
3492
5.61k
    { 0x8004, 119 },
3493
5.61k
    { 0x8005, 135 },
3494
5.61k
    { 0x8006, 151 },
3495
5.61k
    { 0x8007, 167 },
3496
5.61k
    { 0x800C, 120 },
3497
5.61k
    { 0x800D, 136 },
3498
5.61k
    { 0x800E, 152 },
3499
5.61k
    { 0x800F, 168 },
3500
5.61k
    { 0x8010, 114 },
3501
5.61k
    { 0x8012, 115 },
3502
5.61k
    { 0x8014, 121 },
3503
5.61k
    { 0x8015, 137 },
3504
5.61k
    { 0x8016, 153 },
3505
5.61k
    { 0x8017, 169 },
3506
5.61k
    { 0x801A, 112 },
3507
5.61k
    { 0x801C, 122 },
3508
5.61k
    { 0x801D, 138 },
3509
5.61k
    { 0x801E, 154 },
3510
5.61k
    { 0x801F, 170 },
3511
5.61k
    { 0x8024, 123 },
3512
5.61k
    { 0x8025, 139 },
3513
5.61k
    { 0x8026, 155 },
3514
5.61k
    { 0x8027, 171 },
3515
5.61k
    { 0x802C, 124 },
3516
5.61k
    { 0x802D, 140 },
3517
5.61k
    { 0x802E, 156 },
3518
5.61k
    { 0x802F, 172 },
3519
5.61k
    { 0x8032, 117 },
3520
5.61k
    { 0x8034, 125 },
3521
5.61k
    { 0x8035, 141 },
3522
5.61k
    { 0x8036, 157 },
3523
5.61k
    { 0x8037, 173 },
3524
5.61k
    { 0x803C, 126 },
3525
5.61k
    { 0x803D, 142 },
3526
5.61k
    { 0x803E, 158 },
3527
5.61k
    { 0x803F, 174 },
3528
5.61k
    { 0x8044, 127 },
3529
5.61k
    { 0x8045, 143 },
3530
5.61k
    { 0x8046, 159 },
3531
5.61k
    { 0x8047, 175 },
3532
5.61k
    { 0x804C, 128 },
3533
5.61k
    { 0x804D, 144 },
3534
5.61k
    { 0x804E, 160 },
3535
5.61k
    { 0x804F, 176 },
3536
5.61k
    { 0x8054, 129 },
3537
5.61k
    { 0x8055, 145 },
3538
5.61k
    { 0x8056, 161 },
3539
5.61k
    { 0x8057, 177 },
3540
5.61k
    { 0x805C, 130 },
3541
5.61k
    { 0x805D, 146 },
3542
5.61k
    { 0x805E, 162 },
3543
5.61k
    { 0x805F, 178 },
3544
5.61k
    { 0x8064, 131 },
3545
5.61k
    { 0x8065, 147 },
3546
5.61k
    { 0x8066, 163 },
3547
5.61k
    { 0x8067, 179 },
3548
5.61k
    { 0x806C, 132 },
3549
5.61k
    { 0x806D, 148 },
3550
5.61k
    { 0x806E, 164 },
3551
5.61k
    { 0x806F, 180 },
3552
5.61k
    { 0x8074, 133 },
3553
5.61k
    { 0x8075, 149 },
3554
5.61k
    { 0x8076, 165 },
3555
5.61k
    { 0x8077, 181 },
3556
5.61k
    { 0x807C, 134 },
3557
5.61k
    { 0x807D, 150 },
3558
5.61k
    { 0x807E, 166 },
3559
5.61k
    { 0x807F, 182 },
3560
5.61k
    { 0x8080, 2 },
3561
5.61k
    { 0x8084, 101 },
3562
5.61k
    { 0x808C, 3 },
3563
5.61k
    { 0x809C, 184 },
3564
5.61k
    { 0x80A4, 185 },
3565
5.61k
    { 0x83C6, 186 },
3566
5.61k
    { 0x83CE, 187 },
3567
5.61k
    { 0x83F6, 4 },
3568
5.61k
    { 0x8801, 374 },
3569
5.61k
    { 0x8802, 376 },
3570
5.61k
    { 0x8804, 383 },
3571
5.61k
    { 0x8805, 389 },
3572
5.61k
    { 0x8806, 53 },
3573
5.61k
    { 0x8807, 401 },
3574
5.61k
    { 0x8808, 363 },
3575
5.61k
    { 0x8809, 375 },
3576
5.61k
    { 0x880A, 377 },
3577
5.61k
    { 0x880C, 384 },
3578
5.61k
    { 0x880D, 390 },
3579
5.61k
    { 0x880E, 54 },
3580
5.61k
    { 0x880F, 402 },
3581
5.61k
    { 0x8810, 364 },
3582
5.61k
    { 0x8812, 378 },
3583
5.61k
    { 0x8814, 385 },
3584
5.61k
    { 0x8815, 391 },
3585
5.61k
    { 0x8816, 55 },
3586
5.61k
    { 0x8817, 403 },
3587
5.61k
    { 0x8818, 52 },
3588
5.61k
    { 0x881A, 379 },
3589
5.61k
    { 0x881D, 392 },
3590
5.61k
    { 0x881E, 56 },
3591
5.61k
    { 0x881F, 404 },
3592
5.61k
    { 0x8820, 365 },
3593
5.61k
    { 0x8825, 393 },
3594
5.61k
    { 0x8826, 57 },
3595
5.61k
    { 0x8827, 405 },
3596
5.61k
    { 0x882D, 394 },
3597
5.61k
    { 0x882E, 58 },
3598
5.61k
    { 0x882F, 406 },
3599
5.61k
    { 0x8830, 366 },
3600
5.61k
    { 0x8834, 386 },
3601
5.61k
    { 0x8835, 395 },
3602
5.61k
    { 0x8837, 407 },
3603
5.61k
    { 0x883C, 387 },
3604
5.61k
    { 0x883D, 396 },
3605
5.61k
    { 0x883F, 408 },
3606
5.61k
    { 0x8840, 367 },
3607
5.61k
    { 0x8842, 380 },
3608
5.61k
    { 0x8844, 388 },
3609
5.61k
    { 0x8845, 397 },
3610
5.61k
    { 0x8847, 59 },
3611
5.61k
    { 0x8848, 368 },
3612
5.61k
    { 0x884A, 381 },
3613
5.61k
    { 0x884D, 398 },
3614
5.61k
    { 0x884F, 60 },
3615
5.61k
    { 0x8852, 382 },
3616
5.61k
    { 0x8855, 399 },
3617
5.61k
    { 0x8857, 61 },
3618
5.61k
    { 0x8858, 369 },
3619
5.61k
    { 0x885D, 400 },
3620
5.61k
    { 0x885F, 62 },
3621
5.61k
    { 0x8860, 370 },
3622
5.61k
    { 0x8867, 63 },
3623
5.61k
    { 0x8868, 371 },
3624
5.61k
    { 0x886F, 64 },
3625
5.61k
    { 0x8870, 372 },
3626
5.61k
    { 0x8877, 65 },
3627
5.61k
    { 0x8878, 373 },
3628
5.61k
    { 0x887F, 66 },
3629
5.61k
    { 0x8881, 423 },
3630
5.61k
    { 0x8882, 439 },
3631
5.61k
    { 0x8883, 455 },
3632
5.61k
    { 0x8884, 103 },
3633
5.61k
    { 0x8889, 424 },
3634
5.61k
    { 0x888A, 440 },
3635
5.61k
    { 0x888B, 456 },
3636
5.61k
    { 0x888C, 67 },
3637
5.61k
    { 0x8890, 409 },
3638
5.61k
    { 0x8891, 425 },
3639
5.61k
    { 0x8892, 441 },
3640
5.61k
    { 0x8893, 457 },
3641
5.61k
    { 0x8898, 410 },
3642
5.61k
    { 0x8899, 426 },
3643
5.61k
    { 0x889A, 442 },
3644
5.61k
    { 0x889B, 458 },
3645
5.61k
    { 0x88A0, 411 },
3646
5.61k
    { 0x88A1, 427 },
3647
5.61k
    { 0x88A2, 443 },
3648
5.61k
    { 0x88A3, 459 },
3649
5.61k
    { 0x88A4, 463 },
3650
5.61k
    { 0x88A8, 412 },
3651
5.61k
    { 0x88A9, 428 },
3652
5.61k
    { 0x88AA, 444 },
3653
5.61k
    { 0x88AB, 460 },
3654
5.61k
    { 0x88AC, 68 },
3655
5.61k
    { 0x88B0, 413 },
3656
5.61k
    { 0x88B1, 429 },
3657
5.61k
    { 0x88B2, 445 },
3658
5.61k
    { 0x88B3, 461 },
3659
5.61k
    { 0x88B8, 414 },
3660
5.61k
    { 0x88B9, 430 },
3661
5.61k
    { 0x88BA, 446 },
3662
5.61k
    { 0x88BB, 462 },
3663
5.61k
    { 0x88C0, 415 },
3664
5.61k
    { 0x88C1, 431 },
3665
5.61k
    { 0x88C2, 447 },
3666
5.61k
    { 0x88C8, 416 },
3667
5.61k
    { 0x88C9, 432 },
3668
5.61k
    { 0x88CA, 448 },
3669
5.61k
    { 0x88D0, 417 },
3670
5.61k
    { 0x88D1, 433 },
3671
5.61k
    { 0x88D2, 449 },
3672
5.61k
    { 0x88D8, 418 },
3673
5.61k
    { 0x88D9, 434 },
3674
5.61k
    { 0x88DA, 450 },
3675
5.61k
    { 0x88E0, 419 },
3676
5.61k
    { 0x88E1, 435 },
3677
5.61k
    { 0x88E2, 451 },
3678
5.61k
    { 0x88E8, 420 },
3679
5.61k
    { 0x88E9, 436 },
3680
5.61k
    { 0x88EA, 452 },
3681
5.61k
    { 0x88F0, 421 },
3682
5.61k
    { 0x88F1, 437 },
3683
5.61k
    { 0x88F2, 453 },
3684
5.61k
    { 0x88F8, 422 },
3685
5.61k
    { 0x88F9, 438 },
3686
5.61k
    { 0x88FA, 454 },
3687
5.61k
    { 0x8900, 464 },
3688
5.61k
    { 0x8901, 472 },
3689
5.61k
    { 0x8902, 480 },
3690
5.61k
    { 0x8903, 488 },
3691
5.61k
    { 0x8904, 496 },
3692
5.61k
    { 0x8905, 500 },
3693
5.61k
    { 0x8906, 504 },
3694
5.61k
    { 0x8907, 508 },
3695
5.61k
    { 0x8910, 465 },
3696
5.61k
    { 0x8911, 473 },
3697
5.61k
    { 0x8912, 481 },
3698
5.61k
    { 0x8913, 489 },
3699
5.61k
    { 0x8920, 466 },
3700
5.61k
    { 0x8921, 474 },
3701
5.61k
    { 0x8922, 482 },
3702
5.61k
    { 0x8923, 490 },
3703
5.61k
    { 0x8924, 497 },
3704
5.61k
    { 0x8925, 501 },
3705
5.61k
    { 0x8926, 505 },
3706
5.61k
    { 0x8927, 509 },
3707
5.61k
    { 0x8930, 467 },
3708
5.61k
    { 0x8931, 475 },
3709
5.61k
    { 0x8932, 483 },
3710
5.61k
    { 0x8933, 491 },
3711
5.61k
    { 0x8940, 468 },
3712
5.61k
    { 0x8941, 476 },
3713
5.61k
    { 0x8942, 484 },
3714
5.61k
    { 0x8943, 492 },
3715
5.61k
    { 0x8944, 498 },
3716
5.61k
    { 0x8945, 502 },
3717
5.61k
    { 0x8946, 506 },
3718
5.61k
    { 0x8947, 510 },
3719
5.61k
    { 0x8950, 469 },
3720
5.61k
    { 0x8951, 477 },
3721
5.61k
    { 0x8952, 485 },
3722
5.61k
    { 0x8953, 493 },
3723
5.61k
    { 0x8960, 470 },
3724
5.61k
    { 0x8961, 478 },
3725
5.61k
    { 0x8962, 486 },
3726
5.61k
    { 0x8963, 494 },
3727
5.61k
    { 0x8964, 499 },
3728
5.61k
    { 0x8965, 503 },
3729
5.61k
    { 0x8966, 507 },
3730
5.61k
    { 0x8967, 511 },
3731
5.61k
    { 0x8970, 471 },
3732
5.61k
    { 0x8971, 479 },
3733
5.61k
    { 0x8972, 487 },
3734
5.61k
    { 0x8973, 495 },
3735
5.61k
    { 0x8980, 512 },
3736
5.61k
    { 0x8981, 520 },
3737
5.61k
    { 0x8982, 528 },
3738
5.61k
    { 0x898A, 529 },
3739
5.61k
    { 0x8990, 513 },
3740
5.61k
    { 0x8991, 521 },
3741
5.61k
    { 0x8992, 530 },
3742
5.61k
    { 0x899A, 531 },
3743
5.61k
    { 0x89A0, 514 },
3744
5.61k
    { 0x89A1, 522 },
3745
5.61k
    { 0x89B0, 515 },
3746
5.61k
    { 0x89B1, 523 },
3747
5.61k
    { 0x89C0, 516 },
3748
5.61k
    { 0x89C1, 524 },
3749
5.61k
    { 0x89D0, 517 },
3750
5.61k
    { 0x89D1, 525 },
3751
5.61k
    { 0x89E0, 518 },
3752
5.61k
    { 0x89E1, 526 },
3753
5.61k
    { 0x89F0, 519 },
3754
5.61k
    { 0x89F1, 527 },
3755
5.61k
    { 0x8B84, 532 },
3756
5.61k
    { 0x8B97, 74 },
3757
5.61k
    { 0x8B9F, 75 },
3758
5.61k
    { 0x8BA7, 76 },
3759
5.61k
    { 0x8BAF, 77 },
3760
5.61k
    { 0x8BB7, 78 },
3761
5.61k
    { 0x8BBF, 79 },
3762
5.61k
    { 0x8BC6, 533 },
3763
5.61k
    { 0x8BC7, 80 },
3764
5.61k
    { 0x8BCE, 534 },
3765
5.61k
    { 0x8BCF, 81 },
3766
5.61k
    { 0x8BD6, 69 },
3767
5.61k
    { 0x8BD7, 82 },
3768
5.61k
    { 0x8BDE, 70 },
3769
5.61k
    { 0x8BDF, 83 },
3770
5.61k
    { 0x8BE6, 104 },
3771
5.61k
    { 0x8BE7, 84 },
3772
5.61k
    { 0x8BEE, 71 },
3773
5.61k
    { 0x8BEF, 85 },
3774
5.61k
    { 0x8BF6, 72 },
3775
5.61k
    { 0x8BF7, 86 },
3776
5.61k
    { 0x8BFE, 73 },
3777
5.61k
    { 0x8BFF, 87 },
3778
5.61k
    { 0x9000, 113 },
3779
5.61k
    { 0x9080, 183 },
3780
5.61k
    { 0x9808, 0 },
3781
5.61k
    { 0x9820, 116 },
3782
5.61k
    { 0x9828, 1 },
3783
5.61k
    { 0x9828, 100 },
3784
5.61k
    { 0xA038, 118 },
3785
5.61k
    { 0xC000, 7 },
3786
5.61k
    { 0xC005, 12 },
3787
5.61k
    { 0xC006, 13 },
3788
5.61k
    { 0xC008, 16 },
3789
5.61k
    { 0xC009, 17 },
3790
5.61k
    { 0xC00A, 18 },
3791
5.61k
    { 0xC00B, 19 },
3792
5.61k
    { 0xC00C, 20 },
3793
5.61k
    { 0xC00D, 21 },
3794
5.61k
    { 0xC00E, 22 },
3795
5.61k
    { 0xC00F, 23 },
3796
5.61k
    { 0xC010, 24 },
3797
5.61k
    { 0xC011, 25 },
3798
5.61k
    { 0xC012, 26 },
3799
5.61k
    { 0xC013, 27 },
3800
5.61k
    { 0xC014, 28 },
3801
5.61k
    { 0xC015, 29 },
3802
5.61k
    { 0xC016, 51 },
3803
5.61k
    { 0xC017, 30 },
3804
5.61k
    { 0xC018, 42 },
3805
5.61k
    { 0xC019, 43 },
3806
5.61k
    { 0xC01A, 44 },
3807
5.61k
    { 0xC020, 31 },
3808
5.61k
    { 0xC021, 32 },
3809
5.61k
    { 0xC024, 96 },
3810
5.61k
    { 0xC028, 33 },
3811
5.61k
    { 0xC029, 34 },
3812
5.61k
    { 0xC02C, 35 },
3813
5.61k
    { 0xC02D, 36 },
3814
5.61k
    { 0xC030, 37 },
3815
5.61k
    { 0xC031, 38 },
3816
5.61k
    { 0xC038, 39 },
3817
5.61k
    { 0xC039, 40 },
3818
5.61k
    { 0xC03A, 41 },
3819
5.61k
    { 0xC080, 192 },
3820
5.61k
    { 0xC081, 195 },
3821
5.61k
    { 0xC082, 191 },
3822
5.61k
    { 0xC090, 732 },
3823
5.61k
    { 0xC091, 727 },
3824
5.61k
    { 0xC100, 207 },
3825
5.61k
    { 0xC101, 210 },
3826
5.61k
    { 0xC102, 211 },
3827
5.61k
    { 0xC108, 638 },
3828
5.61k
    { 0xC109, 639 },
3829
5.61k
    { 0xC10A, 640 },
3830
5.61k
    { 0xC10B, 641 },
3831
5.61k
    { 0xC110, 642 },
3832
5.61k
    { 0xC111, 643 },
3833
5.61k
    { 0xC112, 644 },
3834
5.61k
    { 0xC113, 645 },
3835
5.61k
    { 0xC118, 646 },
3836
5.61k
    { 0xC119, 647 },
3837
5.61k
    { 0xC200, 217 },
3838
5.61k
    { 0xC201, 220 },
3839
5.61k
    { 0xC208, 223 },
3840
5.61k
    { 0xC210, 226 },
3841
5.61k
    { 0xC212, 229 },
3842
5.61k
    { 0xC213, 583 },
3843
5.61k
    { 0xC214, 615 },
3844
5.61k
    { 0xC230, 537 },
3845
5.61k
    { 0xC288, 239 },
3846
5.61k
    { 0xC289, 242 },
3847
5.61k
    { 0xC290, 245 },
3848
5.61k
    { 0xC298, 98 },
3849
5.61k
    { 0xC299, 629 },
3850
5.61k
    { 0xC2A0, 99 },
3851
5.61k
    { 0xC2A1, 630 },
3852
5.61k
    { 0xC2A2, 631 },
3853
5.61k
    { 0xC2A3, 632 },
3854
5.61k
    { 0xC2A4, 662 },
3855
5.61k
    { 0xC2A5, 657 },
3856
5.61k
    { 0xC2A6, 658 },
3857
5.61k
    { 0xC2A8, 633 },
3858
5.61k
    { 0xC2A9, 634 },
3859
5.61k
    { 0xC2AA, 660 },
3860
5.61k
    { 0xC2AB, 661 },
3861
5.61k
    { 0xC2AF, 659 },
3862
5.61k
    { 0xC300, 249 },
3863
5.61k
    { 0xC3A0, 253 },
3864
5.61k
    { 0xC4C8, 622 },
3865
5.61k
    { 0xC4CA, 623 },
3866
5.61k
    { 0xC4CB, 624 },
3867
5.61k
    { 0xC4CC, 625 },
3868
5.61k
    { 0xC4CD, 626 },
3869
5.61k
    { 0xC4CE, 627 },
3870
5.61k
    { 0xC4CF, 628 },
3871
5.61k
    { 0xC4D0, 616 },
3872
5.61k
    { 0xC4D1, 617 },
3873
5.61k
    { 0xC4D3, 618 },
3874
5.61k
    { 0xC4D7, 619 },
3875
5.61k
    { 0xC4F1, 263 },
3876
5.61k
    { 0xC4F2, 264 },
3877
5.61k
    { 0xC510, 266 },
3878
5.61k
    { 0xC518, 269 },
3879
5.61k
    { 0xC520, 584 },
3880
5.61k
    { 0xC521, 585 },
3881
5.61k
    { 0xC522, 586 },
3882
5.61k
    { 0xC523, 587 },
3883
5.61k
    { 0xC524, 678 },
3884
5.61k
    { 0xC527, 97 },
3885
5.61k
    { 0xC528, 664 },
3886
5.61k
    { 0xC529, 663 },
3887
5.61k
    { 0xC600, 272 },
3888
5.61k
    { 0xC601, 45 },
3889
5.61k
    { 0xC602, 275 },
3890
5.61k
    { 0xC608, 48 },
3891
5.61k
    { 0xC609, 635 },
3892
5.61k
    { 0xC640, 89 },
3893
5.61k
    { 0xC641, 106 },
3894
5.61k
    { 0xC642, 91 },
3895
5.61k
    { 0xC643, 536 },
3896
5.61k
    { 0xC644, 547 },
3897
5.61k
    { 0xC645, 548 },
3898
5.61k
    { 0xC646, 549 },
3899
5.61k
    { 0xC647, 550 },
3900
5.61k
    { 0xC648, 551 },
3901
5.61k
    { 0xC649, 552 },
3902
5.61k
    { 0xC64A, 553 },
3903
5.61k
    { 0xC64B, 554 },
3904
5.61k
    { 0xC659, 107 },
3905
5.61k
    { 0xC65B, 92 },
3906
5.61k
    { 0xC65D, 108 },
3907
5.61k
    { 0xC65E, 109 },
3908
5.61k
    { 0xC65F, 110 },
3909
5.61k
    { 0xC660, 88 },
3910
5.61k
    { 0xC661, 105 },
3911
5.61k
    { 0xC662, 90 },
3912
5.61k
    { 0xC663, 535 },
3913
5.61k
    { 0xC664, 538 },
3914
5.61k
    { 0xC665, 540 },
3915
5.61k
    { 0xC666, 543 },
3916
5.61k
    { 0xC667, 544 },
3917
5.61k
    { 0xC668, 546 },
3918
5.61k
    { 0xC681, 278 },
3919
5.61k
    { 0xC684, 283 },
3920
5.61k
    { 0xC708, 286 },
3921
5.61k
    { 0xC800, 8 },
3922
5.61k
    { 0xC801, 10 },
3923
5.61k
    { 0xC802, 9 },
3924
5.61k
    { 0xC807, 14 },
3925
5.61k
    { 0xD000, 188 },
3926
5.61k
    { 0xD801, 11 },
3927
5.61k
    { 0xD807, 15 },
3928
5.61k
    { 0xDA10, 227 },
3929
5.61k
    { 0xDA11, 228 },
3930
5.61k
    { 0xDA15, 730 },
3931
5.61k
    { 0xDA20, 234 },
3932
5.61k
    { 0xDA21, 235 },
3933
5.61k
    { 0xDA28, 236 },
3934
5.61k
    { 0xDA29, 237 },
3935
5.61k
    { 0xDCE0, 254 },
3936
5.61k
    { 0xDCE1, 255 },
3937
5.61k
    { 0xDCE2, 256 },
3938
5.61k
    { 0xDCE3, 257 },
3939
5.61k
    { 0xDCE4, 102 },
3940
5.61k
    { 0xDCE5, 258 },
3941
5.61k
    { 0xDCE6, 5 },
3942
5.61k
    { 0xDCE7, 6 },
3943
5.61k
    { 0xDCE8, 259 },
3944
5.61k
    { 0xDCE9, 260 },
3945
5.61k
    { 0xDCEA, 261 },
3946
5.61k
    { 0xDCF0, 262 },
3947
5.61k
    { 0xDCF3, 265 },
3948
5.61k
    { 0xDE82, 279 },
3949
5.61k
    { 0xDE83, 282 },
3950
5.61k
    { 0xDE90, 679 },
3951
5.61k
    { 0xDE91, 680 },
3952
5.61k
    { 0xDE92, 681 },
3953
5.61k
    { 0xDE93, 682 },
3954
5.61k
    { 0xDE94, 683 },
3955
5.61k
    { 0xDE95, 684 },
3956
5.61k
    { 0xDE98, 693 },
3957
5.61k
    { 0xDE99, 694 },
3958
5.61k
    { 0xDEA0, 685 },
3959
5.61k
    { 0xDEA1, 686 },
3960
5.61k
    { 0xDEA2, 687 },
3961
5.61k
    { 0xDEA3, 688 },
3962
5.61k
    { 0xDEB0, 689 },
3963
5.61k
    { 0xDEB1, 690 },
3964
5.61k
    { 0xDEB2, 691 },
3965
5.61k
    { 0xDEB3, 692 },
3966
5.61k
    { 0xDEE0, 695 },
3967
5.61k
    { 0xDEE1, 696 },
3968
5.61k
    { 0xDEE2, 697 },
3969
5.61k
    { 0xDEE3, 698 },
3970
5.61k
    { 0xDEE4, 699 },
3971
5.61k
    { 0xDEE5, 700 },
3972
5.61k
    { 0xDEE6, 701 },
3973
5.61k
    { 0xDEE7, 702 },
3974
5.61k
    { 0xDEE8, 703 },
3975
5.61k
    { 0xDEE9, 704 },
3976
5.61k
    { 0xDEEA, 705 },
3977
5.61k
    { 0xDEEB, 706 },
3978
5.61k
    { 0xDEEC, 707 },
3979
5.61k
    { 0xDEED, 708 },
3980
5.61k
    { 0xDEEE, 709 },
3981
5.61k
    { 0xDEEF, 710 },
3982
5.61k
    { 0xDEF0, 711 },
3983
5.61k
    { 0xDEF1, 712 },
3984
5.61k
    { 0xDEF2, 713 },
3985
5.61k
    { 0xDEF3, 714 },
3986
5.61k
    { 0xDEF4, 715 },
3987
5.61k
    { 0xDEF5, 716 },
3988
5.61k
    { 0xDEF6, 717 },
3989
5.61k
    { 0xDEF7, 718 },
3990
5.61k
    { 0xDEF8, 719 },
3991
5.61k
    { 0xDEF9, 720 },
3992
5.61k
    { 0xDEFA, 721 },
3993
5.61k
    { 0xDEFB, 722 },
3994
5.61k
    { 0xDEFC, 723 },
3995
5.61k
    { 0xDEFD, 724 },
3996
5.61k
    { 0xDEFE, 725 },
3997
5.61k
    { 0xDEFF, 726 },
3998
5.61k
    { 0xDF00, 284 },
3999
5.61k
    { 0xDF01, 49 },
4000
5.61k
    { 0xDF02, 50 },
4001
5.61k
    { 0xDF10, 288 },
4002
5.61k
    { 0xDF11, 291 },
4003
5.61k
    { 0xDF12, 294 },
4004
5.61k
    { 0xDF18, 297 },
4005
5.61k
    { 0xDF19, 298 },
4006
5.61k
    { 0xDF1A, 299 },
4007
5.61k
    { 0xDF40, 300 },
4008
5.61k
    { 0xDF41, 301 },
4009
5.61k
    { 0xDF42, 302 },
4010
5.61k
    { 0xDF43, 303 },
4011
5.61k
    { 0xDF44, 304 },
4012
5.61k
    { 0xDF45, 305 },
4013
5.61k
    { 0xDF46, 306 },
4014
5.61k
    { 0xDF47, 307 },
4015
5.61k
    { 0xDF48, 308 },
4016
5.61k
    { 0xDF49, 309 },
4017
5.61k
    { 0xDF4A, 310 },
4018
5.61k
    { 0xDF4B, 311 },
4019
5.61k
    { 0xDF4C, 312 },
4020
5.61k
    { 0xDF4D, 313 },
4021
5.61k
    { 0xDF4E, 314 },
4022
5.61k
    { 0xDF4F, 315 },
4023
5.61k
    { 0xDF50, 316 },
4024
5.61k
    { 0xDF51, 317 },
4025
5.61k
    { 0xDF52, 318 },
4026
5.61k
    { 0xDF53, 319 },
4027
5.61k
    { 0xDF54, 320 },
4028
5.61k
    { 0xDF55, 321 },
4029
5.61k
    { 0xDF56, 322 },
4030
5.61k
    { 0xDF57, 323 },
4031
5.61k
    { 0xDF58, 324 },
4032
5.61k
    { 0xDF59, 325 },
4033
5.61k
    { 0xDF5A, 326 },
4034
5.61k
    { 0xDF5B, 327 },
4035
5.61k
    { 0xDF5C, 328 },
4036
5.61k
    { 0xDF5D, 329 },
4037
5.61k
    { 0xDF5E, 330 },
4038
5.61k
    { 0xDF60, 332 },
4039
5.61k
    { 0xDF61, 333 },
4040
5.61k
    { 0xDF62, 334 },
4041
5.61k
    { 0xDF63, 335 },
4042
5.61k
    { 0xDF64, 336 },
4043
5.61k
    { 0xDF65, 337 },
4044
5.61k
    { 0xDF66, 338 },
4045
5.61k
    { 0xDF67, 339 },
4046
5.61k
    { 0xDF68, 340 },
4047
5.61k
    { 0xDF69, 341 },
4048
5.61k
    { 0xDF6A, 342 },
4049
5.61k
    { 0xDF6B, 343 },
4050
5.61k
    { 0xDF6C, 344 },
4051
5.61k
    { 0xDF6D, 345 },
4052
5.61k
    { 0xDF6E, 346 },
4053
5.61k
    { 0xDF6F, 347 },
4054
5.61k
    { 0xDF70, 348 },
4055
5.61k
    { 0xDF71, 349 },
4056
5.61k
    { 0xDF72, 350 },
4057
5.61k
    { 0xDF73, 351 },
4058
5.61k
    { 0xDF74, 352 },
4059
5.61k
    { 0xDF75, 353 },
4060
5.61k
    { 0xDF76, 354 },
4061
5.61k
    { 0xDF77, 355 },
4062
5.61k
    { 0xDF78, 356 },
4063
5.61k
    { 0xDF79, 357 },
4064
5.61k
    { 0xDF7A, 358 },
4065
5.61k
    { 0xDF7B, 359 },
4066
5.61k
    { 0xDF7C, 360 },
4067
5.61k
    { 0xDF7D, 361 },
4068
5.61k
    { 0xDF7E, 362 },
4069
5.61k
    { 0xDF7F, 331 },
4070
5.61k
    { 0xE000, 189 },
4071
5.61k
    { 0xE005, 190 },
4072
5.61k
    { 0xE080, 193 },
4073
5.61k
    { 0xE081, 196 },
4074
5.61k
    { 0xE088, 198 },
4075
5.61k
    { 0xE089, 200 },
4076
5.61k
    { 0xE08A, 202 },
4077
5.61k
    { 0xE08B, 204 },
4078
5.61k
    { 0xE08F, 205 },
4079
5.61k
    { 0xE090, 733 },
4080
5.61k
    { 0xE091, 728 },
4081
5.61k
    { 0xE099, 656 },
4082
5.61k
    { 0xE100, 208 },
4083
5.61k
    { 0xE101, 588 },
4084
5.61k
    { 0xE102, 212 },
4085
5.61k
    { 0xE108, 214 },
4086
5.61k
    { 0xE10A, 215 },
4087
5.61k
    { 0xE110, 731 },
4088
5.61k
    { 0xE130, 649 },
4089
5.61k
    { 0xE132, 648 },
4090
5.61k
    { 0xE180, 216 },
4091
5.61k
    { 0xE200, 218 },
4092
5.61k
    { 0xE201, 221 },
4093
5.61k
    { 0xE208, 224 },
4094
5.61k
    { 0xE218, 230 },
4095
5.61k
    { 0xE219, 231 },
4096
5.61k
    { 0xE21A, 232 },
4097
5.61k
    { 0xE21B, 233 },
4098
5.61k
    { 0xE281, 238 },
4099
5.61k
    { 0xE288, 240 },
4100
5.61k
    { 0xE289, 243 },
4101
5.61k
    { 0xE290, 246 },
4102
5.61k
    { 0xE293, 637 },
4103
5.61k
    { 0xE298, 248 },
4104
5.61k
    { 0xE300, 250 },
4105
5.61k
    { 0xE304, 252 },
4106
5.61k
    { 0xE4C8, 620 },
4107
5.61k
    { 0xE510, 267 },
4108
5.61k
    { 0xE518, 270 },
4109
5.61k
    { 0xE520, 668 },
4110
5.61k
    { 0xE521, 669 },
4111
5.61k
    { 0xE528, 665 },
4112
5.61k
    { 0xE530, 670 },
4113
5.61k
    { 0xE531, 671 },
4114
5.61k
    { 0xE532, 672 },
4115
5.61k
    { 0xE533, 673 },
4116
5.61k
    { 0xE534, 674 },
4117
5.61k
    { 0xE535, 675 },
4118
5.61k
    { 0xE536, 676 },
4119
5.61k
    { 0xE537, 677 },
4120
5.61k
    { 0xE600, 273 },
4121
5.61k
    { 0xE601, 46 },
4122
5.61k
    { 0xE602, 276 },
4123
5.61k
    { 0xE609, 636 },
4124
5.61k
    { 0xE640, 555 },
4125
5.61k
    { 0xE641, 556 },
4126
5.61k
    { 0xE642, 557 },
4127
5.61k
    { 0xE643, 558 },
4128
5.61k
    { 0xE648, 559 },
4129
5.61k
    { 0xE649, 560 },
4130
5.61k
    { 0xE64A, 561 },
4131
5.61k
    { 0xE64B, 562 },
4132
5.61k
    { 0xE64C, 566 },
4133
5.61k
    { 0xE64D, 541 },
4134
5.61k
    { 0xE658, 563 },
4135
5.61k
    { 0xE659, 93 },
4136
5.61k
    { 0xE65A, 564 },
4137
5.61k
    { 0xE65B, 94 },
4138
5.61k
    { 0xE65D, 95 },
4139
5.61k
    { 0xE65F, 565 },
4140
5.61k
    { 0xE660, 567 },
4141
5.61k
    { 0xE661, 568 },
4142
5.61k
    { 0xE662, 569 },
4143
5.61k
    { 0xE663, 570 },
4144
5.61k
    { 0xE664, 571 },
4145
5.61k
    { 0xE665, 572 },
4146
5.61k
    { 0xE666, 573 },
4147
5.61k
    { 0xE667, 574 },
4148
5.61k
    { 0xE668, 575 },
4149
5.61k
    { 0xE669, 576 },
4150
5.61k
    { 0xE66A, 577 },
4151
5.61k
    { 0xE66B, 578 },
4152
5.61k
    { 0xE66C, 579 },
4153
5.61k
    { 0xE66D, 580 },
4154
5.61k
    { 0xE66E, 581 },
4155
5.61k
    { 0xE66F, 582 },
4156
5.61k
    { 0xE681, 589 },
4157
5.61k
    { 0xE682, 280 },
4158
5.61k
    { 0xE703, 285 },
4159
5.61k
    { 0xE708, 287 },
4160
5.61k
    { 0xE710, 289 },
4161
5.61k
    { 0xE711, 292 },
4162
5.61k
    { 0xE712, 295 },
4163
5.61k
    { 0xE718, 590 },
4164
5.61k
    { 0xE719, 592 },
4165
5.61k
    { 0xE71A, 591 },
4166
5.61k
    { 0xE720, 650 },
4167
5.61k
    { 0xE721, 652 },
4168
5.61k
    { 0xE722, 651 },
4169
5.61k
    { 0xE728, 653 },
4170
5.61k
    { 0xE729, 655 },
4171
5.61k
    { 0xE72A, 654 },
4172
5.61k
    { 0xE880, 593 },
4173
5.61k
    { 0xE882, 594 },
4174
5.61k
    { 0xE890, 735 },
4175
5.61k
    { 0xE891, 729 },
4176
5.61k
    { 0xE900, 595 },
4177
5.61k
    { 0xE901, 596 },
4178
5.61k
    { 0xE902, 597 },
4179
5.61k
    { 0xEA00, 613 },
4180
5.61k
    { 0xEA01, 614 },
4181
5.61k
    { 0xEA88, 598 },
4182
5.61k
    { 0xEA89, 599 },
4183
5.61k
    { 0xEA90, 600 },
4184
5.61k
    { 0xEB00, 601 },
4185
5.61k
    { 0xECC8, 621 },
4186
5.61k
    { 0xED10, 602 },
4187
5.61k
    { 0xED18, 603 },
4188
5.61k
    { 0xED28, 667 },
4189
5.61k
    { 0xEE00, 604 },
4190
5.61k
    { 0xEE81, 605 },
4191
5.61k
    { 0xEF08, 606 },
4192
5.61k
    { 0xEF10, 607 },
4193
5.61k
    { 0xEF11, 608 },
4194
5.61k
    { 0xEF12, 609 },
4195
5.61k
    { 0xEF18, 610 },
4196
5.61k
    { 0xEF19, 611 },
4197
5.61k
    { 0xEF1A, 612 },
4198
5.61k
    { 0xF080, 194 },
4199
5.61k
    { 0xF081, 197 },
4200
5.61k
    { 0xF088, 199 },
4201
5.61k
    { 0xF089, 201 },
4202
5.61k
    { 0xF08A, 203 },
4203
5.61k
    { 0xF090, 734 },
4204
5.61k
    { 0xF099, 206 },
4205
5.61k
    { 0xF100, 209 },
4206
5.61k
    { 0xF102, 213 },
4207
5.61k
    { 0xF200, 219 },
4208
5.61k
    { 0xF201, 222 },
4209
5.61k
    { 0xF208, 225 },
4210
5.61k
    { 0xF288, 241 },
4211
5.61k
    { 0xF289, 244 },
4212
5.61k
    { 0xF290, 247 },
4213
5.61k
    { 0xF300, 251 },
4214
5.61k
    { 0xF510, 268 },
4215
5.61k
    { 0xF518, 271 },
4216
5.61k
    { 0xF528, 666 },
4217
5.61k
    { 0xF600, 274 },
4218
5.61k
    { 0xF601, 47 },
4219
5.61k
    { 0xF602, 277 },
4220
5.61k
    { 0xF664, 539 },
4221
5.61k
    { 0xF665, 542 },
4222
5.61k
    { 0xF667, 545 },
4223
5.61k
    { 0xF682, 281 },
4224
5.61k
    { 0xFF10, 290 },
4225
5.61k
    { 0xFF11, 293 },
4226
5.61k
    { 0xFF12, 296 },
4227
5.61k
    { 0xFF90, 736 },
4228
5.61k
  };
4229
5.61k
4230
5.61k
  struct KeyType {
4231
5.61k
    uint16_t Encoding;
4232
5.61k
  };
4233
5.61k
  KeyType Key = { Encoding };
4234
5.61k
  auto Table = makeArrayRef(Index);
4235
5.61k
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
4236
53.9k
    [](const IndexType &LHS, const KeyType &RHS) {
4237
53.9k
      if (LHS.Encoding < RHS.Encoding)
4238
25.4k
        return true;
4239
28.5k
      if (LHS.Encoding > RHS.Encoding)
4240
22.9k
        return false;
4241
5.56k
      return false;
4242
5.56k
    });
4243
5.61k
4244
5.61k
  if (Idx == Table.end() ||
4245
5.61k
      Key.Encoding != Idx->Encoding)
4246
52
    return nullptr;
4247
5.56k
  return &SysRegsList[Idx->_index];
4248
5.56k
}
4249
#endif
4250
4251
#ifdef GET_TLBI_DECL
4252
const TLBI *lookupTLBIByName(StringRef Name);
4253
const TLBI *lookupTLBIByEncoding(uint16_t Encoding);
4254
#endif
4255
4256
#ifdef GET_TLBI_IMPL
4257
const TLBI TLBIsList[] = {
4258
  { "IPAS2E1IS", 0x2401, true,  {}  }, // 0
4259
  { "IPAS2LE1IS", 0x2405, true,  {}  }, // 1
4260
  { "VMALLE1IS", 0x418, false,  {}  }, // 2
4261
  { "ALLE2IS", 0x2418, false,  {}  }, // 3
4262
  { "ALLE3IS", 0x3418, false,  {}  }, // 4
4263
  { "VAE1IS", 0x419, true,  {}  }, // 5
4264
  { "VAE2IS", 0x2419, true,  {}  }, // 6
4265
  { "VAE3IS", 0x3419, true,  {}  }, // 7
4266
  { "ASIDE1IS", 0x41A, true,  {}  }, // 8
4267
  { "VAAE1IS", 0x41B, true,  {}  }, // 9
4268
  { "ALLE1IS", 0x241C, false,  {}  }, // 10
4269
  { "VALE1IS", 0x41D, true,  {}  }, // 11
4270
  { "VALE2IS", 0x241D, true,  {}  }, // 12
4271
  { "VALE3IS", 0x341D, true,  {}  }, // 13
4272
  { "VMALLS12E1IS", 0x241E, false,  {}  }, // 14
4273
  { "VAALE1IS", 0x41F, true,  {}  }, // 15
4274
  { "IPAS2E1", 0x2421, true,  {}  }, // 16
4275
  { "IPAS2LE1", 0x2425, true,  {}  }, // 17
4276
  { "VMALLE1", 0x438, false,  {}  }, // 18
4277
  { "ALLE2", 0x2438, false,  {}  }, // 19
4278
  { "ALLE3", 0x3438, false,  {}  }, // 20
4279
  { "VAE1", 0x439, true,  {}  }, // 21
4280
  { "VAE2", 0x2439, true,  {}  }, // 22
4281
  { "VAE3", 0x3439, true,  {}  }, // 23
4282
  { "ASIDE1", 0x43A, true,  {}  }, // 24
4283
  { "VAAE1", 0x43B, true,  {}  }, // 25
4284
  { "ALLE1", 0x243C, false,  {}  }, // 26
4285
  { "VALE1", 0x43D, true,  {}  }, // 27
4286
  { "VALE2", 0x243D, true,  {}  }, // 28
4287
  { "VALE3", 0x343D, true,  {}  }, // 29
4288
  { "VMALLS12E1", 0x243E, false,  {}  }, // 30
4289
  { "VAALE1", 0x43F, true,  {}  }, // 31
4290
  { "VMALLE1OS", 0x408, false,  {AArch64::HasV8_4aOps}  }, // 32
4291
  { "VAE1OS", 0x409, true,  {AArch64::HasV8_4aOps}  }, // 33
4292
  { "ASIDE1OS", 0x40A, true,  {AArch64::HasV8_4aOps}  }, // 34
4293
  { "VAAE1OS", 0x40B, true,  {AArch64::HasV8_4aOps}  }, // 35
4294
  { "VALE1OS", 0x40D, true,  {AArch64::HasV8_4aOps}  }, // 36
4295
  { "VAALE1OS", 0x40F, true,  {AArch64::HasV8_4aOps}  }, // 37
4296
  { "IPAS2E1OS", 0x2420, true,  {AArch64::HasV8_4aOps}  }, // 38
4297
  { "IPAS2LE1OS", 0x2424, true,  {AArch64::HasV8_4aOps}  }, // 39
4298
  { "VAE2OS", 0x2409, true,  {AArch64::HasV8_4aOps}  }, // 40
4299
  { "VALE2OS", 0x240D, true,  {AArch64::HasV8_4aOps}  }, // 41
4300
  { "VMALLS12E1OS", 0x240E, false,  {AArch64::HasV8_4aOps}  }, // 42
4301
  { "VAE3OS", 0x3409, true,  {AArch64::HasV8_4aOps}  }, // 43
4302
  { "VALE3OS", 0x340D, true,  {AArch64::HasV8_4aOps}  }, // 44
4303
  { "ALLE2OS", 0x2408, false,  {AArch64::HasV8_4aOps}  }, // 45
4304
  { "ALLE1OS", 0x240C, false,  {AArch64::HasV8_4aOps}  }, // 46
4305
  { "ALLE3OS", 0x3408, false,  {AArch64::HasV8_4aOps}  }, // 47
4306
  { "RVAE1", 0x431, true,  {AArch64::HasV8_4aOps}  }, // 48
4307
  { "RVAAE1", 0x433, true,  {AArch64::HasV8_4aOps}  }, // 49
4308
  { "RVALE1", 0x435, true,  {AArch64::HasV8_4aOps}  }, // 50
4309
  { "RVAALE1", 0x437, true,  {AArch64::HasV8_4aOps}  }, // 51
4310
  { "RVAE1IS", 0x411, true,  {AArch64::HasV8_4aOps}  }, // 52
4311
  { "RVAAE1IS", 0x413, true,  {AArch64::HasV8_4aOps}  }, // 53
4312
  { "RVALE1IS", 0x415, true,  {AArch64::HasV8_4aOps}  }, // 54
4313
  { "RVAALE1IS", 0x417, true,  {AArch64::HasV8_4aOps}  }, // 55
4314
  { "RVAE1OS", 0x429, true,  {AArch64::HasV8_4aOps}  }, // 56
4315
  { "RVAAE1OS", 0x42B, true,  {AArch64::HasV8_4aOps}  }, // 57
4316
  { "RVALE1OS", 0x42D, true,  {AArch64::HasV8_4aOps}  }, // 58
4317
  { "RVAALE1OS", 0x42F, true,  {AArch64::HasV8_4aOps}  }, // 59
4318
  { "RIPAS2E1IS", 0x2402, true,  {AArch64::HasV8_4aOps}  }, // 60
4319
  { "RIPAS2LE1IS", 0x2406, true,  {AArch64::HasV8_4aOps}  }, // 61
4320
  { "RIPAS2E1", 0x2422, true,  {AArch64::HasV8_4aOps}  }, // 62
4321
  { "RIPAS2LE1", 0x2426, true,  {AArch64::HasV8_4aOps}  }, // 63
4322
  { "RIPAS2E1OS", 0x2423, true,  {AArch64::HasV8_4aOps}  }, // 64
4323
  { "RIPAS2LE1OS", 0x2427, true,  {AArch64::HasV8_4aOps}  }, // 65
4324
  { "RVAE2", 0x2431, true,  {AArch64::HasV8_4aOps}  }, // 66
4325
  { "RVALE2", 0x2435, true,  {AArch64::HasV8_4aOps}  }, // 67
4326
  { "RVAE2IS", 0x2411, true,  {AArch64::HasV8_4aOps}  }, // 68
4327
  { "RVALE2IS", 0x2415, true,  {AArch64::HasV8_4aOps}  }, // 69
4328
  { "RVAE2OS", 0x2429, true,  {AArch64::HasV8_4aOps}  }, // 70
4329
  { "RVALE2OS", 0x242D, true,  {AArch64::HasV8_4aOps}  }, // 71
4330
  { "RVAE3", 0x3431, true,  {AArch64::HasV8_4aOps}  }, // 72
4331
  { "RVALE3", 0x3435, true,  {AArch64::HasV8_4aOps}  }, // 73
4332
  { "RVAE3IS", 0x3411, true,  {AArch64::HasV8_4aOps}  }, // 74
4333
  { "RVALE3IS", 0x3415, true,  {AArch64::HasV8_4aOps}  }, // 75
4334
  { "RVAE3OS", 0x3429, true,  {AArch64::HasV8_4aOps}  }, // 76
4335
  { "RVALE3OS", 0x342D, true,  {AArch64::HasV8_4aOps}  }, // 77
4336
 };
4337
4338
221
const TLBI *lookupTLBIByName(StringRef Name) {
4339
221
  struct IndexType {
4340
221
    const char * Name;
4341
221
    unsigned _index;
4342
221
  };
4343
221
  static const struct IndexType Index[] = {
4344
221
    { "ALLE1", 26 },
4345
221
    { "ALLE1IS", 10 },
4346
221
    { "ALLE1OS", 46 },
4347
221
    { "ALLE2", 19 },
4348
221
    { "ALLE2IS", 3 },
4349
221
    { "ALLE2OS", 45 },
4350
221
    { "ALLE3", 20 },
4351
221
    { "ALLE3IS", 4 },
4352
221
    { "ALLE3OS", 47 },
4353
221
    { "ASIDE1", 24 },
4354
221
    { "ASIDE1IS", 8 },
4355
221
    { "ASIDE1OS", 34 },
4356
221
    { "IPAS2E1", 16 },
4357
221
    { "IPAS2E1IS", 0 },
4358
221
    { "IPAS2E1OS", 38 },
4359
221
    { "IPAS2LE1", 17 },
4360
221
    { "IPAS2LE1IS", 1 },
4361
221
    { "IPAS2LE1OS", 39 },
4362
221
    { "RIPAS2E1", 62 },
4363
221
    { "RIPAS2E1IS", 60 },
4364
221
    { "RIPAS2E1OS", 64 },
4365
221
    { "RIPAS2LE1", 63 },
4366
221
    { "RIPAS2LE1IS", 61 },
4367
221
    { "RIPAS2LE1OS", 65 },
4368
221
    { "RVAAE1", 49 },
4369
221
    { "RVAAE1IS", 53 },
4370
221
    { "RVAAE1OS", 57 },
4371
221
    { "RVAALE1", 51 },
4372
221
    { "RVAALE1IS", 55 },
4373
221
    { "RVAALE1OS", 59 },
4374
221
    { "RVAE1", 48 },
4375
221
    { "RVAE1IS", 52 },
4376
221
    { "RVAE1OS", 56 },
4377
221
    { "RVAE2", 66 },
4378
221
    { "RVAE2IS", 68 },
4379
221
    { "RVAE2OS", 70 },
4380
221
    { "RVAE3", 72 },
4381
221
    { "RVAE3IS", 74 },
4382
221
    { "RVAE3OS", 76 },
4383
221
    { "RVALE1", 50 },
4384
221
    { "RVALE1IS", 54 },
4385
221
    { "RVALE1OS", 58 },
4386
221
    { "RVALE2", 67 },
4387
221
    { "RVALE2IS", 69 },
4388
221
    { "RVALE2OS", 71 },
4389
221
    { "RVALE3", 73 },
4390
221
    { "RVALE3IS", 75 },
4391
221
    { "RVALE3OS", 77 },
4392
221
    { "VAAE1", 25 },
4393
221
    { "VAAE1IS", 9 },
4394
221
    { "VAAE1OS", 35 },
4395
221
    { "VAALE1", 31 },
4396
221
    { "VAALE1IS", 15 },
4397
221
    { "VAALE1OS", 37 },
4398
221
    { "VAE1", 21 },
4399
221
    { "VAE1IS", 5 },
4400
221
    { "VAE1OS", 33 },
4401
221
    { "VAE2", 22 },
4402
221
    { "VAE2IS", 6 },
4403
221
    { "VAE2OS", 40 },
4404
221
    { "VAE3", 23 },
4405
221
    { "VAE3IS", 7 },
4406
221
    { "VAE3OS", 43 },
4407
221
    { "VALE1", 27 },
4408
221
    { "VALE1IS", 11 },
4409
221
    { "VALE1OS", 36 },
4410
221
    { "VALE2", 28 },
4411
221
    { "VALE2IS", 12 },
4412
221
    { "VALE2OS", 41 },
4413
221
    { "VALE3", 29 },
4414
221
    { "VALE3IS", 13 },
4415
221
    { "VALE3OS", 44 },
4416
221
    { "VMALLE1", 18 },
4417
221
    { "VMALLE1IS", 2 },
4418
221
    { "VMALLE1OS", 32 },
4419
221
    { "VMALLS12E1", 30 },
4420
221
    { "VMALLS12E1IS", 14 },
4421
221
    { "VMALLS12E1OS", 42 },
4422
221
  };
4423
221
4424
221
  struct KeyType {
4425
221
    std::string Name;
4426
221
  };
4427
221
  KeyType Key = { Name.upper() };
4428
221
  auto Table = makeArrayRef(Index);
4429
221
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
4430
1.41k
    [](const IndexType &LHS, const KeyType &RHS) {
4431
1.41k
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
4432
1.41k
      if (CmpName < 0) 
return true651
;
4433
762
      if (CmpName > 0) 
return false541
;
4434
221
      return false;
4435
221
    });
4436
221
4437
221
  if (Idx == Table.end() ||
4438
221
      Key.Name != Idx->Name)
4439
0
    return nullptr;
4440
221
  return &TLBIsList[Idx->_index];
4441
221
}
4442
4443
236
const TLBI *lookupTLBIByEncoding(uint16_t Encoding) {
4444
236
  struct IndexType {
4445
236
    uint16_t Encoding;
4446
236
    unsigned _index;
4447
236
  };
4448
236
  static const struct IndexType Index[] = {
4449
236
    { 0x408, 32 },
4450
236
    { 0x409, 33 },
4451
236
    { 0x40A, 34 },
4452
236
    { 0x40B, 35 },
4453
236
    { 0x40D, 36 },
4454
236
    { 0x40F, 37 },
4455
236
    { 0x411, 52 },
4456
236
    { 0x413, 53 },
4457
236
    { 0x415, 54 },
4458
236
    { 0x417, 55 },
4459
236
    { 0x418, 2 },
4460
236
    { 0x419, 5 },
4461
236
    { 0x41A, 8 },
4462
236
    { 0x41B, 9 },
4463
236
    { 0x41D, 11 },
4464
236
    { 0x41F, 15 },
4465
236
    { 0x429, 56 },
4466
236
    { 0x42B, 57 },
4467
236
    { 0x42D, 58 },
4468
236
    { 0x42F, 59 },
4469
236
    { 0x431, 48 },
4470
236
    { 0x433, 49 },
4471
236
    { 0x435, 50 },
4472
236
    { 0x437, 51 },
4473
236
    { 0x438, 18 },
4474
236
    { 0x439, 21 },
4475
236
    { 0x43A, 24 },
4476
236
    { 0x43B, 25 },
4477
236
    { 0x43D, 27 },
4478
236
    { 0x43F, 31 },
4479
236
    { 0x2401, 0 },
4480
236
    { 0x2402, 60 },
4481
236
    { 0x2405, 1 },
4482
236
    { 0x2406, 61 },
4483
236
    { 0x2408, 45 },
4484
236
    { 0x2409, 40 },
4485
236
    { 0x240C, 46 },
4486
236
    { 0x240D, 41 },
4487
236
    { 0x240E, 42 },
4488
236
    { 0x2411, 68 },
4489
236
    { 0x2415, 69 },
4490
236
    { 0x2418, 3 },
4491
236
    { 0x2419, 6 },
4492
236
    { 0x241C, 10 },
4493
236
    { 0x241D, 12 },
4494
236
    { 0x241E, 14 },
4495
236
    { 0x2420, 38 },
4496
236
    { 0x2421, 16 },
4497
236
    { 0x2422, 62 },
4498
236
    { 0x2423, 64 },
4499
236
    { 0x2424, 39 },
4500
236
    { 0x2425, 17 },
4501
236
    { 0x2426, 63 },
4502
236
    { 0x2427, 65 },
4503
236
    { 0x2429, 70 },
4504
236
    { 0x242D, 71 },
4505
236
    { 0x2431, 66 },
4506
236
    { 0x2435, 67 },
4507
236
    { 0x2438, 19 },
4508
236
    { 0x2439, 22 },
4509
236
    { 0x243C, 26 },
4510
236
    { 0x243D, 28 },
4511
236
    { 0x243E, 30 },
4512
236
    { 0x3408, 47 },
4513
236
    { 0x3409, 43 },
4514
236
    { 0x340D, 44 },
4515
236
    { 0x3411, 74 },
4516
236
    { 0x3415, 75 },
4517
236
    { 0x3418, 4 },
4518
236
    { 0x3419, 7 },
4519
236
    { 0x341D, 13 },
4520
236
    { 0x3429, 76 },
4521
236
    { 0x342D, 77 },
4522
236
    { 0x3431, 72 },
4523
236
    { 0x3435, 73 },
4524
236
    { 0x3438, 20 },
4525
236
    { 0x3439, 23 },
4526
236
    { 0x343D, 29 },
4527
236
  };
4528
236
4529
236
  struct KeyType {
4530
236
    uint16_t Encoding;
4531
236
  };
4532
236
  KeyType Key = { Encoding };
4533
236
  auto Table = makeArrayRef(Index);
4534
236
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
4535
1.50k
    [](const IndexType &LHS, const KeyType &RHS) {
4536
1.50k
      if (LHS.Encoding < RHS.Encoding)
4537
692
        return true;
4538
815
      if (LHS.Encoding > RHS.Encoding)
4539
579
        return false;
4540
236
      return false;
4541
236
    });
4542
236
4543
236
  if (Idx == Table.end() ||
4544
236
      Key.Encoding != Idx->Encoding)
4545
0
    return nullptr;
4546
236
  return &TLBIsList[Idx->_index];
4547
236
}
4548
#endif
4549
4550
#ifdef GET_TSB_DECL
4551
const TSB *lookupTSBByName(StringRef Name);
4552
const TSB *lookupTSBByEncoding(uint8_t Encoding);
4553
#endif
4554
4555
#ifdef GET_TSB_IMPL
4556
const TSB TSBsList[] = {
4557
  { "csync", 0x0,  {AArch64::HasV8_4aOps}  }, // 0
4558
 };
4559
4560
37
const TSB *lookupTSBByName(StringRef Name) {
4561
37
  struct IndexType {
4562
37
    const char * Name;
4563
37
    unsigned _index;
4564
37
  };
4565
37
  static const struct IndexType Index[] = {
4566
37
    { "CSYNC", 0 },
4567
37
  };
4568
37
4569
37
  struct KeyType {
4570
37
    std::string Name;
4571
37
  };
4572
37
  KeyType Key = { Name.upper() };
4573
37
  auto Table = makeArrayRef(Index);
4574
37
  auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
4575
37
    [](const IndexType &LHS, const KeyType &RHS) {
4576
37
      int CmpName = StringRef(LHS.Name).compare(RHS.Name);
4577
37
      if (CmpName < 0) 
return true35
;
4578
2
      if (CmpName > 0) 
return false0
;
4579
2
      return false;
4580
2
    });
4581
37
4582
37
  if (Idx == Table.end() ||
4583
37
      
Key.Name != Idx->Name2
)
4584
35
    return nullptr;
4585
2
  return &TSBsList[Idx->_index];
4586
2
}
4587
4588
0
const TSB *lookupTSBByEncoding(uint8_t Encoding) {
4589
0
  struct IndexType {
4590
0
    uint8_t Encoding;
4591
0
    unsigned _index;
4592
0
  };
4593
0
  static const struct IndexType Index[] = {
4594
0
    { 0x0, 0 },
4595
0
  };
4596
0
4597
0
  auto Table = makeArrayRef(Index);
4598
0
  size_t Idx = Encoding;
4599
0
  return Idx >= Table.size() ? nullptr : &TSBsList[Table[Idx]._index];
4600
0
}
4601
#endif
4602
4603
#undef GET_AT_DECL
4604
#undef GET_AT_IMPL
4605
#undef GET_DB_DECL
4606
#undef GET_DB_IMPL
4607
#undef GET_DC_DECL
4608
#undef GET_DC_IMPL
4609
#undef GET_EXACTFPIMM_DECL
4610
#undef GET_EXACTFPIMM_IMPL
4611
#undef GET_IC_DECL
4612
#undef GET_IC_IMPL
4613
#undef GET_ISB_DECL
4614
#undef GET_ISB_IMPL
4615
#undef GET_PRFM_DECL
4616
#undef GET_PRFM_IMPL
4617
#undef GET_PSB_DECL
4618
#undef GET_PSB_IMPL
4619
#undef GET_PSTATE_DECL
4620
#undef GET_PSTATE_IMPL
4621
#undef GET_SVEPREDPAT_DECL
4622
#undef GET_SVEPREDPAT_IMPL
4623
#undef GET_SVEPRFM_DECL
4624
#undef GET_SVEPRFM_IMPL
4625
#undef GET_SYSREG_DECL
4626
#undef GET_SYSREG_IMPL
4627
#undef GET_TLBI_DECL
4628
#undef GET_TLBI_IMPL
4629
#undef GET_TSB_DECL
4630
#undef GET_TSB_IMPL