On 2/5/20 5:10 PM, Alex Bennée wrote: > - /* with maximum vector length */ > + /* with reasonable vector length */ > env->vfp.zcr_el[1] = cpu_isar_feature(aa64_sve, cpu) ? > - cpu->sve_max_vq - 1 : 0; > + MIN(cpu->sve_max_vq - 1, 3) : 0; > env->vfp.zcr_el[2] = env->vfp.zcr_el[1]; > env->vfp.zcr_el[3] = env->vfp.zcr_el[1];
Let's reorg this to if (cpu_isar_feature(aa64_sve, cpu)) { env->vfp.zcr_el[1] = MIN(cpu->sve_max_vq - 1, 3); env->vfp.zcr_el[2] = cpu->sve_max_vq - 1; env->vfp.zcr_el[3] = cpu->sve_max_vq - 1; } Using the MIN setting on el2 and el3 was wrong, as it meant that we could *not* increase the setting later with PR_SVE_SET_VL, at least not without changes to linux-user... r~