This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.11.0-0.1


On Fri, 10 Aug 2018 13:42:54, Corinna Vinschen wrote:
[snip]

> > Note: the following line must be changed in STC-FENV.c (the STC that was
> > attached to the bug report -- the last one above).
> >
> > from:
> > const int xxx =3D 0x3d; // FE_ALL_EXCEPT on Linux, i.e. the denormal-...
> >                         // exception is excluded on Linux
> >
> > to:
> > const int xxx =3D 0x3f; // Cygwin allows the denormal-operand exception;
> >                         // Linux (Andreas Jaeger) does not.
> >                         // This exception is not defined by the IEEE 754
> >                         // standard (Floating-Point Arithmetic)
> 
> Shall we change that?  A patch would be nice. ;)

That is possible ...

As on Linux, the denormal-operand exception will always be masked after this
change ... (both in the default env. and in the "nomask" env.)

Meaning that, after this change, this exception can * no longer * be enabled
through the API of fenv.h

Objections? Anyone?

The modication would require changing:

winsup/cygwin/fenv.cc (_feinitialise() )
winsup/cygwin/include/fenv.h (FE_ALL_EXCEPT)

/usr/include/fenv.h (which is a copy of the above, I am guessing ?????)

In _feinitialise() this line must be changed:

from:
434	  mxcsr = FE_ALL_EXCEPT << FE_SSE_EXCEPT_MASK_SHIFT;
to:
434	  mxcsr = 0x3f << FE_SSE_EXCEPT_MASK_SHIFT;

Regards,
Henri


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]