> @@ -7578,7 +7607,27 @@ static bool x86_cpu_filter_features(X86CPU *cpu, bool
> verbose)
> }
> }
>
> - return x86_cpu_have_filtered_features(cpu);
> + have_filtered_features = x86_cpu_have_filtered_features(cpu);
> +
> + if (env->features[FEAT_7_1_EDX] & CPUID_7_1_EDX_AVX10) {
> + x86_cpu_get_supported_cpuid(0x24, 0,
> + &eax_0, &ebx_0, &ecx_0, &edx_0);
> + uint8_t version = ebx_0 & 0xff;
> +
> + if (version < env->avx10_version) {
> + if (prefix) {
> + warn_report("%s: avx10.%d. Adjust to avx10.%d",
> + prefix, env->avx10_version, version);
> + }
> + env->avx10_version = version;
> + have_filtered_features = true;
> + }
> + } else if (env->avx10_version && prefix) {
> + warn_report("%s: avx10.%d.", prefix, env->avx10_version);
> + have_filtered_features = true;
> + }
prefix is just used to print warning. So here we should check prefix
for warn_report.
+ } else if (env->avx10_version) {
+ if (prefix) {
+ warn_report("%s: avx10.%d.", prefix, env->avx10_version);
+ }
+ have_filtered_features = true;
+ }
With this nit fixed,
Reviewed-by: Zhao Liu <[email protected]>
Thanks.
Zhao