aboutsummaryrefslogtreecommitdiffstats
path: root/capstone/arch/AArch64/AArch64GenSystemOperands.inc
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /capstone/arch/AArch64/AArch64GenSystemOperands.inc
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'capstone/arch/AArch64/AArch64GenSystemOperands.inc')
-rw-r--r--capstone/arch/AArch64/AArch64GenSystemOperands.inc2049
1 files changed, 2049 insertions, 0 deletions
diff --git a/capstone/arch/AArch64/AArch64GenSystemOperands.inc b/capstone/arch/AArch64/AArch64GenSystemOperands.inc
new file mode 100644
index 000000000..eacb53639
--- /dev/null
+++ b/capstone/arch/AArch64/AArch64GenSystemOperands.inc
@@ -0,0 +1,2049 @@
+/* Capstone Disassembly Engine, http://www.capstone-engine.org */
+/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
+
+static const AT ATsList[] = {
+ { "s1e1r", 0x3C0 }, // 0
+ { "s1e2r", 0x23C0 }, // 1
+ { "s1e3r", 0x33C0 }, // 2
+ { "s1e1w", 0x3C1 }, // 3
+ { "s1e2w", 0x23C1 }, // 4
+ { "s1e3w", 0x33C1 }, // 5
+ { "s1e0r", 0x3C2 }, // 6
+ { "s1e0w", 0x3C3 }, // 7
+ { "s12e1r", 0x23C4 }, // 8
+ { "s12e1w", 0x23C5 }, // 9
+ { "s12e0r", 0x23C6 }, // 10
+ { "s12e0w", 0x23C7 }, // 11
+ { "s1e1rp", 0x3C8 }, // 12
+ { "s1e1wp", 0x3C9 }, // 13
+};
+
+const AT *lookupATByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x3C0, 0 },
+ { 0x3C1, 3 },
+ { 0x3C2, 6 },
+ { 0x3C3, 7 },
+ { 0x3C8, 12 },
+ { 0x3C9, 13 },
+ { 0x23C0, 1 },
+ { 0x23C1, 4 },
+ { 0x23C4, 8 },
+ { 0x23C5, 9 },
+ { 0x23C6, 10 },
+ { 0x23C7, 11 },
+ { 0x33C0, 2 },
+ { 0x33C1, 5 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &ATsList[Index[i].index];
+}
+
+static const DB DBsList[] = {
+ { "oshld", 0x1 }, // 0
+ { "oshst", 0x2 }, // 1
+ { "osh", 0x3 }, // 2
+ { "nshld", 0x5 }, // 3
+ { "nshst", 0x6 }, // 4
+ { "nsh", 0x7 }, // 5
+ { "ishld", 0x9 }, // 6
+ { "ishst", 0xA }, // 7
+ { "ish", 0xB }, // 8
+ { "ld", 0xD }, // 9
+ { "st", 0xE }, // 10
+ { "sy", 0xF }, // 11
+};
+
+const DB *lookupDBByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x1, 0 },
+ { 0x2, 1 },
+ { 0x3, 2 },
+ { 0x5, 3 },
+ { 0x6, 4 },
+ { 0x7, 5 },
+ { 0x9, 6 },
+ { 0xA, 7 },
+ { 0xB, 8 },
+ { 0xD, 9 },
+ { 0xE, 10 },
+ { 0xF, 11 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &DBsList[Index[i].index];
+}
+
+static const DC DCsList[] = {
+ { "zva", 0x1BA1 }, // 0
+ { "ivac", 0x3B1 }, // 1
+ { "isw", 0x3B2 }, // 2
+ { "cvac", 0x1BD1 }, // 3
+ { "csw", 0x3D2 }, // 4
+ { "cvau", 0x1BD9 }, // 5
+ { "civac", 0x1BF1 }, // 6
+ { "cisw", 0x3F2 }, // 7
+ { "cvap", 0x1BE1 }, // 8
+};
+
+const DC *lookupDCByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x3B1, 1 },
+ { 0x3B2, 2 },
+ { 0x3D2, 4 },
+ { 0x3F2, 7 },
+ { 0x1BA1, 0 },
+ { 0x1BD1, 3 },
+ { 0x1BD9, 5 },
+ { 0x1BE1, 8 },
+ { 0x1BF1, 6 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &DCsList[Index[i].index];
+}
+
+static const IC ICsList[] = {
+ { "ialluis", 0x388, false }, // 0
+ { "iallu", 0x3a8, false }, // 1
+ { "ivau", 0x1ba9, true }, // 2
+};
+
+const IC *lookupICByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x388, 0 },
+ { 0x3A8, 1 },
+ { 0x1BA9, 2 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &ICsList[Index[i].index];
+}
+
+static const TLBI TLBIsList[] = {
+ { "ipas2e1is", 0x2401, true }, // 0
+ { "ipas2le1is", 0x2405, true }, // 1
+ { "vmalle1is", 0x418, false }, // 2
+ { "alle2is", 0x2418, false }, // 3
+ { "alle3is", 0x3418, false }, // 4
+ { "vae1is", 0x419, true }, // 5
+ { "vae2is", 0x2419, true }, // 6
+ { "vae3is", 0x3419, true }, // 7
+ { "aside1is", 0x41A, true }, // 8
+ { "vaae1is", 0x41B, true }, // 9
+ { "alle1is", 0x241C, false }, // 10
+ { "vale1is", 0x41D, true }, // 11
+ { "vale2is", 0x241D, true }, // 12
+ { "vale3is", 0x341D, true }, // 13
+ { "vmalls12e1is", 0x241E, false }, // 14
+ { "vaale1is", 0x41F, true }, // 15
+ { "ipas2e1", 0x2421, true }, // 16
+ { "ipas2le1", 0x2425, true }, // 17
+ { "vmalle1", 0x438, false }, // 18
+ { "alle2", 0x2438, false }, // 19
+ { "alle3", 0x3438, false }, // 20
+ { "vae1", 0x439, true }, // 21
+ { "vae2", 0x2439, true }, // 22
+ { "vae3", 0x3439, true }, // 23
+ { "aside1", 0x43A, true }, // 24
+ { "vaae1", 0x43B, true }, // 25
+ { "alle1", 0x243C, false }, // 26
+ { "vale1", 0x43D, true }, // 27
+ { "vale2", 0x243D, true }, // 28
+ { "vale3", 0x343D, true }, // 29
+ { "vmalls12e1", 0x243E, false }, // 30
+ { "vaale1", 0x43F, true }, // 31
+ { "vmalle1os", 0x408, false }, // 32
+ { "vae1os", 0x409, true }, // 33
+ { "aside1os", 0x40A, true }, // 34
+ { "vaae1os", 0x40B, true }, // 35
+ { "vale1os", 0x40D, true }, // 36
+ { "vaale1os", 0x40F, true }, // 37
+ { "ipas2e1os", 0x2420, true }, // 38
+ { "ipas2le1os", 0x2424, true }, // 39
+ { "vae2os", 0x2409, true }, // 40
+ { "vale2os", 0x240D, true }, // 41
+ { "vmalls12e1os", 0x240E, false }, // 42
+ { "vae3os", 0x3409, true }, // 43
+ { "vale3os", 0x340D, true }, // 44
+ { "alle2os", 0x2408, false }, // 45
+ { "alle1os", 0x240C, false }, // 46
+ { "alle3os", 0x3408, false }, // 47
+ { "rvae1", 0x431, true }, // 48
+ { "rvaae1", 0x433, true }, // 49
+ { "rvale1", 0x435, true }, // 50
+ { "rvaale1", 0x437, true }, // 51
+ { "rvae1is", 0x411, true }, // 52
+ { "rvaae1is", 0x413, true }, // 53
+ { "rvale1is", 0x415, true }, // 54
+ { "rvaale1is", 0x417, true }, // 55
+ { "rvae1os", 0x429, true }, // 56
+ { "rvaae1os", 0x42B, true }, // 57
+ { "rvale1os", 0x42D, true }, // 58
+ { "rvaale1os", 0x42F, true }, // 59
+ { "ripas2e1is", 0x2402, true }, // 60
+ { "ripas2le1is", 0x2406, true }, // 61
+ { "ripas2e1", 0x2422, true }, // 62
+ { "ripas2le1", 0x2426, true }, // 63
+ { "ripas2e1os", 0x2423, true }, // 64
+ { "ripas2le1os", 0x2427, true }, // 65
+ { "rvae2", 0x2431, true }, // 66
+ { "rvale2", 0x2435, true }, // 67
+ { "rvae2is", 0x2411, true }, // 68
+ { "rvale2is", 0x2415, true }, // 69
+ { "rvae2os", 0x2429, true }, // 70
+ { "rvale2os", 0x242D, true }, // 71
+ { "rvae3", 0x3431, true }, // 72
+ { "rvale3", 0x3435, true }, // 73
+ { "rvae3is", 0x3411, true }, // 74
+ { "rvale3is", 0x3415, true }, // 75
+ { "rvae3os", 0x3429, true }, // 76
+ { "rvale3os", 0x342D, true }, // 77
+};
+
+const TLBI *lookupTLBIByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x408, 32 },
+ { 0x409, 33 },
+ { 0x40A, 34 },
+ { 0x40B, 35 },
+ { 0x40D, 36 },
+ { 0x40F, 37 },
+ { 0x411, 52 },
+ { 0x413, 53 },
+ { 0x415, 54 },
+ { 0x417, 55 },
+ { 0x418, 2 },
+ { 0x419, 5 },
+ { 0x41A, 8 },
+ { 0x41B, 9 },
+ { 0x41D, 11 },
+ { 0x41F, 15 },
+ { 0x429, 56 },
+ { 0x42B, 57 },
+ { 0x42D, 58 },
+ { 0x42F, 59 },
+ { 0x431, 48 },
+ { 0x433, 49 },
+ { 0x435, 50 },
+ { 0x437, 51 },
+ { 0x438, 18 },
+ { 0x439, 21 },
+ { 0x43A, 24 },
+ { 0x43B, 25 },
+ { 0x43D, 27 },
+ { 0x43F, 31 },
+ { 0x2401, 0 },
+ { 0x2402, 60 },
+ { 0x2405, 1 },
+ { 0x2406, 61 },
+ { 0x2408, 45 },
+ { 0x2409, 40 },
+ { 0x240C, 46 },
+ { 0x240D, 41 },
+ { 0x240E, 42 },
+ { 0x2411, 68 },
+ { 0x2415, 69 },
+ { 0x2418, 3 },
+ { 0x2419, 6 },
+ { 0x241C, 10 },
+ { 0x241D, 12 },
+ { 0x241E, 14 },
+ { 0x2420, 38 },
+ { 0x2421, 16 },
+ { 0x2422, 62 },
+ { 0x2423, 64 },
+ { 0x2424, 39 },
+ { 0x2425, 17 },
+ { 0x2426, 63 },
+ { 0x2427, 65 },
+ { 0x2429, 70 },
+ { 0x242D, 71 },
+ { 0x2431, 66 },
+ { 0x2435, 67 },
+ { 0x2438, 19 },
+ { 0x2439, 22 },
+ { 0x243C, 26 },
+ { 0x243D, 28 },
+ { 0x243E, 30 },
+ { 0x3408, 47 },
+ { 0x3409, 43 },
+ { 0x340D, 44 },
+ { 0x3411, 74 },
+ { 0x3415, 75 },
+ { 0x3418, 4 },
+ { 0x3419, 7 },
+ { 0x341D, 13 },
+ { 0x3429, 76 },
+ { 0x342D, 77 },
+ { 0x3431, 72 },
+ { 0x3435, 73 },
+ { 0x3438, 20 },
+ { 0x3439, 23 },
+ { 0x343D, 29 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &TLBIsList[Index[i].index];
+}
+
+static const SVEPRFM SVEPRFMsList[] = {
+ { "pldl1keep", 0x0 }, // 0
+ { "pldl1strm", 0x1 }, // 1
+ { "pldl2keep", 0x2 }, // 2
+ { "pldl2strm", 0x3 }, // 3
+ { "pldl3keep", 0x4 }, // 4
+ { "pldl3strm", 0x5 }, // 5
+ { "pstl1keep", 0x8 }, // 6
+ { "pstl1strm", 0x9 }, // 7
+ { "pstl2keep", 0xA }, // 8
+ { "pstl2strm", 0xB }, // 9
+ { "pstl3keep", 0xC }, // 10
+ { "pstl3strm", 0xD }, // 11
+};
+
+const SVEPRFM *lookupSVEPRFMByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x0, 0 },
+ { 0x1, 1 },
+ { 0x2, 2 },
+ { 0x3, 3 },
+ { 0x4, 4 },
+ { 0x5, 5 },
+ { 0x8, 6 },
+ { 0x9, 7 },
+ { 0xA, 8 },
+ { 0xB, 9 },
+ { 0xC, 10 },
+ { 0xD, 11 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &SVEPRFMsList[Index[i].index];
+}
+
+static const PRFM PRFMsList[] = {
+ { "pldl1keep", 0x0 }, // 0
+ { "pldl1strm", 0x1 }, // 1
+ { "pldl2keep", 0x2 }, // 2
+ { "pldl2strm", 0x3 }, // 3
+ { "pldl3keep", 0x4 }, // 4
+ { "pldl3strm", 0x5 }, // 5
+ { "plil1keep", 0x8 }, // 6
+ { "plil1strm", 0x9 }, // 7
+ { "plil2keep", 0xa }, // 8
+ { "plil2strm", 0xb }, // 9
+ { "plil3keep", 0xc }, // 10
+ { "plil3strm", 0xd }, // 11
+ { "pstl1keep", 0x10 }, // 12
+ { "pstl1strm", 0x11 }, // 13
+ { "pstl2keep", 0x12 }, // 14
+ { "pstl2strm", 0x13 }, // 15
+ { "pstl3keep", 0x14 }, // 16
+ { "pstl3strm", 0x15 }, // 17
+};
+
+const PRFM *lookupPRFMByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x0, 0 },
+ { 0x1, 1 },
+ { 0x2, 2 },
+ { 0x3, 3 },
+ { 0x4, 4 },
+ { 0x5, 5 },
+ { 0x8, 6 },
+ { 0x9, 7 },
+ { 0xA, 8 },
+ { 0xB, 9 },
+ { 0xC, 10 },
+ { 0xD, 11 },
+ { 0x10, 12 },
+ { 0x11, 13 },
+ { 0x12, 14 },
+ { 0x13, 15 },
+ { 0x14, 16 },
+ { 0x15, 17 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &PRFMsList[Index[i].index];
+}
+
+static const PSB PSBsList[] = {
+ { "csync", 0x11 }, // 0
+};
+
+const PSB *AArch64PSBHint_lookupPSBByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x11, 0 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &PSBsList[Index[i].index];
+}
+
+static const ISB ISBsList[] = {
+ { "sy", 0xf }, // 0
+};
+
+const ISB *lookupISBByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0xF, 0 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &ISBsList[Index[i].index];
+}
+
+static const TSB TSBsList[] = {
+ { "csync", 0x0 }, // 0
+};
+
+const TSB *lookupTSBByEncoding(uint16_t Encoding)
+{
+ static const struct IndexType Index[] = {
+ { 0x0, 0 },
+ };
+
+ if (Encoding >= ARR_SIZE(TSBsList))
+ return NULL;
+ else
+ return &TSBsList[Index[Encoding].index];
+}
+
+static const SysReg SysRegsList[] = {
+ { "mdccsr_el0", 0x9808, true, false }, // 0
+ { "dbgdtrrx_el0", 0x9828, true, false }, // 1
+ { "mdrar_el1", 0x8080, true, false }, // 2
+ { "oslsr_el1", 0x808C, true, false }, // 3
+ { "dbgauthstatus_el1", 0x83F6, true, false }, // 4
+ { "pmceid0_el0", 0xDCE6, true, false }, // 5
+ { "pmceid1_el0", 0xDCE7, true, false }, // 6
+ { "midr_el1", 0xC000, true, false }, // 7
+ { "ccsidr_el1", 0xC800, true, false }, // 8
+ { "ccsidr2_el1", 0xC802, true, false }, // 9
+ { "clidr_el1", 0xC801, true, false }, // 10
+ { "ctr_el0", 0xD801, true, false }, // 11
+ { "mpidr_el1", 0xC005, true, false }, // 12
+ { "revidr_el1", 0xC006, true, false }, // 13
+ { "aidr_el1", 0xC807, true, false }, // 14
+ { "dczid_el0", 0xD807, true, false }, // 15
+ { "id_pfr0_el1", 0xC008, true, false }, // 16
+ { "id_pfr1_el1", 0xC009, true, false }, // 17
+ { "id_dfr0_el1", 0xC00A, true, false }, // 18
+ { "id_afr0_el1", 0xC00B, true, false }, // 19
+ { "id_mmfr0_el1", 0xC00C, true, false }, // 20
+ { "id_mmfr1_el1", 0xC00D, true, false }, // 21
+ { "id_mmfr2_el1", 0xC00E, true, false }, // 22
+ { "id_mmfr3_el1", 0xC00F, true, false }, // 23
+ { "id_isar0_el1", 0xC010, true, false }, // 24
+ { "id_isar1_el1", 0xC011, true, false }, // 25
+ { "id_isar2_el1", 0xC012, true, false }, // 26
+ { "id_isar3_el1", 0xC013, true, false }, // 27
+ { "id_isar4_el1", 0xC014, true, false }, // 28
+ { "id_isar5_el1", 0xC015, true, false }, // 29
+ { "id_isar6_el1", 0xC017, true, false }, // 30
+ { "id_aa64pfr0_el1", 0xC020, true, false }, // 31
+ { "id_aa64pfr1_el1", 0xC021, true, false }, // 32
+ { "id_aa64dfr0_el1", 0xC028, true, false }, // 33
+ { "id_aa64dfr1_el1", 0xC029, true, false }, // 34
+ { "id_aa64afr0_el1", 0xC02C, true, false }, // 35
+ { "id_aa64afr1_el1", 0xC02D, true, false }, // 36
+ { "id_aa64isar0_el1", 0xC030, true, false }, // 37
+ { "id_aa64isar1_el1", 0xC031, true, false }, // 38
+ { "id_aa64mmfr0_el1", 0xC038, true, false }, // 39
+ { "id_aa64mmfr1_el1", 0xC039, true, false }, // 40
+ { "id_aa64mmfr2_el1", 0xC03A, true, false }, // 41
+ { "mvfr0_el1", 0xC018, true, false }, // 42
+ { "mvfr1_el1", 0xC019, true, false }, // 43
+ { "mvfr2_el1", 0xC01A, true, false }, // 44
+ { "rvbar_el1", 0xC601, true, false }, // 45
+ { "rvbar_el2", 0xE601, true, false }, // 46
+ { "rvbar_el3", 0xF601, true, false }, // 47
+ { "isr_el1", 0xC608, true, false }, // 48
+ { "cntpct_el0", 0xDF01, true, false }, // 49
+ { "cntvct_el0", 0xDF02, true, false }, // 50
+ { "id_mmfr4_el1", 0xC016, true, false }, // 51
+ { "trcstatr", 0x8818, true, false }, // 52
+ { "trcidr8", 0x8806, true, false }, // 53
+ { "trcidr9", 0x880E, true, false }, // 54
+ { "trcidr10", 0x8816, true, false }, // 55
+ { "trcidr11", 0x881E, true, false }, // 56
+ { "trcidr12", 0x8826, true, false }, // 57
+ { "trcidr13", 0x882E, true, false }, // 58
+ { "trcidr0", 0x8847, true, false }, // 59
+ { "trcidr1", 0x884F, true, false }, // 60
+ { "trcidr2", 0x8857, true, false }, // 61
+ { "trcidr3", 0x885F, true, false }, // 62
+ { "trcidr4", 0x8867, true, false }, // 63
+ { "trcidr5", 0x886F, true, false }, // 64
+ { "trcidr6", 0x8877, true, false }, // 65
+ { "trcidr7", 0x887F, true, false }, // 66
+ { "trcoslsr", 0x888C, true, false }, // 67
+ { "trcpdsr", 0x88AC, true, false }, // 68
+ { "trcdevaff0", 0x8BD6, true, false }, // 69
+ { "trcdevaff1", 0x8BDE, true, false }, // 70
+ { "trclsr", 0x8BEE, true, false }, // 71
+ { "trcauthstatus", 0x8BF6, true, false }, // 72
+ { "trcdevarch", 0x8BFE, true, false }, // 73
+ { "trcdevid", 0x8B97, true, false }, // 74
+ { "trcdevtype", 0x8B9F, true, false }, // 75
+ { "trcpidr4", 0x8BA7, true, false }, // 76
+ { "trcpidr5", 0x8BAF, true, false }, // 77
+ { "trcpidr6", 0x8BB7, true, false }, // 78
+ { "trcpidr7", 0x8BBF, true, false }, // 79
+ { "trcpidr0", 0x8BC7, true, false }, // 80
+ { "trcpidr1", 0x8BCF, true, false }, // 81
+ { "trcpidr2", 0x8BD7, true, false }, // 82
+ { "trcpidr3", 0x8BDF, true, false }, // 83
+ { "trccidr0", 0x8BE7, true, false }, // 84
+ { "trccidr1", 0x8BEF, true, false }, // 85
+ { "trccidr2", 0x8BF7, true, false }, // 86
+ { "trccidr3", 0x8BFF, true, false }, // 87
+ { "icc_iar1_el1", 0xC660, true, false }, // 88
+ { "icc_iar0_el1", 0xC640, true, false }, // 89
+ { "icc_hppir1_el1", 0xC662, true, false }, // 90
+ { "icc_hppir0_el1", 0xC642, true, false }, // 91
+ { "icc_rpr_el1", 0xC65B, true, false }, // 92
+ { "ich_vtr_el2", 0xE659, true, false }, // 93
+ { "ich_eisr_el2", 0xE65B, true, false }, // 94
+ { "ich_elrsr_el2", 0xE65D, true, false }, // 95
+ { "id_aa64zfr0_el1", 0xC024, true, false }, // 96
+ { "lorid_el1", 0xC527, true, false }, // 97
+ { "erridr_el1", 0xC298, true, false }, // 98
+ { "erxfr_el1", 0xC2A0, true, false }, // 99
+ { "dbgdtrtx_el0", 0x9828, false, true }, // 100
+ { "oslar_el1", 0x8084, false, true }, // 101
+ { "pmswinc_el0", 0xDCE4, false, true }, // 102
+ { "trcoslar", 0x8884, false, true }, // 103
+ { "trclar", 0x8BE6, false, true }, // 104
+ { "icc_eoir1_el1", 0xC661, false, true }, // 105
+ { "icc_eoir0_el1", 0xC641, false, true }, // 106
+ { "icc_dir_el1", 0xC659, false, true }, // 107
+ { "icc_sgi1r_el1", 0xC65D, false, true }, // 108
+ { "icc_asgi1r_el1", 0xC65E, false, true }, // 109
+ { "icc_sgi0r_el1", 0xC65F, false, true }, // 110
+ { "osdtrrx_el1", 0x8002, true, true }, // 111
+ { "osdtrtx_el1", 0x801A, true, true }, // 112
+ { "teecr32_el1", 0x9000, true, true }, // 113
+ { "mdccint_el1", 0x8010, true, true }, // 114
+ { "mdscr_el1", 0x8012, true, true }, // 115
+ { "dbgdtr_el0", 0x9820, true, true }, // 116
+ { "oseccr_el1", 0x8032, true, true }, // 117
+ { "dbgvcr32_el2", 0xA038, true, true }, // 118
+ { "dbgbvr0_el1", 0x8004, true, true }, // 119
+ { "dbgbvr1_el1", 0x800C, true, true }, // 120
+ { "dbgbvr2_el1", 0x8014, true, true }, // 121
+ { "dbgbvr3_el1", 0x801C, true, true }, // 122
+ { "dbgbvr4_el1", 0x8024, true, true }, // 123
+ { "dbgbvr5_el1", 0x802C, true, true }, // 124
+ { "dbgbvr6_el1", 0x8034, true, true }, // 125
+ { "dbgbvr7_el1", 0x803C, true, true }, // 126
+ { "dbgbvr8_el1", 0x8044, true, true }, // 127
+ { "dbgbvr9_el1", 0x804C, true, true }, // 128
+ { "dbgbvr10_el1", 0x8054, true, true }, // 129
+ { "dbgbvr11_el1", 0x805C, true, true }, // 130
+ { "dbgbvr12_el1", 0x8064, true, true }, // 131
+ { "dbgbvr13_el1", 0x806C, true, true }, // 132
+ { "dbgbvr14_el1", 0x8074, true, true }, // 133
+ { "dbgbvr15_el1", 0x807C, true, true }, // 134
+ { "dbgbcr0_el1", 0x8005, true, true }, // 135
+ { "dbgbcr1_el1", 0x800D, true, true }, // 136
+ { "dbgbcr2_el1", 0x8015, true, true }, // 137
+ { "dbgbcr3_el1", 0x801D, true, true }, // 138
+ { "dbgbcr4_el1", 0x8025, true, true }, // 139
+ { "dbgbcr5_el1", 0x802D, true, true }, // 140
+ { "dbgbcr6_el1", 0x8035, true, true }, // 141
+ { "dbgbcr7_el1", 0x803D, true, true }, // 142
+ { "dbgbcr8_el1", 0x8045, true, true }, // 143
+ { "dbgbcr9_el1", 0x804D, true, true }, // 144
+ { "dbgbcr10_el1", 0x8055, true, true }, // 145
+ { "dbgbcr11_el1", 0x805D, true, true }, // 146
+ { "dbgbcr12_el1", 0x8065, true, true }, // 147
+ { "dbgbcr13_el1", 0x806D, true, true }, // 148
+ { "dbgbcr14_el1", 0x8075, true, true }, // 149
+ { "dbgbcr15_el1", 0x807D, true, true }, // 150
+ { "dbgwvr0_el1", 0x8006, true, true }, // 151
+ { "dbgwvr1_el1", 0x800E, true, true }, // 152
+ { "dbgwvr2_el1", 0x8016, true, true }, // 153
+ { "dbgwvr3_el1", 0x801E, true, true }, // 154
+ { "dbgwvr4_el1", 0x8026, true, true }, // 155
+ { "dbgwvr5_el1", 0x802E, true, true }, // 156
+ { "dbgwvr6_el1", 0x8036, true, true }, // 157
+ { "dbgwvr7_el1", 0x803E, true, true }, // 158
+ { "dbgwvr8_el1", 0x8046, true, true }, // 159
+ { "dbgwvr9_el1", 0x804E, true, true }, // 160
+ { "dbgwvr10_el1", 0x8056, true, true }, // 161
+ { "dbgwvr11_el1", 0x805E, true, true }, // 162
+ { "dbgwvr12_el1", 0x8066, true, true }, // 163
+ { "dbgwvr13_el1", 0x806E, true, true }, // 164
+ { "dbgwvr14_el1", 0x8076, true, true }, // 165
+ { "dbgwvr15_el1", 0x807E, true, true }, // 166
+ { "dbgwcr0_el1", 0x8007, true, true }, // 167
+ { "dbgwcr1_el1", 0x800F, true, true }, // 168
+ { "dbgwcr2_el1", 0x8017, true, true }, // 169
+ { "dbgwcr3_el1", 0x801F, true, true }, // 170
+ { "dbgwcr4_el1", 0x8027, true, true }, // 171
+ { "dbgwcr5_el1", 0x802F, true, true }, // 172
+ { "dbgwcr6_el1", 0x8037, true, true }, // 173
+ { "dbgwcr7_el1", 0x803F, true, true }, // 174
+ { "dbgwcr8_el1", 0x8047, true, true }, // 175
+ { "dbgwcr9_el1", 0x804F, true, true }, // 176
+ { "dbgwcr10_el1", 0x8057, true, true }, // 177
+ { "dbgwcr11_el1", 0x805F, true, true }, // 178
+ { "dbgwcr12_el1", 0x8067, true, true }, // 179
+ { "dbgwcr13_el1", 0x806F, true, true }, // 180
+ { "dbgwcr14_el1", 0x8077, true, true }, // 181
+ { "dbgwcr15_el1", 0x807F, true, true }, // 182
+ { "teehbr32_el1", 0x9080, true, true }, // 183
+ { "osdlr_el1", 0x809C, true, true }, // 184
+ { "dbgprcr_el1", 0x80A4, true, true }, // 185
+ { "dbgclaimset_el1", 0x83C6, true, true }, // 186
+ { "dbgclaimclr_el1", 0x83CE, true, true }, // 187
+ { "csselr_el1", 0xD000, true, true }, // 188
+ { "vpidr_el2", 0xE000, true, true }, // 189
+ { "vmpidr_el2", 0xE005, true, true }, // 190
+ { "cpacr_el1", 0xC082, true, true }, // 191
+ { "sctlr_el1", 0xC080, true, true }, // 192
+ { "sctlr_el2", 0xE080, true, true }, // 193
+ { "sctlr_el3", 0xF080, true, true }, // 194
+ { "actlr_el1", 0xC081, true, true }, // 195
+ { "actlr_el2", 0xE081, true, true }, // 196
+ { "actlr_el3", 0xF081, true, true }, // 197
+ { "hcr_el2", 0xE088, true, true }, // 198
+ { "scr_el3", 0xF088, true, true }, // 199
+ { "mdcr_el2", 0xE089, true, true }, // 200
+ { "sder32_el3", 0xF089, true, true }, // 201
+ { "cptr_el2", 0xE08A, true, true }, // 202
+ { "cptr_el3", 0xF08A, true, true }, // 203
+ { "hstr_el2", 0xE08B, true, true }, // 204
+ { "hacr_el2", 0xE08F, true, true }, // 205
+ { "mdcr_el3", 0xF099, true, true }, // 206
+ { "ttbr0_el1", 0xC100, true, true }, // 207
+ { "ttbr0_el2", 0xE100, true, true }, // 208
+ { "ttbr0_el3", 0xF100, true, true }, // 209
+ { "ttbr1_el1", 0xC101, true, true }, // 210
+ { "tcr_el1", 0xC102, true, true }, // 211
+ { "tcr_el2", 0xE102, true, true }, // 212
+ { "tcr_el3", 0xF102, true, true }, // 213
+ { "vttbr_el2", 0xE108, true, true }, // 214
+ { "vtcr_el2", 0xE10A, true, true }, // 215
+ { "dacr32_el2", 0xE180, true, true }, // 216
+ { "spsr_el1", 0xC200, true, true }, // 217
+ { "spsr_el2", 0xE200, true, true }, // 218
+ { "spsr_el3", 0xF200, true, true }, // 219
+ { "elr_el1", 0xC201, true, true }, // 220
+ { "elr_el2", 0xE201, true, true }, // 221
+ { "elr_el3", 0xF201, true, true }, // 222
+ { "sp_el0", 0xC208, true, true }, // 223
+ { "sp_el1", 0xE208, true, true }, // 224
+ { "sp_el2", 0xF208, true, true }, // 225
+ { "spsel", 0xC210, true, true }, // 226
+ { "nzcv", 0xDA10, true, true }, // 227
+ { "daif", 0xDA11, true, true }, // 228
+ { "currentel", 0xC212, true, true }, // 229
+ { "spsr_irq", 0xE218, true, true }, // 230
+ { "spsr_abt", 0xE219, true, true }, // 231
+ { "spsr_und", 0xE21A, true, true }, // 232
+ { "spsr_fiq", 0xE21B, true, true }, // 233
+ { "fpcr", 0xDA20, true, true }, // 234
+ { "fpsr", 0xDA21, true, true }, // 235
+ { "dspsr_el0", 0xDA28, true, true }, // 236
+ { "dlr_el0", 0xDA29, true, true }, // 237
+ { "ifsr32_el2", 0xE281, true, true }, // 238
+ { "afsr0_el1", 0xC288, true, true }, // 239
+ { "afsr0_el2", 0xE288, true, true }, // 240
+ { "afsr0_el3", 0xF288, true, true }, // 241
+ { "afsr1_el1", 0xC289, true, true }, // 242
+ { "afsr1_el2", 0xE289, true, true }, // 243
+ { "afsr1_el3", 0xF289, true, true }, // 244
+ { "esr_el1", 0xC290, true, true }, // 245
+ { "esr_el2", 0xE290, true, true }, // 246
+ { "esr_el3", 0xF290, true, true }, // 247
+ { "fpexc32_el2", 0xE298, true, true }, // 248
+ { "far_el1", 0xC300, true, true }, // 249
+ { "far_el2", 0xE300, true, true }, // 250
+ { "far_el3", 0xF300, true, true }, // 251
+ { "hpfar_el2", 0xE304, true, true }, // 252
+ { "par_el1", 0xC3A0, true, true }, // 253
+ { "pmcr_el0", 0xDCE0, true, true }, // 254
+ { "pmcntenset_el0", 0xDCE1, true, true }, // 255
+ { "pmcntenclr_el0", 0xDCE2, true, true }, // 256
+ { "pmovsclr_el0", 0xDCE3, true, true }, // 257
+ { "pmselr_el0", 0xDCE5, true, true }, // 258
+ { "pmccntr_el0", 0xDCE8, true, true }, // 259
+ { "pmxevtyper_el0", 0xDCE9, true, true }, // 260
+ { "pmxevcntr_el0", 0xDCEA, true, true }, // 261
+ { "pmuserenr_el0", 0xDCF0, true, true }, // 262
+ { "pmintenset_el1", 0xC4F1, true, true }, // 263
+ { "pmintenclr_el1", 0xC4F2, true, true }, // 264
+ { "pmovsset_el0", 0xDCF3, true, true }, // 265
+ { "mair_el1", 0xC510, true, true }, // 266
+ { "mair_el2", 0xE510, true, true }, // 267
+ { "mair_el3", 0xF510, true, true }, // 268
+ { "amair_el1", 0xC518, true, true }, // 269
+ { "amair_el2", 0xE518, true, true }, // 270
+ { "amair_el3", 0xF518, true, true }, // 271
+ { "vbar_el1", 0xC600, true, true }, // 272
+ { "vbar_el2", 0xE600, true, true }, // 273
+ { "vbar_el3", 0xF600, true, true }, // 274
+ { "rmr_el1", 0xC602, true, true }, // 275
+ { "rmr_el2", 0xE602, true, true }, // 276
+ { "rmr_el3", 0xF602, true, true }, // 277
+ { "contextidr_el1", 0xC681, true, true }, // 278
+ { "tpidr_el0", 0xDE82, true, true }, // 279
+ { "tpidr_el2", 0xE682, true, true }, // 280
+ { "tpidr_el3", 0xF682, true, true }, // 281
+ { "tpidrro_el0", 0xDE83, true, true }, // 282
+ { "tpidr_el1", 0xC684, true, true }, // 283
+ { "cntfrq_el0", 0xDF00, true, true }, // 284
+ { "cntvoff_el2", 0xE703, true, true }, // 285
+ { "cntkctl_el1", 0xC708, true, true }, // 286
+ { "cnthctl_el2", 0xE708, true, true }, // 287
+ { "cntp_tval_el0", 0xDF10, true, true }, // 288
+ { "cnthp_tval_el2", 0xE710, true, true }, // 289
+ { "cntps_tval_el1", 0xFF10, true, true }, // 290
+ { "cntp_ctl_el0", 0xDF11, true, true }, // 291
+ { "cnthp_ctl_el2", 0xE711, true, true }, // 292
+ { "cntps_ctl_el1", 0xFF11, true, true }, // 293
+ { "cntp_cval_el0", 0xDF12, true, true }, // 294
+ { "cnthp_cval_el2", 0xE712, true, true }, // 295
+ { "cntps_cval_el1", 0xFF12, true, true }, // 296
+ { "cntv_tval_el0", 0xDF18, true, true }, // 297
+ { "cntv_ctl_el0", 0xDF19, true, true }, // 298
+ { "cntv_cval_el0", 0xDF1A, true, true }, // 299
+ { "pmevcntr0_el0", 0xDF40, true, true }, // 300
+ { "pmevcntr1_el0", 0xDF41, true, true }, // 301
+ { "pmevcntr2_el0", 0xDF42, true, true }, // 302
+ { "pmevcntr3_el0", 0xDF43, true, true }, // 303
+ { "pmevcntr4_el0", 0xDF44, true, true }, // 304
+ { "pmevcntr5_el0", 0xDF45, true, true }, // 305
+ { "pmevcntr6_el0", 0xDF46, true, true }, // 306
+ { "pmevcntr7_el0", 0xDF47, true, true }, // 307
+ { "pmevcntr8_el0", 0xDF48, true, true }, // 308
+ { "pmevcntr9_el0", 0xDF49, true, true }, // 309
+ { "pmevcntr10_el0", 0xDF4A, true, true }, // 310
+ { "pmevcntr11_el0", 0xDF4B, true, true }, // 311
+ { "pmevcntr12_el0", 0xDF4C, true, true }, // 312
+ { "pmevcntr13_el0", 0xDF4D, true, true }, // 313
+ { "pmevcntr14_el0", 0xDF4E, true, true }, // 314
+ { "pmevcntr15_el0", 0xDF4F, true, true }, // 315
+ { "pmevcntr16_el0", 0xDF50, true, true }, // 316
+ { "pmevcntr17_el0", 0xDF51, true, true }, // 317
+ { "pmevcntr18_el0", 0xDF52, true, true }, // 318
+ { "pmevcntr19_el0", 0xDF53, true, true }, // 319
+ { "pmevcntr20_el0", 0xDF54, true, true }, // 320
+ { "pmevcntr21_el0", 0xDF55, true, true }, // 321
+ { "pmevcntr22_el0", 0xDF56, true, true }, // 322
+ { "pmevcntr23_el0", 0xDF57, true, true }, // 323
+ { "pmevcntr24_el0", 0xDF58, true, true }, // 324
+ { "pmevcntr25_el0", 0xDF59, true, true }, // 325
+ { "pmevcntr26_el0", 0xDF5A, true, true }, // 326
+ { "pmevcntr27_el0", 0xDF5B, true, true }, // 327
+ { "pmevcntr28_el0", 0xDF5C, true, true }, // 328
+ { "pmevcntr29_el0", 0xDF5D, true, true }, // 329
+ { "pmevcntr30_el0", 0xDF5E, true, true }, // 330
+ { "pmccfiltr_el0", 0xDF7F, true, true }, // 331
+ { "pmevtyper0_el0", 0xDF60, true, true }, // 332
+ { "pmevtyper1_el0", 0xDF61, true, true }, // 333
+ { "pmevtyper2_el0", 0xDF62, true, true }, // 334
+ { "pmevtyper3_el0", 0xDF63, true, true }, // 335
+ { "pmevtyper4_el0", 0xDF64, true, true }, // 336
+ { "pmevtyper5_el0", 0xDF65, true, true }, // 337
+ { "pmevtyper6_el0", 0xDF66, true, true }, // 338
+ { "pmevtyper7_el0", 0xDF67, true, true }, // 339
+ { "pmevtyper8_el0", 0xDF68, true, true }, // 340
+ { "pmevtyper9_el0", 0xDF69, true, true }, // 341
+ { "pmevtyper10_el0", 0xDF6A, true, true }, // 342
+ { "pmevtyper11_el0", 0xDF6B, true, true }, // 343
+ { "pmevtyper12_el0", 0xDF6C, true, true }, // 344
+ { "pmevtyper13_el0", 0xDF6D, true, true }, // 345
+ { "pmevtyper14_el0", 0xDF6E, true, true }, // 346
+ { "pmevtyper15_el0", 0xDF6F, true, true }, // 347
+ { "pmevtyper16_el0", 0xDF70, true, true }, // 348
+ { "pmevtyper17_el0", 0xDF71, true, true }, // 349
+ { "pmevtyper18_el0", 0xDF72, true, true }, // 350
+ { "pmevtyper19_el0", 0xDF73, true, true }, // 351
+ { "pmevtyper20_el0", 0xDF74, true, true }, // 352
+ { "pmevtyper21_el0", 0xDF75, true, true }, // 353
+ { "pmevtyper22_el0", 0xDF76, true, true }, // 354
+ { "pmevtyper23_el0", 0xDF77, true, true }, // 355
+ { "pmevtyper24_el0", 0xDF78, true, true }, // 356
+ { "pmevtyper25_el0", 0xDF79, true, true }, // 357
+ { "pmevtyper26_el0", 0xDF7A, true, true }, // 358
+ { "pmevtyper27_el0", 0xDF7B, true, true }, // 359
+ { "pmevtyper28_el0", 0xDF7C, true, true }, // 360
+ { "pmevtyper29_el0", 0xDF7D, true, true }, // 361
+ { "pmevtyper30_el0", 0xDF7E, true, true }, // 362
+ { "trcprgctlr", 0x8808, true, true }, // 363
+ { "trcprocselr", 0x8810, true, true }, // 364
+ { "trcconfigr", 0x8820, true, true }, // 365
+ { "trcauxctlr", 0x8830, true, true }, // 366
+ { "trceventctl0r", 0x8840, true, true }, // 367
+ { "trceventctl1r", 0x8848, true, true }, // 368
+ { "trcstallctlr", 0x8858, true, true }, // 369
+ { "trctsctlr", 0x8860, true, true }, // 370
+ { "trcsyncpr", 0x8868, true, true }, // 371
+ { "trcccctlr", 0x8870, true, true }, // 372
+ { "trcbbctlr", 0x8878, true, true }, // 373
+ { "trctraceidr", 0x8801, true, true }, // 374
+ { "trcqctlr", 0x8809, true, true }, // 375
+ { "trcvictlr", 0x8802, true, true }, // 376
+ { "trcviiectlr", 0x880A, true, true }, // 377
+ { "trcvissctlr", 0x8812, true, true }, // 378
+ { "trcvipcssctlr", 0x881A, true, true }, // 379
+ { "trcvdctlr", 0x8842, true, true }, // 380
+ { "trcvdsacctlr", 0x884A, true, true }, // 381
+ { "trcvdarcctlr", 0x8852, true, true }, // 382
+ { "trcseqevr0", 0x8804, true, true }, // 383
+ { "trcseqevr1", 0x880C, true, true }, // 384
+ { "trcseqevr2", 0x8814, true, true }, // 385
+ { "trcseqrstevr", 0x8834, true, true }, // 386
+ { "trcseqstr", 0x883C, true, true }, // 387
+ { "trcextinselr", 0x8844, true, true }, // 388
+ { "trccntrldvr0", 0x8805, true, true }, // 389
+ { "trccntrldvr1", 0x880D, true, true }, // 390
+ { "trccntrldvr2", 0x8815, true, true }, // 391
+ { "trccntrldvr3", 0x881D, true, true }, // 392
+ { "trccntctlr0", 0x8825, true, true }, // 393
+ { "trccntctlr1", 0x882D, true, true }, // 394
+ { "trccntctlr2", 0x8835, true, true }, // 395
+ { "trccntctlr3", 0x883D, true, true }, // 396
+ { "trccntvr0", 0x8845, true, true }, // 397
+ { "trccntvr1", 0x884D, true, true }, // 398
+ { "trccntvr2", 0x8855, true, true }, // 399
+ { "trccntvr3", 0x885D, true, true }, // 400
+ { "trcimspec0", 0x8807, true, true }, // 401
+ { "trcimspec1", 0x880F, true, true }, // 402
+ { "trcimspec2", 0x8817, true, true }, // 403
+ { "trcimspec3", 0x881F, true, true }, // 404
+ { "trcimspec4", 0x8827, true, true }, // 405
+ { "trcimspec5", 0x882F, true, true }, // 406
+ { "trcimspec6", 0x8837, true, true }, // 407
+ { "trcimspec7", 0x883F, true, true }, // 408
+ { "trcrsctlr2", 0x8890, true, true }, // 409
+ { "trcrsctlr3", 0x8898, true, true }, // 410
+ { "trcrsctlr4", 0x88A0, true, true }, // 411
+ { "trcrsctlr5", 0x88A8, true, true }, // 412
+ { "trcrsctlr6", 0x88B0, true, true }, // 413
+ { "trcrsctlr7", 0x88B8, true, true }, // 414
+ { "trcrsctlr8", 0x88C0, true, true }, // 415
+ { "trcrsctlr9", 0x88C8, true, true }, // 416
+ { "trcrsctlr10", 0x88D0, true, true }, // 417
+ { "trcrsctlr11", 0x88D8, true, true }, // 418
+ { "trcrsctlr12", 0x88E0, true, true }, // 419
+ { "trcrsctlr13", 0x88E8, true, true }, // 420
+ { "trcrsctlr14", 0x88F0, true, true }, // 421
+ { "trcrsctlr15", 0x88F8, true, true }, // 422
+ { "trcrsctlr16", 0x8881, true, true }, // 423
+ { "trcrsctlr17", 0x8889, true, true }, // 424
+ { "trcrsctlr18", 0x8891, true, true }, // 425
+ { "trcrsctlr19", 0x8899, true, true }, // 426
+ { "trcrsctlr20", 0x88A1, true, true }, // 427
+ { "trcrsctlr21", 0x88A9, true, true }, // 428
+ { "trcrsctlr22", 0x88B1, true, true }, // 429
+ { "trcrsctlr23", 0x88B9, true, true }, // 430
+ { "trcrsctlr24", 0x88C1, true, true }, // 431
+ { "trcrsctlr25", 0x88C9, true, true }, // 432
+ { "trcrsctlr26", 0x88D1, true, true }, // 433
+ { "trcrsctlr27", 0x88D9, true, true }, // 434
+ { "trcrsctlr28", 0x88E1, true, true }, // 435
+ { "trcrsctlr29", 0x88E9, true, true }, // 436
+ { "trcrsctlr30", 0x88F1, true, true }, // 437
+ { "trcrsctlr31", 0x88F9, true, true }, // 438
+ { "trcssccr0", 0x8882, true, true }, // 439
+ { "trcssccr1", 0x888A, true, true }, // 440
+ { "trcssccr2", 0x8892, true, true }, // 441
+ { "trcssccr3", 0x889A, true, true }, // 442
+ { "trcssccr4", 0x88A2, true, true }, // 443
+ { "trcssccr5", 0x88AA, true, true }, // 444
+ { "trcssccr6", 0x88B2, true, true }, // 445
+ { "trcssccr7", 0x88BA, true, true }, // 446
+ { "trcsscsr0", 0x88C2, true, true }, // 447
+ { "trcsscsr1", 0x88CA, true, true }, // 448
+ { "trcsscsr2", 0x88D2, true, true }, // 449
+ { "trcsscsr3", 0x88DA, true, true }, // 450
+ { "trcsscsr4", 0x88E2, true, true }, // 451
+ { "trcsscsr5", 0x88EA, true, true }, // 452
+ { "trcsscsr6", 0x88F2, true, true }, // 453
+ { "trcsscsr7", 0x88FA, true, true }, // 454
+ { "trcsspcicr0", 0x8883, true, true }, // 455
+ { "trcsspcicr1", 0x888B, true, true }, // 456
+ { "trcsspcicr2", 0x8893, true, true }, // 457
+ { "trcsspcicr3", 0x889B, true, true }, // 458
+ { "trcsspcicr4", 0x88A3, true, true }, // 459
+ { "trcsspcicr5", 0x88AB, true, true }, // 460
+ { "trcsspcicr6", 0x88B3, true, true }, // 461
+ { "trcsspcicr7", 0x88BB, true, true }, // 462
+ { "trcpdcr", 0x88A4, true, true }, // 463
+ { "trcacvr0", 0x8900, true, true }, // 464
+ { "trcacvr1", 0x8910, true, true }, // 465
+ { "trcacvr2", 0x8920, true, true }, // 466
+ { "trcacvr3", 0x8930, true, true }, // 467
+ { "trcacvr4", 0x8940, true, true }, // 468
+ { "trcacvr5", 0x8950, true, true }, // 469
+ { "trcacvr6", 0x8960, true, true }, // 470
+ { "trcacvr7", 0x8970, true, true }, // 471
+ { "trcacvr8", 0x8901, true, true }, // 472
+ { "trcacvr9", 0x8911, true, true }, // 473
+ { "trcacvr10", 0x8921, true, true }, // 474
+ { "trcacvr11", 0x8931, true, true }, // 475
+ { "trcacvr12", 0x8941, true, true }, // 476
+ { "trcacvr13", 0x8951, true, true }, // 477
+ { "trcacvr14", 0x8961, true, true }, // 478
+ { "trcacvr15", 0x8971, true, true }, // 479
+ { "trcacatr0", 0x8902, true, true }, // 480
+ { "trcacatr1", 0x8912, true, true }, // 481
+ { "trcacatr2", 0x8922, true, true }, // 482
+ { "trcacatr3", 0x8932, true, true }, // 483
+ { "trcacatr4", 0x8942, true, true }, // 484
+ { "trcacatr5", 0x8952, true, true }, // 485
+ { "trcacatr6", 0x8962, true, true }, // 486
+ { "trcacatr7", 0x8972, true, true }, // 487
+ { "trcacatr8", 0x8903, true, true }, // 488
+ { "trcacatr9", 0x8913, true, true }, // 489
+ { "trcacatr10", 0x8923, true, true }, // 490
+ { "trcacatr11", 0x8933, true, true }, // 491
+ { "trcacatr12", 0x8943, true, true }, // 492
+ { "trcacatr13", 0x8953, true, true }, // 493
+ { "trcacatr14", 0x8963, true, true }, // 494
+ { "trcacatr15", 0x8973, true, true }, // 495
+ { "trcdvcvr0", 0x8904, true, true }, // 496
+ { "trcdvcvr1", 0x8924, true, true }, // 497
+ { "trcdvcvr2", 0x8944, true, true }, // 498
+ { "trcdvcvr3", 0x8964, true, true }, // 499
+ { "trcdvcvr4", 0x8905, true, true }, // 500
+ { "trcdvcvr5", 0x8925, true, true }, // 501
+ { "trcdvcvr6", 0x8945, true, true }, // 502
+ { "trcdvcvr7", 0x8965, true, true }, // 503
+ { "trcdvcmr0", 0x8906, true, true }, // 504
+ { "trcdvcmr1", 0x8926, true, true }, // 505
+ { "trcdvcmr2", 0x8946, true, true }, // 506
+ { "trcdvcmr3", 0x8966, true, true }, // 507
+ { "trcdvcmr4", 0x8907, true, true }, // 508
+ { "trcdvcmr5", 0x8927, true, true }, // 509
+ { "trcdvcmr6", 0x8947, true, true }, // 510
+ { "trcdvcmr7", 0x8967, true, true }, // 511
+ { "trccidcvr0", 0x8980, true, true }, // 512
+ { "trccidcvr1", 0x8990, true, true }, // 513
+ { "trccidcvr2", 0x89A0, true, true }, // 514
+ { "trccidcvr3", 0x89B0, true, true }, // 515
+ { "trccidcvr4", 0x89C0, true, true }, // 516
+ { "trccidcvr5", 0x89D0, true, true }, // 517
+ { "trccidcvr6", 0x89E0, true, true }, // 518
+ { "trccidcvr7", 0x89F0, true, true }, // 519
+ { "trcvmidcvr0", 0x8981, true, true }, // 520
+ { "trcvmidcvr1", 0x8991, true, true }, // 521
+ { "trcvmidcvr2", 0x89A1, true, true }, // 522
+ { "trcvmidcvr3", 0x89B1, true, true }, // 523
+ { "trcvmidcvr4", 0x89C1, true, true }, // 524
+ { "trcvmidcvr5", 0x89D1, true, true }, // 525
+ { "trcvmidcvr6", 0x89E1, true, true }, // 526
+ { "trcvmidcvr7", 0x89F1, true, true }, // 527
+ { "trccidcctlr0", 0x8982, true, true }, // 528
+ { "trccidcctlr1", 0x898A, true, true }, // 529
+ { "trcvmidcctlr0", 0x8992, true, true }, // 530
+ { "trcvmidcctlr1", 0x899A, true, true }, // 531
+ { "trcitctrl", 0x8B84, true, true }, // 532
+ { "trcclaimset", 0x8BC6, true, true }, // 533
+ { "trcclaimclr", 0x8BCE, true, true }, // 534
+ { "icc_bpr1_el1", 0xC663, true, true }, // 535
+ { "icc_bpr0_el1", 0xC643, true, true }, // 536
+ { "icc_pmr_el1", 0xC230, true, true }, // 537
+ { "icc_ctlr_el1", 0xC664, true, true }, // 538
+ { "icc_ctlr_el3", 0xF664, true, true }, // 539
+ { "icc_sre_el1", 0xC665, true, true }, // 540
+ { "icc_sre_el2", 0xE64D, true, true }, // 541
+ { "icc_sre_el3", 0xF665, true, true }, // 542
+ { "icc_igrpen0_el1", 0xC666, true, true }, // 543
+ { "icc_igrpen1_el1", 0xC667, true, true }, // 544
+ { "icc_igrpen1_el3", 0xF667, true, true }, // 545
+ { "icc_seien_el1", 0xC668, true, true }, // 546
+ { "icc_ap0r0_el1", 0xC644, true, true }, // 547
+ { "icc_ap0r1_el1", 0xC645, true, true }, // 548
+ { "icc_ap0r2_el1", 0xC646, true, true }, // 549
+ { "icc_ap0r3_el1", 0xC647, true, true }, // 550
+ { "icc_ap1r0_el1", 0xC648, true, true }, // 551
+ { "icc_ap1r1_el1", 0xC649, true, true }, // 552
+ { "icc_ap1r2_el1", 0xC64A, true, true }, // 553
+ { "icc_ap1r3_el1", 0xC64B, true, true }, // 554
+ { "ich_ap0r0_el2", 0xE640, true, true }, // 555
+ { "ich_ap0r1_el2", 0xE641, true, true }, // 556
+ { "ich_ap0r2_el2", 0xE642, true, true }, // 557
+ { "ich_ap0r3_el2", 0xE643, true, true }, // 558
+ { "ich_ap1r0_el2", 0xE648, true, true }, // 559
+ { "ich_ap1r1_el2", 0xE649, true, true }, // 560
+ { "ich_ap1r2_el2", 0xE64A, true, true }, // 561
+ { "ich_ap1r3_el2", 0xE64B, true, true }, // 562
+ { "ich_hcr_el2", 0xE658, true, true }, // 563
+ { "ich_misr_el2", 0xE65A, true, true }, // 564
+ { "ich_vmcr_el2", 0xE65F, true, true }, // 565
+ { "ich_vseir_el2", 0xE64C, true, true }, // 566
+ { "ich_lr0_el2", 0xE660, true, true }, // 567
+ { "ich_lr1_el2", 0xE661, true, true }, // 568
+ { "ich_lr2_el2", 0xE662, true, true }, // 569
+ { "ich_lr3_el2", 0xE663, true, true }, // 570
+ { "ich_lr4_el2", 0xE664, true, true }, // 571
+ { "ich_lr5_el2", 0xE665, true, true }, // 572
+ { "ich_lr6_el2", 0xE666, true, true }, // 573
+ { "ich_lr7_el2", 0xE667, true, true }, // 574
+ { "ich_lr8_el2", 0xE668, true, true }, // 575
+ { "ich_lr9_el2", 0xE669, true, true }, // 576
+ { "ich_lr10_el2", 0xE66A, true, true }, // 577
+ { "ich_lr11_el2", 0xE66B, true, true }, // 578
+ { "ich_lr12_el2", 0xE66C, true, true }, // 579
+ { "ich_lr13_el2", 0xE66D, true, true }, // 580
+ { "ich_lr14_el2", 0xE66E, true, true }, // 581
+ { "ich_lr15_el2", 0xE66F, true, true }, // 582
+ { "pan", 0xC213, true, true }, // 583
+ { "lorsa_el1", 0xC520, true, true }, // 584
+ { "lorea_el1", 0xC521, true, true }, // 585
+ { "lorn_el1", 0xC522, true, true }, // 586
+ { "lorc_el1", 0xC523, true, true }, // 587
+ { "ttbr1_el2", 0xE101, true, true }, // 588
+ { "contextidr_el2", 0xE681, true, true }, // 589
+ { "cnthv_tval_el2", 0xE718, true, true }, // 590
+ { "cnthv_cval_el2", 0xE71A, true, true }, // 591
+ { "cnthv_ctl_el2", 0xE719, true, true }, // 592
+ { "sctlr_el12", 0xE880, true, true }, // 593
+ { "cpacr_el12", 0xE882, true, true }, // 594
+ { "ttbr0_el12", 0xE900, true, true }, // 595
+ { "ttbr1_el12", 0xE901, true, true }, // 596
+ { "tcr_el12", 0xE902, true, true }, // 597
+ { "afsr0_el12", 0xEA88, true, true }, // 598
+ { "afsr1_el12", 0xEA89, true, true }, // 599
+ { "esr_el12", 0xEA90, true, true }, // 600
+ { "far_el12", 0xEB00, true, true }, // 601
+ { "mair_el12", 0xED10, true, true }, // 602
+ { "amair_el12", 0xED18, true, true }, // 603
+ { "vbar_el12", 0xEE00, true, true }, // 604
+ { "contextidr_el12", 0xEE81, true, true }, // 605
+ { "cntkctl_el12", 0xEF08, true, true }, // 606
+ { "cntp_tval_el02", 0xEF10, true, true }, // 607
+ { "cntp_ctl_el02", 0xEF11, true, true }, // 608
+ { "cntp_cval_el02", 0xEF12, true, true }, // 609
+ { "cntv_tval_el02", 0xEF18, true, true }, // 610
+ { "cntv_ctl_el02", 0xEF19, true, true }, // 611
+ { "cntv_cval_el02", 0xEF1A, true, true }, // 612
+ { "spsr_el12", 0xEA00, true, true }, // 613
+ { "elr_el12", 0xEA01, true, true }, // 614
+ { "uao", 0xC214, true, true }, // 615
+ { "pmblimitr_el1", 0xC4D0, true, true }, // 616
+ { "pmbptr_el1", 0xC4D1, true, true }, // 617
+ { "pmbsr_el1", 0xC4D3, true, true }, // 618
+ { "pmbidr_el1", 0xC4D7, true, true }, // 619
+ { "pmscr_el2", 0xE4C8, true, true }, // 620
+ { "pmscr_el12", 0xECC8, true, true }, // 621
+ { "pmscr_el1", 0xC4C8, true, true }, // 622
+ { "pmsicr_el1", 0xC4CA, true, true }, // 623
+ { "pmsirr_el1", 0xC4CB, true, true }, // 624
+ { "pmsfcr_el1", 0xC4CC, true, true }, // 625
+ { "pmsevfr_el1", 0xC4CD, true, true }, // 626
+ { "pmslatfr_el1", 0xC4CE, true, true }, // 627
+ { "pmsidr_el1", 0xC4CF, true, true }, // 628
+ { "errselr_el1", 0xC299, true, true }, // 629
+ { "erxctlr_el1", 0xC2A1, true, true }, // 630
+ { "erxstatus_el1", 0xC2A2, true, true }, // 631
+ { "erxaddr_el1", 0xC2A3, true, true }, // 632
+ { "erxmisc0_el1", 0xC2A8, true, true }, // 633
+ { "erxmisc1_el1", 0xC2A9, true, true }, // 634
+ { "disr_el1", 0xC609, true, true }, // 635
+ { "vdisr_el2", 0xE609, true, true }, // 636
+ { "vsesr_el2", 0xE293, true, true }, // 637
+ { "apiakeylo_el1", 0xC108, true, true }, // 638
+ { "apiakeyhi_el1", 0xC109, true, true }, // 639
+ { "apibkeylo_el1", 0xC10A, true, true }, // 640
+ { "apibkeyhi_el1", 0xC10B, true, true }, // 641
+ { "apdakeylo_el1", 0xC110, true, true }, // 642
+ { "apdakeyhi_el1", 0xC111, true, true }, // 643
+ { "apdbkeylo_el1", 0xC112, true, true }, // 644
+ { "apdbkeyhi_el1", 0xC113, true, true }, // 645
+ { "apgakeylo_el1", 0xC118, true, true }, // 646
+ { "apgakeyhi_el1", 0xC119, true, true }, // 647
+ { "vstcr_el2", 0xE132, true, true }, // 648
+ { "vsttbr_el2", 0xE130, true, true }, // 649
+ { "cnthvs_tval_el2", 0xE720, true, true }, // 650
+ { "cnthvs_cval_el2", 0xE722, true, true }, // 651
+ { "cnthvs_ctl_el2", 0xE721, true, true }, // 652
+ { "cnthps_tval_el2", 0xE728, true, true }, // 653
+ { "cnthps_cval_el2", 0xE72A, true, true }, // 654
+ { "cnthps_ctl_el2", 0xE729, true, true }, // 655
+ { "sder32_el2", 0xE099, true, true }, // 656
+ { "erxpfgctl_el1", 0xC2A5, true, true }, // 657
+ { "erxpfgcdn_el1", 0xC2A6, true, true }, // 658
+ { "erxts_el1", 0xC2AF, true, true }, // 659
+ { "erxmisc2_el1", 0xC2AA, true, true }, // 660
+ { "erxmisc3_el1", 0xC2AB, true, true }, // 661
+ { "erxpfgf_el1", 0xC2A4, true, false }, // 662
+ { "mpam0_el1", 0xC529, true, true }, // 663
+ { "mpam1_el1", 0xC528, true, true }, // 664
+ { "mpam2_el2", 0xE528, true, true }, // 665
+ { "mpam3_el3", 0xF528, true, true }, // 666
+ { "mpam1_el12", 0xED28, true, true }, // 667
+ { "mpamhcr_el2", 0xE520, true, true }, // 668
+ { "mpamvpmv_el2", 0xE521, true, true }, // 669
+ { "mpamvpm0_el2", 0xE530, true, true }, // 670
+ { "mpamvpm1_el2", 0xE531, true, true }, // 671
+ { "mpamvpm2_el2", 0xE532, true, true }, // 672
+ { "mpamvpm3_el2", 0xE533, true, true }, // 673
+ { "mpamvpm4_el2", 0xE534, true, true }, // 674
+ { "mpamvpm5_el2", 0xE535, true, true }, // 675
+ { "mpamvpm6_el2", 0xE536, true, true }, // 676
+ { "mpamvpm7_el2", 0xE537, true, true }, // 677
+ { "mpamidr_el1", 0xC524, true, false }, // 678
+ { "amcr_el0", 0xDE90, true, true }, // 679
+ { "amcfgr_el0", 0xDE91, true, false }, // 680
+ { "amcgcr_el0", 0xDE92, true, false }, // 681
+ { "amuserenr_el0", 0xDE93, true, true }, // 682
+ { "amcntenclr0_el0", 0xDE94, true, true }, // 683
+ { "amcntenset0_el0", 0xDE95, true, true }, // 684
+ { "amevcntr00_el0", 0xDEA0, true, true }, // 685
+ { "amevcntr01_el0", 0xDEA1, true, true }, // 686
+ { "amevcntr02_el0", 0xDEA2, true, true }, // 687
+ { "amevcntr03_el0", 0xDEA3, true, true }, // 688
+ { "amevtyper00_el0", 0xDEB0, true, false }, // 689
+ { "amevtyper01_el0", 0xDEB1, true, false }, // 690
+ { "amevtyper02_el0", 0xDEB2, true, false }, // 691
+ { "amevtyper03_el0", 0xDEB3, true, false }, // 692
+ { "amcntenclr1_el0", 0xDE98, true, true }, // 693
+ { "amcntenset1_el0", 0xDE99, true, true }, // 694
+ { "amevcntr10_el0", 0xDEE0, true, true }, // 695
+ { "amevcntr11_el0", 0xDEE1, true, true }, // 696
+ { "amevcntr12_el0", 0xDEE2, true, true }, // 697
+ { "amevcntr13_el0", 0xDEE3, true, true }, // 698
+ { "amevcntr14_el0", 0xDEE4, true, true }, // 699
+ { "amevcntr15_el0", 0xDEE5, true, true }, // 700
+ { "amevcntr16_el0", 0xDEE6, true, true }, // 701
+ { "amevcntr17_el0", 0xDEE7, true, true }, // 702
+ { "amevcntr18_el0", 0xDEE8, true, true }, // 703
+ { "amevcntr19_el0", 0xDEE9, true, true }, // 704
+ { "amevcntr110_el0", 0xDEEA, true, true }, // 705
+ { "amevcntr111_el0", 0xDEEB, true, true }, // 706
+ { "amevcntr112_el0", 0xDEEC, true, true }, // 707
+ { "amevcntr113_el0", 0xDEED, true, true }, // 708
+ { "amevcntr114_el0", 0xDEEE, true, true }, // 709
+ { "amevcntr115_el0", 0xDEEF, true, true }, // 710
+ { "amevtyper10_el0", 0xDEF0, true, true }, // 711
+ { "amevtyper11_el0", 0xDEF1, true, true }, // 712
+ { "amevtyper12_el0", 0xDEF2, true, true }, // 713
+ { "amevtyper13_el0", 0xDEF3, true, true }, // 714
+ { "amevtyper14_el0", 0xDEF4, true, true }, // 715
+ { "amevtyper15_el0", 0xDEF5, true, true }, // 716
+ { "amevtyper16_el0", 0xDEF6, true, true }, // 717
+ { "amevtyper17_el0", 0xDEF7, true, true }, // 718
+ { "amevtyper18_el0", 0xDEF8, true, true }, // 719
+ { "amevtyper19_el0", 0xDEF9, true, true }, // 720
+ { "amevtyper110_el0", 0xDEFA, true, true }, // 721
+ { "amevtyper111_el0", 0xDEFB, true, true }, // 722
+ { "amevtyper112_el0", 0xDEFC, true, true }, // 723
+ { "amevtyper113_el0", 0xDEFD, true, true }, // 724
+ { "amevtyper114_el0", 0xDEFE, true, true }, // 725
+ { "amevtyper115_el0", 0xDEFF, true, true }, // 726
+ { "trfcr_el1", 0xC091, true, true }, // 727
+ { "trfcr_el2", 0xE091, true, true }, // 728
+ { "trfcr_el12", 0xE891, true, true }, // 729
+ { "dit", 0xDA15, true, true }, // 730
+ { "vncr_el2", 0xE110, true, true }, // 731
+ { "zcr_el1", 0xC090, true, true }, // 732
+ { "zcr_el2", 0xE090, true, true }, // 733
+ { "zcr_el3", 0xF090, true, true }, // 734
+ { "zcr_el12", 0xE890, true, true }, // 735
+ { "cpm_ioacc_ctl_el3", 0xFF90, true, true }, // 736
+};
+
+const SysReg *lookupSysRegByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x8002, 111 },
+ { 0x8004, 119 },
+ { 0x8005, 135 },
+ { 0x8006, 151 },
+ { 0x8007, 167 },
+ { 0x800C, 120 },
+ { 0x800D, 136 },
+ { 0x800E, 152 },
+ { 0x800F, 168 },
+ { 0x8010, 114 },
+ { 0x8012, 115 },
+ { 0x8014, 121 },
+ { 0x8015, 137 },
+ { 0x8016, 153 },
+ { 0x8017, 169 },
+ { 0x801A, 112 },
+ { 0x801C, 122 },
+ { 0x801D, 138 },
+ { 0x801E, 154 },
+ { 0x801F, 170 },
+ { 0x8024, 123 },
+ { 0x8025, 139 },
+ { 0x8026, 155 },
+ { 0x8027, 171 },
+ { 0x802C, 124 },
+ { 0x802D, 140 },
+ { 0x802E, 156 },
+ { 0x802F, 172 },
+ { 0x8032, 117 },
+ { 0x8034, 125 },
+ { 0x8035, 141 },
+ { 0x8036, 157 },
+ { 0x8037, 173 },
+ { 0x803C, 126 },
+ { 0x803D, 142 },
+ { 0x803E, 158 },
+ { 0x803F, 174 },
+ { 0x8044, 127 },
+ { 0x8045, 143 },
+ { 0x8046, 159 },
+ { 0x8047, 175 },
+ { 0x804C, 128 },
+ { 0x804D, 144 },
+ { 0x804E, 160 },
+ { 0x804F, 176 },
+ { 0x8054, 129 },
+ { 0x8055, 145 },
+ { 0x8056, 161 },
+ { 0x8057, 177 },
+ { 0x805C, 130 },
+ { 0x805D, 146 },
+ { 0x805E, 162 },
+ { 0x805F, 178 },
+ { 0x8064, 131 },
+ { 0x8065, 147 },
+ { 0x8066, 163 },
+ { 0x8067, 179 },
+ { 0x806C, 132 },
+ { 0x806D, 148 },
+ { 0x806E, 164 },
+ { 0x806F, 180 },
+ { 0x8074, 133 },
+ { 0x8075, 149 },
+ { 0x8076, 165 },
+ { 0x8077, 181 },
+ { 0x807C, 134 },
+ { 0x807D, 150 },
+ { 0x807E, 166 },
+ { 0x807F, 182 },
+ { 0x8080, 2 },
+ { 0x8084, 101 },
+ { 0x808C, 3 },
+ { 0x809C, 184 },
+ { 0x80A4, 185 },
+ { 0x83C6, 186 },
+ { 0x83CE, 187 },
+ { 0x83F6, 4 },
+ { 0x8801, 374 },
+ { 0x8802, 376 },
+ { 0x8804, 383 },
+ { 0x8805, 389 },
+ { 0x8806, 53 },
+ { 0x8807, 401 },
+ { 0x8808, 363 },
+ { 0x8809, 375 },
+ { 0x880A, 377 },
+ { 0x880C, 384 },
+ { 0x880D, 390 },
+ { 0x880E, 54 },
+ { 0x880F, 402 },
+ { 0x8810, 364 },
+ { 0x8812, 378 },
+ { 0x8814, 385 },
+ { 0x8815, 391 },
+ { 0x8816, 55 },
+ { 0x8817, 403 },
+ { 0x8818, 52 },
+ { 0x881A, 379 },
+ { 0x881D, 392 },
+ { 0x881E, 56 },
+ { 0x881F, 404 },
+ { 0x8820, 365 },
+ { 0x8825, 393 },
+ { 0x8826, 57 },
+ { 0x8827, 405 },
+ { 0x882D, 394 },
+ { 0x882E, 58 },
+ { 0x882F, 406 },
+ { 0x8830, 366 },
+ { 0x8834, 386 },
+ { 0x8835, 395 },
+ { 0x8837, 407 },
+ { 0x883C, 387 },
+ { 0x883D, 396 },
+ { 0x883F, 408 },
+ { 0x8840, 367 },
+ { 0x8842, 380 },
+ { 0x8844, 388 },
+ { 0x8845, 397 },
+ { 0x8847, 59 },
+ { 0x8848, 368 },
+ { 0x884A, 381 },
+ { 0x884D, 398 },
+ { 0x884F, 60 },
+ { 0x8852, 382 },
+ { 0x8855, 399 },
+ { 0x8857, 61 },
+ { 0x8858, 369 },
+ { 0x885D, 400 },
+ { 0x885F, 62 },
+ { 0x8860, 370 },
+ { 0x8867, 63 },
+ { 0x8868, 371 },
+ { 0x886F, 64 },
+ { 0x8870, 372 },
+ { 0x8877, 65 },
+ { 0x8878, 373 },
+ { 0x887F, 66 },
+ { 0x8881, 423 },
+ { 0x8882, 439 },
+ { 0x8883, 455 },
+ { 0x8884, 103 },
+ { 0x8889, 424 },
+ { 0x888A, 440 },
+ { 0x888B, 456 },
+ { 0x888C, 67 },
+ { 0x8890, 409 },
+ { 0x8891, 425 },
+ { 0x8892, 441 },
+ { 0x8893, 457 },
+ { 0x8898, 410 },
+ { 0x8899, 426 },
+ { 0x889A, 442 },
+ { 0x889B, 458 },
+ { 0x88A0, 411 },
+ { 0x88A1, 427 },
+ { 0x88A2, 443 },
+ { 0x88A3, 459 },
+ { 0x88A4, 463 },
+ { 0x88A8, 412 },
+ { 0x88A9, 428 },
+ { 0x88AA, 444 },
+ { 0x88AB, 460 },
+ { 0x88AC, 68 },
+ { 0x88B0, 413 },
+ { 0x88B1, 429 },
+ { 0x88B2, 445 },
+ { 0x88B3, 461 },
+ { 0x88B8, 414 },
+ { 0x88B9, 430 },
+ { 0x88BA, 446 },
+ { 0x88BB, 462 },
+ { 0x88C0, 415 },
+ { 0x88C1, 431 },
+ { 0x88C2, 447 },
+ { 0x88C8, 416 },
+ { 0x88C9, 432 },
+ { 0x88CA, 448 },
+ { 0x88D0, 417 },
+ { 0x88D1, 433 },
+ { 0x88D2, 449 },
+ { 0x88D8, 418 },
+ { 0x88D9, 434 },
+ { 0x88DA, 450 },
+ { 0x88E0, 419 },
+ { 0x88E1, 435 },
+ { 0x88E2, 451 },
+ { 0x88E8, 420 },
+ { 0x88E9, 436 },
+ { 0x88EA, 452 },
+ { 0x88F0, 421 },
+ { 0x88F1, 437 },
+ { 0x88F2, 453 },
+ { 0x88F8, 422 },
+ { 0x88F9, 438 },
+ { 0x88FA, 454 },
+ { 0x8900, 464 },
+ { 0x8901, 472 },
+ { 0x8902, 480 },
+ { 0x8903, 488 },
+ { 0x8904, 496 },
+ { 0x8905, 500 },
+ { 0x8906, 504 },
+ { 0x8907, 508 },
+ { 0x8910, 465 },
+ { 0x8911, 473 },
+ { 0x8912, 481 },
+ { 0x8913, 489 },
+ { 0x8920, 466 },
+ { 0x8921, 474 },
+ { 0x8922, 482 },
+ { 0x8923, 490 },
+ { 0x8924, 497 },
+ { 0x8925, 501 },
+ { 0x8926, 505 },
+ { 0x8927, 509 },
+ { 0x8930, 467 },
+ { 0x8931, 475 },
+ { 0x8932, 483 },
+ { 0x8933, 491 },
+ { 0x8940, 468 },
+ { 0x8941, 476 },
+ { 0x8942, 484 },
+ { 0x8943, 492 },
+ { 0x8944, 498 },
+ { 0x8945, 502 },
+ { 0x8946, 506 },
+ { 0x8947, 510 },
+ { 0x8950, 469 },
+ { 0x8951, 477 },
+ { 0x8952, 485 },
+ { 0x8953, 493 },
+ { 0x8960, 470 },
+ { 0x8961, 478 },
+ { 0x8962, 486 },
+ { 0x8963, 494 },
+ { 0x8964, 499 },
+ { 0x8965, 503 },
+ { 0x8966, 507 },
+ { 0x8967, 511 },
+ { 0x8970, 471 },
+ { 0x8971, 479 },
+ { 0x8972, 487 },
+ { 0x8973, 495 },
+ { 0x8980, 512 },
+ { 0x8981, 520 },
+ { 0x8982, 528 },
+ { 0x898A, 529 },
+ { 0x8990, 513 },
+ { 0x8991, 521 },
+ { 0x8992, 530 },
+ { 0x899A, 531 },
+ { 0x89A0, 514 },
+ { 0x89A1, 522 },
+ { 0x89B0, 515 },
+ { 0x89B1, 523 },
+ { 0x89C0, 516 },
+ { 0x89C1, 524 },
+ { 0x89D0, 517 },
+ { 0x89D1, 525 },
+ { 0x89E0, 518 },
+ { 0x89E1, 526 },
+ { 0x89F0, 519 },
+ { 0x89F1, 527 },
+ { 0x8B84, 532 },
+ { 0x8B97, 74 },
+ { 0x8B9F, 75 },
+ { 0x8BA7, 76 },
+ { 0x8BAF, 77 },
+ { 0x8BB7, 78 },
+ { 0x8BBF, 79 },
+ { 0x8BC6, 533 },
+ { 0x8BC7, 80 },
+ { 0x8BCE, 534 },
+ { 0x8BCF, 81 },
+ { 0x8BD6, 69 },
+ { 0x8BD7, 82 },
+ { 0x8BDE, 70 },
+ { 0x8BDF, 83 },
+ { 0x8BE6, 104 },
+ { 0x8BE7, 84 },
+ { 0x8BEE, 71 },
+ { 0x8BEF, 85 },
+ { 0x8BF6, 72 },
+ { 0x8BF7, 86 },
+ { 0x8BFE, 73 },
+ { 0x8BFF, 87 },
+ { 0x9000, 113 },
+ { 0x9080, 183 },
+ { 0x9808, 0 },
+ { 0x9820, 116 },
+ { 0x9828, 1 },
+ { 0x9828, 100 },
+ { 0xA038, 118 },
+ { 0xC000, 7 },
+ { 0xC005, 12 },
+ { 0xC006, 13 },
+ { 0xC008, 16 },
+ { 0xC009, 17 },
+ { 0xC00A, 18 },
+ { 0xC00B, 19 },
+ { 0xC00C, 20 },
+ { 0xC00D, 21 },
+ { 0xC00E, 22 },
+ { 0xC00F, 23 },
+ { 0xC010, 24 },
+ { 0xC011, 25 },
+ { 0xC012, 26 },
+ { 0xC013, 27 },
+ { 0xC014, 28 },
+ { 0xC015, 29 },
+ { 0xC016, 51 },
+ { 0xC017, 30 },
+ { 0xC018, 42 },
+ { 0xC019, 43 },
+ { 0xC01A, 44 },
+ { 0xC020, 31 },
+ { 0xC021, 32 },
+ { 0xC024, 96 },
+ { 0xC028, 33 },
+ { 0xC029, 34 },
+ { 0xC02C, 35 },
+ { 0xC02D, 36 },
+ { 0xC030, 37 },
+ { 0xC031, 38 },
+ { 0xC038, 39 },
+ { 0xC039, 40 },
+ { 0xC03A, 41 },
+ { 0xC080, 192 },
+ { 0xC081, 195 },
+ { 0xC082, 191 },
+ { 0xC090, 732 },
+ { 0xC091, 727 },
+ { 0xC100, 207 },
+ { 0xC101, 210 },
+ { 0xC102, 211 },
+ { 0xC108, 638 },
+ { 0xC109, 639 },
+ { 0xC10A, 640 },
+ { 0xC10B, 641 },
+ { 0xC110, 642 },
+ { 0xC111, 643 },
+ { 0xC112, 644 },
+ { 0xC113, 645 },
+ { 0xC118, 646 },
+ { 0xC119, 647 },
+ { 0xC200, 217 },
+ { 0xC201, 220 },
+ { 0xC208, 223 },
+ { 0xC210, 226 },
+ { 0xC212, 229 },
+ { 0xC213, 583 },
+ { 0xC214, 615 },
+ { 0xC230, 537 },
+ { 0xC288, 239 },
+ { 0xC289, 242 },
+ { 0xC290, 245 },
+ { 0xC298, 98 },
+ { 0xC299, 629 },
+ { 0xC2A0, 99 },
+ { 0xC2A1, 630 },
+ { 0xC2A2, 631 },
+ { 0xC2A3, 632 },
+ { 0xC2A4, 662 },
+ { 0xC2A5, 657 },
+ { 0xC2A6, 658 },
+ { 0xC2A8, 633 },
+ { 0xC2A9, 634 },
+ { 0xC2AA, 660 },
+ { 0xC2AB, 661 },
+ { 0xC2AF, 659 },
+ { 0xC300, 249 },
+ { 0xC3A0, 253 },
+ { 0xC4C8, 622 },
+ { 0xC4CA, 623 },
+ { 0xC4CB, 624 },
+ { 0xC4CC, 625 },
+ { 0xC4CD, 626 },
+ { 0xC4CE, 627 },
+ { 0xC4CF, 628 },
+ { 0xC4D0, 616 },
+ { 0xC4D1, 617 },
+ { 0xC4D3, 618 },
+ { 0xC4D7, 619 },
+ { 0xC4F1, 263 },
+ { 0xC4F2, 264 },
+ { 0xC510, 266 },
+ { 0xC518, 269 },
+ { 0xC520, 584 },
+ { 0xC521, 585 },
+ { 0xC522, 586 },
+ { 0xC523, 587 },
+ { 0xC524, 678 },
+ { 0xC527, 97 },
+ { 0xC528, 664 },
+ { 0xC529, 663 },
+ { 0xC600, 272 },
+ { 0xC601, 45 },
+ { 0xC602, 275 },
+ { 0xC608, 48 },
+ { 0xC609, 635 },
+ { 0xC640, 89 },
+ { 0xC641, 106 },
+ { 0xC642, 91 },
+ { 0xC643, 536 },
+ { 0xC644, 547 },
+ { 0xC645, 548 },
+ { 0xC646, 549 },
+ { 0xC647, 550 },
+ { 0xC648, 551 },
+ { 0xC649, 552 },
+ { 0xC64A, 553 },
+ { 0xC64B, 554 },
+ { 0xC659, 107 },
+ { 0xC65B, 92 },
+ { 0xC65D, 108 },
+ { 0xC65E, 109 },
+ { 0xC65F, 110 },
+ { 0xC660, 88 },
+ { 0xC661, 105 },
+ { 0xC662, 90 },
+ { 0xC663, 535 },
+ { 0xC664, 538 },
+ { 0xC665, 540 },
+ { 0xC666, 543 },
+ { 0xC667, 544 },
+ { 0xC668, 546 },
+ { 0xC681, 278 },
+ { 0xC684, 283 },
+ { 0xC708, 286 },
+ { 0xC800, 8 },
+ { 0xC801, 10 },
+ { 0xC802, 9 },
+ { 0xC807, 14 },
+ { 0xD000, 188 },
+ { 0xD801, 11 },
+ { 0xD807, 15 },
+ { 0xDA10, 227 },
+ { 0xDA11, 228 },
+ { 0xDA15, 730 },
+ { 0xDA20, 234 },
+ { 0xDA21, 235 },
+ { 0xDA28, 236 },
+ { 0xDA29, 237 },
+ { 0xDCE0, 254 },
+ { 0xDCE1, 255 },
+ { 0xDCE2, 256 },
+ { 0xDCE3, 257 },
+ { 0xDCE4, 102 },
+ { 0xDCE5, 258 },
+ { 0xDCE6, 5 },
+ { 0xDCE7, 6 },
+ { 0xDCE8, 259 },
+ { 0xDCE9, 260 },
+ { 0xDCEA, 261 },
+ { 0xDCF0, 262 },
+ { 0xDCF3, 265 },
+ { 0xDE82, 279 },
+ { 0xDE83, 282 },
+ { 0xDE90, 679 },
+ { 0xDE91, 680 },
+ { 0xDE92, 681 },
+ { 0xDE93, 682 },
+ { 0xDE94, 683 },
+ { 0xDE95, 684 },
+ { 0xDE98, 693 },
+ { 0xDE99, 694 },
+ { 0xDEA0, 685 },
+ { 0xDEA1, 686 },
+ { 0xDEA2, 687 },
+ { 0xDEA3, 688 },
+ { 0xDEB0, 689 },
+ { 0xDEB1, 690 },
+ { 0xDEB2, 691 },
+ { 0xDEB3, 692 },
+ { 0xDEE0, 695 },
+ { 0xDEE1, 696 },
+ { 0xDEE2, 697 },
+ { 0xDEE3, 698 },
+ { 0xDEE4, 699 },
+ { 0xDEE5, 700 },
+ { 0xDEE6, 701 },
+ { 0xDEE7, 702 },
+ { 0xDEE8, 703 },
+ { 0xDEE9, 704 },
+ { 0xDEEA, 705 },
+ { 0xDEEB, 706 },
+ { 0xDEEC, 707 },
+ { 0xDEED, 708 },
+ { 0xDEEE, 709 },
+ { 0xDEEF, 710 },
+ { 0xDEF0, 711 },
+ { 0xDEF1, 712 },
+ { 0xDEF2, 713 },
+ { 0xDEF3, 714 },
+ { 0xDEF4, 715 },
+ { 0xDEF5, 716 },
+ { 0xDEF6, 717 },
+ { 0xDEF7, 718 },
+ { 0xDEF8, 719 },
+ { 0xDEF9, 720 },
+ { 0xDEFA, 721 },
+ { 0xDEFB, 722 },
+ { 0xDEFC, 723 },
+ { 0xDEFD, 724 },
+ { 0xDEFE, 725 },
+ { 0xDEFF, 726 },
+ { 0xDF00, 284 },
+ { 0xDF01, 49 },
+ { 0xDF02, 50 },
+ { 0xDF10, 288 },
+ { 0xDF11, 291 },
+ { 0xDF12, 294 },
+ { 0xDF18, 297 },
+ { 0xDF19, 298 },
+ { 0xDF1A, 299 },
+ { 0xDF40, 300 },
+ { 0xDF41, 301 },
+ { 0xDF42, 302 },
+ { 0xDF43, 303 },
+ { 0xDF44, 304 },
+ { 0xDF45, 305 },
+ { 0xDF46, 306 },
+ { 0xDF47, 307 },
+ { 0xDF48, 308 },
+ { 0xDF49, 309 },
+ { 0xDF4A, 310 },
+ { 0xDF4B, 311 },
+ { 0xDF4C, 312 },
+ { 0xDF4D, 313 },
+ { 0xDF4E, 314 },
+ { 0xDF4F, 315 },
+ { 0xDF50, 316 },
+ { 0xDF51, 317 },
+ { 0xDF52, 318 },
+ { 0xDF53, 319 },
+ { 0xDF54, 320 },
+ { 0xDF55, 321 },
+ { 0xDF56, 322 },
+ { 0xDF57, 323 },
+ { 0xDF58, 324 },
+ { 0xDF59, 325 },
+ { 0xDF5A, 326 },
+ { 0xDF5B, 327 },
+ { 0xDF5C, 328 },
+ { 0xDF5D, 329 },
+ { 0xDF5E, 330 },
+ { 0xDF60, 332 },
+ { 0xDF61, 333 },
+ { 0xDF62, 334 },
+ { 0xDF63, 335 },
+ { 0xDF64, 336 },
+ { 0xDF65, 337 },
+ { 0xDF66, 338 },
+ { 0xDF67, 339 },
+ { 0xDF68, 340 },
+ { 0xDF69, 341 },
+ { 0xDF6A, 342 },
+ { 0xDF6B, 343 },
+ { 0xDF6C, 344 },
+ { 0xDF6D, 345 },
+ { 0xDF6E, 346 },
+ { 0xDF6F, 347 },
+ { 0xDF70, 348 },
+ { 0xDF71, 349 },
+ { 0xDF72, 350 },
+ { 0xDF73, 351 },
+ { 0xDF74, 352 },
+ { 0xDF75, 353 },
+ { 0xDF76, 354 },
+ { 0xDF77, 355 },
+ { 0xDF78, 356 },
+ { 0xDF79, 357 },
+ { 0xDF7A, 358 },
+ { 0xDF7B, 359 },
+ { 0xDF7C, 360 },
+ { 0xDF7D, 361 },
+ { 0xDF7E, 362 },
+ { 0xDF7F, 331 },
+ { 0xE000, 189 },
+ { 0xE005, 190 },
+ { 0xE080, 193 },
+ { 0xE081, 196 },
+ { 0xE088, 198 },
+ { 0xE089, 200 },
+ { 0xE08A, 202 },
+ { 0xE08B, 204 },
+ { 0xE08F, 205 },
+ { 0xE090, 733 },
+ { 0xE091, 728 },
+ { 0xE099, 656 },
+ { 0xE100, 208 },
+ { 0xE101, 588 },
+ { 0xE102, 212 },
+ { 0xE108, 214 },
+ { 0xE10A, 215 },
+ { 0xE110, 731 },
+ { 0xE130, 649 },
+ { 0xE132, 648 },
+ { 0xE180, 216 },
+ { 0xE200, 218 },
+ { 0xE201, 221 },
+ { 0xE208, 224 },
+ { 0xE218, 230 },
+ { 0xE219, 231 },
+ { 0xE21A, 232 },
+ { 0xE21B, 233 },
+ { 0xE281, 238 },
+ { 0xE288, 240 },
+ { 0xE289, 243 },
+ { 0xE290, 246 },
+ { 0xE293, 637 },
+ { 0xE298, 248 },
+ { 0xE300, 250 },
+ { 0xE304, 252 },
+ { 0xE4C8, 620 },
+ { 0xE510, 267 },
+ { 0xE518, 270 },
+ { 0xE520, 668 },
+ { 0xE521, 669 },
+ { 0xE528, 665 },
+ { 0xE530, 670 },
+ { 0xE531, 671 },
+ { 0xE532, 672 },
+ { 0xE533, 673 },
+ { 0xE534, 674 },
+ { 0xE535, 675 },
+ { 0xE536, 676 },
+ { 0xE537, 677 },
+ { 0xE600, 273 },
+ { 0xE601, 46 },
+ { 0xE602, 276 },
+ { 0xE609, 636 },
+ { 0xE640, 555 },
+ { 0xE641, 556 },
+ { 0xE642, 557 },
+ { 0xE643, 558 },
+ { 0xE648, 559 },
+ { 0xE649, 560 },
+ { 0xE64A, 561 },
+ { 0xE64B, 562 },
+ { 0xE64C, 566 },
+ { 0xE64D, 541 },
+ { 0xE658, 563 },
+ { 0xE659, 93 },
+ { 0xE65A, 564 },
+ { 0xE65B, 94 },
+ { 0xE65D, 95 },
+ { 0xE65F, 565 },
+ { 0xE660, 567 },
+ { 0xE661, 568 },
+ { 0xE662, 569 },
+ { 0xE663, 570 },
+ { 0xE664, 571 },
+ { 0xE665, 572 },
+ { 0xE666, 573 },
+ { 0xE667, 574 },
+ { 0xE668, 575 },
+ { 0xE669, 576 },
+ { 0xE66A, 577 },
+ { 0xE66B, 578 },
+ { 0xE66C, 579 },
+ { 0xE66D, 580 },
+ { 0xE66E, 581 },
+ { 0xE66F, 582 },
+ { 0xE681, 589 },
+ { 0xE682, 280 },
+ { 0xE703, 285 },
+ { 0xE708, 287 },
+ { 0xE710, 289 },
+ { 0xE711, 292 },
+ { 0xE712, 295 },
+ { 0xE718, 590 },
+ { 0xE719, 592 },
+ { 0xE71A, 591 },
+ { 0xE720, 650 },
+ { 0xE721, 652 },
+ { 0xE722, 651 },
+ { 0xE728, 653 },
+ { 0xE729, 655 },
+ { 0xE72A, 654 },
+ { 0xE880, 593 },
+ { 0xE882, 594 },
+ { 0xE890, 735 },
+ { 0xE891, 729 },
+ { 0xE900, 595 },
+ { 0xE901, 596 },
+ { 0xE902, 597 },
+ { 0xEA00, 613 },
+ { 0xEA01, 614 },
+ { 0xEA88, 598 },
+ { 0xEA89, 599 },
+ { 0xEA90, 600 },
+ { 0xEB00, 601 },
+ { 0xECC8, 621 },
+ { 0xED10, 602 },
+ { 0xED18, 603 },
+ { 0xED28, 667 },
+ { 0xEE00, 604 },
+ { 0xEE81, 605 },
+ { 0xEF08, 606 },
+ { 0xEF10, 607 },
+ { 0xEF11, 608 },
+ { 0xEF12, 609 },
+ { 0xEF18, 610 },
+ { 0xEF19, 611 },
+ { 0xEF1A, 612 },
+ { 0xF080, 194 },
+ { 0xF081, 197 },
+ { 0xF088, 199 },
+ { 0xF089, 201 },
+ { 0xF08A, 203 },
+ { 0xF090, 734 },
+ { 0xF099, 206 },
+ { 0xF100, 209 },
+ { 0xF102, 213 },
+ { 0xF200, 219 },
+ { 0xF201, 222 },
+ { 0xF208, 225 },
+ { 0xF288, 241 },
+ { 0xF289, 244 },
+ { 0xF290, 247 },
+ { 0xF300, 251 },
+ { 0xF510, 268 },
+ { 0xF518, 271 },
+ { 0xF528, 666 },
+ { 0xF600, 274 },
+ { 0xF601, 47 },
+ { 0xF602, 277 },
+ { 0xF664, 539 },
+ { 0xF665, 542 },
+ { 0xF667, 545 },
+ { 0xF682, 281 },
+ { 0xFF10, 290 },
+ { 0xFF11, 293 },
+ { 0xFF12, 296 },
+ { 0xFF90, 736 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &SysRegsList[Index[i].index];
+}
+
+static const PState PStatesList[] = {
+ { "spsel", 0x5 }, // 0
+ { "daifset", 0x1E }, // 1
+ { "daifclr", 0x1F }, // 2
+ { "pan", 0x4 }, // 3
+ { "uao", 0x3 }, // 4
+ { "dit", 0x1A }, // 5
+};
+
+const PState *lookupPStateByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x3, 4 },
+ { 0x4, 3 },
+ { 0x5, 0 },
+ { 0x1A, 5 },
+ { 0x1E, 1 },
+ { 0x1F, 2 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &PStatesList[Index[i].index];
+}
+
+static const SVEPREDPAT SVEPREDPATsList[] = {
+ { "pow2", 0x0 }, // 0
+ { "vl1", 0x1 }, // 1
+ { "vl2", 0x2 }, // 2
+ { "vl3", 0x3 }, // 3
+ { "vl4", 0x4 }, // 4
+ { "vl5", 0x5 }, // 5
+ { "vl6", 0x6 }, // 6
+ { "vl7", 0x7 }, // 7
+ { "vl8", 0x8 }, // 8
+ { "vl16", 0x9 }, // 9
+ { "vl32", 0xa }, // 10
+ { "vl64", 0xb }, // 11
+ { "vl128", 0xc }, // 12
+ { "vl256", 0xd }, // 13
+ { "mul4", 0x1d }, // 14
+ { "mul3", 0x1e }, // 15
+ { "all", 0x1f }, // 16
+};
+
+const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint16_t Encoding)
+{
+ unsigned int i;
+ static const struct IndexType Index[] = {
+ { 0x0, 0 },
+ { 0x1, 1 },
+ { 0x2, 2 },
+ { 0x3, 3 },
+ { 0x4, 4 },
+ { 0x5, 5 },
+ { 0x6, 6 },
+ { 0x7, 7 },
+ { 0x8, 8 },
+ { 0x9, 9 },
+ { 0xA, 10 },
+ { 0xB, 11 },
+ { 0xC, 12 },
+ { 0xD, 13 },
+ { 0x1D, 14 },
+ { 0x1E, 15 },
+ { 0x1F, 16 },
+ };
+
+ i = binsearch_IndexTypeEncoding(Index, ARR_SIZE(Index), Encoding);
+ if (i == -1)
+ return NULL;
+ else
+ return &SVEPREDPATsList[Index[i].index];
+}
+
+static const ExactFPImm ExactFPImmsList[] = {
+ { "zero", 0x0, "0.0" }, // 0
+ { "half", 0x1, "0.5" }, // 1
+ { "one", 0x2, "1.0" }, // 2
+ { "two", 0x3, "2.0" }, // 3
+};
+
+const ExactFPImm *lookupExactFPImmByEnum(uint16_t Encoding)
+{
+ static const struct IndexType Index[] = {
+ { 0x0, 0 },
+ { 0x1, 1 },
+ { 0x2, 2 },
+ { 0x3, 3 },
+ };
+
+ if (Encoding >= ARR_SIZE(ExactFPImmsList))
+ return NULL;
+ else
+ return &ExactFPImmsList[Index[Encoding].index];
+}
+