cvs commit: src/lib/msun/i387 fenv.c fenv.h

David Schultz das at FreeBSD.ORG
Thu Mar 17 22:16:53 PST 2005

On Fri, Mar 18, 2005, Alexey Dokuchaev wrote:
> On Thu, Mar 17, 2005 at 10:21:46PM +0000, David Schultz wrote:
> > das         2005-03-17 22:21:46 UTC
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     lib/msun/i387        fenv.c fenv.h 
> >   Log:
> >   Make the fenv.h routines work for programs that use SSE for
> >   floating-point arithmetic on i386.  Now I'm going to make excuses
> >   for why this code is kinda scary:
> >   
> >   - To avoid breaking the ABI with 5.3-RELEASE, we can't change
> >     sizeof(fenv_t).  I stuck the saved mxcsr in some discontiguous
> >     reserved bits in the existing structure.
> Why do you care about ABI compatibility between 6-CURRENT and 5.3-RELEASE?
> If you plan to MFC this code at some point, you could use your current
> approach in RELENG_5.  This would, of course, mean you'd have to maintain
> two different code sets, but still.

The reasons are manifold.  For one, I would like the complicated
version to get exposure in -CURRENT before I MFC it.  Further,
this only adds a few extra instructions, so it's not a big deal,
particularly compared to the code to support older processors.
You're right that I could just bump the libm version number and
break the ABI, but that inconveniences people, so I would like to
avoid it when possible.

More information about the cvs-all mailing list