Go to the documentation of this file.
41 #ifndef __ARCH_ARM_REGS_MISC_HH__
42 #define __ARCH_ARM_REGS_MISC_HH__
1158 unsigned _crn,
unsigned _crm,
1175 assert(
opc1 < 16 &&
crm < 16);
1194 return reg64 << 19 |
1217 unsigned _crn,
unsigned _crm,
1230 return op0 == other.
op0 &&
1256 unsigned crm,
unsigned opc2);
1258 unsigned crn,
unsigned crm,
1267 unsigned crm,
unsigned opc2);
1303 "pmxevtyper_pmccfiltr",
1746 "dbgauthstatus_el1",
1902 "tlbi_ipas2e1is_xt",
1903 "tlbi_ipas2le1is_xt",
1908 "tlbi_vmalls12e1is",
2081 "icc_igrpen1_el1_ns",
2082 "icc_igrpen1_el1_s",
2160 "icv_igrpen1_el1_ns",
2161 "icv_igrpen1_el1_s",
2288 "The miscRegName array and NUM_MISCREGS are inconsistent.");
2391 struct hash<
gem5::ArmISA::MiscRegNum32>
2396 return reg.packed();
2401 struct hash<
gem5::ArmISA::MiscRegNum64>
2406 return reg.packed();
2411 #endif // __ARCH_ARM_REGS_MISC_HH__
@ MISCREG_ICC_CTLR_EL1_NS
MiscRegNum32(unsigned _coproc, unsigned _opc1, unsigned _crn, unsigned _crm, unsigned _opc2)
@ MISCREG_ICC_AP1R0_EL1_NS
@ MISCREG_CNTHVS_TVAL_EL2
static const uint32_t CpsrMask
static const uint32_t FpscrAhpMask
bool canWriteAArch64SysReg(MiscRegIndex reg, HCR hcr, SCR scr, CPSR cpsr, ThreadContext *tc)
@ MISCREG_ICC_AP1R1_EL1_NS
@ MISCREG_TLBI_VAAE1IS_Xt
std::tuple< bool, bool > canWriteCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc)
Check for permission to write coprocessor registers.
@ MISCREG_CNTHPS_TVAL_EL2
@ MISCREG_CNTHVS_CVAL_EL2
@ MISCREG_TLBI_IPAS2E1IS_Xt
@ MISCREG_ICV_IGRPEN1_EL1_S
@ MISCREG_ICC_AP1R3_EL1_NS
int snsBankedIndex64(MiscRegIndex reg, ThreadContext *tc)
bool canReadAArch64SysReg(MiscRegIndex reg, HCR hcr, SCR scr, CPSR cpsr, ThreadContext *tc)
@ MISCREG_ICV_AP1R3_EL1_S
@ MISCREG_TLBI_IPAS2LE1IS_Xt
@ MISCREG_TLBI_VMALLS12E1IS
static const uint32_t FpCondCodesMask
@ MISCREG_TLBI_VALE2IS_Xt
@ MISCREG_ICV_AP1R0_EL1_S
MiscRegIndex decodeAArch64SysReg(unsigned op0, unsigned op1, unsigned crn, unsigned crm, unsigned op2)
@ MISCREG_TLBI_VALE1IS_Xt
@ MISCREG_ID_AA64AFR1_EL1
const char *const miscRegName[]
@ MISCREG_ID_AA64MMFR0_EL1
static const uint32_t CpsrMaskQ
static const uint32_t ApsrMask
@ MISCREG_ICV_IGRPEN0_EL1
static const uint32_t FpscrQcMask
@ MISCREG_ID_AA64DFR1_EL1
static const uint32_t CondCodesMask
@ MISCREG_TLBI_VALE3IS_Xt
static const uint32_t FpscrExcMask
@ MISCREG_TLBI_VMALLS12E1
@ MISCREG_ICC_AP1R0_EL1_S
bool aarch64SysRegReadOnly(MiscRegIndex miscReg)
@ MISCREG_ICV_AP1R1_EL1_S
std::bitset< NUM_MISCREG_INFOS > miscRegInfo[NUM_MISCREGS]
@ MISCREG_DBGCLAIMCLR_EL1
MiscRegIndex decodeCP14Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2)
MiscRegNum64(unsigned _op0, unsigned _op1, unsigned _crn, unsigned _crm, unsigned _op2)
@ MISCREG_DBGAUTHSTATUS_EL1
@ MISCREG_ICC_AP1R3_EL1_S
@ MISCREG_DBGCLAIMSET_EL1
std::tuple< bool, bool > canReadCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc)
Check for permission to read coprocessor registers.
size_t operator()(const gem5::ArmISA::MiscRegNum32 ®) const
@ MISCREG_ID_AA64PFR1_EL1
ThreadContext is the external interface to all thread state for anything outside of the CPU.
@ MISCREG_ICV_BPR1_EL1_NS
@ MISCREG_ID_AA64MMFR2_EL1
@ MISCREG_CONTEXTIDR_EL12
MiscRegIndex decodeCP15Reg64(unsigned crm, unsigned opc1)
@ MISCREG_ICC_AP1R1_EL1_S
@ MISCREG_ID_AA64AFR0_EL1
@ MISCREG_ICC_AP1R2_EL1_S
bool AArch32isUndefinedGenericTimer(MiscRegIndex reg, ThreadContext *tc)
@ MISCREG_PMXEVTYPER_PMCCFILTR
@ MISCREG_ICV_IGRPEN1_EL1_NS
@ MISCREG_ICC_IGRPEN1_EL3
@ MISCREG_ICV_AP1R2_EL1_NS
size_t operator()(const gem5::ArmISA::MiscRegNum64 ®) const
@ MISCREG_TLBI_ASIDE1IS_Xt
@ MISCREG_ICC_BPR1_EL1_NS
@ MISCREG_ID_AA64DFR0_EL1
@ MISCREG_ICC_IGRPEN1_EL1_S
@ MISCREG_ID_AA64MMFR1_EL1
MiscRegNum64 encodeAArch64SysReg(MiscRegIndex misc_reg)
@ MISCREG_ICC_IGRPEN0_EL1
@ MISCREG_ID_AA64ISAR1_EL1
@ MISCREG_ID_AA64ZFR0_EL1
@ MISCREG_TLBI_IPAS2LE1_Xt
MiscRegNum32(unsigned _coproc, unsigned _opc1, unsigned _crm)
@ MISCREG_TLBI_VAALE1IS_Xt
bool operator==(const MiscRegNum32 &other) const
Overload hash function for BasicBlockRange type.
@ MISCREG_ICC_AP1R2_EL1_NS
@ MISCREG_ICV_AP1R2_EL1_S
bool operator==(const MiscRegNum64 &other) const
@ MISCREG_CNTHPS_CVAL_EL2
int snsBankedIndex(MiscRegIndex reg, ThreadContext *tc)
@ MISCREG_ICV_AP1R3_EL1_NS
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
@ MISCREG_ID_AA64PFR0_EL1
@ MISCREG_ICC_IGRPEN1_EL1
@ MISCREG_ICV_IGRPEN1_EL1
@ MISCREG_ICV_AP1R1_EL1_NS
@ MISCREG_ICC_IGRPEN1_EL1_NS
@ MISCREG_TLBI_IPAS2E1_Xt
MiscRegIndex decodeCP15Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2)
void preUnflattenMiscReg()
@ MISCREG_ID_AA64ISAR0_EL1
@ MISCREG_ICV_AP1R0_EL1_NS
@ MISCREG_ICV_CTLR_EL1_NS
int unflattenMiscReg(int reg)
Generated on Thu Jul 28 2022 13:32:23 for gem5 by doxygen 1.8.17