Add float128 support for ia64.master
commit034e73802173a8bfa80ff21d3da45e3bbbfe8acc
authorJoseph Myers <joseph@codesourcery.com>
Mon, 26 Jun 2017 22:50:45 +0000 (26 22:50 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 26 Jun 2017 22:50:45 +0000 (26 22:50 +0000)
tree21b26bf80c9dc83dee6ebb3de40bd6096fe06c8b
parent251287734e89a52da3db682a8241eb6bccc050c9
Add float128 support for ia64.

This patch enables float128 support for ia64, so that all the
configurations where GCC supports _Float128 / __float128 as an
ABI-distinct type now have glibc support as well.  bits/floatn.h
declares the support to be available for GCC 4.4 and later, which is
when the libgcc support was added.  The removal of
sysdeps/ia64/fpu/k_rem_pio2.c is because the generic k_rem_pio2.c
defines a function required by the float128 code.

Tested (compilation only) with build-many-glibcs.py for ia64 (GCC 6
and GCC 7).

Given how long it is since libm-test-ulps has been updated for ia64, I
think truncating the file and regenerating it from scratch would be a
good idea when doing a regeneration to add float128 ulps.  I expect
various ia64 libm issues (at least some already filed in Bugzilla) to
result in test failures even after ulps regeneration, but hopefully
the float128 code will pass tests as it's the same as used on other
architectures.

* sysdeps/ia64/Implies: Add ieee754/float128.
* sysdeps/ia64/bits/floatn.h: New file.
* sysdeps/ia64/float128-abi.h: Likewise.
* manual/math.texi (Mathematics): Document support for _Float128
on ia64.
* sysdeps/ia64/Makefile [$(subdir) = math] (CPPFLAGS): Append to
Makefile variable.
* sysdeps/ia64/fpu/e_sqrtf128.c: New file.
* sysdeps/ia64/fpu/k_rem_pio2.c: Remove file.
* sysdeps/ia64/fpu/sfp-machine.h: New file.  Based on libgcc.
* sysdeps/ia64/math-tests.h: New file.
* math/libm-test-support.h (XFAIL_FLOAT128_PAYLOAD): Also define
based on TEST_COND_binary128 for [__ia64__].
* sysdeps/unix/sysv/linux/ia64/libc.abilist: Update.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise,
14 files changed:
ChangeLog
NEWS
manual/math.texi
math/libm-test-support.h
sysdeps/ia64/Implies
sysdeps/ia64/Makefile
sysdeps/ia64/bits/floatn.h [new file with mode: 0644]
sysdeps/ia64/float128-abi.h [new file with mode: 0644]
sysdeps/ia64/fpu/e_sqrtf128.c [new file with mode: 0644]
sysdeps/ia64/fpu/k_rem_pio2.c [deleted file]
sysdeps/ia64/fpu/sfp-machine.h [new file with mode: 0644]
sysdeps/ia64/math-tests.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/ia64/libc.abilist
sysdeps/unix/sysv/linux/ia64/libm.abilist