all the features in arm_cpu_finalize_features are actually TARGET_AARCH64-only now, since KVM is now only supported on 64bit.
Therefore move the function to cpu64. Signed-off-by: Claudio Fontana <cfont...@suse.de> --- target/arm/cpu.c | 36 ++---------------------------------- target/arm/cpu64.c | 34 ++++++++++++++++++++++++++++++++++ target/arm/monitor.c | 4 ++++ 3 files changed, 40 insertions(+), 34 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index b91c48cd2f..4d0724b537 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -820,40 +820,6 @@ static void arm_cpu_finalizefn(Object *obj) #endif } -void arm_cpu_finalize_features(ARMCPU *cpu, Error **errp) -{ - Error *local_err = NULL; - -#ifdef TARGET_AARCH64 - if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) { - if (!cpu_sve_finalize_features(cpu, &local_err)) { - error_propagate(errp, local_err); - return; - } - - /* - * KVM does not support modifications to this feature. - * We have not registered the cpu properties when KVM - * is in use, so the user will not be able to set them. - */ - if (tcg_enabled()) { - if (!cpu_pauth_finalize(cpu, &local_err)) { - error_propagate(errp, local_err); - return; - } - } - } -#endif /* TARGET_AARCH64 */ - - if (kvm_enabled()) { - kvm_arm_steal_time_finalize(cpu, &local_err); - if (local_err != NULL) { - error_propagate(errp, local_err); - return; - } - } -} - static void arm_cpu_realizefn(DeviceState *dev, Error **errp) { CPUState *cs = CPU(dev); @@ -876,6 +842,7 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp) return; } +#ifdef TARGET_AARCH64 arm_cpu_finalize_features(cpu, &local_err); if (local_err != NULL) { error_propagate(errp, local_err); @@ -892,6 +859,7 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp) "AArch64 CPUs must have both VFP and Neon or neither"); return; } +#endif /* TARGET_AARCH64 */ if (!cpu->has_vfp) { uint64_t t; diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index b76fbb4947..bcbfc5d53a 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -455,6 +455,40 @@ static gchar *aarch64_gdb_arch_name(CPUState *cs) return g_strdup("aarch64"); } +void arm_cpu_finalize_features(ARMCPU *cpu, Error **errp) +{ + Error *local_err = NULL; + +#ifdef TARGET_AARCH64 + if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) { + if (!cpu_sve_finalize_features(cpu, &local_err)) { + error_propagate(errp, local_err); + return; + } + + /* + * KVM does not support modifications to this feature. + * We have not registered the cpu properties when KVM + * is in use, so the user will not be able to set them. + */ + if (tcg_enabled()) { + if (!cpu_pauth_finalize(cpu, &local_err)) { + error_propagate(errp, local_err); + return; + } + } + } +#endif /* TARGET_AARCH64 */ + + if (kvm_enabled()) { + kvm_arm_steal_time_finalize(cpu, &local_err); + if (local_err != NULL) { + error_propagate(errp, local_err); + return; + } + } +} + static void aarch64_cpu_dump_state(CPUState *cs, FILE *f, int flags) { ARMCPU *cpu = ARM_CPU(cs); diff --git a/target/arm/monitor.c b/target/arm/monitor.c index 0c72bf7c31..95c1e72cd1 100644 --- a/target/arm/monitor.c +++ b/target/arm/monitor.c @@ -184,9 +184,11 @@ CpuModelExpansionInfo *qmp_query_cpu_model_expansion(CpuModelExpansionType type, if (!err) { visit_check_struct(visitor, &err); } +#ifdef TARGET_AARCH64 if (!err) { arm_cpu_finalize_features(ARM_CPU(obj), &err); } +#endif /* TARGET_AARCH64 */ visit_end_struct(visitor, NULL); visit_free(visitor); if (err) { @@ -195,7 +197,9 @@ CpuModelExpansionInfo *qmp_query_cpu_model_expansion(CpuModelExpansionType type, return NULL; } } else { +#ifdef TARGET_AARCH64 arm_cpu_finalize_features(ARM_CPU(obj), &error_abort); +#endif /* TARGET_AARCH64 */ } expansion_info = g_new0(CpuModelExpansionInfo, 1); -- 2.26.2