Hi, ZCR system registers are both flagged as ARM_CP_SVE and ARM_CP_FPU, which results in an assertion failure in fp_access_check due to the check of these flags in handle_sys:
if ((ri->type & ARM_CP_SVE) && !sve_access_check(s)) { return; } if ((ri->type & ARM_CP_FPU) && !fp_access_check(s)) { return; } sve_access_check calls fp_access_check so the assert !s->fp_access_checked in the second call to fp_access_check will fail. I took a quick look at sve_exception_el and given that it checks that FPU is enabled, can't we just remove the ARM_CP_FPU flag from ZCR? Alternatively the second call to fp_access_check when ARM_CP_FPU is defined could be skipped if ARM_CP_SVE is set. Thanks, Laurent