mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-05 14:34:55 +00:00
[ARM64] Remove ARM64SYS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205870 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
96e05ca4bf
commit
b336e5d041
@ -279,671 +279,6 @@ inline static unsigned getNZCVToSatisfyCondCode(CondCode Code) {
|
||||
}
|
||||
} // end namespace ARM64CC
|
||||
|
||||
namespace ARM64SYS {
|
||||
enum BarrierOption {
|
||||
InvalidBarrier = 0xff,
|
||||
OSHLD = 0x1,
|
||||
OSHST = 0x2,
|
||||
OSH = 0x3,
|
||||
NSHLD = 0x5,
|
||||
NSHST = 0x6,
|
||||
NSH = 0x7,
|
||||
ISHLD = 0x9,
|
||||
ISHST = 0xa,
|
||||
ISH = 0xb,
|
||||
LD = 0xd,
|
||||
ST = 0xe,
|
||||
SY = 0xf
|
||||
};
|
||||
|
||||
inline static const char *getBarrierOptName(BarrierOption Opt) {
|
||||
switch (Opt) {
|
||||
default: return NULL;
|
||||
case 0x1: return "oshld";
|
||||
case 0x2: return "oshst";
|
||||
case 0x3: return "osh";
|
||||
case 0x5: return "nshld";
|
||||
case 0x6: return "nshst";
|
||||
case 0x7: return "nsh";
|
||||
case 0x9: return "ishld";
|
||||
case 0xa: return "ishst";
|
||||
case 0xb: return "ish";
|
||||
case 0xd: return "ld";
|
||||
case 0xe: return "st";
|
||||
case 0xf: return "sy";
|
||||
}
|
||||
}
|
||||
|
||||
#define A64_SYSREG_ENC(op0,CRn,op2,CRm,op1) ((op0) << 14 | (op1) << 11 | \
|
||||
(CRn) << 7 | (CRm) << 3 | (op2))
|
||||
enum SystemRegister {
|
||||
InvalidSystemReg = 0,
|
||||
// Table in section 3.10.3
|
||||
SPSR_EL1 = 0xc200,
|
||||
SPSR_svc = SPSR_EL1,
|
||||
ELR_EL1 = 0xc201,
|
||||
SP_EL0 = 0xc208,
|
||||
SPSel = 0xc210,
|
||||
CurrentEL = 0xc212,
|
||||
DAIF = 0xda11,
|
||||
NZCV = 0xda10,
|
||||
FPCR = 0xda20,
|
||||
FPSR = 0xda21,
|
||||
DSPSR = 0xda28,
|
||||
DLR = 0xda29,
|
||||
SPSR_EL2 = 0xe200,
|
||||
SPSR_hyp = SPSR_EL2,
|
||||
ELR_EL2 = 0xe201,
|
||||
SP_EL1 = 0xe208,
|
||||
SPSR_irq = 0xe218,
|
||||
SPSR_abt = 0xe219,
|
||||
SPSR_und = 0xe21a,
|
||||
SPSR_fiq = 0xe21b,
|
||||
SPSR_EL3 = 0xf200,
|
||||
ELR_EL3 = 0xf201,
|
||||
SP_EL2 = 0xf208,
|
||||
|
||||
|
||||
// Table in section 3.10.8
|
||||
MIDR_EL1 = 0xc000,
|
||||
CTR_EL0 = 0xd801,
|
||||
MPIDR_EL1 = 0xc005,
|
||||
ECOIDR_EL1 = 0xc006,
|
||||
DCZID_EL0 = 0xd807,
|
||||
MVFR0_EL1 = 0xc018,
|
||||
MVFR1_EL1 = 0xc019,
|
||||
ID_AA64PFR0_EL1 = 0xc020,
|
||||
ID_AA64PFR1_EL1 = 0xc021,
|
||||
ID_AA64DFR0_EL1 = 0xc028,
|
||||
ID_AA64DFR1_EL1 = 0xc029,
|
||||
ID_AA64ISAR0_EL1 = 0xc030,
|
||||
ID_AA64ISAR1_EL1 = 0xc031,
|
||||
ID_AA64MMFR0_EL1 = 0xc038,
|
||||
ID_AA64MMFR1_EL1 = 0xc039,
|
||||
CCSIDR_EL1 = 0xc800,
|
||||
CLIDR_EL1 = 0xc801,
|
||||
AIDR_EL1 = 0xc807,
|
||||
CSSELR_EL1 = 0xd000,
|
||||
VPIDR_EL2 = 0xe000,
|
||||
VMPIDR_EL2 = 0xe005,
|
||||
SCTLR_EL1 = 0xc080,
|
||||
SCTLR_EL2 = 0xe080,
|
||||
SCTLR_EL3 = 0xf080,
|
||||
ACTLR_EL1 = 0xc081,
|
||||
ACTLR_EL2 = 0xe081,
|
||||
ACTLR_EL3 = 0xf081,
|
||||
CPACR_EL1 = 0xc082,
|
||||
CPTR_EL2 = 0xe08a,
|
||||
CPTR_EL3 = 0xf08a,
|
||||
SCR_EL3 = 0xf088,
|
||||
HCR_EL2 = 0xe088,
|
||||
MDCR_EL2 = 0xe089,
|
||||
MDCR_EL3 = 0xf099,
|
||||
HSTR_EL2 = 0xe08b,
|
||||
HACR_EL2 = 0xe08f,
|
||||
TTBR0_EL1 = 0xc100,
|
||||
TTBR1_EL1 = 0xc101,
|
||||
TTBR0_EL2 = 0xe100,
|
||||
TTBR0_EL3 = 0xf100,
|
||||
VTTBR_EL2 = 0xe108,
|
||||
TCR_EL1 = 0xc102,
|
||||
TCR_EL2 = 0xe102,
|
||||
TCR_EL3 = 0xf102,
|
||||
VTCR_EL2 = 0xe10a,
|
||||
ADFSR_EL1 = 0xc288,
|
||||
AIFSR_EL1 = 0xc289,
|
||||
ADFSR_EL2 = 0xe288,
|
||||
AIFSR_EL2 = 0xe289,
|
||||
ADFSR_EL3 = 0xf288,
|
||||
AIFSR_EL3 = 0xf289,
|
||||
ESR_EL1 = 0xc290,
|
||||
ESR_EL2 = 0xe290,
|
||||
ESR_EL3 = 0xf290,
|
||||
FAR_EL1 = 0xc300,
|
||||
FAR_EL2 = 0xe300,
|
||||
FAR_EL3 = 0xf300,
|
||||
HPFAR_EL2 = 0xe304,
|
||||
PAR_EL1 = 0xc3a0,
|
||||
MAIR_EL1 = 0xc510,
|
||||
MAIR_EL2 = 0xe510,
|
||||
MAIR_EL3 = 0xf510,
|
||||
AMAIR_EL1 = 0xc518,
|
||||
AMAIR_EL2 = 0xe518,
|
||||
AMAIR_EL3 = 0xf518,
|
||||
VBAR_EL1 = 0xc600,
|
||||
VBAR_EL2 = 0xe600,
|
||||
VBAR_EL3 = 0xf600,
|
||||
RVBAR_EL1 = 0xc601,
|
||||
RVBAR_EL2 = 0xe601,
|
||||
RVBAR_EL3 = 0xf601,
|
||||
ISR_EL1 = 0xc608,
|
||||
CONTEXTIDR_EL1 = 0xc681,
|
||||
TPIDR_EL0 = 0xde82,
|
||||
TPIDRRO_EL0 = 0xde83,
|
||||
TPIDR_EL1 = 0xc684,
|
||||
TPIDR_EL2 = 0xe682,
|
||||
TPIDR_EL3 = 0xf682,
|
||||
TEECR32_EL1 = 0x9000,
|
||||
CNTFRQ_EL0 = 0xdf00,
|
||||
CNTPCT_EL0 = 0xdf01,
|
||||
CNTVCT_EL0 = 0xdf02,
|
||||
CNTVOFF_EL2 = 0xe703,
|
||||
CNTKCTL_EL1 = 0xc708,
|
||||
CNTHCTL_EL2 = 0xe708,
|
||||
CNTP_TVAL_EL0 = 0xdf10,
|
||||
CNTP_CTL_EL0 = 0xdf11,
|
||||
CNTP_CVAL_EL0 = 0xdf12,
|
||||
CNTV_TVAL_EL0 = 0xdf18,
|
||||
CNTV_CTL_EL0 = 0xdf19,
|
||||
CNTV_CVAL_EL0 = 0xdf1a,
|
||||
CNTHP_TVAL_EL2 = 0xe710,
|
||||
CNTHP_CTL_EL2 = 0xe711,
|
||||
CNTHP_CVAL_EL2 = 0xe712,
|
||||
CNTPS_TVAL_EL1 = 0xff10,
|
||||
CNTPS_CTL_EL1 = 0xff11,
|
||||
CNTPS_CVAL_EL1= 0xff12,
|
||||
|
||||
PMEVCNTR0_EL0 = 0xdf40,
|
||||
PMEVCNTR1_EL0 = 0xdf41,
|
||||
PMEVCNTR2_EL0 = 0xdf42,
|
||||
PMEVCNTR3_EL0 = 0xdf43,
|
||||
PMEVCNTR4_EL0 = 0xdf44,
|
||||
PMEVCNTR5_EL0 = 0xdf45,
|
||||
PMEVCNTR6_EL0 = 0xdf46,
|
||||
PMEVCNTR7_EL0 = 0xdf47,
|
||||
PMEVCNTR8_EL0 = 0xdf48,
|
||||
PMEVCNTR9_EL0 = 0xdf49,
|
||||
PMEVCNTR10_EL0 = 0xdf4a,
|
||||
PMEVCNTR11_EL0 = 0xdf4b,
|
||||
PMEVCNTR12_EL0 = 0xdf4c,
|
||||
PMEVCNTR13_EL0 = 0xdf4d,
|
||||
PMEVCNTR14_EL0 = 0xdf4e,
|
||||
PMEVCNTR15_EL0 = 0xdf4f,
|
||||
PMEVCNTR16_EL0 = 0xdf50,
|
||||
PMEVCNTR17_EL0 = 0xdf51,
|
||||
PMEVCNTR18_EL0 = 0xdf52,
|
||||
PMEVCNTR19_EL0 = 0xdf53,
|
||||
PMEVCNTR20_EL0 = 0xdf54,
|
||||
PMEVCNTR21_EL0 = 0xdf55,
|
||||
PMEVCNTR22_EL0 = 0xdf56,
|
||||
PMEVCNTR23_EL0 = 0xdf57,
|
||||
PMEVCNTR24_EL0 = 0xdf58,
|
||||
PMEVCNTR25_EL0 = 0xdf59,
|
||||
PMEVCNTR26_EL0 = 0xdf5a,
|
||||
PMEVCNTR27_EL0 = 0xdf5b,
|
||||
PMEVCNTR28_EL0 = 0xdf5c,
|
||||
PMEVCNTR29_EL0 = 0xdf5d,
|
||||
PMEVCNTR30_EL0 = 0xdf5e,
|
||||
|
||||
PMEVTYPER0_EL0 = 0xdf60,
|
||||
PMEVTYPER1_EL0 = 0xdf61,
|
||||
PMEVTYPER2_EL0 = 0xdf62,
|
||||
PMEVTYPER3_EL0 = 0xdf63,
|
||||
PMEVTYPER4_EL0 = 0xdf64,
|
||||
PMEVTYPER5_EL0 = 0xdf65,
|
||||
PMEVTYPER6_EL0 = 0xdf66,
|
||||
PMEVTYPER7_EL0 = 0xdf67,
|
||||
PMEVTYPER8_EL0 = 0xdf68,
|
||||
PMEVTYPER9_EL0 = 0xdf69,
|
||||
PMEVTYPER10_EL0 = 0xdf6a,
|
||||
PMEVTYPER11_EL0 = 0xdf6b,
|
||||
PMEVTYPER12_EL0 = 0xdf6c,
|
||||
PMEVTYPER13_EL0 = 0xdf6d,
|
||||
PMEVTYPER14_EL0 = 0xdf6e,
|
||||
PMEVTYPER15_EL0 = 0xdf6f,
|
||||
PMEVTYPER16_EL0 = 0xdf70,
|
||||
PMEVTYPER17_EL0 = 0xdf71,
|
||||
PMEVTYPER18_EL0 = 0xdf72,
|
||||
PMEVTYPER19_EL0 = 0xdf73,
|
||||
PMEVTYPER20_EL0 = 0xdf74,
|
||||
PMEVTYPER21_EL0 = 0xdf75,
|
||||
PMEVTYPER22_EL0 = 0xdf76,
|
||||
PMEVTYPER23_EL0 = 0xdf77,
|
||||
PMEVTYPER24_EL0 = 0xdf78,
|
||||
PMEVTYPER25_EL0 = 0xdf79,
|
||||
PMEVTYPER26_EL0 = 0xdf7a,
|
||||
PMEVTYPER27_EL0 = 0xdf7b,
|
||||
PMEVTYPER28_EL0 = 0xdf7c,
|
||||
PMEVTYPER29_EL0 = 0xdf7d,
|
||||
PMEVTYPER30_EL0 = 0xdf7e,
|
||||
|
||||
PMCCFILTR_EL0 = 0xdf7f,
|
||||
|
||||
RMR_EL3 = 0xf602,
|
||||
RMR_EL2 = 0xd602,
|
||||
RMR_EL1 = 0xce02,
|
||||
|
||||
// Debug Architecture 5.3, Table 17.
|
||||
MDCCSR_EL0 = A64_SYSREG_ENC(2, 0, 0, 1, 3),
|
||||
MDCCINT_EL1 = A64_SYSREG_ENC(2, 0, 0, 2, 0),
|
||||
DBGDTR_EL0 = A64_SYSREG_ENC(2, 0, 0, 4, 3),
|
||||
DBGDTRRX_EL0 = A64_SYSREG_ENC(2, 0, 0, 5, 3),
|
||||
DBGDTRTX_EL0 = DBGDTRRX_EL0,
|
||||
DBGVCR32_EL2 = A64_SYSREG_ENC(2, 0, 0, 7, 4),
|
||||
OSDTRRX_EL1 = A64_SYSREG_ENC(2, 0, 2, 0, 0),
|
||||
MDSCR_EL1 = A64_SYSREG_ENC(2, 0, 2, 2, 0),
|
||||
OSDTRTX_EL1 = A64_SYSREG_ENC(2, 0, 2, 3, 0),
|
||||
OSECCR_EL11 = A64_SYSREG_ENC(2, 0, 2, 6, 0),
|
||||
|
||||
DBGBVR0_EL1 = A64_SYSREG_ENC(2, 0, 4, 0, 0),
|
||||
DBGBVR1_EL1 = A64_SYSREG_ENC(2, 0, 4, 1, 0),
|
||||
DBGBVR2_EL1 = A64_SYSREG_ENC(2, 0, 4, 2, 0),
|
||||
DBGBVR3_EL1 = A64_SYSREG_ENC(2, 0, 4, 3, 0),
|
||||
DBGBVR4_EL1 = A64_SYSREG_ENC(2, 0, 4, 4, 0),
|
||||
DBGBVR5_EL1 = A64_SYSREG_ENC(2, 0, 4, 5, 0),
|
||||
DBGBVR6_EL1 = A64_SYSREG_ENC(2, 0, 4, 6, 0),
|
||||
DBGBVR7_EL1 = A64_SYSREG_ENC(2, 0, 4, 7, 0),
|
||||
DBGBVR8_EL1 = A64_SYSREG_ENC(2, 0, 4, 8, 0),
|
||||
DBGBVR9_EL1 = A64_SYSREG_ENC(2, 0, 4, 9, 0),
|
||||
DBGBVR10_EL1 = A64_SYSREG_ENC(2, 0, 4, 10, 0),
|
||||
DBGBVR11_EL1 = A64_SYSREG_ENC(2, 0, 4, 11, 0),
|
||||
DBGBVR12_EL1 = A64_SYSREG_ENC(2, 0, 4, 12, 0),
|
||||
DBGBVR13_EL1 = A64_SYSREG_ENC(2, 0, 4, 13, 0),
|
||||
DBGBVR14_EL1 = A64_SYSREG_ENC(2, 0, 4, 14, 0),
|
||||
DBGBVR15_EL1 = A64_SYSREG_ENC(2, 0, 4, 15, 0),
|
||||
|
||||
DBGBCR0_EL1 = A64_SYSREG_ENC(2, 0, 5, 0, 0),
|
||||
DBGBCR1_EL1 = A64_SYSREG_ENC(2, 0, 5, 1, 0),
|
||||
DBGBCR2_EL1 = A64_SYSREG_ENC(2, 0, 5, 2, 0),
|
||||
DBGBCR3_EL1 = A64_SYSREG_ENC(2, 0, 5, 3, 0),
|
||||
DBGBCR4_EL1 = A64_SYSREG_ENC(2, 0, 5, 4, 0),
|
||||
DBGBCR5_EL1 = A64_SYSREG_ENC(2, 0, 5, 5, 0),
|
||||
DBGBCR6_EL1 = A64_SYSREG_ENC(2, 0, 5, 6, 0),
|
||||
DBGBCR7_EL1 = A64_SYSREG_ENC(2, 0, 5, 7, 0),
|
||||
DBGBCR8_EL1 = A64_SYSREG_ENC(2, 0, 5, 8, 0),
|
||||
DBGBCR9_EL1 = A64_SYSREG_ENC(2, 0, 5, 9, 0),
|
||||
DBGBCR10_EL1 = A64_SYSREG_ENC(2, 0, 5, 10, 0),
|
||||
DBGBCR11_EL1 = A64_SYSREG_ENC(2, 0, 5, 11, 0),
|
||||
DBGBCR12_EL1 = A64_SYSREG_ENC(2, 0, 5, 12, 0),
|
||||
DBGBCR13_EL1 = A64_SYSREG_ENC(2, 0, 5, 13, 0),
|
||||
DBGBCR14_EL1 = A64_SYSREG_ENC(2, 0, 5, 14, 0),
|
||||
DBGBCR15_EL1 = A64_SYSREG_ENC(2, 0, 5, 15, 0),
|
||||
|
||||
DBGWVR0_EL1 = A64_SYSREG_ENC(2, 0, 6, 0, 0),
|
||||
DBGWVR1_EL1 = A64_SYSREG_ENC(2, 0, 6, 1, 0),
|
||||
DBGWVR2_EL1 = A64_SYSREG_ENC(2, 0, 6, 2, 0),
|
||||
DBGWVR3_EL1 = A64_SYSREG_ENC(2, 0, 6, 3, 0),
|
||||
DBGWVR4_EL1 = A64_SYSREG_ENC(2, 0, 6, 4, 0),
|
||||
DBGWVR5_EL1 = A64_SYSREG_ENC(2, 0, 6, 5, 0),
|
||||
DBGWVR6_EL1 = A64_SYSREG_ENC(2, 0, 6, 6, 0),
|
||||
DBGWVR7_EL1 = A64_SYSREG_ENC(2, 0, 6, 7, 0),
|
||||
DBGWVR8_EL1 = A64_SYSREG_ENC(2, 0, 6, 8, 0),
|
||||
DBGWVR9_EL1 = A64_SYSREG_ENC(2, 0, 6, 9, 0),
|
||||
DBGWVR10_EL1 = A64_SYSREG_ENC(2, 0, 6, 10, 0),
|
||||
DBGWVR11_EL1 = A64_SYSREG_ENC(2, 0, 6, 11, 0),
|
||||
DBGWVR12_EL1 = A64_SYSREG_ENC(2, 0, 6, 12, 0),
|
||||
DBGWVR13_EL1 = A64_SYSREG_ENC(2, 0, 6, 13, 0),
|
||||
DBGWVR14_EL1 = A64_SYSREG_ENC(2, 0, 6, 14, 0),
|
||||
DBGWVR15_EL1 = A64_SYSREG_ENC(2, 0, 6, 15, 0),
|
||||
|
||||
DBGWCR0_EL1 = A64_SYSREG_ENC(2, 0, 7, 0, 0),
|
||||
DBGWCR1_EL1 = A64_SYSREG_ENC(2, 0, 7, 1, 0),
|
||||
DBGWCR2_EL1 = A64_SYSREG_ENC(2, 0, 7, 2, 0),
|
||||
DBGWCR3_EL1 = A64_SYSREG_ENC(2, 0, 7, 3, 0),
|
||||
DBGWCR4_EL1 = A64_SYSREG_ENC(2, 0, 7, 4, 0),
|
||||
DBGWCR5_EL1 = A64_SYSREG_ENC(2, 0, 7, 5, 0),
|
||||
DBGWCR6_EL1 = A64_SYSREG_ENC(2, 0, 7, 6, 0),
|
||||
DBGWCR7_EL1 = A64_SYSREG_ENC(2, 0, 7, 7, 0),
|
||||
DBGWCR8_EL1 = A64_SYSREG_ENC(2, 0, 7, 8, 0),
|
||||
DBGWCR9_EL1 = A64_SYSREG_ENC(2, 0, 7, 9, 0),
|
||||
DBGWCR10_EL1 = A64_SYSREG_ENC(2, 0, 7, 10, 0),
|
||||
DBGWCR11_EL1 = A64_SYSREG_ENC(2, 0, 7, 11, 0),
|
||||
DBGWCR12_EL1 = A64_SYSREG_ENC(2, 0, 7, 12, 0),
|
||||
DBGWCR13_EL1 = A64_SYSREG_ENC(2, 0, 7, 13, 0),
|
||||
DBGWCR14_EL1 = A64_SYSREG_ENC(2, 0, 7, 14, 0),
|
||||
DBGWCR15_EL1 = A64_SYSREG_ENC(2, 0, 7, 15, 0),
|
||||
|
||||
MDRAR_EL1 = A64_SYSREG_ENC(2, 1, 0, 0, 0),
|
||||
OSLAR_EL1 = A64_SYSREG_ENC(2, 1, 4, 0, 0),
|
||||
OSLSR_EL1 = A64_SYSREG_ENC(2, 1, 4, 1, 0),
|
||||
OSDLR_EL1 = A64_SYSREG_ENC(2, 1, 4, 3, 0),
|
||||
DBGPRCR_EL1 = A64_SYSREG_ENC(2, 1, 4, 4, 0),
|
||||
|
||||
DBGCLAIMSET_EL1 = A64_SYSREG_ENC(2, 7, 6, 8, 0),
|
||||
DBGCLAIMCLR_EL1 = A64_SYSREG_ENC(2, 7, 6, 9, 0),
|
||||
DBGAUTHSTATUS_EL1 = A64_SYSREG_ENC(2, 7, 6, 14, 0),
|
||||
|
||||
DBGDEVID2 = A64_SYSREG_ENC(2, 7, 7, 0, 0),
|
||||
DBGDEVID1 = A64_SYSREG_ENC(2, 7, 7, 1, 0),
|
||||
DBGDEVID0 = A64_SYSREG_ENC(2, 7, 7, 2, 0),
|
||||
|
||||
// The following registers are defined to allow access from AArch64 to
|
||||
// registers which are only used in the AArch32 architecture.
|
||||
DACR32_EL2 = 0xe180,
|
||||
IFSR32_EL2 = 0xe281,
|
||||
TEEHBR32_EL1 = 0x9080,
|
||||
SDER32_EL3 = 0xf089,
|
||||
FPEXC32_EL2 = 0xe298,
|
||||
|
||||
// Cyclone specific system registers
|
||||
CPM_IOACC_CTL_EL3 = 0xff90,
|
||||
|
||||
// Architectural system registers
|
||||
ID_PFR0_EL1 = 0xc008,
|
||||
ID_PFR1_EL1 = 0xc009,
|
||||
ID_DFR0_EL1 = 0xc00a,
|
||||
ID_AFR0_EL1 = 0xc00b,
|
||||
ID_ISAR0_EL1 = 0xc010,
|
||||
ID_ISAR1_EL1 = 0xc011,
|
||||
ID_ISAR2_EL1 = 0xc012,
|
||||
ID_ISAR3_EL1 = 0xc013,
|
||||
ID_ISAR4_EL1 = 0xc014,
|
||||
ID_ISAR5_EL1 = 0xc015,
|
||||
AFSR1_EL1 = 0xc289, // note same as old AIFSR_EL1
|
||||
AFSR0_EL1 = 0xc288, // note same as old ADFSR_EL1
|
||||
REVIDR_EL1 = 0xc006 // note same as old ECOIDR_EL1
|
||||
|
||||
};
|
||||
#undef A64_SYSREG_ENC
|
||||
|
||||
static inline const char *getSystemRegisterName(SystemRegister Reg) {
|
||||
switch(Reg) {
|
||||
default: return NULL; // Caller is responsible for handling invalid value.
|
||||
case SPSR_EL1: return "SPSR_EL1";
|
||||
case ELR_EL1: return "ELR_EL1";
|
||||
case SP_EL0: return "SP_EL0";
|
||||
case SPSel: return "SPSel";
|
||||
case DAIF: return "DAIF";
|
||||
case CurrentEL: return "CurrentEL";
|
||||
case NZCV: return "NZCV";
|
||||
case FPCR: return "FPCR";
|
||||
case FPSR: return "FPSR";
|
||||
case DSPSR: return "DSPSR";
|
||||
case DLR: return "DLR";
|
||||
case SPSR_EL2: return "SPSR_EL2";
|
||||
case ELR_EL2: return "ELR_EL2";
|
||||
case SP_EL1: return "SP_EL1";
|
||||
case SPSR_irq: return "SPSR_irq";
|
||||
case SPSR_abt: return "SPSR_abt";
|
||||
case SPSR_und: return "SPSR_und";
|
||||
case SPSR_fiq: return "SPSR_fiq";
|
||||
case SPSR_EL3: return "SPSR_EL3";
|
||||
case ELR_EL3: return "ELR_EL3";
|
||||
case SP_EL2: return "SP_EL2";
|
||||
case MIDR_EL1: return "MIDR_EL1";
|
||||
case CTR_EL0: return "CTR_EL0";
|
||||
case MPIDR_EL1: return "MPIDR_EL1";
|
||||
case DCZID_EL0: return "DCZID_EL0";
|
||||
case MVFR0_EL1: return "MVFR0_EL1";
|
||||
case MVFR1_EL1: return "MVFR1_EL1";
|
||||
case ID_AA64PFR0_EL1: return "ID_AA64PFR0_EL1";
|
||||
case ID_AA64PFR1_EL1: return "ID_AA64PFR1_EL1";
|
||||
case ID_AA64DFR0_EL1: return "ID_AA64DFR0_EL1";
|
||||
case ID_AA64DFR1_EL1: return "ID_AA64DFR1_EL1";
|
||||
case ID_AA64ISAR0_EL1: return "ID_AA64ISAR0_EL1";
|
||||
case ID_AA64ISAR1_EL1: return "ID_AA64ISAR1_EL1";
|
||||
case ID_AA64MMFR0_EL1: return "ID_AA64MMFR0_EL1";
|
||||
case ID_AA64MMFR1_EL1: return "ID_AA64MMFR1_EL1";
|
||||
case CCSIDR_EL1: return "CCSIDR_EL1";
|
||||
case CLIDR_EL1: return "CLIDR_EL1";
|
||||
case AIDR_EL1: return "AIDR_EL1";
|
||||
case CSSELR_EL1: return "CSSELR_EL1";
|
||||
case VPIDR_EL2: return "VPIDR_EL2";
|
||||
case VMPIDR_EL2: return "VMPIDR_EL2";
|
||||
case SCTLR_EL1: return "SCTLR_EL1";
|
||||
case SCTLR_EL2: return "SCTLR_EL2";
|
||||
case SCTLR_EL3: return "SCTLR_EL3";
|
||||
case ACTLR_EL1: return "ACTLR_EL1";
|
||||
case ACTLR_EL2: return "ACTLR_EL2";
|
||||
case ACTLR_EL3: return "ACTLR_EL3";
|
||||
case CPACR_EL1: return "CPACR_EL1";
|
||||
case CPTR_EL2: return "CPTR_EL2";
|
||||
case CPTR_EL3: return "CPTR_EL3";
|
||||
case SCR_EL3: return "SCR_EL3";
|
||||
case HCR_EL2: return "HCR_EL2";
|
||||
case MDCR_EL2: return "MDCR_EL2";
|
||||
case MDCR_EL3: return "MDCR_EL3";
|
||||
case HSTR_EL2: return "HSTR_EL2";
|
||||
case HACR_EL2: return "HACR_EL2";
|
||||
case TTBR0_EL1: return "TTBR0_EL1";
|
||||
case TTBR1_EL1: return "TTBR1_EL1";
|
||||
case TTBR0_EL2: return "TTBR0_EL2";
|
||||
case TTBR0_EL3: return "TTBR0_EL3";
|
||||
case VTTBR_EL2: return "VTTBR_EL2";
|
||||
case TCR_EL1: return "TCR_EL1";
|
||||
case TCR_EL2: return "TCR_EL2";
|
||||
case TCR_EL3: return "TCR_EL3";
|
||||
case VTCR_EL2: return "VTCR_EL2";
|
||||
case ADFSR_EL2: return "ADFSR_EL2";
|
||||
case AIFSR_EL2: return "AIFSR_EL2";
|
||||
case ADFSR_EL3: return "ADFSR_EL3";
|
||||
case AIFSR_EL3: return "AIFSR_EL3";
|
||||
case ESR_EL1: return "ESR_EL1";
|
||||
case ESR_EL2: return "ESR_EL2";
|
||||
case ESR_EL3: return "ESR_EL3";
|
||||
case FAR_EL1: return "FAR_EL1";
|
||||
case FAR_EL2: return "FAR_EL2";
|
||||
case FAR_EL3: return "FAR_EL3";
|
||||
case HPFAR_EL2: return "HPFAR_EL2";
|
||||
case PAR_EL1: return "PAR_EL1";
|
||||
case MAIR_EL1: return "MAIR_EL1";
|
||||
case MAIR_EL2: return "MAIR_EL2";
|
||||
case MAIR_EL3: return "MAIR_EL3";
|
||||
case AMAIR_EL1: return "AMAIR_EL1";
|
||||
case AMAIR_EL2: return "AMAIR_EL2";
|
||||
case AMAIR_EL3: return "AMAIR_EL3";
|
||||
case VBAR_EL1: return "VBAR_EL1";
|
||||
case VBAR_EL2: return "VBAR_EL2";
|
||||
case VBAR_EL3: return "VBAR_EL3";
|
||||
case RVBAR_EL1: return "RVBAR_EL1";
|
||||
case RVBAR_EL2: return "RVBAR_EL2";
|
||||
case RVBAR_EL3: return "RVBAR_EL3";
|
||||
case ISR_EL1: return "ISR_EL1";
|
||||
case CONTEXTIDR_EL1: return "CONTEXTIDR_EL1";
|
||||
case TPIDR_EL0: return "TPIDR_EL0";
|
||||
case TPIDRRO_EL0: return "TPIDRRO_EL0";
|
||||
case TPIDR_EL1: return "TPIDR_EL1";
|
||||
case TPIDR_EL2: return "TPIDR_EL2";
|
||||
case TPIDR_EL3: return "TPIDR_EL3";
|
||||
case TEECR32_EL1: return "TEECR32_EL1";
|
||||
case CNTFRQ_EL0: return "CNTFRQ_EL0";
|
||||
case CNTPCT_EL0: return "CNTPCT_EL0";
|
||||
case CNTVCT_EL0: return "CNTVCT_EL0";
|
||||
case CNTVOFF_EL2: return "CNTVOFF_EL2";
|
||||
case CNTKCTL_EL1: return "CNTKCTL_EL1";
|
||||
case CNTHCTL_EL2: return "CNTHCTL_EL2";
|
||||
case CNTP_TVAL_EL0: return "CNTP_TVAL_EL0";
|
||||
case CNTP_CTL_EL0: return "CNTP_CTL_EL0";
|
||||
case CNTP_CVAL_EL0: return "CNTP_CVAL_EL0";
|
||||
case CNTV_TVAL_EL0: return "CNTV_TVAL_EL0";
|
||||
case CNTV_CTL_EL0: return "CNTV_CTL_EL0";
|
||||
case CNTV_CVAL_EL0: return "CNTV_CVAL_EL0";
|
||||
case CNTHP_TVAL_EL2: return "CNTHP_TVAL_EL2";
|
||||
case CNTHP_CTL_EL2: return "CNTHP_CTL_EL2";
|
||||
case CNTHP_CVAL_EL2: return "CNTHP_CVAL_EL2";
|
||||
case CNTPS_TVAL_EL1: return "CNTPS_TVAL_EL1";
|
||||
case CNTPS_CTL_EL1: return "CNTPS_CTL_EL1";
|
||||
case CNTPS_CVAL_EL1: return "CNTPS_CVAL_EL1";
|
||||
case DACR32_EL2: return "DACR32_EL2";
|
||||
case IFSR32_EL2: return "IFSR32_EL2";
|
||||
case TEEHBR32_EL1: return "TEEHBR32_EL1";
|
||||
case SDER32_EL3: return "SDER32_EL3";
|
||||
case FPEXC32_EL2: return "FPEXC32_EL2";
|
||||
case PMEVCNTR0_EL0: return "PMEVCNTR0_EL0";
|
||||
case PMEVCNTR1_EL0: return "PMEVCNTR1_EL0";
|
||||
case PMEVCNTR2_EL0: return "PMEVCNTR2_EL0";
|
||||
case PMEVCNTR3_EL0: return "PMEVCNTR3_EL0";
|
||||
case PMEVCNTR4_EL0: return "PMEVCNTR4_EL0";
|
||||
case PMEVCNTR5_EL0: return "PMEVCNTR5_EL0";
|
||||
case PMEVCNTR6_EL0: return "PMEVCNTR6_EL0";
|
||||
case PMEVCNTR7_EL0: return "PMEVCNTR7_EL0";
|
||||
case PMEVCNTR8_EL0: return "PMEVCNTR8_EL0";
|
||||
case PMEVCNTR9_EL0: return "PMEVCNTR9_EL0";
|
||||
case PMEVCNTR10_EL0: return "PMEVCNTR10_EL0";
|
||||
case PMEVCNTR11_EL0: return "PMEVCNTR11_EL0";
|
||||
case PMEVCNTR12_EL0: return "PMEVCNTR12_EL0";
|
||||
case PMEVCNTR13_EL0: return "PMEVCNTR13_EL0";
|
||||
case PMEVCNTR14_EL0: return "PMEVCNTR14_EL0";
|
||||
case PMEVCNTR15_EL0: return "PMEVCNTR15_EL0";
|
||||
case PMEVCNTR16_EL0: return "PMEVCNTR16_EL0";
|
||||
case PMEVCNTR17_EL0: return "PMEVCNTR17_EL0";
|
||||
case PMEVCNTR18_EL0: return "PMEVCNTR18_EL0";
|
||||
case PMEVCNTR19_EL0: return "PMEVCNTR19_EL0";
|
||||
case PMEVCNTR20_EL0: return "PMEVCNTR20_EL0";
|
||||
case PMEVCNTR21_EL0: return "PMEVCNTR21_EL0";
|
||||
case PMEVCNTR22_EL0: return "PMEVCNTR22_EL0";
|
||||
case PMEVCNTR23_EL0: return "PMEVCNTR23_EL0";
|
||||
case PMEVCNTR24_EL0: return "PMEVCNTR24_EL0";
|
||||
case PMEVCNTR25_EL0: return "PMEVCNTR25_EL0";
|
||||
case PMEVCNTR26_EL0: return "PMEVCNTR26_EL0";
|
||||
case PMEVCNTR27_EL0: return "PMEVCNTR27_EL0";
|
||||
case PMEVCNTR28_EL0: return "PMEVCNTR28_EL0";
|
||||
case PMEVCNTR29_EL0: return "PMEVCNTR29_EL0";
|
||||
case PMEVCNTR30_EL0: return "PMEVCNTR30_EL0";
|
||||
case PMEVTYPER0_EL0: return "PMEVTYPER0_EL0";
|
||||
case PMEVTYPER1_EL0: return "PMEVTYPER1_EL0";
|
||||
case PMEVTYPER2_EL0: return "PMEVTYPER2_EL0";
|
||||
case PMEVTYPER3_EL0: return "PMEVTYPER3_EL0";
|
||||
case PMEVTYPER4_EL0: return "PMEVTYPER4_EL0";
|
||||
case PMEVTYPER5_EL0: return "PMEVTYPER5_EL0";
|
||||
case PMEVTYPER6_EL0: return "PMEVTYPER6_EL0";
|
||||
case PMEVTYPER7_EL0: return "PMEVTYPER7_EL0";
|
||||
case PMEVTYPER8_EL0: return "PMEVTYPER8_EL0";
|
||||
case PMEVTYPER9_EL0: return "PMEVTYPER9_EL0";
|
||||
case PMEVTYPER10_EL0: return "PMEVTYPER10_EL0";
|
||||
case PMEVTYPER11_EL0: return "PMEVTYPER11_EL0";
|
||||
case PMEVTYPER12_EL0: return "PMEVTYPER12_EL0";
|
||||
case PMEVTYPER13_EL0: return "PMEVTYPER13_EL0";
|
||||
case PMEVTYPER14_EL0: return "PMEVTYPER14_EL0";
|
||||
case PMEVTYPER15_EL0: return "PMEVTYPER15_EL0";
|
||||
case PMEVTYPER16_EL0: return "PMEVTYPER16_EL0";
|
||||
case PMEVTYPER17_EL0: return "PMEVTYPER17_EL0";
|
||||
case PMEVTYPER18_EL0: return "PMEVTYPER18_EL0";
|
||||
case PMEVTYPER19_EL0: return "PMEVTYPER19_EL0";
|
||||
case PMEVTYPER20_EL0: return "PMEVTYPER20_EL0";
|
||||
case PMEVTYPER21_EL0: return "PMEVTYPER21_EL0";
|
||||
case PMEVTYPER22_EL0: return "PMEVTYPER22_EL0";
|
||||
case PMEVTYPER23_EL0: return "PMEVTYPER23_EL0";
|
||||
case PMEVTYPER24_EL0: return "PMEVTYPER24_EL0";
|
||||
case PMEVTYPER25_EL0: return "PMEVTYPER25_EL0";
|
||||
case PMEVTYPER26_EL0: return "PMEVTYPER26_EL0";
|
||||
case PMEVTYPER27_EL0: return "PMEVTYPER27_EL0";
|
||||
case PMEVTYPER28_EL0: return "PMEVTYPER28_EL0";
|
||||
case PMEVTYPER29_EL0: return "PMEVTYPER29_EL0";
|
||||
case PMEVTYPER30_EL0: return "PMEVTYPER30_EL0";
|
||||
case PMCCFILTR_EL0: return "PMCCFILTR_EL0";
|
||||
case RMR_EL3: return "RMR_EL3";
|
||||
case RMR_EL2: return "RMR_EL2";
|
||||
case RMR_EL1: return "RMR_EL1";
|
||||
case CPM_IOACC_CTL_EL3: return "CPM_IOACC_CTL_EL3";
|
||||
case MDCCSR_EL0: return "MDCCSR_EL0";
|
||||
case MDCCINT_EL1: return "MDCCINT_EL1";
|
||||
case DBGDTR_EL0: return "DBGDTR_EL0";
|
||||
case DBGDTRRX_EL0: return "DBGDTRRX_EL0";
|
||||
case DBGVCR32_EL2: return "DBGVCR32_EL2";
|
||||
case OSDTRRX_EL1: return "OSDTRRX_EL1";
|
||||
case MDSCR_EL1: return "MDSCR_EL1";
|
||||
case OSDTRTX_EL1: return "OSDTRTX_EL1";
|
||||
case OSECCR_EL11: return "OSECCR_EL11";
|
||||
case DBGBVR0_EL1: return "DBGBVR0_EL1";
|
||||
case DBGBVR1_EL1: return "DBGBVR1_EL1";
|
||||
case DBGBVR2_EL1: return "DBGBVR2_EL1";
|
||||
case DBGBVR3_EL1: return "DBGBVR3_EL1";
|
||||
case DBGBVR4_EL1: return "DBGBVR4_EL1";
|
||||
case DBGBVR5_EL1: return "DBGBVR5_EL1";
|
||||
case DBGBVR6_EL1: return "DBGBVR6_EL1";
|
||||
case DBGBVR7_EL1: return "DBGBVR7_EL1";
|
||||
case DBGBVR8_EL1: return "DBGBVR8_EL1";
|
||||
case DBGBVR9_EL1: return "DBGBVR9_EL1";
|
||||
case DBGBVR10_EL1: return "DBGBVR10_EL1";
|
||||
case DBGBVR11_EL1: return "DBGBVR11_EL1";
|
||||
case DBGBVR12_EL1: return "DBGBVR12_EL1";
|
||||
case DBGBVR13_EL1: return "DBGBVR13_EL1";
|
||||
case DBGBVR14_EL1: return "DBGBVR14_EL1";
|
||||
case DBGBVR15_EL1: return "DBGBVR15_EL1";
|
||||
case DBGBCR0_EL1: return "DBGBCR0_EL1";
|
||||
case DBGBCR1_EL1: return "DBGBCR1_EL1";
|
||||
case DBGBCR2_EL1: return "DBGBCR2_EL1";
|
||||
case DBGBCR3_EL1: return "DBGBCR3_EL1";
|
||||
case DBGBCR4_EL1: return "DBGBCR4_EL1";
|
||||
case DBGBCR5_EL1: return "DBGBCR5_EL1";
|
||||
case DBGBCR6_EL1: return "DBGBCR6_EL1";
|
||||
case DBGBCR7_EL1: return "DBGBCR7_EL1";
|
||||
case DBGBCR8_EL1: return "DBGBCR8_EL1";
|
||||
case DBGBCR9_EL1: return "DBGBCR9_EL1";
|
||||
case DBGBCR10_EL1: return "DBGBCR10_EL1";
|
||||
case DBGBCR11_EL1: return "DBGBCR11_EL1";
|
||||
case DBGBCR12_EL1: return "DBGBCR12_EL1";
|
||||
case DBGBCR13_EL1: return "DBGBCR13_EL1";
|
||||
case DBGBCR14_EL1: return "DBGBCR14_EL1";
|
||||
case DBGBCR15_EL1: return "DBGBCR15_EL1";
|
||||
case DBGWVR0_EL1: return "DBGWVR0_EL1";
|
||||
case DBGWVR1_EL1: return "DBGWVR1_EL1";
|
||||
case DBGWVR2_EL1: return "DBGWVR2_EL1";
|
||||
case DBGWVR3_EL1: return "DBGWVR3_EL1";
|
||||
case DBGWVR4_EL1: return "DBGWVR4_EL1";
|
||||
case DBGWVR5_EL1: return "DBGWVR5_EL1";
|
||||
case DBGWVR6_EL1: return "DBGWVR6_EL1";
|
||||
case DBGWVR7_EL1: return "DBGWVR7_EL1";
|
||||
case DBGWVR8_EL1: return "DBGWVR8_EL1";
|
||||
case DBGWVR9_EL1: return "DBGWVR9_EL1";
|
||||
case DBGWVR10_EL1: return "DBGWVR10_EL1";
|
||||
case DBGWVR11_EL1: return "DBGWVR11_EL1";
|
||||
case DBGWVR12_EL1: return "DBGWVR12_EL1";
|
||||
case DBGWVR13_EL1: return "DBGWVR13_EL1";
|
||||
case DBGWVR14_EL1: return "DBGWVR14_EL1";
|
||||
case DBGWVR15_EL1: return "DBGWVR15_EL1";
|
||||
case DBGWCR0_EL1: return "DBGWCR0_EL1";
|
||||
case DBGWCR1_EL1: return "DBGWCR1_EL1";
|
||||
case DBGWCR2_EL1: return "DBGWCR2_EL1";
|
||||
case DBGWCR3_EL1: return "DBGWCR3_EL1";
|
||||
case DBGWCR4_EL1: return "DBGWCR4_EL1";
|
||||
case DBGWCR5_EL1: return "DBGWCR5_EL1";
|
||||
case DBGWCR6_EL1: return "DBGWCR6_EL1";
|
||||
case DBGWCR7_EL1: return "DBGWCR7_EL1";
|
||||
case DBGWCR8_EL1: return "DBGWCR8_EL1";
|
||||
case DBGWCR9_EL1: return "DBGWCR9_EL1";
|
||||
case DBGWCR10_EL1: return "DBGWCR10_EL1";
|
||||
case DBGWCR11_EL1: return "DBGWCR11_EL1";
|
||||
case DBGWCR12_EL1: return "DBGWCR12_EL1";
|
||||
case DBGWCR13_EL1: return "DBGWCR13_EL1";
|
||||
case DBGWCR14_EL1: return "DBGWCR14_EL1";
|
||||
case DBGWCR15_EL1: return "DBGWCR15_EL1";
|
||||
case MDRAR_EL1: return "MDRAR_EL1";
|
||||
case OSLAR_EL1: return "OSLAR_EL1";
|
||||
case OSLSR_EL1: return "OSLSR_EL1";
|
||||
case OSDLR_EL1: return "OSDLR_EL1";
|
||||
case DBGPRCR_EL1: return "DBGPRCR_EL1";
|
||||
case DBGCLAIMSET_EL1: return "DBGCLAIMSET_EL1";
|
||||
case DBGCLAIMCLR_EL1: return "DBGCLAIMCLR_EL1";
|
||||
case DBGAUTHSTATUS_EL1: return "DBGAUTHSTATUS_EL1";
|
||||
case DBGDEVID2: return "DBGDEVID2";
|
||||
case DBGDEVID1: return "DBGDEVID1";
|
||||
case DBGDEVID0: return "DBGDEVID0";
|
||||
case ID_PFR0_EL1: return "ID_PFR0_EL1";
|
||||
case ID_PFR1_EL1: return "ID_PFR1_EL1";
|
||||
case ID_DFR0_EL1: return "ID_DFR0_EL1";
|
||||
case ID_AFR0_EL1: return "ID_AFR0_EL1";
|
||||
case ID_ISAR0_EL1: return "ID_ISAR0_EL1";
|
||||
case ID_ISAR1_EL1: return "ID_ISAR1_EL1";
|
||||
case ID_ISAR2_EL1: return "ID_ISAR2_EL1";
|
||||
case ID_ISAR3_EL1: return "ID_ISAR3_EL1";
|
||||
case ID_ISAR4_EL1: return "ID_ISAR4_EL1";
|
||||
case ID_ISAR5_EL1: return "ID_ISAR5_EL1";
|
||||
case AFSR1_EL1: return "AFSR1_EL1";
|
||||
case AFSR0_EL1: return "AFSR0_EL1";
|
||||
case REVIDR_EL1: return "REVIDR_EL1";
|
||||
}
|
||||
}
|
||||
|
||||
enum CPSRField {
|
||||
InvalidCPSRField = 0xff,
|
||||
cpsr_SPSel = 0x5,
|
||||
cpsr_DAIFSet = 0x1e,
|
||||
cpsr_DAIFClr = 0x1f
|
||||
};
|
||||
|
||||
static inline const char *getCPSRFieldName(CPSRField Val) {
|
||||
switch(Val) {
|
||||
default: assert(0 && "Invalid system register value!");
|
||||
case cpsr_SPSel: return "SPSel";
|
||||
case cpsr_DAIFSet: return "DAIFSet";
|
||||
case cpsr_DAIFClr: return "DAIFClr";
|
||||
}
|
||||
}
|
||||
|
||||
} // end namespace ARM64SYS
|
||||
|
||||
/// Instances of this class can perform bidirectional mapping from random
|
||||
/// identifier strings to operand encodings. For example "MSR" takes a named
|
||||
/// system-register which must be encoded somehow and decoded for printing. This
|
||||
|
Loading…
x
Reference in New Issue
Block a user