Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Nov 1999 10:11:04 -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:  <199911121711.KAA19367@mt.sri.com>
In-Reply-To: <Pine.BSF.4.10.9911130359010.18310-100000@alphplex.bde.org>
References:  <199911121632.JAA19116@mt.sri.com> <Pine.BSF.4.10.9911130359010.18310-100000@alphplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> > > 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).
> 
> fninit lose some current state, but nothing related to the state at the
> time of the sigsetjmp().  JDK apparently needs to restore the state at
> the time of the setjmp().

Right.  What else would you restore if not the state at the time of the
setjmp?

> The comment seems to be misleading.  It
> should probably say "FreeBSD's siglongjmp() doesn't restore the FPU to
> its state at the time of the sigsetjmp(), so we restore it here".

What other state would you restore if not the state at the time of the
sigsetjmp?


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?199911121711.KAA19367>