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 <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61686
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
Giacomo Travaglini
2022-07-20 09:21:48 +01:00
parent c7b7314d8b
commit 7c52b0d9af

View File

@@ -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