Add libm_alias_finite for _finite symbols

This patch adds a new macro, libm_alias_finite, to define all _finite
symbol.  It sets all _finite symbol as compat symbol based on its first
version (obtained from the definition at built generated first-versions.h).

The <fn>f128_finite symbols were introduced in GLIBC 2.26 and so need
special treatment in code that is shared between long double and float128.
It is done by adding a list, similar to internal symbol redifinition,
on sysdeps/ieee754/float128/float128_private.h.

Alpha also needs some tricky changes to ensure we still emit 2 compat
symbols for sqrt(f).

Passes buildmanyglibc.

Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
This commit is contained in:
Wilco Dijkstra 2019-07-16 12:17:22 -03:00 committed by Adhemerval Zanella
parent cf4dfd4617
commit 220622dde5
263 changed files with 605 additions and 351 deletions

View File

@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
#include <float.h>
#include <libm-alias-finite.h>
double
__ieee754_exp10 (double arg)
@ -30,4 +31,4 @@ __ieee754_exp10 (double arg)
replaced sometime (soon?). */
return __ieee754_exp (M_LN10 * arg);
}
strong_alias (__ieee754_exp10, __exp10_finite)
libm_alias_finite (__ieee754_exp10, __exp10)

View File

@ -18,7 +18,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
float
__ieee754_exp10f (float arg)
@ -29,4 +29,4 @@ __ieee754_exp10f (float arg)
this. */
return __ieee754_exp (M_LN10 * arg);
}
strong_alias (__ieee754_exp10f, __exp10f_finite)
libm_alias_finite (__ieee754_exp10f, __exp10f)

View File

@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
#include <float.h>
#include <libm-alias-finite.h>
long double
__ieee754_exp10l (long double arg)
@ -30,4 +31,4 @@ __ieee754_exp10l (long double arg)
replaced sometime (soon?). */
return __ieee754_expl (M_LN10l * arg);
}
strong_alias (__ieee754_exp10l, __exp10l_finite)
libm_alias_finite (__ieee754_exp10, __exp10)

View File

@ -18,7 +18,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static double
__attribute__ ((noinline))
@ -51,4 +51,4 @@ __ieee754_scalb (double x, double fn)
return __scalbn (x, (int) fn);
}
strong_alias (__ieee754_scalb, __scalb_finite)
libm_alias_finite (__ieee754_scalb, __scalb)

View File

@ -18,7 +18,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static float
__attribute__ ((noinline))
@ -51,4 +51,4 @@ __ieee754_scalbf (float x, float fn)
return __scalbnf (x, (int) fn);
}
strong_alias (__ieee754_scalbf, __scalbf_finite)
libm_alias_finite (__ieee754_scalbf, __scalbf)

View File

@ -18,7 +18,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static long double
__attribute__ ((noinline))
@ -51,4 +51,4 @@ __ieee754_scalbl (long double x, long double fn)
return __scalbnl (x, (int) fn);
}
strong_alias (__ieee754_scalbl, __scalbl_finite)
libm_alias_finite (__ieee754_scalbl, __scalbl)

View File

@ -21,6 +21,7 @@
#include <stdlib.h>
#include <soft-fp.h>
#include <quad.h>
#include <libm-alias-finite.h>
long double
__ieee754_sqrtl (const long double a)
@ -36,4 +37,4 @@ __ieee754_sqrtl (const long double a)
FP_HANDLE_EXCEPTIONS;
return c;
}
strong_alias (__ieee754_sqrtl, __sqrtl_finite)
libm_alias_finite (__ieee754_sqrtl, __sqrtl)

View File

@ -17,10 +17,11 @@
<https://www.gnu.org/licenses/>. */
#include <math_private.h>
#include <libm-alias-finite.h>
double
__ieee754_sqrt (double d)
{
return __builtin_sqrt (d);
}
strong_alias (__ieee754_sqrt, __sqrt_finite)
libm_alias_finite (__ieee754_sqrt, __sqrt)

View File

@ -17,10 +17,11 @@
<https://www.gnu.org/licenses/>. */
#include <math_private.h>
#include <libm-alias-finite.h>
float
__ieee754_sqrtf (float s)
{
return __builtin_sqrtf (s);
}
strong_alias (__ieee754_sqrtf, __sqrtf_finite)
libm_alias_finite (__ieee754_sqrtf, __sqrtf)

View File

@ -45,9 +45,9 @@ ENTRY(__ieee754_sqrt)
END(__ieee754_sqrt)
#if SHLIB_COMPAT (libm, GLIBC_2_15, GLIBC_2_18)
strong_alias(__ieee754_sqrt, __sqrt_finite1)
compat_symbol(libm, __sqrt_finite1, __sqrt_finite, GLIBC_2_15)
versioned_symbol(libm, __ieee754_sqrt, __sqrt_finite, GLIBC_2_18)
#else
strong_alias(__ieee754_sqrt, __sqrt_finite)
strong_alias(__ieee754_sqrt, __sqrt_dummy)
compat_symbol(libm, __sqrt_dummy, __sqrt_finite, GLIBC_2_15)
#endif
#if SHLIB_COMPAT (libm, GLIBC_2_18, GLIBC_2_31)
compat_symbol(libm, __ieee754_sqrt, __sqrt_finite, GLIBC_2_18)
#endif

View File

@ -45,9 +45,9 @@ ENTRY(__ieee754_sqrtf)
END(__ieee754_sqrtf)
#if SHLIB_COMPAT (libm, GLIBC_2_15, GLIBC_2_18)
strong_alias(__ieee754_sqrtf, __sqrtf_finite1)
compat_symbol(libm, __sqrtf_finite1, __sqrtf_finite, GLIBC_2_15)
versioned_symbol(libm, __ieee754_sqrtf, __sqrtf_finite, GLIBC_2_18)
#else
strong_alias(__ieee754_sqrtf, __sqrtf_finite)
strong_alias(__ieee754_sqrtf, __sqrtf_dummy)
compat_symbol(libm, __sqrtf_dummy, __sqrtf_finite, GLIBC_2_15)
#endif
#if SHLIB_COMPAT (libm, GLIBC_2_18, GLIBC_2_31)
compat_symbol(libm, __ieee754_sqrtf, __sqrtf_finite, GLIBC_2_18)
#endif

View File

@ -43,7 +43,5 @@ __ieee754_sqrtl (const long double a)
straight-forward as just adding the alias, since a generic Versions file
includes the 2.15 version and the linker uses the first one it sees. */
#if SHLIB_COMPAT (libm, GLIBC_2_15, GLIBC_2_18)
versioned_symbol (libm, __ieee754_sqrtl, __sqrtl_finite, GLIBC_2_18);
#else
strong_alias(__ieee754_sqrtl, __sqrtl_finite)
compat_symbol (libm, __ieee754_sqrtl, __sqrtl_finite, GLIBC_2_18);
#endif

View File

@ -158,30 +158,29 @@ $fixup: \n\
\n\
.end __ieee754_sqrt");
/* Avoid the __sqrt_finite alias that dbl-64/e_sqrt.c would give... */
#undef strong_alias
#define strong_alias(a,b)
/* ... defining our own. */
#if SHLIB_COMPAT (libm, GLIBC_2_15, GLIBC_2_18)
asm (".global __sqrt_finite1; __sqrt_finite1 = __ieee754_sqrt");
asm (".global __sqrt_dummy; __sqrt_dummy = __ieee754_sqrt");
#else
asm (".global __sqrt_finite; __sqrt_finite = __ieee754_sqrt");
asm (".global __sqrt_finite; __sqrt_finite = __ieee754_sqrt");
#endif
static double __full_ieee754_sqrt(double) __attribute_used__;
#define __ieee754_sqrt __full_ieee754_sqrt
#elif SHLIB_COMPAT (libm, GLIBC_2_15, GLIBC_2_18)
# define __sqrt_finite __sqrt_finite1
strong_alias (__ieee754_sqrt, __sqrt_dummy)
#define __ieee754_sqrt __ieee754_sqrt
#endif /* _IEEE_FP_INEXACT */
#include <sysdeps/ieee754/dbl-64/e_sqrt.c>
#undef __ieee754_sqrt
/* Work around forgotten symbol in alphaev6 build. */
#if SHLIB_COMPAT (libm, GLIBC_2_15, GLIBC_2_18)
# undef __sqrt_finite
# undef __ieee754_sqrt
compat_symbol (libm, __sqrt_finite1, __sqrt_finite, GLIBC_2_15);
versioned_symbol (libm, __ieee754_sqrt, __sqrt_finite, GLIBC_2_18);
compat_symbol (libm, __sqrt_dummy, __sqrt_finite, GLIBC_2_15);
#endif
#if SHLIB_COMPAT (libm, GLIBC_2_18, GLIBC_2_31)
compat_symbol (libm, __ieee754_sqrt, __sqrt_finite, GLIBC_2_18);
#endif

View File

@ -1,14 +1,13 @@
#include <shlib-compat.h>
#if SHLIB_COMPAT (libm, GLIBC_2_15, GLIBC_2_18)
# define __sqrtf_finite __sqrtf_finite1
#endif
#define __ieee754_sqrtf __ieee754_sqrtf
#include <sysdeps/ieee754/flt-32/e_sqrtf.c>
/* Work around forgotten symbol in alphaev6 build. */
#if SHLIB_COMPAT (libm, GLIBC_2_15, GLIBC_2_18)
# undef __sqrtf_finite
compat_symbol (libm, __sqrtf_finite1, __sqrtf_finite, GLIBC_2_15);
versioned_symbol (libm, __ieee754_sqrtf, __sqrtf_finite, GLIBC_2_18);
strong_alias(__ieee754_sqrtf, __sqrtf_dummy)
compat_symbol (libm, __sqrtf_dummy, __sqrtf_finite, GLIBC_2_15);
#endif
#if SHLIB_COMPAT (libm, GLIBC_2_18, GLIBC_2_31)
compat_symbol (libm, __ieee754_sqrtf, __sqrtf_finite, GLIBC_2_18);
#endif

View File

@ -26,6 +26,7 @@
/* Use VFP square root instruction. */
# include <math.h>
# include <sysdep.h>
# include <libm-alias-finite.h>
double
__ieee754_sqrt (double x)
@ -40,6 +41,6 @@ __ieee754_sqrt (double x)
# endif
return ret;
}
strong_alias (__ieee754_sqrt, __sqrt_finite)
libm_alias_finite (__ieee754_sqrt, __sqrt)
#endif

View File

@ -26,6 +26,7 @@
/* Use VFP square root instruction. */
# include <math.h>
# include <sysdep.h>
# include <libm-alias-finite.h>
float
__ieee754_sqrtf (float x)
@ -40,6 +41,6 @@ __ieee754_sqrtf (float x)
# endif
return ret;
}
strong_alias (__ieee754_sqrtf, __sqrtf_finite)
libm_alias_finite (__ieee754_sqrtf, __sqrtf)
#endif

View File

@ -75,8 +75,8 @@
#endif
#ifndef declare_mgen_finite_alias_x
#define declare_mgen_finite_alias_x(from, to) \
strong_alias (from, to ## _finite)
#define declare_mgen_finite_alias_x(from, to) \
libm_alias_finite (from, to)
#endif
#ifndef declare_mgen_finite_alias_s
@ -117,6 +117,7 @@
/* Needed to evaluate M_MANT_DIG below. */
#include <float.h>
#include <libm-alias-finite.h>
/* Use a special epsilon value for IBM long double
to avoid spurious overflows/underflows. */

View File

@ -4,6 +4,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
RCSID("$NetBSD: e_acos.S,v 1.4 1995/05/08 23:44:37 jtc Exp $")
@ -22,4 +23,4 @@ ENTRY(__ieee754_acos)
fpatan /* atan (sqrt(1 - x^2) / x) */
ret
END (__ieee754_acos)
strong_alias (__ieee754_acos, __acos_finite)
libm_alias_finite (__ieee754_acos, __acos)

View File

@ -5,6 +5,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
RCSID("$NetBSD: $")
@ -21,4 +22,4 @@ ENTRY(__ieee754_acosf)
fpatan
ret
END (__ieee754_acosf)
strong_alias (__ieee754_acosf, __acosf_finite)
libm_alias_finite (__ieee754_acosf, __acosf)

View File

@ -18,6 +18,7 @@
<https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -98,4 +99,4 @@ ENTRY(__ieee754_acosh)
fdiv %st, %st(0)
ret
END(__ieee754_acosh)
strong_alias (__ieee754_acosh, __acosh_finite)
libm_alias_finite (__ieee754_acosh, __acosh)

View File

@ -18,6 +18,7 @@
<https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -98,4 +99,4 @@ ENTRY(__ieee754_acoshf)
fdiv %st, %st(0)
ret
END(__ieee754_acoshf)
strong_alias (__ieee754_acoshf, __acoshf_finite)
libm_alias_finite (__ieee754_acoshf, __acoshf)

View File

@ -18,6 +18,7 @@
<https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -104,4 +105,4 @@ ENTRY(__ieee754_acoshl)
fdiv %st, %st(0)
ret
END(__ieee754_acoshl)
strong_alias (__ieee754_acoshl, __acoshl_finite)
libm_alias_finite (__ieee754_acoshl, __acoshl)

View File

@ -6,6 +6,7 @@
*/
#include <math_private.h>
#include <libm-alias-finite.h>
long double
__ieee754_acosl (long double x)
@ -26,4 +27,4 @@ __ieee754_acosl (long double x)
: "=t" (res) : "0" (x) : "st(1)");
return res;
}
strong_alias (__ieee754_acosl, __acosl_finite)
libm_alias_finite (__ieee754_acosl, __acosl)

View File

@ -5,6 +5,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
RCSID("$NetBSD: e_asin.S,v 1.4 1995/05/08 23:45:40 jtc Exp $")
@ -35,4 +36,4 @@ ENTRY(__ieee754_asin)
DBL_CHECK_FORCE_UFLOW
ret
END (__ieee754_asin)
strong_alias (__ieee754_asin, __asin_finite)
libm_alias_finite (__ieee754_asin, __asin)

View File

@ -6,6 +6,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
RCSID("$NetBSD: $")
@ -36,4 +37,4 @@ ENTRY(__ieee754_asinf)
FLT_CHECK_FORCE_UFLOW
ret
END (__ieee754_asinf)
strong_alias (__ieee754_asinf, __asinf_finite)
libm_alias_finite (__ieee754_asinf, __asinf)

View File

@ -5,6 +5,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
RCSID("$NetBSD: e_atan2.S,v 1.4 1995/05/08 23:46:28 jtc Exp $")
@ -27,4 +28,4 @@ ENTRY(__ieee754_atan2)
DBL_CHECK_FORCE_UFLOW_NARROW
ret
END (__ieee754_atan2)
strong_alias (__ieee754_atan2, __atan2_finite)
libm_alias_finite (__ieee754_atan2, __atan2)

View File

@ -5,6 +5,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
RCSID("$NetBSD: e_atan2f.S,v 1.1 1995/05/08 23:35:10 jtc Exp $")
@ -27,4 +28,4 @@ ENTRY(__ieee754_atan2f)
FLT_CHECK_FORCE_UFLOW_NARROW
ret
END (__ieee754_atan2f)
strong_alias (__ieee754_atan2f, __atan2f_finite)
libm_alias_finite (__ieee754_atan2f, __atan2f)

View File

@ -6,6 +6,7 @@
*/
#include <math_private.h>
#include <libm-alias-finite.h>
long double
__ieee754_atan2l (long double y, long double x)
@ -16,4 +17,4 @@ __ieee754_atan2l (long double y, long double x)
return res;
}
strong_alias (__ieee754_atan2l, __atan2l_finite)
libm_alias_finite (__ieee754_atan2l, __atan2l)

View File

@ -19,6 +19,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
.section .rodata
@ -109,4 +110,4 @@ ENTRY(__ieee754_atanh)
6: fldl 4(%esp)
ret
END(__ieee754_atanh)
strong_alias (__ieee754_atanh, __atanh_finite)
libm_alias_finite (__ieee754_atanh, __atanh)

View File

@ -19,6 +19,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
.section .rodata
@ -106,4 +107,4 @@ ENTRY(__ieee754_atanhf)
5: flds 4(%esp)
ret
END(__ieee754_atanhf)
strong_alias (__ieee754_atanhf, __atanhf_finite)
libm_alias_finite (__ieee754_atanhf, __atanhf)

View File

@ -18,6 +18,7 @@
<https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata
@ -124,4 +125,4 @@ ENTRY(__ieee754_atanhl)
fadd %st(0)
ret
END(__ieee754_atanhl)
strong_alias (__ieee754_atanhl, __atanhl_finite)
libm_alias_finite (__ieee754_atanhl, __atanhl)

View File

@ -5,6 +5,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
DEFINE_DBL_MIN
@ -71,3 +72,4 @@ ENTRY(__exp_finite)
DBL_NARROW_EVAL_UFLOW_NONNEG
ret
END(__exp_finite)
libm_alias_finite (__exp_finite, __exp)

View File

@ -4,6 +4,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
DEFINE_DBL_MIN
@ -50,4 +51,4 @@ ENTRY(__ieee754_exp10)
fldz /* Set result to 0. */
2: ret
END (__ieee754_exp10)
strong_alias (__ieee754_exp10, __exp10_finite)
libm_alias_finite (__ieee754_exp10, __exp10)

View File

@ -4,6 +4,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
DEFINE_FLT_MIN
@ -50,4 +51,4 @@ ENTRY(__ieee754_exp10f)
fldz /* Set result to 0. */
2: ret
END (__ieee754_exp10f)
strong_alias (__ieee754_exp10f, __exp10f_finite)
libm_alias_finite (__ieee754_exp10f, __exp10f)

View File

@ -6,6 +6,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
DEFINE_DBL_MIN
@ -49,4 +50,4 @@ ENTRY(__ieee754_exp2)
fldz /* Set result to 0. */
2: ret
END (__ieee754_exp2)
strong_alias (__ieee754_exp2, __exp2_finite)
libm_alias_finite (__ieee754_exp2, __exp2)

View File

@ -6,6 +6,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
DEFINE_LDBL_MIN
@ -57,4 +58,4 @@ ENTRY(__ieee754_exp2l)
fldz /* Set result to 0. */
2: ret
END (__ieee754_exp2l)
strong_alias (__ieee754_exp2l, __exp2l_finite)
libm_alias_finite (__ieee754_exp2l, __exp2l)

View File

@ -25,18 +25,16 @@
#include <libm-alias-ldouble.h>
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
#ifdef USE_AS_EXP10L
# define IEEE754_EXPL __ieee754_exp10l
# define EXPL_FINITE __exp10l_finite
# define FLDLOG fldl2t
#elif defined USE_AS_EXPM1L
# define IEEE754_EXPL __expm1l
# undef EXPL_FINITE
# define FLDLOG fldl2e
#else
# define IEEE754_EXPL __ieee754_expl
# define EXPL_FINITE __expl_finite
# define FLDLOG fldl2e
#endif
@ -219,9 +217,12 @@ ENTRY(IEEE754_EXPL)
fadd %st
ret
END(IEEE754_EXPL)
#ifdef USE_AS_EXPM1L
libm_hidden_def (__expm1l)
libm_alias_ldouble (__expm1, expm1)
#elif defined USE_AS_EXP10L
libm_alias_finite (__ieee754_exp10l, __exp10l)
#else
strong_alias (IEEE754_EXPL, EXPL_FINITE)
libm_alias_finite (__ieee754_expl, __expl)
#endif

View File

@ -4,6 +4,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
ENTRY(__ieee754_fmod)
fldl 12(%esp)
@ -15,4 +16,4 @@ ENTRY(__ieee754_fmod)
fstp %st(1)
ret
END (__ieee754_fmod)
strong_alias (__ieee754_fmod, __fmod_finite)
libm_alias_finite (__ieee754_fmod, __fmod)

View File

@ -5,6 +5,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
ENTRY(__ieee754_fmodf)
flds 8(%esp)
@ -16,4 +17,4 @@ ENTRY(__ieee754_fmodf)
fstp %st(1)
ret
END(__ieee754_fmodf)
strong_alias (__ieee754_fmodf, __fmodf_finite)
libm_alias_finite (__ieee754_fmodf, __fmodf)

View File

@ -6,6 +6,7 @@
*/
#include <math_private.h>
#include <libm-alias-finite.h>
long double
__ieee754_fmodl (long double x, long double y)
@ -20,4 +21,4 @@ __ieee754_fmodl (long double x, long double y)
: "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
return res;
}
strong_alias (__ieee754_fmodl, __fmodl_finite)
libm_alias_finite (__ieee754_fmodl, __fmodl)

View File

@ -19,6 +19,7 @@
#include <sysdep.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
DEFINE_DBL_MIN
@ -72,4 +73,4 @@ ENTRY(__ieee754_hypot)
jmp 2b
END(__ieee754_hypot)
strong_alias (__ieee754_hypot, __hypot_finite)
libm_alias_finite (__ieee754_hypot, __hypot)

View File

@ -19,6 +19,7 @@
#include <sysdep.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
.text
ENTRY(__ieee754_hypotf)
@ -61,4 +62,4 @@ ENTRY(__ieee754_hypotf)
jmp 2b
END(__ieee754_hypotf)
strong_alias (__ieee754_hypotf, __hypotf_finite)
libm_alias_finite (__ieee754_hypotf, __hypotf)

View File

@ -6,6 +6,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -90,3 +91,4 @@ ENTRY(__log_finite)
fyl2xp1 // log(x)
ret
END(__log_finite)
libm_alias_finite (__log_finite, __log)

View File

@ -6,6 +6,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -65,4 +66,4 @@ ENTRY(__ieee754_log10)
fstp %st(1)
ret
END (__ieee754_log10)
strong_alias (__ieee754_log10, __log10_finite)
libm_alias_finite (__ieee754_log10, __log10)

View File

@ -7,6 +7,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -66,4 +67,4 @@ ENTRY(__ieee754_log10f)
fstp %st(1)
ret
END (__ieee754_log10f)
strong_alias (__ieee754_log10f, __log10f_finite)
libm_alias_finite (__ieee754_log10f, __log10f)

View File

@ -8,6 +8,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -68,4 +69,4 @@ ENTRY(__ieee754_log10l)
fadd %st(0)
ret
END(__ieee754_log10l)
strong_alias (__ieee754_log10l, __log10l_finite)
libm_alias_finite (__ieee754_log10l, __log10l)

View File

@ -7,6 +7,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -66,4 +67,4 @@ ENTRY(__ieee754_log2)
fstp %st(1)
ret
END (__ieee754_log2)
strong_alias (__ieee754_log2, __log2_finite)
libm_alias_finite (__ieee754_log2, __log2)

View File

@ -7,6 +7,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -67,4 +68,4 @@ ENTRY(__ieee754_log2l)
fadd %st(0)
ret
END (__ieee754_log2l)
strong_alias (__ieee754_log2l, __log2l_finite)
libm_alias_finite (__ieee754_log2l, __log2l)

View File

@ -6,7 +6,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -95,3 +95,4 @@ ENTRY(__logl_finite)
fyl2xp1 // log(x)
ret
END(__logl_finite)
libm_alias_finite (__logl_finite, __logl)

View File

@ -19,6 +19,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -453,4 +454,4 @@ ENTRY(__ieee754_pow)
ret
END(__ieee754_pow)
strong_alias (__ieee754_pow, __pow_finite)
libm_alias_finite (__ieee754_pow, __pow)

View File

@ -19,6 +19,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -456,4 +457,4 @@ ENTRY(__ieee754_powl)
ret
END(__ieee754_powl)
strong_alias (__ieee754_powl, __powl_finite)
libm_alias_finite (__ieee754_powl, __powl)

View File

@ -4,6 +4,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
ENTRY(__ieee754_remainder)
fldl 12(%esp)
@ -15,4 +16,4 @@ ENTRY(__ieee754_remainder)
fstp %st(1)
ret
END (__ieee754_remainder)
strong_alias (__ieee754_remainder, __remainder_finite)
libm_alias_finite (__ieee754_remainder, __remainder)

View File

@ -4,6 +4,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
ENTRY(__ieee754_remainderf)
flds 8(%esp)
@ -15,4 +16,4 @@ ENTRY(__ieee754_remainderf)
fstp %st(1)
ret
END (__ieee754_remainderf)
strong_alias (__ieee754_remainderf, __remainderf_finite)
libm_alias_finite (__ieee754_remainderf, __remainderf)

View File

@ -6,6 +6,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
ENTRY(__ieee754_remainderl)
fldt 16(%esp)
@ -17,4 +18,4 @@ ENTRY(__ieee754_remainderl)
fstp %st(1)
ret
END (__ieee754_remainderl)
strong_alias (__ieee754_remainderl, __remainderl_finite)
libm_alias_finite (__ieee754_remainderl, __remainderl)

View File

@ -7,6 +7,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
.section .rodata
@ -97,4 +98,4 @@ ENTRY(__ieee754_scalb)
fdiv %st
ret
END(__ieee754_scalb)
strong_alias (__ieee754_scalb, __scalb_finite)
libm_alias_finite (__ieee754_scalb, __scalb)

View File

@ -8,6 +8,7 @@
#include <machine/asm.h>
#include <i386-math-asm.h>
#include <libm-alias-finite.h>
.section .rodata
@ -99,4 +100,4 @@ ENTRY(__ieee754_scalbf)
fdiv %st
ret
END(__ieee754_scalbf)
strong_alias (__ieee754_scalbf, __scalbf_finite)
libm_alias_finite (__ieee754_scalbf, __scalbf)

View File

@ -8,6 +8,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata
@ -87,4 +88,4 @@ ENTRY(__ieee754_scalbl)
fdiv %st
ret
END(__ieee754_scalbl)
strong_alias (__ieee754_scalbl, __scalbl_finite)
libm_alias_finite (__ieee754_scalbl, __scalbl)

View File

@ -4,6 +4,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
ENTRY(__ieee754_sqrt)
fldl 4(%esp)
@ -20,4 +21,4 @@ ENTRY(__ieee754_sqrt)
cfi_adjust_cfa_offset (-8)
ret
END (__ieee754_sqrt)
strong_alias (__ieee754_sqrt, __sqrt_finite)
libm_alias_finite (__ieee754_sqrt, __sqrt)

View File

@ -4,10 +4,11 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
ENTRY(__ieee754_sqrtf)
flds 4(%esp)
fsqrt
ret
END (__ieee754_sqrtf)
strong_alias (__ieee754_sqrtf, __sqrtf_finite)
libm_alias_finite (__ieee754_sqrtf, __sqrtf)

View File

@ -6,6 +6,7 @@
*/
#include <math_private.h>
#include <libm-alias-finite.h>
#undef __ieee754_sqrtl
long double
@ -17,4 +18,4 @@ __ieee754_sqrtl (long double x)
return res;
}
strong_alias (__ieee754_sqrtl, __sqrtl_finite)
libm_alias_finite (__ieee754_sqrtl, __sqrtl)

View File

@ -6,7 +6,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.text
ENTRY(__ieee754_log)
@ -27,3 +27,4 @@ ENTRY(__log_finite)
fyl2x // log(x)
ret
END(__log_finite)
libm_alias_finite (__log_finite, __log)

View File

@ -8,6 +8,7 @@
*/
#include <machine/asm.h>
#include <libm-alias-finite.h>
.section .rodata.cst8,"aM",@progbits,8
@ -92,3 +93,4 @@ ENTRY(__logl_finite)
fyl2xp1 // log(x)
ret
END(__logl_finite)
libm_alias_finite (__logl_finite, __logl)

View File

@ -20,12 +20,12 @@ extern float __redirect_exp2f (float);
#define SYMBOL_NAME exp2f
#include "ifunc-sse2.h"
#include <libm-alias-finite.h>
libc_ifunc_redirected (__redirect_exp2f, __exp2f, IFUNC_SELECTOR ());
#include <libm-alias-float.h>
#ifdef SHARED
# include <shlib-compat.h>
versioned_symbol (libm, __exp2f, exp2f, GLIBC_2_27);
libm_alias_float_other (__exp2, exp2)
#else
@ -33,7 +33,7 @@ libm_alias_float (__exp2, exp2)
#endif
strong_alias (__exp2f, __ieee754_exp2f)
strong_alias (__exp2f, __exp2f_finite)
libm_alias_finite (__ieee754_exp2f, __exp2f)
#define __exp2f __exp2f_ia32
#include <sysdeps/ieee754/flt-32/e_exp2f.c>

View File

@ -20,6 +20,7 @@ extern float __redirect_expf (float);
#define SYMBOL_NAME expf
#include "ifunc-sse2.h"
#include <libm-alias-finite.h>
libc_ifunc_redirected (__redirect_expf, __expf, IFUNC_SELECTOR ());
@ -28,7 +29,6 @@ libc_ifunc_redirected (__redirect_expf, __expf, IFUNC_SELECTOR ());
__hidden_ver1 (__expf_ia32, __GI___expf, __redirect_expf)
__attribute__ ((visibility ("hidden"))) __THROW;
# include <shlib-compat.h>
versioned_symbol (libm, __expf, expf, GLIBC_2_27);
libm_alias_float_other (__exp, exp)
#else
@ -36,7 +36,7 @@ libm_alias_float (__exp, exp)
#endif
strong_alias (__expf, __ieee754_expf)
strong_alias (__expf, __expf_finite)
libm_alias_finite (__ieee754_expf, __expf)
#define __expf __expf_ia32
#include <sysdeps/ieee754/flt-32/e_expf.c>

View File

@ -20,6 +20,7 @@ extern float __redirect_log2f (float);
#define SYMBOL_NAME log2f
#include "ifunc-sse2.h"
#include <libm-alias-finite.h>
libc_ifunc_redirected (__redirect_log2f, __log2f, IFUNC_SELECTOR ());
@ -28,7 +29,6 @@ libc_ifunc_redirected (__redirect_log2f, __log2f, IFUNC_SELECTOR ());
__hidden_ver1 (__log2f_ia32, __GI___log2f, __redirect_log2f)
__attribute__ ((visibility ("hidden"))) __THROW;
# include <shlib-compat.h>
versioned_symbol (libm, __log2f, log2f, GLIBC_2_27);
libm_alias_float_other (__log2, log2)
#else
@ -36,7 +36,7 @@ libm_alias_float (__log2, log2)
#endif
strong_alias (__log2f, __ieee754_log2f)
strong_alias (__log2f, __log2f_finite)
libm_alias_finite (__ieee754_log2f, __log2f)
#define __log2f __log2f_ia32
#include <sysdeps/ieee754/flt-32/e_log2f.c>

View File

@ -20,6 +20,7 @@ extern float __redirect_logf (float);
#define SYMBOL_NAME logf
#include "ifunc-sse2.h"
#include <libm-alias-finite.h>
libc_ifunc_redirected (__redirect_logf, __logf, IFUNC_SELECTOR ());
@ -28,7 +29,6 @@ libc_ifunc_redirected (__redirect_logf, __logf, IFUNC_SELECTOR ());
__hidden_ver1 (__logf_ia32, __GI___logf, __redirect_logf)
__attribute__ ((visibility ("hidden"))) __THROW;
# include <shlib-compat.h>
versioned_symbol (libm, __logf, logf, GLIBC_2_27);
libm_alias_float_other (__log, log)
#else
@ -36,7 +36,7 @@ libm_alias_float (__log, log)
#endif
strong_alias (__logf, __ieee754_logf)
strong_alias (__logf, __logf_finite)
libm_alias_finite (__ieee754_logf, __logf)
#define __logf __logf_ia32
#include <sysdeps/ieee754/flt-32/e_logf.c>

View File

@ -23,6 +23,7 @@
#define SYMBOL_NAME powf
#include "ifunc-sse2.h"
#include <libm-alias-finite.h>
libc_ifunc_redirected (__redirect_powf, __powf, IFUNC_SELECTOR ());
@ -31,7 +32,6 @@ libc_ifunc_redirected (__redirect_powf, __powf, IFUNC_SELECTOR ());
__hidden_ver1 (__powf_ia32, __GI___powf, __redirect_powf)
__attribute__ ((visibility ("hidden")));
# include <shlib-compat.h>
versioned_symbol (libm, __powf, powf, GLIBC_2_27);
libm_alias_float_other (__pow, pow)
#else
@ -39,7 +39,7 @@ libm_alias_float (__pow, pow)
#endif
strong_alias (__powf, __ieee754_powf)
strong_alias (__powf, __powf_finite)
libm_alias_finite (__ieee754_powf, __powf)
#define __powf __powf_ia32
#include <sysdeps/ieee754/flt-32/e_powf.c>

View File

@ -26,6 +26,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const double
one = 1.0,
@ -66,4 +67,4 @@ __ieee754_acosh (double x)
return __log1p (t + sqrt (2.0 * t + t * t));
}
}
strong_alias (__ieee754_acosh, __acosh_finite)
libm_alias_finite (__ieee754_acosh, __acosh)

View File

@ -43,6 +43,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
#ifndef SECTION
# define SECTION
@ -334,7 +335,7 @@ __ieee754_asin(double x){
}
}
#ifndef __ieee754_asin
strong_alias (__ieee754_asin, __asin_finite)
libm_alias_finite (__ieee754_asin, __asin)
#endif
/*******************************************************************/
@ -644,5 +645,5 @@ __ieee754_acos(double x)
}
}
#ifndef __ieee754_acos
strong_alias (__ieee754_acos, __acos_finite)
libm_alias_finite (__ieee754_acos, __acos)
#endif

View File

@ -48,6 +48,7 @@
#include <math_private.h>
#include <fenv_private.h>
#include <stap-probe.h>
#include <libm-alias-finite.h>
#ifndef SECTION
# define SECTION
@ -570,7 +571,7 @@ __ieee754_atan2 (double y, double x)
}
#ifndef __ieee754_atan2
strong_alias (__ieee754_atan2, __atan2_finite)
libm_alias_finite (__ieee754_atan2, __atan2)
#endif
/* Treat the Denormalized case */

View File

@ -41,6 +41,7 @@
#include <math-barriers.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
static const double huge = 1e300;
@ -73,4 +74,4 @@ __ieee754_atanh (double x)
return copysign (t, x);
}
strong_alias (__ieee754_atanh, __atanh_finite)
libm_alias_finite (__ieee754_atanh, __atanh)

View File

@ -34,6 +34,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const double one = 1.0, half = 0.5, huge = 1.0e300;
@ -86,4 +87,4 @@ __ieee754_cosh (double x)
/* |x| > overflowthresold, cosh(x) overflow */
return math_narrow_eval (huge * huge);
}
strong_alias (__ieee754_cosh, __cosh_finite)
libm_alias_finite (__ieee754_cosh, __cosh)

View File

@ -21,7 +21,7 @@
#include <math-barriers.h>
#include <math-narrow-eval.h>
#include <math-svid-compat.h>
#include <shlib-compat.h>
#include <libm-alias-finite.h>
#include <libm-alias-double.h>
#include "math_config.h"
@ -159,7 +159,7 @@ __exp (double x)
#ifndef __exp
hidden_def (__exp)
strong_alias (__exp, __ieee754_exp)
strong_alias (__exp, __exp_finite)
libm_alias_finite (__ieee754_exp, __exp)
# if LIBM_SVID_COMPAT
versioned_symbol (libm, __exp, exp, GLIBC_2_29);
libm_alias_double_other (__exp, exp)

View File

@ -18,6 +18,7 @@
#include <math.h>
#include <math_private.h>
#include <float.h>
#include <libm-alias-finite.h>
static const double log10_high = 0x2.4d7637p0;
static const double log10_low = 0x7.6aaa2b05ba95cp-28;
@ -47,4 +48,4 @@ __ieee754_exp10 (double arg)
exp_low = arg_high * log10_low + arg_low * M_LN10;
return __ieee754_exp (exp_high) * __ieee754_exp (exp_low);
}
strong_alias (__ieee754_exp10, __exp10_finite)
libm_alias_finite (__ieee754_exp10, __exp10)

View File

@ -21,7 +21,7 @@
#include <math-barriers.h>
#include <math-narrow-eval.h>
#include <math-svid-compat.h>
#include <shlib-compat.h>
#include <libm-alias-finite.h>
#include <libm-alias-double.h>
#include "math_config.h"
@ -145,7 +145,7 @@ __exp2 (double x)
}
#ifndef __exp2
strong_alias (__exp2, __ieee754_exp2)
strong_alias (__exp2, __exp2_finite)
libm_alias_finite (__ieee754_exp2, __exp2)
# if LIBM_SVID_COMPAT
versioned_symbol (libm, __exp2, exp2, GLIBC_2_29);
libm_alias_double_other (__exp2, exp2)

View File

@ -17,6 +17,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const double one = 1.0, Zero[] = { 0.0, -0.0, };
@ -170,4 +171,4 @@ __ieee754_fmod (double x, double y)
}
return x; /* exact output */
}
strong_alias (__ieee754_fmod, __fmod_finite)
libm_alias_finite (__ieee754_fmod, __fmod)

View File

@ -23,6 +23,7 @@
#include <fenv_private.h>
#include <math-underflow.h>
#include <float.h>
#include <libm-alias-finite.h>
/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
approximation to gamma function. */
@ -220,4 +221,4 @@ __ieee754_gamma_r (double x, int *signgamp)
else
return ret;
}
strong_alias (__ieee754_gamma_r, __gamma_r_finite)
libm_alias_finite (__ieee754_gamma_r, __gamma_r)

View File

@ -45,6 +45,7 @@
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
double
__ieee754_hypot (double x, double y)
@ -159,4 +160,6 @@ __ieee754_hypot (double x, double y)
else
return w;
}
strong_alias (__ieee754_hypot, __hypot_finite)
#ifndef __ieee754_hypot
libm_alias_finite (__ieee754_hypot, __hypot)
#endif

View File

@ -61,6 +61,7 @@
#include <math.h>
#include <math-barriers.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static double pzero (double), qzero (double);
@ -143,7 +144,7 @@ __ieee754_j0 (double x)
return ((one + u) * (one - u) + z * (r / s));
}
}
strong_alias (__ieee754_j0, __j0_finite)
libm_alias_finite (__ieee754_j0, __j0)
static const double
U[] = { -7.38042951086872317523e-02, /* 0xBFB2E4D6, 0x99CBD01F */
@ -223,7 +224,7 @@ __ieee754_y0 (double x)
v = v1 + z2 * v2 + z4 * V[3];
return (u / v + tpi * (__ieee754_j0 (x) * __ieee754_log (x)));
}
strong_alias (__ieee754_y0, __y0_finite)
libm_alias_finite (__ieee754_y0, __y0)
/* The asymptotic expansions of pzero is
* 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x.

View File

@ -64,6 +64,7 @@
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
static double pone (double), qone (double);
@ -147,7 +148,7 @@ __ieee754_j1 (double x)
s = s1 + z2 * s2 + z4 * s3;
return (x * 0.5 + r / s);
}
strong_alias (__ieee754_j1, __j1_finite)
libm_alias_finite (__ieee754_j1, __j1)
static const double U0[5] = {
-1.96057090646238940668e-01, /* 0xBFC91866, 0x143CBC8A */
@ -230,7 +231,7 @@ __ieee754_y1 (double x)
v = v1 + z2 * v2 + z4 * v3;
return (x * (u / v) + tpi * (__ieee754_j1 (x) * __ieee754_log (x) - one / x));
}
strong_alias (__ieee754_y1, __y1_finite)
libm_alias_finite (__ieee754_y1, __y1)
/* For x >= 8, the asymptotic expansions of pone is
* 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x.

View File

@ -43,6 +43,7 @@
#include <math_private.h>
#include <fenv_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
static const double
invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */
@ -258,7 +259,7 @@ __ieee754_jn (int n, double x)
math_check_force_underflow (ret);
return ret;
}
strong_alias (__ieee754_jn, __jn_finite)
libm_alias_finite (__ieee754_jn, __jn)
double
__ieee754_yn (int n, double x)
@ -349,4 +350,4 @@ __ieee754_yn (int n, double x)
ret = copysign (DBL_MAX, ret) * DBL_MAX;
return ret;
}
strong_alias (__ieee754_yn, __yn_finite)
libm_alias_finite (__ieee754_yn, __yn)

View File

@ -81,6 +81,7 @@
#include <math-narrow-eval.h>
#include <math_private.h>
#include <libc-diag.h>
#include <libm-alias-finite.h>
static const double
two52= 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
@ -308,4 +309,4 @@ __ieee754_lgamma_r(double x, int *signgamp)
DIAG_POP_NEEDS_COMMENT;
return r;
}
strong_alias (__ieee754_lgamma_r, __lgamma_r_finite)
libm_alias_finite (__ieee754_lgamma_r, __lgamma_r)

View File

@ -19,7 +19,7 @@
#include <math.h>
#include <stdint.h>
#include <math-svid-compat.h>
#include <shlib-compat.h>
#include <libm-alias-finite.h>
#include <libm-alias-double.h>
#include "math_config.h"
@ -132,7 +132,7 @@ __log (double x)
}
#ifndef __log
strong_alias (__log, __ieee754_log)
strong_alias (__log, __log_finite)
libm_alias_finite (__ieee754_log, __log)
# if LIBM_SVID_COMPAT
versioned_symbol (libm, __log, log, GLIBC_2_29);
libm_alias_double_other (__log, log)

View File

@ -46,6 +46,7 @@
#include <math.h>
#include <math_private.h>
#include <fix-int-fp-convert-zero.h>
#include <libm-alias-finite.h>
static const double two54 = 1.80143985094819840000e+16; /* 0x43500000, 0x00000000 */
static const double ivln10 = 4.34294481903251816668e-01; /* 0x3FDBCB7B, 0x1526E50E */
@ -84,5 +85,4 @@ __ieee754_log10 (double x)
z = y * log10_2lo + ivln10 * __ieee754_log (x);
return z + y * log10_2hi;
}
strong_alias (__ieee754_log10, __log10_finite)
libm_alias_finite (__ieee754_log10, __log10)

View File

@ -19,7 +19,7 @@
#include <math.h>
#include <stdint.h>
#include <math-svid-compat.h>
#include <shlib-compat.h>
#include <libm-alias-finite.h>
#include <libm-alias-double.h>
#include "math_config.h"
@ -141,7 +141,7 @@ __log2 (double x)
}
#ifndef __log2
strong_alias (__log2, __ieee754_log2)
strong_alias (__log2, __log2_finite)
libm_alias_finite (__ieee754_log2, __log2)
# if LIBM_SVID_COMPAT
versioned_symbol (libm, __log2, log2, GLIBC_2_29);
libm_alias_double_other (__log2, log2)

View File

@ -21,7 +21,7 @@
#include <math-barriers.h>
#include <math-narrow-eval.h>
#include <math-svid-compat.h>
#include <shlib-compat.h>
#include <libm-alias-finite.h>
#include <libm-alias-double.h>
#include "math_config.h"
@ -380,7 +380,7 @@ __pow (double x, double y)
}
#ifndef __pow
strong_alias (__pow, __ieee754_pow)
strong_alias (__pow, __pow_finite)
libm_alias_finite (__ieee754_pow, __pow)
# if LIBM_SVID_COMPAT
versioned_symbol (libm, __pow, pow, GLIBC_2_29);
libm_alias_double_other (__pow, pow)

View File

@ -36,6 +36,7 @@
#include <math.h>
#include <math_private.h>
#include <fenv_private.h>
#include <libm-alias-finite.h>
/**************************************************************************/
/* An ultimate remainder routine. Given two IEEE double machine numbers x */
@ -150,4 +151,4 @@ __ieee754_remainder (double x, double y)
}
}
}
strong_alias (__ieee754_remainder, __remainder_finite)
libm_alias_finite (__ieee754_remainder, __remainder)

View File

@ -37,6 +37,7 @@ static char rcsid[] = "$NetBSD: e_sinh.c,v 1.7 1995/05/10 20:46:13 jtc Exp $";
#include <math-narrow-eval.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
static const double one = 1.0, shuge = 1.0e307;
@ -89,4 +90,4 @@ __ieee754_sinh (double x)
/* |x| > overflowthresold, sinh(x) overflow */
return math_narrow_eval (x * shuge);
}
strong_alias (__ieee754_sinh, __sinh_finite)
libm_alias_finite (__ieee754_sinh, __sinh)

View File

@ -40,6 +40,7 @@
#include <math-barriers.h>
#include <math_private.h>
#include <fenv_private.h>
#include <libm-alias-finite.h>
/*********************************************************************/
/* An ultimate sqrt routine. Given an IEEE double machine number x */
@ -138,4 +139,6 @@ __ieee754_sqrt (double x)
return 0x1p-256 * __ieee754_sqrt (x * 0x1p512);
}
}
strong_alias (__ieee754_sqrt, __sqrt_finite)
#ifndef __ieee754_sqrt
libm_alias_finite (__ieee754_sqrt, __sqrt)
#endif

View File

@ -26,6 +26,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const double
one = 1.0,
@ -64,4 +65,4 @@ __ieee754_acosh (double x)
else /* x < 1 */
return (x - x) / (x - x);
}
strong_alias (__ieee754_acosh, __acosh_finite)
libm_alias_finite (__ieee754_acosh, __acosh)

View File

@ -33,6 +33,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const double one = 1.0, half=0.5, huge = 1.0e300;
@ -81,4 +82,4 @@ __ieee754_cosh (double x)
/* |x| > overflowthresold, cosh(x) overflow */
return huge*huge;
}
strong_alias (__ieee754_cosh, __cosh_finite)
libm_alias_finite (__ieee754_cosh, __cosh)

View File

@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
#include <stdint.h>
#include <libm-alias-finite.h>
static const double one = 1.0, Zero[] = {0.0, -0.0,};
@ -102,4 +103,4 @@ __ieee754_fmod (double x, double y)
}
return x; /* exact output */
}
strong_alias (__ieee754_fmod, __fmod_finite)
libm_alias_finite (__ieee754_fmod, __fmod)

View File

@ -46,6 +46,7 @@
#include <math.h>
#include <math_private.h>
#include <stdint.h>
#include <libm-alias-finite.h>
static const double two54 = 1.80143985094819840000e+16; /* 0x4350000000000000 */
static const double ivln10 = 4.34294481903251816668e-01; /* 0x3FDBCB7B1526E50E */
@ -83,5 +84,4 @@ __ieee754_log10 (double x)
z = y * log10_2lo + ivln10 * __ieee754_log (x);
return z + y * log10_2hi;
}
strong_alias (__ieee754_log10, __log10_finite)
libm_alias_finite (__ieee754_log10, __log10)

View File

@ -283,6 +283,32 @@
#define __fsubl __f32subf128
#define __dsubl __f64subf128
/* Used on __finite compat alias. */
#define __acosl __acosf128
#define __acoshl __acoshf128
#define __asinl __asinf128
#define __atan2l __atan2f128
#define __atanhl __atanhf128
#define __coshl __coshf128
#define __exp10l __exp10f128
#define __expl __expf128
#define __fmodl __fmodf128
#define __gammal_r __gammaf128_r
#define __hypotl __hypotf128
#define __j0l __j0f128
#define __j1l __j1f128
#define __jnl __jnf128
#define __lgammal_r __lgammaf128_r
#define __log10l __log10f128
#define __log2l __log2f128
#define __logl __logf128
#define __powl __powf128
#define __remainderl __remainderf128
#define __sinhl __sinhf128
#define __y0l __y0f128
#define __y1l __y1f128
#define __ynl __ynf128
/* __nexttowardf128 is not _Float128 API. */
#define __nexttowardl __nexttowardf128_do_not_use
#define nexttowardl nexttowardf128_do_not_use

View File

@ -15,6 +15,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const float
one = 1.0000000000e+00, /* 0x3F800000 */
@ -75,4 +76,4 @@ __ieee754_acosf(float x)
return (float)2.0*(df+w);
}
}
strong_alias (__ieee754_acosf, __acosf_finite)
libm_alias_finite (__ieee754_acosf, __acosf)

View File

@ -19,6 +19,7 @@ static char rcsid[] = "$NetBSD: e_acoshf.c,v 1.5 1995/05/12 04:57:20 jtc Exp $";
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const float
one = 1.0,
@ -46,4 +47,4 @@ float __ieee754_acoshf(float x)
return __log1pf(t+sqrtf((float)2.0*t+t*t));
}
}
strong_alias (__ieee754_acoshf, __acoshf_finite)
libm_alias_finite (__ieee754_acoshf, __acoshf)

View File

@ -43,6 +43,7 @@ static char rcsid[] = "$NetBSD: e_asinf.c,v 1.5 1995/05/12 04:57:25 jtc Exp $";
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
static const float
one = 1.0000000000e+00, /* 0x3F800000 */
@ -102,4 +103,4 @@ float __ieee754_asinf(float x)
}
if(hx>0) return t; else return -t;
}
strong_alias (__ieee754_asinf, __asinf_finite)
libm_alias_finite (__ieee754_asinf, __asinf)

View File

@ -15,6 +15,7 @@
#include <math.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const float
tiny = 1.0e-30,
@ -91,4 +92,4 @@ __ieee754_atan2f (float y, float x)
return (z-pi_lo)-pi;/* atan(-,-) */
}
}
strong_alias (__ieee754_atan2f, __atan2f_finite)
libm_alias_finite (__ieee754_atan2f, __atan2f)

View File

@ -41,6 +41,7 @@
#include <math-barriers.h>
#include <math_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
static const float huge = 1e30;
@ -73,4 +74,4 @@ __ieee754_atanhf (float x)
return copysignf (t, x);
}
strong_alias (__ieee754_atanhf, __atanhf_finite)
libm_alias_finite (__ieee754_atanhf, __atanhf)

View File

@ -17,6 +17,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
#include <libm-alias-finite.h>
static const float huge = 1.0e30;
static const float one = 1.0, half=0.5;
@ -61,4 +62,4 @@ __ieee754_coshf (float x)
/* |x| > overflowthresold, cosh(x) overflow */
return math_narrow_eval (huge*huge);
}
strong_alias (__ieee754_coshf, __coshf_finite)
libm_alias_finite (__ieee754_coshf, __coshf)

Some files were not shown because too many files have changed in this diff Show More