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

Reply via email to