cvs commit: src/sys/i386/isa npx.c
Bruce Evans
bde at FreeBSD.org
Thu Jun 17 19:11:49 PDT 2004
bde 2004-06-18 02:10:55 UTC
FreeBSD src repository
Modified files:
sys/i386/isa npx.c
Log:
Fixed a panic caused by over-optimizing npxdrop() in the non-FXSR case.
frstor can trap despite it being a control instruction, since it bogusly
checks for pending exceptions in the state that it is overwriting.
This used to be a non-problem because frstor was always paired with a
previous fnsave, and fnsave does an implicit fninit so any pending
exceptions only remain live in the saved state. Now frstor is sometimes
paired with npxdrop() and we must do a little more than just forget
that the npx was used in npxdrop() to avoid a trap later. This is a
non-problem in the FXSR case because fxrstor doesn't do the bogus check.
FXSR is part of SSE, and npxdrop() is only in FreeBSD-5.x, so this bug
only affected old machines running FreeBSD-5.x.
PR: 68058
Revision Changes Path
1.151 +9 -0 src/sys/i386/isa/npx.c
More information about the cvs-src
mailing list