Richard Henderson <richard.hender...@linaro.org> writes:
> On 12/4/19 10:58 AM, Alex Bennée wrote: >>> @@ -7437,13 +7437,10 @@ void define_one_arm_cp_reg_with_opaque(ARMCPU *cpu, >>> mask = PL0_RW; >>> break; >>> case 4: >>> + case 5: >>> /* min_EL EL2 */ >>> mask = PL2_RW; >>> break; >>> - case 5: >>> - /* unallocated encoding, so not possible */ >>> - assert(false); >>> - break; >> >> This change is fine - I don't think we should have asserted here anyway. >> But don't we generate an unallocated exception if the CPU is v8.0? > > This change is only for validation of the system registers themselves. It has > nothing to do with the usage of system registers from the actual guest. So what is the mechanism that feeds back to the translator? access_check_cp_reg only seems to care about XSCALE. I guess cp_access_ok would trip if you weren't at EL2 but what if you are a v8.0 at EL2? -- Alex Bennée