@@ -445,6 +445,9 @@ static void pc_i440fx_5_2_machine_options(MachineClass *m)
m->is_default = false;
compat_props_add(m->compat_props, hw_compat_5_2, hw_compat_5_2_len);
compat_props_add(m->compat_props, pc_compat_5_2, pc_compat_5_2_len);
+#ifdef TARGET_X86_64
+ m->default_cpu_type = X86_CPU_TYPE_NAME("qemu64");
+#endif
}
DEFINE_I440FX_MACHINE(v5_2, "pc-i440fx-5.2", NULL,
@@ -361,6 +361,9 @@ static void pc_q35_5_2_machine_options(MachineClass *m)
m->alias = NULL;
compat_props_add(m->compat_props, hw_compat_5_2, hw_compat_5_2_len);
compat_props_add(m->compat_props, pc_compat_5_2, pc_compat_5_2_len);
+#ifdef TARGET_X86_64
+ m->default_cpu_type = X86_CPU_TYPE_NAME("qemu64");
+#endif
}
DEFINE_Q35_MACHINE(v5_2, "pc-q35-5.2", NULL,
@@ -1956,7 +1956,7 @@ uint64_t cpu_get_tsc(CPUX86State *env);
#define CPU_RESOLVING_TYPE TYPE_X86_CPU
#ifdef TARGET_X86_64
-#define TARGET_DEFAULT_CPU_TYPE X86_CPU_TYPE_NAME("qemu64")
+#define TARGET_DEFAULT_CPU_TYPE X86_CPU_TYPE_NAME("x86-64-abi1")
#else
#define TARGET_DEFAULT_CPU_TYPE X86_CPU_TYPE_NAME("qemu32")
#endif
The only differences between x86-64-abi1 and qemu64 is that the former does not have the 'vme' or 'svm' flags. In practice I don't think we should make this change, because it doesn't especially add any value as-is. The only possible case is around 'svm' because KVM already masks that feature, but TCG allows it. Thus using x86-64-abi1 would mean that KVM and TCG expose a more consistent feature set. Also note that while libvirt can cope with default CPUs changing now, it can't with the default CPU being a model name that it does not already know about. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- hw/i386/pc_piix.c | 3 +++ hw/i386/pc_q35.c | 3 +++ target/i386/cpu.h | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-)