arch-arm: Fix Secure state check in checkFPAdvSIMDTrap64
The old code does secure state check by using "el <= EL2", which mis-considers secure EL1 and EL0. This patch fixes this by using inSecureState as in ARM ARM. Change-Id: I01d847c6af022c1462b16206cbc576f15f5569fd Reviewed-by: Jack Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/8081 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
committed by
Giacomo Travaglini
parent
8da5e6b8b6
commit
cf58af7cf2
@@ -629,9 +629,7 @@ ArmStaticInst::advSIMDFPAccessTrap64(ExceptionLevel el) const
|
||||
Fault
|
||||
ArmStaticInst::checkFPAdvSIMDTrap64(ThreadContext *tc, CPSR cpsr) const
|
||||
{
|
||||
const ExceptionLevel el = (ExceptionLevel) (uint8_t)cpsr.el;
|
||||
|
||||
if (ArmSystem::haveVirtualization(tc) && el <= EL2) {
|
||||
if (ArmSystem::haveVirtualization(tc) && !inSecureState(tc)) {
|
||||
HCPTR cptrEnCheck = tc->readMiscReg(MISCREG_CPTR_EL2);
|
||||
if (cptrEnCheck.tfp)
|
||||
return advSIMDFPAccessTrap64(EL2);
|
||||
|
||||
Reference in New Issue
Block a user