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