whpx: i386: work around Hyper-V FP state oddities
On Hyper-V looks like we need to fetch both the legacy and new state instead of being able to rely on xsave. Signed-off-by: Mohamed Mediouni <mohamed@unpredictable.fr> Link: https://lore.kernel.org/r/20260812082814.27217-6-mohamed@unpredictable.fr Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Mohamed Mediouni committed
Aug 12, 2026 at 10:28 UTC
37ce6d8da75754f725db8cc27ae6c82a2e5b930e
1 file changed
+3
-4
target/i386/whpx/whpx-all.c
+3
-4
@@ -614,9 +614,9 @@ void whpx_set_registers(CPUState *cpu, WHPXStateLevel level)
614
615
if (whpx_is_xsave_enabled(cpu)) {
616
whpx_set_xsave_state(cpu);
617
- } else {
618
- whpx_set_legacy_fp_registers(cpu, level);
617
}
618
+ whpx_set_legacy_fp_registers(cpu, level);
619
+
620
/* MSRs */
621
assert(whpx_register_names[idx] == WHvX64RegisterEfer);
622
vcxt.values[idx++].Reg64 = env->efer;
@@ -950,9 +950,8 @@ void whpx_get_registers(CPUState *cpu, WHPXStateLevel level)
950
951
if (whpx_is_xsave_enabled(cpu)) {
952
whpx_get_xsave_state(cpu);
953
- } else {
954
- whpx_get_legacy_fp_registers(cpu, level);
953
}
954
+ whpx_get_legacy_fp_registers(cpu, level);
955
956
/* MSRs */
957
assert(whpx_register_names[idx] == WHvX64RegisterEfer);