qemu-e2k/target-i386
Paolo Bonzini 43175fa96a target-i386: preserve FPU and MSR state on INIT
Most MSRs, plus the FPU, MMX, MXCSR, XMM and YMM registers should not
be zeroed on INIT (Table 9-1 in the Intel SDM).  Copy them out of
CPUX86State and back in, instead of special casing env->pat.

The relevant fields are already consecutive except PAT and SMBASE.
However:

- KVM and Hyper-V MSRs should be reset because they include memory
locations written by the hypervisor.  These MSRs are moved together
at the end of the preserved area.

- SVM state can be moved out of the way since it is written by VMRUN.

Cc: Andreas Faerber <afaerber@suse.de>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-05-13 13:12:40 +02:00
..
arch_dump.c dump: rebase from host-private RAMBlock offsets to guest-physical addresses 2013-08-08 11:01:46 -04:00
arch_memory_mapping.c exec: Make ldq/ldub_*_phys input an AddressSpace 2014-02-11 22:57:00 +10:00
cc_helper_template.h
cc_helper.c target-i386: Fix CC_OP_CLR vs PF 2014-02-28 08:43:15 -08:00
cpu-qom.h target-i386: X86CPU model subclasses 2014-03-13 19:20:07 +01:00
cpu.c target-i386: preserve FPU and MSR state on INIT 2014-05-13 13:12:40 +02:00
cpu.h target-i386: preserve FPU and MSR state on INIT 2014-05-13 13:12:40 +02:00
excp_helper.c cpu-exec: Change cpu_loop_exit() argument to CPUState 2014-03-13 19:20:47 +01:00
fpu_helper.c target-i386: Fix SSE status flag corruption 2014-02-28 08:44:01 -08:00
gdbstub.c target-i386: Fix SSE status flag corruption 2014-02-28 08:44:01 -08:00
helper.c target-i386: preserve FPU and MSR state on INIT 2014-05-13 13:12:40 +02:00
helper.h target-i386: yield to another VCPU on PAUSE 2013-11-21 17:39:20 +01:00
int_helper.c target-i386/helper: remove EDX macro 2013-06-15 17:49:10 +00:00
ioport-user.c
kvm_i386.h kvm: forward INIT signals coming from the chipset 2014-05-13 13:12:40 +02:00
kvm-stub.c target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() 2013-11-21 17:39:11 +01:00
kvm.c kvm: forward INIT signals coming from the chipset 2014-05-13 13:12:40 +02:00
machine.c target-i386: reorder fields in cpu/msr_hyperv_hypercall subsection 2014-04-05 10:49:05 +01:00
Makefile.objs Makefile.target: CONFIG_NO_* variables removed 2013-10-16 18:21:00 +02:00
mem_helper.c translate-all: Change cpu_restore_state() argument to CPUState 2014-03-13 19:20:47 +01:00
misc_helper.c cputlb: Change tlb_flush_page() argument to CPUState 2014-03-13 19:52:47 +01:00
ops_sse_header.h target-i386: add AES-NI instructions 2013-04-13 13:51:57 +02:00
ops_sse.h target-i386: add AES-NI instructions 2013-04-13 13:51:57 +02:00
seg_helper.c target-i386: the x86 CPL is stored in CS.selector - auto update hflags accordingly. 2014-05-13 13:12:40 +02:00
shift_helper_template.h
smm_helper.c target-i386: set eflags and cr0 prior to calling cpu_x86_load_seg_cache() in smm_helper.c 2014-05-13 13:12:40 +02:00
svm_helper.c target-i386: the x86 CPL is stored in CS.selector - auto update hflags accordingly. 2014-05-13 13:12:40 +02:00
svm.h
TODO
topology.h
translate.c cpu: Move breakpoints field from CPU_COMMON to CPUState 2014-03-13 19:20:47 +01:00