Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Nov 1999 09:32:16 -0700
From:      Nate Williams <nate@mt.sri.com>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        Nate Williams <nate@mt.sri.com>, Marcel Moolenaar <marcel@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/i386/include signal.h
Message-ID:  <199911121632.JAA19116@mt.sri.com>
In-Reply-To: <Pine.BSF.4.10.9911130312430.18150-100000@alphplex.bde.org>
References:  <199911121549.IAA18836@mt.sri.com> <Pine.BSF.4.10.9911130312430.18150-100000@alphplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> > However, there are issues with sigset/longjmp with FPU state still,
> > although they might not be effected as I haven't looked at the
> > implementation yet.
> 
> Our setjmp/longjmp already preserve too much FPU state C9x draft
> compatibility.

From the comments in the JDK source I added.

+    } else {                                                   \
+        /*                                                     \
+        * FreeBSD's siglongjmp resets the FPU with 'fninit',   \
+        * so restore it.                                       \
+        */                                                     \
+       __asm__ ("frstor %0"::"m" (*fdata));                    \

By reseting the FPU with fninit, we *lose* much of the state, we in our
code we must restore the state (which we stored before the call to
sigsetjmp with fsave/fwait).

Or, am I not understanding something critical here...


Nate


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199911121632.JAA19116>