feenableexcept and FE_NOMASK_ENV are broken on i386 (resend)

Ulrich Drepper drepper@redhat.com
Fri Jun 28 11:04:00 GMT 2002


On Fri, 2002-05-31 at 04:28, Bruno Haible wrote:

> The function feenableexcept and the macro FE_NOMASK_ENV, both GNU extensions
> in <fenv.h>, appear to be broken on i386.

The exception operations map directly to functionality in the CPU.  And
the CPU doesn't make any difference between operations of the different
types.  In fact, it only operates on the long double format internally
(we don't use the 64-bit format).

This means that you won't get the exact exceptions for anything but long
double operations.  Everything else depends on the compiler and how and
when it decides to convert from the internal format to float or double.

There is not much which can be done except reiterating once again: if
you want to do floating-point stuff, don't use IA-32.  Maybe with
SSE/SSE2 but that's a completely different story and not part of the
standard ABI.

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 232 bytes
Desc: This is a digitally signed message part
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20020628/6d38446b/attachment.sig>


More information about the Libc-alpha mailing list