Richard Henderson <richard.hender...@linaro.org> writes:

> On 12/11/19 9:05 AM, Alex Bennée wrote:
>> +static struct TypeSize vec_lanes[] = {
>
> const.
>
>> +    case 51:
>> +        return gdb_get_reg64(buf, (cpu->env.vfp.zcr_el[1] & 0xf) + 1);
>
> You need to use sve_zcr_len_for_el to get the effective vq.
> Also, I thought vg == 2 * vq.
>  > +    case 51:
>> +    {
>> +        uint64_t val = *(uint64_t *) buf;
>> +        cpu->env.vfp.zcr_el[1] = (val - 1) & 0xf;
>
> You cannot hard-code EL1 without ifdef CONFIG_USER_ONLY.  If the effective vq
> decreases, you must call aarch64_sve_narrow_vq.  You must call
> arm_rebuild_hflags.

Hmm thinking about it this is overriding the kernels competencies - it
should be read only as it is a "virtual" register. Given gdbserver
doesn't use the value and will most likely use dynamic XML we could just
drop it altogether. 

>
>
> r~


-- 
Alex Bennée

Reply via email to