From 7c52b0d9af14dc52f32812cb372610754d8b4d15 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Wed, 20 Jul 2022 09:21:48 +0100 Subject: [PATCH] arch-arm: Replace unimplemented+warnNotFail with callback We are trying to deprecate the use of the MISCREG_IMPLEMENTED flag. Rather than using warnNotFail in conjunction with it, we use the new faulting callback infostructure to deliver either an Undefined Instruction or a warning with NoFault Change-Id: Iee80171a6d28c55c9af069653306d6f8085faf78 Signed-off-by: Giacomo Travaglini Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61686 Tested-by: kokoro Reviewed-by: Richard Cooper Reviewed-by: Andreas Sandberg Maintainer: Andreas Sandberg --- src/arch/arm/regs/misc.cc | 47 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/arch/arm/regs/misc.cc b/src/arch/arm/regs/misc.cc index dd743a7d45..6f6b179e2e 100644 --- a/src/arch/arm/regs/misc.cc +++ b/src/arch/arm/regs/misc.cc @@ -4435,9 +4435,8 @@ ISA::initializeMiscRegMetadata() InitReg(MISCREG_CPUMERRSR_EL1) .allPrivileges().exceptUserMode(); InitReg(MISCREG_L2MERRSR_EL1) - .unimplemented() .warnNotFail() - .allPrivileges().exceptUserMode(); + .fault(faultUnimplemented); InitReg(MISCREG_CBAR_EL1) .allPrivileges().exceptUserMode().writes(0); InitReg(MISCREG_CONTEXTIDR_EL2) @@ -4942,38 +4941,38 @@ ISA::initializeMiscRegMetadata() // RAS extension (unimplemented) InitReg(MISCREG_ERRIDR_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_ERRSELR_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_ERXFR_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_ERXCTLR_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_ERXSTATUS_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_ERXADDR_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_ERXMISC0_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_ERXMISC1_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_DISR_EL1) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_VSESR_EL2) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); InitReg(MISCREG_VDISR_EL2) - .unimplemented() - .warnNotFail(); + .warnNotFail() + .fault(faultUnimplemented); // Register mappings for some unimplemented registers: // ESR_EL1 -> DFSR