arch-arm: Add missing Armv8.3 extensions to the enum
Change-Id: Id3897c59a12189f4aac6a3923f656e1f6b8f6723 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51019 Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
@@ -47,7 +47,15 @@ class DecoderFlavor(Enum): vals = ['Generic']
|
||||
|
||||
class ArmDefaultSERelease(ArmRelease):
|
||||
extensions = [
|
||||
'CRYPTO', 'FEAT_SVE', 'FEAT_LSE', 'FEAT_RDM', 'TME'
|
||||
'CRYPTO',
|
||||
# Armv8.1
|
||||
'FEAT_LSE', 'FEAT_RDM',
|
||||
# Armv8.2
|
||||
'FEAT_SVE',
|
||||
# Armv8.3
|
||||
'FEAT_FCMA', 'FEAT_JSCVT', 'FEAT_PAuth',
|
||||
# Other
|
||||
'TME'
|
||||
]
|
||||
|
||||
class ArmISA(BaseISA):
|
||||
|
||||
@@ -59,6 +59,11 @@ class ArmExtension(ScopedEnum):
|
||||
'FEAT_LVA', # Optional in Armv8.2
|
||||
'FEAT_LPA', # Optional in Armv8.2
|
||||
|
||||
# Armv8.3
|
||||
'FEAT_FCMA',
|
||||
'FEAT_JSCVT',
|
||||
'FEAT_PAuth',
|
||||
|
||||
# Armv8.4
|
||||
'FEAT_SEL2',
|
||||
|
||||
@@ -107,6 +112,8 @@ class ArmDefaultRelease(Armv8):
|
||||
'FEAT_LSE', 'FEAT_PAN', 'FEAT_HPDS', 'FEAT_VMID16', 'FEAT_RDM',
|
||||
# Armv8.2
|
||||
'FEAT_UAO', 'FEAT_LVA', 'FEAT_LPA', 'FEAT_SVE',
|
||||
# Armv8.3
|
||||
'FEAT_FCMA', 'FEAT_JSCVT', 'FEAT_PAuth',
|
||||
# Armv8.4
|
||||
'FEAT_SEL2'
|
||||
]
|
||||
|
||||
@@ -364,6 +364,15 @@ ISA::initID32(const ArmISAParams &p)
|
||||
miscRegs[MISCREG_ID_ISAR5] = insertBits(
|
||||
miscRegs[MISCREG_ID_ISAR5], 27, 24,
|
||||
release->has(ArmExtension::FEAT_RDM) ? 0x1 : 0x0);
|
||||
// FCMA
|
||||
miscRegs[MISCREG_ID_ISAR5] = insertBits(
|
||||
miscRegs[MISCREG_ID_ISAR5], 31, 28,
|
||||
release->has(ArmExtension::FEAT_FCMA) ? 0x1 : 0x0);
|
||||
|
||||
/** ID_ISAR6 */
|
||||
miscRegs[MISCREG_ID_ISAR6] = insertBits(
|
||||
miscRegs[MISCREG_ID_ISAR6], 3, 0,
|
||||
release->has(ArmExtension::FEAT_JSCVT) ? 0x1 : 0x0);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -440,6 +449,24 @@ ISA::initID64(const ArmISAParams &p)
|
||||
miscRegs[MISCREG_ID_AA64ISAR0_EL1], 31, 28,
|
||||
release->has(ArmExtension::FEAT_RDM) ? 0x1 : 0x0);
|
||||
|
||||
/** MISCREG_ID_AA64ISAR1_EL1 */
|
||||
// PAuth, APA
|
||||
miscRegs[MISCREG_ID_AA64ISAR1_EL1] = insertBits(
|
||||
miscRegs[MISCREG_ID_AA64ISAR1_EL1], 7, 4,
|
||||
release->has(ArmExtension::FEAT_PAuth) ? 0x1 : 0x0);
|
||||
// JSCVT
|
||||
miscRegs[MISCREG_ID_AA64ISAR1_EL1] = insertBits(
|
||||
miscRegs[MISCREG_ID_AA64ISAR1_EL1], 15, 12,
|
||||
release->has(ArmExtension::FEAT_JSCVT) ? 0x1 : 0x0);
|
||||
// FCMA
|
||||
miscRegs[MISCREG_ID_AA64ISAR1_EL1] = insertBits(
|
||||
miscRegs[MISCREG_ID_AA64ISAR1_EL1], 19, 16,
|
||||
release->has(ArmExtension::FEAT_FCMA) ? 0x1 : 0x0);
|
||||
// PAuth, GPA
|
||||
miscRegs[MISCREG_ID_AA64ISAR1_EL1] = insertBits(
|
||||
miscRegs[MISCREG_ID_AA64ISAR1_EL1], 27, 24,
|
||||
release->has(ArmExtension::FEAT_PAuth) ? 0x1 : 0x0);
|
||||
|
||||
/** MISCREG_ID_AA64MMFR1_EL1 */
|
||||
// VMID16
|
||||
miscRegs[MISCREG_ID_AA64MMFR1_EL1] = insertBits(
|
||||
|
||||
Reference in New Issue
Block a user