Use libm_alias_double for more dbl-64 functions.

This patch makes more dbl-64 functions use libm_alias_double to define
function aliases.  Specifically, it makes the change for functions
with dbl-64/wordsize-64 versions, changing both the dbl-64 and
dbl-64/wordsize-64 versions and removing the ldbl-opt wrappers.
Functions are excluded from this patch if there are complications
because of versions of those functions also present in libc, or
architecture-specific wrappers round these files.

Tested for x86_64, and with build-many-glibcs.py.  Installed stripped
shared libraries are unchanged except for alpha (where increased use
of dbl-64/wordsize-64 files, where previously ldbl-opt files that
wrapped dbl-64 files were used, was expected to result in different,
better code).

	* sysdeps/ieee754/dbl-64/s_ceil.c: Include <libm-alias-double.h>.
	(ceil): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_floor.c: Include <libm-alias-double.h>.
	(floor): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_llround.c: Include
	<libm-alias-double.h>.
	(llround): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_lround.c: Include
	<libm-alias-double.h>.
	(lround): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_nearbyint.c: Include
	<libm-alias-double.h>.
	(nearbyint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_remquo.c: Include
	<libm-alias-double.h>.
	(remquo): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_rint.c: Include <libm-alias-double.h>.
	(rint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_round.c: Include <libm-alias-double.h>.
	(round): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_trunc.c: Include <libm-alias-double.h>.
	(trunc): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Include
	<libm-alias-double.h>.
	(ceil): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Include
	<libm-alias-double.h>.
	(floor): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c: Include
	<libm-alias-double.h>.
	(llround): Define using libm_alias_double.
	[_LP64] (lround): Likewise.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Include
	<libm-alias-double.h>.
	[!_LP64] (lround): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Include
	<libm-alias-double.h>.
	(nearbyint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c: Include
	<libm-alias-double.h>.
	(remquo): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Include
	<libm-alias-double.h>.
	(rint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Include
	<libm-alias-double.h>.
	(round): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Include
	<libm-alias-double.h>.
	(trunc): Define using libm_alias_double.
	* sysdeps/ieee754/ldbl-opt/s_ceil.c: Remove file.
	* sysdeps/ieee754/ldbl-opt/s_floor.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_llround.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_lround.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_nearbyint.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_remquo.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_rint.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_round.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_trunc.c: Likewise.
This commit is contained in:
Joseph Myers 2017-10-03 17:47:35 +00:00
parent f275f64e7e
commit a1132b5e56
28 changed files with 99 additions and 140 deletions

View File

@ -1,3 +1,65 @@
2017-10-03 Joseph Myers <joseph@codesourcery.com>
* sysdeps/ieee754/dbl-64/s_ceil.c: Include <libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_floor.c: Include <libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_llround.c: Include
<libm-alias-double.h>.
(llround): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_lround.c: Include
<libm-alias-double.h>.
(lround): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_nearbyint.c: Include
<libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_remquo.c: Include
<libm-alias-double.h>.
(remquo): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_rint.c: Include <libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_round.c: Include <libm-alias-double.h>.
(round): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_trunc.c: Include <libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Include
<libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c: Include
<libm-alias-double.h>.
(llround): Define using libm_alias_double.
[_LP64] (lround): Likewise.
* sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Include
<libm-alias-double.h>.
[!_LP64] (lround): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Include
<libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c: Include
<libm-alias-double.h>.
(remquo): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Include
<libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Include
<libm-alias-double.h>.
(round): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Include
<libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/ieee754/ldbl-opt/s_ceil.c: Remove file.
* sysdeps/ieee754/ldbl-opt/s_floor.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_llround.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_lround.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_nearbyint.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_remquo.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_rint.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_round.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_trunc.c: Likewise.
2017-10-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
* math/w_remainder.c: New file.

View File

@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
double
__ceil (double x)
@ -81,9 +82,5 @@ __ceil (double x)
return x;
}
#ifndef __ceil
weak_alias (__ceil, ceil)
# ifdef NO_LONG_DOUBLE
strong_alias (__ceil, __ceill)
weak_alias (__ceil, ceill)
# endif
libm_alias_double (__ceil, ceil)
#endif

View File

@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
double
__floor (double x)
@ -81,9 +82,5 @@ __floor (double x)
return x;
}
#ifndef __floor
weak_alias (__floor, floor)
# ifdef NO_LONG_DOUBLE
strong_alias (__floor, __floorl)
weak_alias (__floor, floorl)
# endif
libm_alias_double (__floor, floor)
#endif

View File

@ -22,6 +22,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
#include <fix-fp-int-convert-overflow.h>
@ -84,8 +85,4 @@ __llround (double x)
return sign * result;
}
weak_alias (__llround, llround)
#ifdef NO_LONG_DOUBLE
strong_alias (__llround, __llroundl)
weak_alias (__llround, llroundl)
#endif
libm_alias_double (__llround, llround)

View File

@ -22,6 +22,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
#include <fix-fp-int-convert-overflow.h>
@ -106,8 +107,4 @@ __lround (double x)
return sign * result;
}
weak_alias (__lround, lround)
#ifdef NO_LONG_DOUBLE
strong_alias (__lround, __lroundl)
weak_alias (__lround, lroundl)
#endif
libm_alias_double (__lround, lround)

View File

@ -27,6 +27,7 @@ static char rcsid[] = "$NetBSD: s_rint.c,v 1.8 1995/05/10 20:48:04 jtc Exp $";
#include <fenv.h>
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
static const double
TWO52[2] = {
@ -71,8 +72,4 @@ __nearbyint (double x)
libc_fesetenv (&env);
return t;
}
weak_alias (__nearbyint, nearbyint)
#ifdef NO_LONG_DOUBLE
strong_alias (__nearbyint, __nearbyintl)
weak_alias (__nearbyint, nearbyintl)
#endif
libm_alias_double (__nearbyint, nearbyint)

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
static const double zero = 0.0;
@ -108,8 +109,4 @@ __remquo (double x, double y, int *quo)
x = -x;
return x;
}
weak_alias (__remquo, remquo)
#ifdef NO_LONG_DOUBLE
strong_alias (__remquo, __remquol)
weak_alias (__remquo, remquol)
#endif
libm_alias_double (__remquo, remquo)

View File

@ -22,6 +22,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
static const double
TWO52[2] = {
@ -59,9 +60,5 @@ __rint (double x)
return w - TWO52[sx];
}
#ifndef __rint
weak_alias (__rint, rint)
# ifdef NO_LONG_DOUBLE
strong_alias (__rint, __rintl)
weak_alias (__rint, rintl)
# endif
libm_alias_double (__rint, rint)
#endif

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
double
@ -76,8 +77,4 @@ __round (double x)
INSERT_WORDS (x, i0, i1);
return x;
}
weak_alias (__round, round)
#ifdef NO_LONG_DOUBLE
strong_alias (__round, __roundl)
weak_alias (__round, roundl)
#endif
libm_alias_double (__round, round)

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
double
@ -54,9 +55,5 @@ __trunc (double x)
return x;
}
#ifndef __trunc
weak_alias (__trunc, trunc)
# ifdef NO_LONG_DOUBLE
strong_alias (__trunc, __truncl)
weak_alias (__trunc, truncl)
# endif
libm_alias_double (__trunc, trunc)
#endif

View File

@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
double
__ceil(double x)
@ -46,9 +47,5 @@ __ceil(double x)
return x;
}
#ifndef __ceil
weak_alias (__ceil, ceil)
# ifdef NO_LONG_DOUBLE
strong_alias (__ceil, __ceill)
weak_alias (__ceil, ceill)
# endif
libm_alias_double (__ceil, ceil)
#endif

View File

@ -33,6 +33,7 @@
#include <math.h>
#include <math_private.h>
#include <stdint.h>
#include <libm-alias-double.h>
/*
* floor(x)
@ -66,9 +67,5 @@ __floor (double x)
return x;
}
#ifndef __floor
weak_alias (__floor, floor)
# ifdef NO_LONG_DOUBLE
strong_alias (__floor, __floorl)
weak_alias (__floor, floorl)
# endif
libm_alias_double (__floor, floor)
#endif

View File

@ -24,6 +24,7 @@
#include <sysdep.h>
#include <math_private.h>
#include <libm-alias-double.h>
long long int
@ -63,20 +64,12 @@ __llround (double x)
return sign * result;
}
weak_alias (__llround, llround)
#ifdef NO_LONG_DOUBLE
strong_alias (__llround, __llroundl)
weak_alias (__llround, llroundl)
#endif
libm_alias_double (__llround, llround)
/* long has the same width as long long on LP64 machines, so use an alias. */
#undef lround
#undef __lround
#ifdef _LP64
strong_alias (__llround, __lround)
weak_alias (__llround, lround)
# ifdef NO_LONG_DOUBLE
strong_alias (__llround, __lroundl)
weak_alias (__llround, lroundl)
# endif
libm_alias_double (__lround, lround)
#endif

View File

@ -21,6 +21,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
/* For LP64, lround is an alias for llround. */
#ifndef _LP64
@ -80,10 +81,6 @@ __lround (double x)
return sign * result;
}
weak_alias (__lround, lround)
# ifdef NO_LONG_DOUBLE
strong_alias (__lround, __lroundl)
weak_alias (__lround, lroundl)
# endif
libm_alias_double (__lround, lround)
#endif

View File

@ -23,6 +23,7 @@
#include <fenv.h>
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
static const double
TWO52[2]={
@ -59,8 +60,4 @@ __nearbyint(double x)
libc_fesetenv (&env);
return t;
}
weak_alias (__nearbyint, nearbyint)
#ifdef NO_LONG_DOUBLE
strong_alias (__nearbyint, __nearbyintl)
weak_alias (__nearbyint, nearbyintl)
#endif
libm_alias_double (__nearbyint, nearbyint)

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
#include <stdint.h>
static const double zero = 0.0;
@ -107,8 +108,4 @@ __remquo (double x, double y, int *quo)
x = -x;
return x;
}
weak_alias (__remquo, remquo)
#ifdef NO_LONG_DOUBLE
strong_alias (__remquo, __remquol)
weak_alias (__remquo, remquol)
#endif
libm_alias_double (__remquo, remquo)

View File

@ -21,6 +21,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
static const double
TWO52[2]={
@ -52,9 +53,5 @@ __rint(double x)
return w-TWO52[sx];
}
#ifndef __rint
weak_alias (__rint, rint)
# ifdef NO_LONG_DOUBLE
strong_alias (__rint, __rintl)
weak_alias (__rint, rintl)
# endif
libm_alias_double (__rint, rint)
#endif

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
#include <stdint.h>
@ -61,8 +62,4 @@ __round (double x)
INSERT_WORDS64 (x, i0);
return x;
}
weak_alias (__round, round)
#ifdef NO_LONG_DOUBLE
strong_alias (__round, __roundl)
weak_alias (__round, roundl)
#endif
libm_alias_double (__round, round)

View File

@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
double
@ -49,9 +50,5 @@ __trunc (double x)
return x;
}
#ifndef __trunc
weak_alias (__trunc, trunc)
# ifdef NO_LONG_DOUBLE
strong_alias (__trunc, __truncl)
weak_alias (__trunc, truncl)
# endif
libm_alias_double (__trunc, trunc)
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_ceil.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, __ceil, ceill, GLIBC_2_0);
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_floor.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, __floor, floorl, GLIBC_2_0);
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_llround.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __llround, llroundl, GLIBC_2_1);
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_lround.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __lround, lroundl, GLIBC_2_1);
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_nearbyint.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1);
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_remquo.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __remquo, remquol, GLIBC_2_1);
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_rint.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, __rint, rintl, GLIBC_2_0);
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_round.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __round, roundl, GLIBC_2_1);
#endif

View File

@ -1,5 +0,0 @@
#include <math_ldbl_opt.h>
#include <sysdeps/ieee754/dbl-64/s_trunc.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __trunc, truncl, GLIBC_2_1);
#endif