diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-02-10 02:08:43 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-02-10 02:08:43 +0000 |
commit | d8742dd82f6a00601155c69bad3012e905591e1f (patch) | |
tree | d37836d2d6af8b428dc3092466bea93c2624469f /sysdeps/unix | |
parent | a85b70dbd2efb84123dcfb7a2131b2de81b59b6a (diff) | |
download | glibc-d8742dd82f6a00601155c69bad3012e905591e1f.zip glibc-d8742dd82f6a00601155c69bad3012e905591e1f.tar.gz glibc-d8742dd82f6a00601155c69bad3012e905591e1f.tar.bz2 |
Add narrowing add functions.
This patch adds the narrowing add functions from TS 18661-1 to glibc's
libm: fadd, faddl, daddl, f32addf64, f32addf32x, f32xaddf64 for all
configurations; f32addf64x, f32addf128, f64addf64x, f64addf128,
f32xaddf64x, f32xaddf128, f64xaddf128 for configurations with
_Float64x and _Float128; __nldbl_daddl for ldbl-opt. As discussed for
the build infrastructure patch, tgmath.h support is deliberately
deferred, and FP_FAST_* macros are not applicable without optimized
function implementations.
Function implementations are added for all relevant pairs of formats
(including certain cases of a format and itself where more than one
type has that format). The main implementations use round-to-odd, or
a trivial computation in the case where both formats are the same or
where the wider format is IBM long double (in which case we don't
attempt to be correctly rounding). The sysdeps/ieee754/soft-fp
implementations use soft-fp, and are used automatically for
configurations without exceptions and rounding modes by virtue of
existing Implies files. As previously discussed, optimized versions
for particular architectures are possible, but not included.
i386 gets a special version of f32xaddf64 to avoid problems with
double rounding (similar to the existing fdim version), since this
function must round just once without an intermediate rounding to long
double. (No such special version is needed for any other function,
because the nontrivial functions use round-to-odd, which does the
intermediate computation with the rounding mode set to round-to-zero,
and double rounding is OK except in round-to-nearest mode, so is OK
for that intermediate round-to-zero computation.) mul and div will
need slightly different special versions for i386 (using round-to-odd
on long double instead of precision control) because of the
possibility of inexact intermediate results in the subnormal range for
double.
To reduce duplication among the different function implementations,
math-narrow.h gets macros CHECK_NARROW_ADD, NARROW_ADD_ROUND_TO_ODD
and NARROW_ADD_TRIVIAL.
In the trivial cases and for any architecture-specific optimized
implementations, the overhead of the errno setting might be
significant, but I think that's best handled through compiler built-in
functions rather than providing separate no-errno versions in glibc
(and likewise there are no __*_finite entry points for these function
provided, __*_finite effectively being no-errno versions at present in
most cases).
Tested for x86_64 and x86, with both GCC 6 and GCC 7. Tested for
mips64 (all three ABIs, both hard and soft float) and powerpc with GCC
7. Tested with build-many-glibcs.py with both GCC 6 and GCC 7.
* math/Makefile (libm-narrow-fns): Add add.
(libm-test-funcs-narrow): Likewise.
* math/Versions (GLIBC_2.28): Add narrowing add functions.
* math/bits/mathcalls-narrow.h (add): Use __MATHCALL_NARROW .
* math/gen-auto-libm-tests.c (test_functions): Add add.
* math/math-narrow.h (CHECK_NARROW_ADD): New macro.
(NARROW_ADD_ROUND_TO_ODD): Likewise.
(NARROW_ADD_TRIVIAL): Likewise.
* sysdeps/ieee754/float128/float128_private.h (__faddl): New
macro.
(__daddl): Likewise.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fadd and
dadd.
(CFLAGS-nldbl-dadd.c): New variable.
(CFLAGS-nldbl-fadd.c): Likewise.
* sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
__nldbl_daddl.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_daddl): New
prototype.
* manual/arith.texi (Misc FP Arithmetic): Document fadd, faddl,
daddl, fMaddfN, fMaddfNx, fMxaddfN and fMxaddfNx.
* math/auto-libm-test-in: Add tests of add.
* math/auto-libm-test-out-narrow-add: New generated file.
* math/libm-test-narrow-add.inc: New file.
* sysdeps/i386/fpu/s_f32xaddf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_f32xaddf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_fadd.c: Likewise.
* sysdeps/ieee754/float128/s_f32addf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64addf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64xaddf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_daddl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_f64xaddf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_faddl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_daddl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_faddl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_daddl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_faddl.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-dadd.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-fadd.c: Likewise.
* sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fadd.c: Likewise.
* sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
* sysdeps/mach/hurd/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
Diffstat (limited to 'sysdeps/unix')
26 files changed, 281 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 7caff9b..dbb5326 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -986,3 +986,17 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 19305d9..00a7b8d 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -996,6 +996,21 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __c1_cabsf F GLIBC_2.3.4 __c1_cacosf F diff --git a/sysdeps/unix/sysv/linux/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist index 613df71..67ed656 100644 --- a/sysdeps/unix/sysv/linux/arm/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/libm.abilist @@ -435,6 +435,13 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 8496fa6..4cd41e3 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -747,5 +747,12 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 9ef6fc6..b9aa407 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1033,4 +1033,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index 9de4325..a7981b8 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -962,4 +962,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 613df71..67ed656 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -435,6 +435,13 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index b72723a..e833cdb 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -789,4 +789,11 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index 8c04695..3d779cb 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -746,3 +746,10 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index b15ddf8..6b86a2d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -748,6 +748,13 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F _gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 3ab51cb..137e5f1 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -988,4 +988,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 2c47b2b..736c70f 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -746,3 +746,10 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index d3baaf7..ea84f1e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -791,6 +791,14 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 7c6467c..ee2593c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -790,6 +790,14 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index 9b6fffb..075f026 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -1027,3 +1027,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist index 9443bd9..9e6c7d3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -466,6 +466,14 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _LIB_VERSION D 0x4 GLIBC_2.3 __clog10 F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist index 971af52..9a6bcb1 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist @@ -968,3 +968,17 @@ GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.27 ynl F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index af68d0c..7b1854d 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -986,6 +986,21 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 430c5ae..24b4c21 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -984,6 +984,21 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist index 7e48be9..011c2df 100644 --- a/sysdeps/unix/sysv/linux/sh/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/libm.abilist @@ -747,5 +747,12 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 9d25c07..fdc125a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -993,6 +993,21 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 1311767..1fc848a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -987,4 +987,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist index 6b375f5..a7c37e2 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist @@ -747,3 +747,10 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist index 6b375f5..a7c37e2 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist @@ -747,3 +747,10 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index fc1c601..0d8c448 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1022,4 +1022,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 75ef25f..e7f368e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1021,3 +1021,17 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F |