1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-10 05:03:06 +03:00

Use libm_alias_double for sparc.

Continuing the preparation for additional _FloatN / _FloatNx function
aliases, this patch makes sparc libm function implementations use
libm_alias_double to define function aliases (with consequent
simplification where compat symbol handling is now done by those
macros rather than locally in architecture-specific code).

Tested with build-many-glibcs.py for all its sparc configurations that
installed stripped shared libraries are unchanged by the patch.

	* sysdeps/sparc/sparc32/fpu/s_copysign.S: Include
	<libm-alias-double.h>.
	(copysign): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/fpu/s_fabs.S: Include
	<libm-alias-double.h>.
	(fabs): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S:
	Include <libm-alias-double.h>.
	(copysign): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Include
	<libm-alias-double.h>.
	(fabs): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c: Include
	<libm-alias-double.h>.
	(fdim): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c: Include
	<libm-alias-double.h>.
	(fma): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Include
	<libm-alias-double.h>.
	(llrint): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S:
	Include <libm-alias-double.h>.
	(nearbyint): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Include
	<libm-alias-double.h>.
	(rint): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S: Include
	<libm-alias-double.h>.
	(fabs): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S: Include
	<libm-alias-double.h>.
	(llrint): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S: Include
	<libm-alias-double.h>.
	(nearbyint): Define using libm_alias_double.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S: Include
	<libm-alias-double.h>.
	(rint): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Include
	<libm-alias-double.h>.
	(ceil): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Include
	<libm-alias-double.h>.
	(floor): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c: Include
	<libm-alias-double.h>.
	(fma): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c: Include
	<libm-alias-double.h>.
	(lrint): Define using libm_alias_double.
	(llrint): Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c: Include
	<libm-alias-double.h>.
	(nearbyint): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c: Include
	<libm-alias-double.h>.
	(rint): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Include
	<libm-alias-double.h>.
	(trunc): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/s_copysign.S: Include
	<libm-alias-double.h>.
	(copysign): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/s_fabs.c: Include
	<libm-alias-double.h>.
	(fabs): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/s_lrint.S: Include
	<libm-alias-double.h>.
	(lrint): Define using libm_alias_double.
	(llrint): Likewise.
	* sysdeps/sparc/sparc64/fpu/s_nearbyint.S: Include
	<libm-alias-double.h>.
	(nearbyint): Define using libm_alias_double.
	* sysdeps/sparc/sparc64/fpu/s_rint.S: Include
	<libm-alias-double.h>.
	(rint): Define using libm_alias_double.
This commit is contained in:
Joseph Myers
2017-11-29 23:40:07 +00:00
parent cf4ebc27fe
commit 875cd54855
26 changed files with 131 additions and 72 deletions

View File

@@ -1,5 +1,83 @@
2017-11-29 Joseph Myers <joseph@codesourcery.com> 2017-11-29 Joseph Myers <joseph@codesourcery.com>
* sysdeps/sparc/sparc32/fpu/s_copysign.S: Include
<libm-alias-double.h>.
(copysign): Define using libm_alias_double.
* sysdeps/sparc/sparc32/fpu/s_fabs.S: Include
<libm-alias-double.h>.
(fabs): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S:
Include <libm-alias-double.h>.
(copysign): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Include
<libm-alias-double.h>.
(fabs): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c: Include
<libm-alias-double.h>.
(fdim): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c: Include
<libm-alias-double.h>.
(fma): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Include
<libm-alias-double.h>.
(llrint): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S:
Include <libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Include
<libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S: Include
<libm-alias-double.h>.
(fabs): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S: Include
<libm-alias-double.h>.
(llrint): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S: Include
<libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S: Include
<libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Include
<libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c: Include
<libm-alias-double.h>.
(fma): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c: Include
<libm-alias-double.h>.
(lrint): Define using libm_alias_double.
(llrint): Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c: Include
<libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c: Include
<libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Include
<libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/s_copysign.S: Include
<libm-alias-double.h>.
(copysign): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/s_fabs.c: Include
<libm-alias-double.h>.
(fabs): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/s_lrint.S: Include
<libm-alias-double.h>.
(lrint): Define using libm_alias_double.
(llrint): Likewise.
* sysdeps/sparc/sparc64/fpu/s_nearbyint.S: Include
<libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/sparc/sparc64/fpu/s_rint.S: Include
<libm-alias-double.h>.
(rint): Define using libm_alias_double.
[BZ #22229] [BZ #22229]
* sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S: Include * sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S: Include
<math_ldbl_opt.h>. <math_ldbl_opt.h>.

View File

@@ -19,6 +19,7 @@
#include <sysdep.h> #include <sysdep.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
ENTRY (__copysign) ENTRY (__copysign)
sethi %hi(0x80000000), %g1 sethi %hi(0x80000000), %g1
@@ -29,10 +30,7 @@ ENTRY (__copysign)
retl retl
ldd [%sp + 72], %f0 ldd [%sp + 72], %f0
END (__copysign) END (__copysign)
weak_alias (__copysign, copysign) libm_alias_double (__copysign, copysign)
#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
compat_symbol (libm, __copysign, copysignl, GLIBC_2_0);
#endif
#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) #if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
compat_symbol (libc, __copysign, copysignl, GLIBC_2_0); compat_symbol (libc, __copysign, copysignl, GLIBC_2_0);
#endif #endif

View File

@@ -18,6 +18,7 @@
#include <sysdep.h> #include <sysdep.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
ENTRY (__fabs) ENTRY (__fabs)
st %o0, [%sp+72] st %o0, [%sp+72]
@@ -26,7 +27,4 @@ ENTRY (__fabs)
retl retl
fabss %f0, %f0 fabss %f0, %f0
END (__fabs) END (__fabs)
weak_alias (__fabs, fabs) libm_alias_double (__fabs, fabs)
#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
compat_symbol (libm, __fabs, fabsl, GLIBC_2_0);
#endif

View File

@@ -1,12 +1,10 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
SPARC_ASM_VIS3_IFUNC(copysign) SPARC_ASM_VIS3_IFUNC(copysign)
weak_alias (__copysign, copysign) libm_alias_double (__copysign, copysign)
#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
compat_symbol (libm, __copysign, copysignl, GLIBC_2_0);
#endif
#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) #if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
compat_symbol (libc, __copysign, copysignl, GLIBC_2_0); compat_symbol (libc, __copysign, copysignl, GLIBC_2_0);
#endif #endif

View File

@@ -1,12 +1,10 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
SPARC_ASM_VIS3_IFUNC(fabs) SPARC_ASM_VIS3_IFUNC(fabs)
weak_alias (__fabs, fabs) libm_alias_double (__fabs, fabs)
#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
compat_symbol (libm, __fabs, fabsl, GLIBC_2_0);
#endif
# undef weak_alias # undef weak_alias
# define weak_alias(a, b) # define weak_alias(a, b)

View File

@@ -20,12 +20,10 @@
#include <first-versions.h> #include <first-versions.h>
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math.h> #include <math.h>
#include <libm-alias-double.h>
extern double __fdim_vis3 (double, double); extern double __fdim_vis3 (double, double);
extern double __fdim_generic (double, double); extern double __fdim_generic (double, double);
sparc_libm_ifunc(__fdim, hwcap & HWCAP_SPARC_VIS3 ? __fdim_vis3 : __fdim_generic); sparc_libm_ifunc(__fdim, hwcap & HWCAP_SPARC_VIS3 ? __fdim_vis3 : __fdim_generic);
weak_alias (__fdim, fdim) libm_alias_double (__fdim, fdim)
#if LONG_DOUBLE_COMPAT (libm, FIRST_VERSION_libm_fdiml)
compat_symbol (libm, __fdim, fdiml, FIRST_VERSION_libm_fdiml);
#endif

View File

@@ -1,12 +1,10 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math.h> #include <math.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
extern double __fma_vis3 (double, double, double); extern double __fma_vis3 (double, double, double);
extern double __fma_generic (double, double, double); extern double __fma_generic (double, double, double);
sparc_libm_ifunc(__fma, hwcap & HWCAP_SPARC_FMAF ? __fma_vis3 : __fma_generic); sparc_libm_ifunc(__fma, hwcap & HWCAP_SPARC_FMAF ? __fma_vis3 : __fma_generic);
weak_alias (__fma, fma) libm_alias_double (__fma, fma)
#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)
compat_symbol (libm, __fma, fmal, GLIBC_2_1);
#endif

View File

@@ -1,17 +1,14 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
SPARC_ASM_VIS3_IFUNC(llrint) SPARC_ASM_VIS3_IFUNC(llrint)
weak_alias (__llrint, llrint) libm_alias_double (__llrint, llrint)
strong_alias (__llrint, __lllrint) strong_alias (__llrint, __lllrint)
weak_alias (__lllrint, lllrint) weak_alias (__lllrint, lllrint)
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __llrint, llrintl, GLIBC_2_1)
#endif
# undef weak_alias # undef weak_alias
# define weak_alias(a, b) # define weak_alias(a, b)
# undef strong_alias # undef strong_alias

View File

@@ -1,13 +1,10 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
SPARC_ASM_VIS3_IFUNC(nearbyint) SPARC_ASM_VIS3_IFUNC(nearbyint)
weak_alias (__nearbyint, nearbyint) libm_alias_double (__nearbyint, nearbyint)
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1)
#endif
# undef weak_alias # undef weak_alias
# define weak_alias(a, b) # define weak_alias(a, b)

View File

@@ -1,13 +1,10 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
SPARC_ASM_VIS3_IFUNC(rint) SPARC_ASM_VIS3_IFUNC(rint)
weak_alias (__rint, rint) libm_alias_double (__rint, rint)
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, __rint, rintl, GLIBC_2_0)
#endif
# undef weak_alias # undef weak_alias
# define weak_alias(a, b) # define weak_alias(a, b)

View File

@@ -18,6 +18,7 @@
#include <sysdep.h> #include <sysdep.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
ENTRY (__fabs) ENTRY (__fabs)
st %o0, [%sp+72] st %o0, [%sp+72]
@@ -26,7 +27,4 @@ ENTRY (__fabs)
retl retl
fabsd %f0, %f0 fabsd %f0, %f0
END (__fabs) END (__fabs)
weak_alias (__fabs, fabs) libm_alias_double (__fabs, fabs)
#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
compat_symbol (libm, __fabs, fabsl, GLIBC_2_0);
#endif

View File

@@ -19,6 +19,7 @@
#include <sysdep.h> #include <sysdep.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
/* We pop constants into the FPU registers using the incoming /* We pop constants into the FPU registers using the incoming
argument stack slots, since this avoid having to use any PIC argument stack slots, since this avoid having to use any PIC
@@ -65,8 +66,4 @@ ENTRY (__llrint)
retl retl
ldd [%sp + 72], %o0 ldd [%sp + 72], %o0
END (__llrint) END (__llrint)
weak_alias (__llrint, llrint) libm_alias_double (__llrint, llrint)
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __llrint, llrintl, GLIBC_2_1)
#endif

View File

@@ -21,6 +21,7 @@
#include <sysdep.h> #include <sysdep.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
/* We pop constants into the FPU registers using the incoming /* We pop constants into the FPU registers using the incoming
argument stack slots, since this avoid having to use any PIC argument stack slots, since this avoid having to use any PIC
@@ -66,8 +67,4 @@ ENTRY (__nearbyint)
retl retl
ld [%sp + 88], %fsr ld [%sp + 88], %fsr
END (__nearbyint) END (__nearbyint)
weak_alias (__nearbyint, nearbyint) libm_alias_double (__nearbyint, nearbyint)
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1)
#endif

View File

@@ -19,6 +19,7 @@
#include <sysdep.h> #include <sysdep.h>
#include <math_ldbl_opt.h> #include <math_ldbl_opt.h>
#include <libm-alias-double.h>
/* We pop constants into the FPU registers using the incoming /* We pop constants into the FPU registers using the incoming
argument stack slots, since this avoid having to use any PIC argument stack slots, since this avoid having to use any PIC
@@ -62,8 +63,4 @@ ENTRY (__rint)
retl retl
for %f0, SIGN_BIT, %f0 for %f0, SIGN_BIT, %f0
END (__rint) END (__rint)
weak_alias (__rint, rint) libm_alias_double (__rint, rint)
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, __rint, rintl, GLIBC_2_0)
#endif

View File

@@ -18,6 +18,7 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math.h> #include <math.h>
#include <libm-alias-double.h>
extern __typeof (ceil) __ceil_vis3 attribute_hidden; extern __typeof (ceil) __ceil_vis3 attribute_hidden;
extern __typeof (ceil) __ceil_generic attribute_hidden; extern __typeof (ceil) __ceil_generic attribute_hidden;
@@ -26,4 +27,4 @@ sparc_libm_ifunc (__ceil,
hwcap & HWCAP_SPARC_VIS3 hwcap & HWCAP_SPARC_VIS3
? __ceil_vis3 ? __ceil_vis3
: __ceil_generic) : __ceil_generic)
weak_alias (__ceil, ceil) libm_alias_double (__ceil, ceil)

View File

@@ -18,6 +18,7 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math.h> #include <math.h>
#include <libm-alias-double.h>
extern __typeof (floor) __floor_vis3 attribute_hidden; extern __typeof (floor) __floor_vis3 attribute_hidden;
extern __typeof (floor) __floor_generic attribute_hidden; extern __typeof (floor) __floor_generic attribute_hidden;
@@ -26,4 +27,4 @@ sparc_libm_ifunc (__floor,
hwcap & HWCAP_SPARC_VIS3 hwcap & HWCAP_SPARC_VIS3
? __floor_vis3 ? __floor_vis3
: __floor_generic); : __floor_generic);
weak_alias (__floor, floor) libm_alias_double (__floor, floor)

View File

@@ -1,5 +1,6 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math.h> #include <math.h>
#include <libm-alias-double.h>
extern __typeof (fma) __fma_vis3 attribute_hidden; extern __typeof (fma) __fma_vis3 attribute_hidden;
extern __typeof (fma) __fma_generic attribute_hidden; extern __typeof (fma) __fma_generic attribute_hidden;
@@ -8,4 +9,4 @@ sparc_libm_ifunc (__fma,
hwcap & HWCAP_SPARC_FMAF hwcap & HWCAP_SPARC_FMAF
? __fma_vis3 ? __fma_vis3
: __fma_generic); : __fma_generic);
weak_alias (__fma, fma) libm_alias_double (__fma, fma)

View File

@@ -26,6 +26,7 @@
#undef __lrint #undef __lrint
#undef __llrint #undef __llrint
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <libm-alias-double.h>
extern __typeof (__redirect_lrint) __lrint_vis3 attribute_hidden; extern __typeof (__redirect_lrint) __lrint_vis3 attribute_hidden;
extern __typeof (__redirect_lrint) __lrint_generic attribute_hidden; extern __typeof (__redirect_lrint) __lrint_generic attribute_hidden;
@@ -34,6 +35,6 @@ sparc_libm_ifunc_redirected (__redirect_lrint, __lrint,
hwcap & HWCAP_SPARC_VIS3 hwcap & HWCAP_SPARC_VIS3
? __lrint_vis3 ? __lrint_vis3
: __lrint_generic); : __lrint_generic);
weak_alias (__lrint, lrint) libm_alias_double (__lrint, lrint)
strong_alias (__lrint, __llrint) strong_alias (__lrint, __llrint)
weak_alias (__llrint, llrint) libm_alias_double (__llrint, llrint)

View File

@@ -18,6 +18,7 @@
#include <math.h> #include <math.h>
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <libm-alias-double.h>
extern __typeof (nearbyint) __nearbyint_vis3 attribute_hidden; extern __typeof (nearbyint) __nearbyint_vis3 attribute_hidden;
extern __typeof (nearbyint) __nearbyint_generic attribute_hidden; extern __typeof (nearbyint) __nearbyint_generic attribute_hidden;
@@ -26,4 +27,4 @@ sparc_libm_ifunc (__nearbyint,
hwcap & HWCAP_SPARC_VIS3 hwcap & HWCAP_SPARC_VIS3
? __nearbyint_vis3 ? __nearbyint_vis3
: __nearbyint_generic); : __nearbyint_generic);
weak_alias (__nearbyint, nearbyint) libm_alias_double (__nearbyint, nearbyint)

View File

@@ -18,6 +18,7 @@
#include <math.h> #include <math.h>
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <libm-alias-double.h>
extern __typeof (rint) __rint_vis3 attribute_hidden; extern __typeof (rint) __rint_vis3 attribute_hidden;
extern __typeof (rint) __rint_generic attribute_hidden; extern __typeof (rint) __rint_generic attribute_hidden;
@@ -26,4 +27,4 @@ sparc_libm_ifunc (__rint,
hwcap & HWCAP_SPARC_VIS3 hwcap & HWCAP_SPARC_VIS3
? __rint_vis3 ? __rint_vis3
: __rint_generic); : __rint_generic);
weak_alias (__rint, rint) libm_alias_double (__rint, rint)

View File

@@ -18,6 +18,7 @@
#include <sparc-ifunc.h> #include <sparc-ifunc.h>
#include <math.h> #include <math.h>
#include <libm-alias-double.h>
extern __typeof (trunc) __trunc_vis3 attribute_hidden; extern __typeof (trunc) __trunc_vis3 attribute_hidden;
extern __typeof (trunc) __trunc_generic attribute_hidden; extern __typeof (trunc) __trunc_generic attribute_hidden;
@@ -26,4 +27,4 @@ sparc_libm_ifunc (__trunc,
hwcap & HWCAP_SPARC_VIS3 hwcap & HWCAP_SPARC_VIS3
? __trunc_vis3 ? __trunc_vis3
: __trunc_generic); : __trunc_generic);
weak_alias (__trunc, trunc) libm_alias_double (__trunc, trunc)

View File

@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
#include <sysdep.h> #include <sysdep.h>
#include <libm-alias-double.h>
ENTRY (__copysign) ENTRY (__copysign)
fzeros %f7 fzeros %f7
@@ -27,4 +28,4 @@ ENTRY (__copysign)
retl retl
fors %f0, %f9, %f0 fors %f0, %f9, %f0
END (__copysign) END (__copysign)
weak_alias (__copysign, copysign) libm_alias_double (__copysign, copysign)

View File

@@ -1,5 +1,7 @@
#include <libm-alias-double.h>
double __fabs (double x) double __fabs (double x)
{ {
return __builtin_fabs (x); return __builtin_fabs (x);
} }
weak_alias (__fabs, fabs) libm_alias_double (__fabs, fabs)

View File

@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
#include <sysdep.h> #include <sysdep.h>
#include <libm-alias-double.h>
/* We pop constants into the FPU registers using the incoming /* We pop constants into the FPU registers using the incoming
argument stack slots, since this avoid having to use any PIC argument stack slots, since this avoid having to use any PIC
@@ -57,7 +58,7 @@ ENTRY (__lrint)
retl retl
ldx [%sp + STACK_BIAS + 128], %o0 ldx [%sp + STACK_BIAS + 128], %o0
END (__lrint) END (__lrint)
weak_alias (__lrint, lrint) libm_alias_double (__lrint, lrint)
strong_alias (__lrint, __llrint) strong_alias (__lrint, __llrint)
weak_alias (__llrint, llrint) libm_alias_double (__llrint, llrint)

View File

@@ -20,6 +20,7 @@
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
#include <sysdep.h> #include <sysdep.h>
#include <libm-alias-double.h>
/* We pop constants into the FPU registers using the incoming /* We pop constants into the FPU registers using the incoming
argument stack slots, since this avoid having to use any PIC argument stack slots, since this avoid having to use any PIC
@@ -61,4 +62,4 @@ ENTRY (__nearbyint)
retl retl
ldx [%sp + STACK_BIAS + 144], %fsr ldx [%sp + STACK_BIAS + 144], %fsr
END (__nearbyint) END (__nearbyint)
weak_alias (__nearbyint, nearbyint) libm_alias_double (__nearbyint, nearbyint)

View File

@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
#include <sysdep.h> #include <sysdep.h>
#include <libm-alias-double.h>
/* We pop constants into the FPU registers using the incoming /* We pop constants into the FPU registers using the incoming
argument stack slots, since this avoid having to use any PIC argument stack slots, since this avoid having to use any PIC
@@ -54,4 +55,4 @@ ENTRY (__rint)
retl retl
for %f0, SIGN_BIT, %f0 for %f0, SIGN_BIT, %f0
END (__rint) END (__rint)
weak_alias (__rint, rint) libm_alias_double (__rint, rint)