summaryrefslogtreecommitdiffstats
path: root/lib/libc/i386
diff options
context:
space:
mode:
authordas <das@FreeBSD.org>2008-06-28 17:55:43 +0000
committerdas <das@FreeBSD.org>2008-06-28 17:55:43 +0000
commit610bd747b7bcb7c261f797b98f48478d9994781e (patch)
tree50753ee5022fdb7c1e8a537550b00e2c80532b21 /lib/libc/i386
parent8f779d35ce6bfd2d82fb53ce57f2cb1161c87507 (diff)
downloadFreeBSD-src-610bd747b7bcb7c261f797b98f48478d9994781e.zip
FreeBSD-src-610bd747b7bcb7c261f797b98f48478d9994781e.tar.gz
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.
Diffstat (limited to 'lib/libc/i386')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud