Date: Sat, 28 Jun 2008 17:55:43 +0000 (UTC) From: David Schultz <das@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/lib/libc/amd64/gen _setjmp.S setjmp.S Message-ID: <200806281755.m5SHtl8h083641@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200806281755.m5SHtl8h083641>