[RFC] x86_64: Add SSE sfp-exceptions

Florian Weimer fweimer@redhat.com
Thu Apr 16 10:14:08 GMT 2020


* Adhemerval Zanella via Libc-alpha:

> The exported x86_64 fenv.h functions operate on both i387 and SSE (since
> they should work on both float, double, and long double) while the
> internal libc_fe* set either SSE (float, double, and float128) or
> i387 (long double).
>
> The libgcc __sfp_handle_exceptions (used on float128 implementation),
> however, will set either SEE or i387 exception depending of the
> exception to raise.  This broke the internal assumption of float128
> where only SSE operations will be used.
>
> This patch reimplements the libgcc __sfp_handle_exceptions to use only
> SSE operations and sets libgcc to use it instead of its own
> implementation.
>
> And I think we should fix libgcc in a similar manner, since checking on
> config/i386/64/sfp-machine.h it already only supports SSE rounding mode
> and x86_64 ABI also expectes float128 to use SSE registers [1]
> (although it is not clear on how future implementation might implement
> it).

Is this another bug similar to bug 23253, fixed in commit
f496b28e61d0342f579bf794c71b80e9c7d0b1b5 ("math: Set 387 and SSE2
rounding mode for tgamma on i386 [BZ #23253]")?

Thanks,
Florian



More information about the Libc-alpha mailing list