qemu/target/i386
Matt Borgerson b2ea6450d8 target/i386: Check CR0.TS before enter_mmx
When CR0.TS=1, execution of x87 FPU, MMX, and some SSE instructions will
cause a Device Not Available (DNA) exception (#NM). System software uses
this exception event to lazily context switch FPU state.

Before this patch, enter_mmx helpers may be generated just before #NM
generation, prematurely resetting FPU state before the guest has a
chance to save it.

Signed-off-by: Matt Borgerson <contact@mborgerson.com>
Message-ID: <CADc=-s5F10muEhLs4f3mxqsEPAHWj0XFfOC2sfFMVHrk9fcpMg@mail.gmail.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2023-08-04 11:42:18 +02:00
..
hax exec/memory: Add symbolic value for memory listener priority for accel 2023-06-28 14:27:59 +02:00
hvf accel: Rename HVF 'struct hvf_vcpu_state' -> AccelCPUState 2023-06-28 14:14:22 +02:00
kvm i386/xen: consistent locking around Xen singleshot timers 2023-08-01 23:52:23 +02:00
nvmm exec/memory: Add symbolic value for memory listener priority for accel 2023-06-28 14:27:59 +02:00
tcg target/i386: Check CR0.TS before enter_mmx 2023-08-04 11:42:18 +02:00
whpx exec/memory: Add symbolic value for memory listener priority for accel 2023-06-28 14:27:59 +02:00
arch_dump.c dump: Replace opaque DumpState pointer with a typed one 2022-10-06 19:30:43 +04:00
arch_memory_mapping.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
cpu-dump.c target/i386: Remove x86_cpu_dump_local_apic_state() dead stub 2023-02-27 22:29:01 +01:00
cpu-internal.h i386: split off sysemu part of cpu.c 2021-05-10 15:41:52 -04:00
cpu-param.h target/i386: Remove NB_MMU_MODES define 2023-03-13 06:44:37 -07:00
cpu-qom.h target/i386: Convert to 3-phase reset 2022-12-16 15:58:15 +00:00
cpu-sysemu.c KVM: remove support for kernel-irqchip=off 2023-01-06 00:51:02 +01:00
cpu.c target/i386: Add new CPU model GraniteRapids 2023-07-07 12:52:27 +02:00
cpu.h target/i386: Add new bit definitions of MSR_IA32_ARCH_CAPABILITIES 2023-07-07 12:52:27 +02:00
gdbstub.c gdbstub: move register helpers into standalone include 2023-03-07 20:44:08 +00:00
helper.c target/i386/helper: Shuffle do_cpu_init() 2023-06-13 11:28:58 +02:00
helper.h target/i386: implement SYSCALL/SYSRET in 32-bit emulators 2023-06-26 10:23:56 +02:00
host-cpu.c *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
host-cpu.h accel-cpu: make cpu_realizefn return a bool 2021-05-10 15:41:50 -04:00
Kconfig meson: Introduce target-specific Kconfig 2021-07-09 18:21:34 +02:00
machine.c i386/xen: handle PV timer hypercalls 2023-03-01 09:07:52 +00:00
meson.build meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
monitor.c error: Drop superfluous #include "qapi/qmp/qerror.h" 2023-02-23 13:56:14 +01:00
ops_sse.h target/i386: Use aesdec_ISB_ISR_IMC_AK 2023-07-08 07:30:18 +01:00
sev-sysemu-stub.c error: Drop superfluous #include "qapi/qmp/qerror.h" 2023-02-23 13:56:14 +01:00
sev.c i386/sev: Update checks and information related to reduced-phys-bits 2023-04-28 12:50:34 +02:00
sev.h Clean up header guards that don't match their file name 2022-05-11 16:49:06 +02:00
svm.h target/i386: Added vVMLOAD and vVMSAVE feature 2021-09-13 13:56:26 +02:00
trace-events * Update the references to some doc files (use *.rst instead of *.txt) 2021-06-02 17:08:11 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
xsave_helper.c x86: add support for KVM_CAP_XSAVE2 and AMX state migration 2022-03-15 11:50:50 +01:00