qemu/target-i386
Jan Kiszka 42cc8fa620 kvm: x86: Save/restore FPU OP, IP and DP
These FPU states are properly maintained by KVM but not yet by TCG. So
far we unconditionally set them to 0 in the guest which may cause
state corruptions, though not with modern guests.

To avoid breaking backward migration, use a conditional subsection that
is only written if any of the three fields is non-zero. The guest's
FNINIT clears them frequently, and cleared IA32_MISC_ENABLE MSR[2]
reduces the probability of non-zero values further so that this
subsection is not expected to restrict migration in any common scenario.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2011-06-19 15:57:56 +03:00
..
TODO Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
cpu.h kvm: x86: Save/restore FPU OP, IP and DP 2011-06-19 15:57:56 +03:00
cpuid.c kvm: Enable CPU SMEP feature 2011-06-14 09:34:35 -05:00
exec.h target-i386: remove old code handling float64 2011-06-03 16:07:50 +02:00
helper.c Fix compilation warning due to missing header for sigaction (followup) 2011-06-08 09:04:29 +01:00
helper.h target-i386: implement lzcnt emulation 2009-10-23 17:10:36 +02:00
helper_template.h Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
kvm.c kvm: x86: Save/restore FPU OP, IP and DP 2011-06-19 15:57:56 +03:00
machine.c kvm: x86: Save/restore FPU OP, IP and DP 2011-06-19 15:57:56 +03:00
op_helper.c target-i386: use floatx80 constants in helper_fld*_ST0() 2011-06-03 16:07:52 +02:00
ops_sse.h target-i386: replace approx_rsqrt and approx_rcp by softfloat ops 2011-04-25 11:18:33 +02:00
ops_sse_header.h tcg: Optionally sign-extend 32-bit arguments for 64-bit hosts. 2010-06-16 11:29:11 +02:00
svm.h reworked SVM interrupt handling logic - fixed vmrun EIP saved value - reworked cr8 handling - added CPUState.hflags2 2008-06-04 17:02:19 +00:00
translate.c target-i386: Make x86 mfence and lfence illegal without SSE2 2011-06-08 09:04:29 +01:00