cvs commit: src/lib/libc/amd64/gen _setjmp.S setjmp.S

David Schultz das at FreeBSD.org
Sat Jun 28 17:55:48 UTC 2008


das         2008-06-28 17:55:43 UTC

  FreeBSD src repository

  Modified files:
    lib/libc/amd64/gen   _setjmp.S setjmp.S 
  Log:
  SVN rev 180080 on 2008-06-28 17:55:43Z by das
  
  Two FP-related setjmp/longjmp changes:
  
  1. Save and restore the control part of the MXCSR in addition to the
     i387 control word to ensure that the two are consistent.
  
     Note that standards don't require longjmp to restore either control
     word, and none of Linux, MacOS X 10.3 and earlier, NetBSD, OpenBSD,
     or Solaris do it. However, it is historical FreeBSD behavior, and
     bde points out that it is needed to make longjmping out of a signal
     handler work properly, given the way FreeBSD clobbers the FPU state
     on signal handler entry.
  
  2. Don't clobber the FPU exception flags in longjmp. C99 requires them
     to remain unchanged.
  
  Revision  Changes    Path
  1.20      +10 -1     src/lib/libc/amd64/gen/_setjmp.S
  1.28      +10 -1     src/lib/libc/amd64/gen/setjmp.S


More information about the cvs-src mailing list