glibc/sysdeps
Adhemerval Zanella 460ee50de0 x86_64: Add SSE sfp-exceptions
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).

Checked on x86_64-linux-gnu.

[1] https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI
2020-04-17 11:42:29 -03:00
..
aarch64 Update aarch64 libm-test-ulps 2020-04-08 13:52:44 -03:00
alpha Update alpha libm-test-ulps 2020-04-08 13:52:45 -03:00
arm Update arm libm-test-ulps 2020-04-08 13:52:44 -03:00
csky math: Remove inline math tests 2020-03-19 11:45:44 -03:00
generic ldbl-128ibm-compat: Provide ieee128 symbols to narrow functions 2020-02-20 17:12:14 -06:00
gnu Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
hppa Update hppa libm-test-ulps 2020-04-06 22:19:03 +00:00
htl pthread: Move robust mutex tests from nptl to sysdeps/pthread 2020-02-16 14:43:54 +00:00
hurd C11 threads: Move implementation to sysdeps/pthread 2020-02-09 13:56:48 +01:00
i386 i386: Remove build support for GCC older than GCC 6 2020-04-07 06:44:37 -07:00
ia64 Update ia64 libm-test-ulps 2020-04-08 13:52:45 -03:00
ieee754 ldbl-128ibm: simplify iscanonical.h 2020-04-06 10:23:58 -05:00
m68k math: Remove inline math tests 2020-03-19 11:45:44 -03:00
mach hurd: add mach_print function 2020-04-14 13:19:18 +02:00
microblaze math: Remove inline math tests 2020-03-19 11:45:44 -03:00
mips Update mips libm-test-ulps 2020-04-08 13:53:08 -03:00
nios2 math: Remove inline math tests 2020-03-19 11:45:44 -03:00
nptl Linux: set_robust_list syscall number is always available 2020-03-03 12:49:44 +01:00
posix posix: Fix system error return value [BZ #25715] 2020-03-23 18:00:38 -03:00
powerpc powerpc: Update ULPs and xfail more ibm128 outputs 2020-04-07 11:41:29 -03:00
pthread pthread: Fix building tst-robust8 with nptl 2020-02-16 23:53:45 +01:00
riscv math: Remove inline math tests 2020-03-19 11:45:44 -03:00
s390 S390: Regenerate ULPs. 2020-04-03 09:38:02 +02:00
sh math: Remove inline math tests 2020-03-19 11:45:44 -03:00
sparc Update sparc libm-test-ulps 2020-04-08 13:52:44 -03:00
unix i686: Add INTERNAL_SYSCALL_NCS 6 argument support 2020-04-17 11:40:33 -03:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wordsize-64 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
x86 x86_64: Add SSE sfp-exceptions 2020-04-17 11:42:29 -03:00
x86_64 x86_64: Add SSE sfp-exceptions 2020-04-17 11:42:29 -03:00