On 4/4/25 20:28, Pierrick Bouvier wrote:
On 4/3/25 16:58, Philippe Mathieu-Daudé wrote:
Replace the target-specific TARGET_AARCH64 definition
by a call to the generic target_long_bits() helper.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
hw/arm/virt.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index e241e71e1c3..a020f1bd581 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3133,25 +3133,25 @@ static void
virt_machine_class_init(ObjectClass *oc, void *data)
#ifdef CONFIG_TCG
machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a7"));
machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a15"));
-#ifdef TARGET_AARCH64
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a35"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a55"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a72"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a76"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a710"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("a64fx"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("neoverse-
n1"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("neoverse-
v1"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("neoverse-
n2"));
-#endif /* TARGET_AARCH64 */
+ if (target_long_bits() == 64) {
I would prefer if we introduce a true target_aarch64() function, and
probably the same for other architectures when it will be needed.
If we start using target_long_bits(), we might enable something in
common code that we are not supposed to do. And it will be much harder
to find it later when we debug heterogenenous emulation.
I get your point. Maybe we can register valid aa64 CPUs regardless,
and filter for registered QOM CPUs? OTOH your suggestion of
TARGET_AARCH64 -> target_aarch64() could be easier to review.
I''ll give it a try.
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("cortex-a35"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("cortex-a55"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("cortex-a72"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("cortex-a76"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("cortex-a710"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("a64fx"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("neoverse-n1"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("neoverse-v1"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("neoverse-n2"));
+ }
#endif /* CONFIG_TCG */
-#ifdef TARGET_AARCH64
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a53"));
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("cortex-
a57"));
+ if (target_long_bits() == 64) {
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("cortex-a53"));
+ machine_class_add_valid_cpu_type(mc,
ARM_CPU_TYPE_NAME("cortex-a57"));
#if defined(CONFIG_KVM) || defined(CONFIG_HVF)
- machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("host"));
+ machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("host"));
#endif /* CONFIG_KVM || CONFIG_HVF */
-#endif /* TARGET_AARCH64 */
+ }
machine_class_add_valid_cpu_type(mc, ARM_CPU_TYPE_NAME("max"));
mc->init = machvirt_init;