@samitouri / QOSamiQemu / commits / aa517d9774

target/arm: Split out aarch32_max_tcg_init

Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> Message-id: 20260812204435.295067-6-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Richard Henderson committed Aug 18, 2026 at 10:39 UTC aa517d9774d63ffe41066e4c26c7540ee1625140
3 files changed +17 -15
target/arm/cpu-max.c
+1 -15
@@ -202,22 +202,8 @@ static void cpu_max_initfn(Object *obj)
202 }
203
204 if (tcg_enabled()) {
205 - /*
206 - * '-cpu max' for TCG: we currently do this as
207 - * "A57 with extra things"
208 - */
205 if (!aarch64_enabled) {
210 - aarch64_aa32_a57_init(cpu, false);
211 - aa32_max_features(cpu);
212 -#ifdef CONFIG_USER_ONLY
213 - /*
214 - * Break with true ARMv8 and add back old-style VFP short-vector
215 - * support. Only do this for user-mode, where -cpu max is the default,
216 - * so that older v6 and v7 programs are more likely to work without
217 - * adjustment.
218 - */
219 - cpu->isar.mvfr0 = FIELD_DP32(cpu->isar.mvfr0, MVFR0, FPSHVEC, 1);
220 -#endif
206 + aarch32_max_tcg_init(cpu);
207 } else {
208 aarch64_max_tcg_initfn(obj);
209 }
target/arm/internals.h
+1
@@ -1838,6 +1838,7 @@ uint32_t *arm_v7m_get_sp_ptr(CPUARMState *env, bool secure,
1838 bool el_is_in_host(CPUARMState *env, int el);
1839
1840 void aa32_max_features(ARMCPU *cpu);
1841 +void aarch32_max_tcg_init(ARMCPU *cpu);
1842 int exception_target_el(CPUARMState *env);
1843 bool arm_singlestep_active(CPUARMState *env);
1844 bool arm_generate_debug_exceptions(CPUARMState *env);
target/arm/tcg/cpu32.c
+15
@@ -748,3 +748,18 @@ static void arm_tcg_cpu_register_types(void)
748 type_init(arm_tcg_cpu_register_types)
749
750 #endif /* !CONFIG_USER_ONLY || !TARGET_AARCH64 */
751 +
752 +void aarch32_max_tcg_init(ARMCPU *cpu)
753 +{
754 + aarch64_aa32_a57_init(cpu, false);
755 + aa32_max_features(cpu);
756 +#ifdef CONFIG_USER_ONLY
757 + /*
758 + * Break with true ARMv8 and add back old-style VFP short-vector
759 + * support. Only do this for user-mode, where -cpu max is the default,
760 + * so that older v6 and v7 programs are more likely to work without
761 + * adjustment.
762 + */
763 + cpu->isar.mvfr0 = FIELD_DP32(cpu->isar.mvfr0, MVFR0, FPSHVEC, 1);
764 +#endif
765 +}