qemu/target
Matt Borgerson 7cb0210fcc 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>
(cherry picked from commit b2ea6450d8)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2023-08-05 20:49:49 +03:00
..
alpha target/alpha: Remove NB_MMU_MODES define 2023-03-13 06:44:37 -07:00
arm target/arm: Avoid writing to constant TCGv in trans_CSEL() 2023-07-31 21:06:29 +03:00
avr target/avr: Avoid use of tcg_const_i32 throughout 2023-03-13 06:44:37 -07:00
cris target/cris: Avoid use of tcg_const_i32 throughout 2023-03-13 06:44:37 -07:00
hexagon target/hexagon: Remove NB_MMU_MODES define 2023-03-13 06:44:37 -07:00
hppa target/hppa: Move iaoq registers and thus reduce generated code size 2023-08-04 19:14:46 +03:00
i386 target/i386: Check CR0.TS before enter_mmx 2023-08-05 20:49:49 +03:00
loongarch target/loongarch: Fix the CSRRD CPUID instruction on big endian hosts 2023-07-31 09:10:51 +03:00
m68k target/m68k: Fix semihost lseek offset computation 2023-08-04 19:14:46 +03:00
microblaze target/microblaze: Remove NB_MMU_MODES define 2023-03-13 06:44:37 -07:00
mips target/mips: enable GINVx support for I6400 and I6500 2023-07-31 08:52:38 +03:00
nios2 target/nios2: Fix semihost lseek offset computation 2023-08-04 19:14:46 +03:00
openrisc target/openrisc: Remove NB_MMU_MODES define 2023-03-13 06:44:37 -07:00
ppc target/ppc: Fix VRMA page size for ISA v3.0 2023-08-05 20:49:49 +03:00
riscv target/riscv: Restore the predicate() NULL check behavior 2023-05-10 20:50:38 +03:00
rx target/rx: Avoid tcg_const_i32 2023-03-13 06:44:37 -07:00
s390x target/s390x: Fix assertion failure in VFMIN/VFMAX with type 13 2023-07-31 09:10:51 +03:00
sh4 target/sh4: Honor QEMU_LOG_FILENAME with QEMU_LOG=cpu 2023-03-16 10:31:25 +01:00
sparc tcg/sparc: Avoid tcg_const_tl in gen_edge 2023-03-13 06:44:37 -07:00
tricore target/tricore: Add CHECK_REG_PAIR() for insn accessing 64 bit regs 2023-06-23 09:46:01 +03:00
xtensa target/xtensa: Remove NB_MMU_MODES define 2023-03-13 06:44:37 -07:00
Kconfig hw/loongarch: Add support loongson3 virt machine type. 2022-06-06 18:09:03 +00:00
meson.build target/loongarch: Add target build suport 2022-06-06 18:09:03 +00:00