From owner-cvs-all@FreeBSD.ORG Sat Jun 28 17:55:48 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AEB4910656B2; Sat, 28 Jun 2008 17:55:48 +0000 (UTC) (envelope-from das@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9CBDE8FC16; Sat, 28 Jun 2008 17:55:47 +0000 (UTC) (envelope-from das@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m5SHtlxC083642; Sat, 28 Jun 2008 17:55:47 GMT (envelope-from das@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m5SHtl8h083641; Sat, 28 Jun 2008 17:55:47 GMT (envelope-from das@repoman.freebsd.org) Message-Id: <200806281755.m5SHtl8h083641@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to das@repoman.freebsd.org using -f From: David Schultz Date: Sat, 28 Jun 2008 17:55:43 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/lib/libc/amd64/gen _setjmp.S setjmp.S X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Jun 2008 17:55:48 -0000 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