summaryrefslogtreecommitdiff
path: root/arch/arm64/disassembler/sysregs.c
blob: 9592801553731d74b6a18906c37a95af3f1047b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
/* GENERATED FILE - DO NOT MODIFY - SUBMIT GITHUB ISSUE IF PROBLEM FOUND */

#include <stddef.h>

#include "sysregs.h"

const char *get_system_register_name(enum SystemReg sr)
{
	switch(sr) {
		case 32770: return "osdtrrx_el1";
		case 32772: return "dbgbvr0_el1";
		case 32773: return "dbgbcr0_el1";
		case 32774: return "dbgwvr0_el1";
		case 32775: return "dbgwcr0_el1";
		case 32780: return "dbgbvr1_el1";
		case 32781: return "dbgbcr1_el1";
		case 32782: return "dbgwvr1_el1";
		case 32783: return "dbgwcr1_el1";
		case 32784: return "mdccint_el1";
		case 32786: return "mdscr_el1";
		case 32788: return "dbgbvr2_el1";
		case 32789: return "dbgbcr2_el1";
		case 32790: return "dbgwvr2_el1";
		case 32791: return "dbgwcr2_el1";
		case 32794: return "osdtrtx_el1";
		case 32796: return "dbgbvr3_el1";
		case 32797: return "dbgbcr3_el1";
		case 32798: return "dbgwvr3_el1";
		case 32799: return "dbgwcr3_el1";
		case 32804: return "dbgbvr4_el1";
		case 32805: return "dbgbcr4_el1";
		case 32806: return "dbgwvr4_el1";
		case 32807: return "dbgwcr4_el1";
		case 32812: return "dbgbvr5_el1";
		case 32813: return "dbgbcr5_el1";
		case 32814: return "dbgwvr5_el1";
		case 32815: return "dbgwcr5_el1";
		case 32818: return "oseccr_el1";
		case 32820: return "dbgbvr6_el1";
		case 32821: return "dbgbcr6_el1";
		case 32822: return "dbgwvr6_el1";
		case 32823: return "dbgwcr6_el1";
		case 32828: return "dbgbvr7_el1";
		case 32829: return "dbgbcr7_el1";
		case 32830: return "dbgwvr7_el1";
		case 32831: return "dbgwcr7_el1";
		case 32836: return "dbgbvr8_el1";
		case 32837: return "dbgbcr8_el1";
		case 32838: return "dbgwvr8_el1";
		case 32839: return "dbgwcr8_el1";
		case 32844: return "dbgbvr9_el1";
		case 32845: return "dbgbcr9_el1";
		case 32846: return "dbgwvr9_el1";
		case 32847: return "dbgwcr9_el1";
		case 32852: return "dbgbvr10_el1";
		case 32853: return "dbgbcr10_el1";
		case 32854: return "dbgwvr10_el1";
		case 32855: return "dbgwcr10_el1";
		case 32860: return "dbgbvr11_el1";
		case 32861: return "dbgbcr11_el1";
		case 32862: return "dbgwvr11_el1";
		case 32863: return "dbgwcr11_el1";
		case 32868: return "dbgbvr12_el1";
		case 32869: return "dbgbcr12_el1";
		case 32870: return "dbgwvr12_el1";
		case 32871: return "dbgwcr12_el1";
		case 32876: return "dbgbvr13_el1";
		case 32877: return "dbgbcr13_el1";
		case 32878: return "dbgwvr13_el1";
		case 32879: return "dbgwcr13_el1";
		case 32884: return "dbgbvr14_el1";
		case 32885: return "dbgbcr14_el1";
		case 32886: return "dbgwvr14_el1";
		case 32887: return "dbgwcr14_el1";
		case 32892: return "dbgbvr15_el1";
		case 32893: return "dbgbcr15_el1";
		case 32894: return "dbgwvr15_el1";
		case 32895: return "dbgwcr15_el1";
		case 32900: return "oslar_el1";
		case 32924: return "osdlr_el1";
		case 32932: return "dbgprcr_el1";
		case 33734: return "dbgclaimset_el1";
		case 33742: return "dbgclaimclr_el1";
		case 34817: return "trctraceidr";
		case 34818: return "trcvictlr";
		case 34820: return "trcseqevr0";
		case 34821: return "trccntrldvr0";
		case 34823: return "trcimspec0";
		case 34824: return "trcprgctlr";
		case 34825: return "trcqctlr";
		case 34826: return "trcviiectlr";
		case 34828: return "trcseqevr1";
		case 34829: return "trccntrldvr1";
		case 34831: return "trcimspec1";
		case 34832: return "trcprocselr";
		case 34834: return "trcvissctlr";
		case 34836: return "trcseqevr2";
		case 34837: return "trccntrldvr2";
		case 34839: return "trcimspec2";
		case 34842: return "trcvipcssctlr";
		case 34845: return "trccntrldvr3";
		case 34847: return "trcimspec3";
		case 34848: return "trcconfigr";
		case 34853: return "trccntctlr0";
		case 34855: return "trcimspec4";
		case 34861: return "trccntctlr1";
		case 34863: return "trcimspec5";
		case 34864: return "trcauxctlr";
		case 34868: return "trcseqrstevr";
		case 34869: return "trccntctlr2";
		case 34871: return "trcimspec6";
		case 34876: return "trcseqstr";
		case 34877: return "trccntctlr3";
		case 34879: return "trcimspec7";
		case 34880: return "trceventctl0r";
		case 34882: return "trcvdctlr";
		case 34884: return "trcextinselr";
		case 34885: return "trccntvr0";
		case 34888: return "trceventctl1r";
		case 34890: return "trcvdsacctlr";
		case 34892: return "trcextinselr1";
		case 34893: return "trccntvr1";
		case 34896: return "trcrsr";
		case 34898: return "trcvdarcctlr";
		case 34900: return "trcextinselr2";
		case 34901: return "trccntvr2";
		case 34904: return "trcstallctlr";
		case 34908: return "trcextinselr3";
		case 34909: return "trccntvr3";
		case 34912: return "trctsctlr";
		case 34920: return "trcsyncpr";
		case 34928: return "trcccctlr";
		case 34936: return "trcbbctlr";
		case 34945: return "trcrsctlr16";
		case 34946: return "trcssccr0";
		case 34947: return "trcsspcicr0";
		case 34948: return "trcoslar";
		case 34953: return "trcrsctlr17";
		case 34954: return "trcssccr1";
		case 34955: return "trcsspcicr1";
		case 34960: return "trcrsctlr2";
		case 34961: return "trcrsctlr18";
		case 34962: return "trcssccr2";
		case 34963: return "trcsspcicr2";
		case 34968: return "trcrsctlr3";
		case 34969: return "trcrsctlr19";
		case 34970: return "trcssccr3";
		case 34971: return "trcsspcicr3";
		case 34976: return "trcrsctlr4";
		case 34977: return "trcrsctlr20";
		case 34978: return "trcssccr4";
		case 34979: return "trcsspcicr4";
		case 34980: return "trcpdcr";
		case 34984: return "trcrsctlr5";
		case 34985: return "trcrsctlr21";
		case 34986: return "trcssccr5";
		case 34987: return "trcsspcicr5";
		case 34992: return "trcrsctlr6";
		case 34993: return "trcrsctlr22";
		case 34994: return "trcssccr6";
		case 34995: return "trcsspcicr6";
		case 35000: return "trcrsctlr7";
		case 35001: return "trcrsctlr23";
		case 35002: return "trcssccr7";
		case 35003: return "trcsspcicr7";
		case 35008: return "trcrsctlr8";
		case 35009: return "trcrsctlr24";
		case 35010: return "trcsscsr0";
		case 35016: return "trcrsctlr9";
		case 35017: return "trcrsctlr25";
		case 35018: return "trcsscsr1";
		case 35024: return "trcrsctlr10";
		case 35025: return "trcrsctlr26";
		case 35026: return "trcsscsr2";
		case 35032: return "trcrsctlr11";
		case 35033: return "trcrsctlr27";
		case 35034: return "trcsscsr3";
		case 35040: return "trcrsctlr12";
		case 35041: return "trcrsctlr28";
		case 35042: return "trcsscsr4";
		case 35048: return "trcrsctlr13";
		case 35049: return "trcrsctlr29";
		case 35050: return "trcsscsr5";
		case 35056: return "trcrsctlr14";
		case 35057: return "trcrsctlr30";
		case 35058: return "trcsscsr6";
		case 35064: return "trcrsctlr15";
		case 35065: return "trcrsctlr31";
		case 35066: return "trcsscsr7";
		case 35072: return "trcacvr0";
		case 35073: return "trcacvr8";
		case 35074: return "trcacatr0";
		case 35075: return "trcacatr8";
		case 35076: return "trcdvcvr0";
		case 35077: return "trcdvcvr4";
		case 35078: return "trcdvcmr0";
		case 35079: return "trcdvcmr4";
		case 35088: return "trcacvr1";
		case 35089: return "trcacvr9";
		case 35090: return "trcacatr1";
		case 35091: return "trcacatr9";
		case 35104: return "trcacvr2";
		case 35105: return "trcacvr10";
		case 35106: return "trcacatr2";
		case 35107: return "trcacatr10";
		case 35108: return "trcdvcvr1";
		case 35109: return "trcdvcvr5";
		case 35110: return "trcdvcmr1";
		case 35111: return "trcdvcmr5";
		case 35120: return "trcacvr3";
		case 35121: return "trcacvr11";
		case 35122: return "trcacatr3";
		case 35123: return "trcacatr11";
		case 35136: return "trcacvr4";
		case 35137: return "trcacvr12";
		case 35138: return "trcacatr4";
		case 35139: return "trcacatr12";
		case 35140: return "trcdvcvr2";
		case 35141: return "trcdvcvr6";
		case 35142: return "trcdvcmr2";
		case 35143: return "trcdvcmr6";
		case 35152: return "trcacvr5";
		case 35153: return "trcacvr13";
		case 35154: return "trcacatr5";
		case 35155: return "trcacatr13";
		case 35168: return "trcacvr6";
		case 35169: return "trcacvr14";
		case 35170: return "trcacatr6";
		case 35171: return "trcacatr14";
		case 35172: return "trcdvcvr3";
		case 35173: return "trcdvcvr7";
		case 35174: return "trcdvcmr3";
		case 35175: return "trcdvcmr7";
		case 35184: return "trcacvr7";
		case 35185: return "trcacvr15";
		case 35186: return "trcacatr7";
		case 35187: return "trcacatr15";
		case 35200: return "trccidcvr0";
		case 35201: return "trcvmidcvr0";
		case 35202: return "trccidcctlr0";
		case 35210: return "trccidcctlr1";
		case 35216: return "trccidcvr1";
		case 35217: return "trcvmidcvr1";
		case 35218: return "trcvmidcctlr0";
		case 35226: return "trcvmidcctlr1";
		case 35232: return "trccidcvr2";
		case 35233: return "trcvmidcvr2";
		case 35248: return "trccidcvr3";
		case 35249: return "trcvmidcvr3";
		case 35264: return "trccidcvr4";
		case 35265: return "trcvmidcvr4";
		case 35280: return "trccidcvr5";
		case 35281: return "trcvmidcvr5";
		case 35296: return "trccidcvr6";
		case 35297: return "trcvmidcvr6";
		case 35312: return "trccidcvr7";
		case 35313: return "trcvmidcvr7";
		case 35716: return "trcitctrl";
		case 35782: return "trcclaimset";
		case 35790: return "trcclaimclr";
		case 35814: return "trclar";
		case 36864: return "teecr32_el1";
		case 36992: return "teehbr32_el1";
		case 38944: return "dbgdtr_el0";
		case 38952: return "dbgdtrtx_el0";
		case 41016: return "dbgvcr32_el2";
		case 49157: return "mpidr_el1";
		case 49280: return "sctlr_el1";
		case 49281: return "actlr_el1";
		case 49282: return "cpacr_el1";
		case 49285: return "rgsr_el1";
		case 49286: return "gcr_el1";
		case 49297: return "trfcr_el1";
		case 49408: return "ttbr0_el1";
		case 49409: return "ttbr1_el1";
		case 49410: return "tcr_el1";
		case 49416: return "apiakeylo_el1";
		case 49417: return "apiakeyhi_el1";
		case 49418: return "apibkeylo_el1";
		case 49419: return "apibkeyhi_el1";
		case 49424: return "apdakeylo_el1";
		case 49425: return "apdakeyhi_el1";
		case 49426: return "apdbkeylo_el1";
		case 49427: return "apdbkeyhi_el1";
		case 49432: return "apgakeylo_el1";
		case 49433: return "apgakeyhi_el1";
		case 49664: return "spsr_el1";
		case 49665: return "elr_el1";
		case 49672: return "sp_el0";
		case 49680: return "spsel";
		case 49682: return "currentel";
		case 49683: return "pan";
		case 49684: return "uao";
		case 49712: return "icc_pmr_el1";
		case 49800: return "afsr0_el1";
		case 49801: return "afsr1_el1";
		case 49808: return "esr_el1";
		case 49817: return "errselr_el1";
		case 49825: return "erxctlr_el1";
		case 49826: return "erxstatus_el1";
		case 49827: return "erxaddr_el1";
		case 49829: return "erxpfgctl_el1";
		case 49830: return "erxpfgcdn_el1";
		case 49832: return "erxmisc0_el1";
		case 49833: return "erxmisc1_el1";
		case 49834: return "erxmisc2_el1";
		case 49835: return "erxmisc3_el1";
		case 49839: return "erxts_el1";
		case 49840: return "tfsr_el1";
		case 49841: return "tfsre0_el1";
		case 49920: return "far_el1";
		case 50080: return "par_el1";
		case 50376: return "pmscr_el1";
		case 50378: return "pmsicr_el1";
		case 50379: return "pmsirr_el1";
		case 50380: return "pmsfcr_el1";
		case 50381: return "pmsevfr_el1";
		case 50382: return "pmslatfr_el1";
		case 50383: return "pmsidr_el1";
		case 50384: return "pmblimitr_el1";
		case 50385: return "pmbptr_el1";
		case 50387: return "pmbsr_el1";
		case 50391: return "pmbidr_el1";
		case 50392: return "trblimitr_el1";
		case 50393: return "trbptr_el1";
		case 50394: return "trbbaser_el1";
		case 50395: return "trbsr_el1";
		case 50396: return "trbmar_el1";
		case 50398: return "trbtrg_el1";
		case 50417: return "pmintenset_el1";
		case 50418: return "pmintenclr_el1";
		case 50422: return "pmmir_el1";
		case 50448: return "mair_el1";
		case 50456: return "amair_el1";
		case 50464: return "lorsa_el1";
		case 50465: return "lorea_el1";
		case 50466: return "lorn_el1";
		case 50467: return "lorc_el1";
		case 50472: return "mpam1_el1";
		case 50473: return "mpam0_el1";
		case 50688: return "vbar_el1";
		case 50690: return "rmr_el1";
		case 50697: return "disr_el1";
		case 50753: return "icc_eoir0_el1";
		case 50755: return "icc_bpr0_el1";
		case 50756: return "icc_ap0r0_el1";
		case 50757: return "icc_ap0r1_el1";
		case 50758: return "icc_ap0r2_el1";
		case 50759: return "icc_ap0r3_el1";
		case 50760: return "icc_ap1r0_el1";
		case 50761: return "icc_ap1r1_el1";
		case 50762: return "icc_ap1r2_el1";
		case 50763: return "icc_ap1r3_el1";
		case 50777: return "icc_dir_el1";
		case 50781: return "icc_sgi1r_el1";
		case 50782: return "icc_asgi1r_el1";
		case 50783: return "icc_sgi0r_el1";
		case 50785: return "icc_eoir1_el1";
		case 50787: return "icc_bpr1_el1";
		case 50788: return "icc_ctlr_el1";
		case 50789: return "icc_sre_el1";
		case 50790: return "icc_igrpen0_el1";
		case 50791: return "icc_igrpen1_el1";
		case 50792: return "icc_seien_el1";
		case 50817: return "contextidr_el1";
		case 50820: return "tpidr_el1";
		case 50823: return "scxtnum_el1";
		case 50952: return "cntkctl_el1";
		case 53248: return "csselr_el1";
		case 55297: return "ctr_el0";
		case 55303: return "dczid_el0";
		case 55824: return "nzcv";
		case 55825: return "daifset";
		case 55829: return "dit";
		case 55830: return "ssbs";
		case 55831: return "tco";
		case 55840: return "fpcr";
		case 55841: return "fpsr";
		case 55848: return "dspsr_el0";
		case 55849: return "dlr_el0";
		case 56544: return "pmcr_el0";
		case 56545: return "pmcntenset_el0";
		case 56546: return "pmcntenclr_el0";
		case 56547: return "pmovsclr_el0";
		case 56548: return "pmswinc_el0";
		case 56549: return "pmselr_el0";
		case 56552: return "pmccntr_el0";
		case 56553: return "pmxevtyper_el0";
		case 56554: return "pmxevcntr_el0";
		case 56557: return "daifclr";
		case 56560: return "pmuserenr_el0";
		case 56563: return "pmovsset_el0";
		case 56962: return "tpidr_el0";
		case 56963: return "tpidrro_el0";
		case 56967: return "scxtnum_el0";
		case 56976: return "amcr_el0";
		case 56979: return "amuserenr_el0";
		case 56980: return "amcntenclr0_el0";
		case 56981: return "amcntenset0_el0";
		case 56984: return "amcntenclr1_el0";
		case 56985: return "amcntenset1_el0";
		case 56992: return "amevcntr00_el0";
		case 56993: return "amevcntr01_el0";
		case 56994: return "amevcntr02_el0";
		case 56995: return "amevcntr03_el0";
		case 57056: return "amevcntr10_el0";
		case 57057: return "amevcntr11_el0";
		case 57058: return "amevcntr12_el0";
		case 57059: return "amevcntr13_el0";
		case 57060: return "amevcntr14_el0";
		case 57061: return "amevcntr15_el0";
		case 57062: return "amevcntr16_el0";
		case 57063: return "amevcntr17_el0";
		case 57064: return "amevcntr18_el0";
		case 57065: return "amevcntr19_el0";
		case 57066: return "amevcntr110_el0";
		case 57067: return "amevcntr111_el0";
		case 57068: return "amevcntr112_el0";
		case 57069: return "amevcntr113_el0";
		case 57070: return "amevcntr114_el0";
		case 57071: return "amevcntr115_el0";
		case 57072: return "amevtyper10_el0";
		case 57073: return "amevtyper11_el0";
		case 57074: return "amevtyper12_el0";
		case 57075: return "amevtyper13_el0";
		case 57076: return "amevtyper14_el0";
		case 57077: return "amevtyper15_el0";
		case 57078: return "amevtyper16_el0";
		case 57079: return "amevtyper17_el0";
		case 57080: return "amevtyper18_el0";
		case 57081: return "amevtyper19_el0";
		case 57082: return "amevtyper110_el0";
		case 57083: return "amevtyper111_el0";
		case 57084: return "amevtyper112_el0";
		case 57085: return "amevtyper113_el0";
		case 57086: return "amevtyper114_el0";
		case 57087: return "amevtyper115_el0";
		case 57088: return "cntfrq_el0";
		case 57089: return "cntpct_el0";
		case 57104: return "cntp_tval_el0";
		case 57105: return "cntp_ctl_el0";
		case 57106: return "cntp_cval_el0";
		case 57112: return "cntv_tval_el0";
		case 57113: return "cntv_ctl_el0";
		case 57114: return "cntv_cval_el0";
		case 57152: return "pmevcntr0_el0";
		case 57153: return "pmevcntr1_el0";
		case 57154: return "pmevcntr2_el0";
		case 57155: return "pmevcntr3_el0";
		case 57156: return "pmevcntr4_el0";
		case 57157: return "pmevcntr5_el0";
		case 57158: return "pmevcntr6_el0";
		case 57159: return "pmevcntr7_el0";
		case 57160: return "pmevcntr8_el0";
		case 57161: return "pmevcntr9_el0";
		case 57162: return "pmevcntr10_el0";
		case 57163: return "pmevcntr11_el0";
		case 57164: return "pmevcntr12_el0";
		case 57165: return "pmevcntr13_el0";
		case 57166: return "pmevcntr14_el0";
		case 57167: return "pmevcntr15_el0";
		case 57168: return "pmevcntr16_el0";
		case 57169: return "pmevcntr17_el0";
		case 57170: return "pmevcntr18_el0";
		case 57171: return "pmevcntr19_el0";
		case 57172: return "pmevcntr20_el0";
		case 57173: return "pmevcntr21_el0";
		case 57174: return "pmevcntr22_el0";
		case 57175: return "pmevcntr23_el0";
		case 57176: return "pmevcntr24_el0";
		case 57177: return "pmevcntr25_el0";
		case 57178: return "pmevcntr26_el0";
		case 57179: return "pmevcntr27_el0";
		case 57180: return "pmevcntr28_el0";
		case 57181: return "pmevcntr29_el0";
		case 57182: return "pmevcntr30_el0";
		case 57184: return "pmevtyper0_el0";
		case 57185: return "pmevtyper1_el0";
		case 57186: return "pmevtyper2_el0";
		case 57187: return "pmevtyper3_el0";
		case 57188: return "pmevtyper4_el0";
		case 57189: return "pmevtyper5_el0";
		case 57190: return "pmevtyper6_el0";
		case 57191: return "pmevtyper7_el0";
		case 57192: return "pmevtyper8_el0";
		case 57193: return "pmevtyper9_el0";
		case 57194: return "pmevtyper10_el0";
		case 57195: return "pmevtyper11_el0";
		case 57196: return "pmevtyper12_el0";
		case 57197: return "pmevtyper13_el0";
		case 57198: return "pmevtyper14_el0";
		case 57199: return "pmevtyper15_el0";
		case 57200: return "pmevtyper16_el0";
		case 57201: return "pmevtyper17_el0";
		case 57202: return "pmevtyper18_el0";
		case 57203: return "pmevtyper19_el0";
		case 57204: return "pmevtyper20_el0";
		case 57205: return "pmevtyper21_el0";
		case 57206: return "pmevtyper22_el0";
		case 57207: return "pmevtyper23_el0";
		case 57208: return "pmevtyper24_el0";
		case 57209: return "pmevtyper25_el0";
		case 57210: return "pmevtyper26_el0";
		case 57211: return "pmevtyper27_el0";
		case 57212: return "pmevtyper28_el0";
		case 57213: return "pmevtyper29_el0";
		case 57214: return "pmevtyper30_el0";
		case 57215: return "pmccfiltr_el0";
		case 57344: return "vpidr_el2";
		case 57349: return "vmpidr_el2";
		case 57472: return "sctlr_el2";
		case 57473: return "actlr_el2";
		case 57480: return "hcr_el2";
		case 57481: return "mdcr_el2";
		case 57482: return "cptr_el2";
		case 57483: return "hstr_el2";
		case 57487: return "hacr_el2";
		case 57489: return "trfcr_el2";
		case 57497: return "sder32_el2";
		case 57600: return "ttbr0_el2";
		case 57601: return "ttbr1_el2";
		case 57602: return "tcr_el2";
		case 57608: return "vttbr_el2";
		case 57610: return "vtcr_el2";
		case 57616: return "vncr_el2";
		case 57648: return "vsttbr_el2";
		case 57650: return "vstcr_el2";
		case 57728: return "dacr32_el2";
		case 57856: return "spsr_el2";
		case 57857: return "elr_el2";
		case 57864: return "sp_el1";
		case 57880: return "spsr_irq";
		case 57881: return "spsr_abt";
		case 57882: return "spsr_und";
		case 57883: return "spsr_fiq";
		case 57985: return "ifsr32_el2";
		case 57992: return "afsr0_el2";
		case 57993: return "afsr1_el2";
		case 58000: return "esr_el2";
		case 58003: return "vsesr_el2";
		case 58008: return "fpexc32_el2";
		case 58032: return "tfsr_el2";
		case 58112: return "far_el2";
		case 58116: return "hpfar_el2";
		case 58568: return "pmscr_el2";
		case 58640: return "mair_el2";
		case 58648: return "amair_el2";
		case 58656: return "mpamhcr_el2";
		case 58657: return "mpamvpmv_el2";
		case 58664: return "mpam2_el2";
		case 58672: return "mpamvpm0_el2";
		case 58673: return "mpamvpm1_el2";
		case 58674: return "mpamvpm2_el2";
		case 58675: return "mpamvpm3_el2";
		case 58676: return "mpamvpm4_el2";
		case 58677: return "mpamvpm5_el2";
		case 58678: return "mpamvpm6_el2";
		case 58679: return "mpamvpm7_el2";
		case 58880: return "vbar_el2";
		case 58882: return "rmr_el2";
		case 58889: return "vdisr_el2";
		case 58944: return "ich_ap0r0_el2";
		case 58945: return "ich_ap0r1_el2";
		case 58946: return "ich_ap0r2_el2";
		case 58947: return "ich_ap0r3_el2";
		case 58952: return "ich_ap1r0_el2";
		case 58953: return "ich_ap1r1_el2";
		case 58954: return "ich_ap1r2_el2";
		case 58955: return "ich_ap1r3_el2";
		case 58956: return "ich_vseir_el2";
		case 58957: return "icc_sre_el2";
		case 58968: return "ich_hcr_el2";
		case 58970: return "ich_misr_el2";
		case 58975: return "ich_vmcr_el2";
		case 58976: return "ich_lr0_el2";
		case 58977: return "ich_lr1_el2";
		case 58978: return "ich_lr2_el2";
		case 58979: return "ich_lr3_el2";
		case 58980: return "ich_lr4_el2";
		case 58981: return "ich_lr5_el2";
		case 58982: return "ich_lr6_el2";
		case 58983: return "ich_lr7_el2";
		case 58984: return "ich_lr8_el2";
		case 58985: return "ich_lr9_el2";
		case 58986: return "ich_lr10_el2";
		case 58987: return "ich_lr11_el2";
		case 58988: return "ich_lr12_el2";
		case 58989: return "ich_lr13_el2";
		case 58990: return "ich_lr14_el2";
		case 58991: return "ich_lr15_el2";
		case 59009: return "contextidr_el2";
		case 59010: return "tpidr_el2";
		case 59015: return "scxtnum_el2";
		case 59139: return "cntvoff_el2";
		case 59144: return "cnthctl_el2";
		case 59152: return "cnthp_tval_el2";
		case 59153: return "cnthp_ctl_el2";
		case 59154: return "cnthp_cval_el2";
		case 59160: return "cnthv_tval_el2";
		case 59161: return "cnthv_ctl_el2";
		case 59162: return "cnthv_cval_el2";
		case 59168: return "cnthvs_tval_el2";
		case 59169: return "cnthvs_ctl_el2";
		case 59170: return "cnthvs_cval_el2";
		case 59176: return "cnthps_tval_el2";
		case 59177: return "cnthps_ctl_el2";
		case 59178: return "cnthps_cval_el2";
		case 59520: return "sctlr_el12";
		case 59522: return "cpacr_el12";
		case 59537: return "trfcr_el12";
		case 59648: return "ttbr0_el12";
		case 59649: return "ttbr1_el12";
		case 59650: return "tcr_el12";
		case 59904: return "spsr_el12";
		case 59905: return "elr_el12";
		case 60040: return "afsr0_el12";
		case 60041: return "afsr1_el12";
		case 60048: return "esr_el12";
		case 60080: return "tfsr_el12";
		case 60160: return "far_el12";
		case 60616: return "pmscr_el12";
		case 60688: return "mair_el12";
		case 60696: return "amair_el12";
		case 60712: return "mpam1_el12";
		case 60928: return "vbar_el12";
		case 61057: return "contextidr_el12";
		case 61063: return "scxtnum_el12";
		case 61192: return "cntkctl_el12";
		case 61200: return "cntp_tval_el02";
		case 61201: return "cntp_ctl_el02";
		case 61202: return "cntp_cval_el02";
		case 61208: return "cntv_tval_el02";
		case 61209: return "cntv_ctl_el02";
		case 61210: return "cntv_cval_el02";
		case 61568: return "sctlr_el3";
		case 61569: return "actlr_el3";
		case 61576: return "scr_el3";
		case 61577: return "sder32_el3";
		case 61578: return "cptr_el3";
		case 61593: return "mdcr_el3";
		case 61696: return "ttbr0_el3";
		case 61698: return "tcr_el3";
		case 61952: return "spsr_el3";
		case 61953: return "elr_el3";
		case 61960: return "sp_el2";
		case 62088: return "afsr0_el3";
		case 62089: return "afsr1_el3";
		case 62096: return "esr_el3";
		case 62128: return "tfsr_el3";
		case 62208: return "far_el3";
		case 62736: return "mair_el3";
		case 62744: return "amair_el3";
		case 62760: return "mpam3_el3";
		case 62976: return "vbar_el3";
		case 62978: return "rmr_el3";
		case 63076: return "icc_ctlr_el3";
		case 63077: return "icc_sre_el3";
		case 63079: return "icc_igrpen1_el3";
		case 63106: return "tpidr_el3";
		case 63111: return "scxtnum_el3";
		case 65296: return "cntps_tval_el1";
		case 65297: return "cntps_ctl_el1";
		case 65298: return "cntps_cval_el1";
		case 65299: return "spsel";
		default: return "";
	}
}

const char *get_system_register_name_decomposed(int op0, int op1, int CRn, int CRm, int op2)
{
	enum SystemReg sr = (enum SystemReg)((op0<<14)|(op1<<11)|(CRn<<7)|(CRm<<3)|op2);
	return get_system_register_name(sr);
}