diff options
Diffstat (limited to 'sysdeps/powerpc/powerpc64/power5+/fpu')
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/Implies | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/multiarch/Implies | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S | 15 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S | 7 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S | 15 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S | 7 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S | 28 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S | 15 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S | 7 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S | 15 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S | 7 |
12 files changed, 46 insertions, 73 deletions
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/Implies b/sysdeps/powerpc/powerpc64/power5+/fpu/Implies deleted file mode 100644 index f00c50fb49..0000000000 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/Implies +++ /dev/null @@ -1 +0,0 @@ -powerpc/powerpc64/power5/fpu diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/power5+/fpu/multiarch/Implies deleted file mode 100644 index c0e67848e2..0000000000 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/multiarch/Implies +++ /dev/null @@ -1 +0,0 @@ -powerpc/powerpc64/power5/fpu/multiarch diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S index a12fa29ab2..e500932573 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S @@ -1,5 +1,5 @@ /* ceil function. PowerPC64/power5+ version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,20 +18,13 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .machine "power5" -EALIGN (__ceil, 4, 0) +ENTRY_TOCLESS (__ceil, 4) CALL_MCOUNT 0 frip fp1, fp1 blr END (__ceil) -weak_alias (__ceil, ceil) - -#ifdef NO_LONG_DOUBLE -weak_alias (__ceil, ceill) -strong_alias (__ceil, __ceill) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __ceil, ceill, GLIBC_2_0) -#endif +libm_alias_double (__ceil, ceil) diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S index b1664c8352..d0b2118c2a 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S @@ -1,5 +1,5 @@ /* ceilf function. PowerPC64/power5+ version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,14 +17,15 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> +#include <libm-alias-float.h> .machine "power5" -EALIGN (__ceilf, 4, 0) +ENTRY_TOCLESS (__ceilf, 4) CALL_MCOUNT 0 frip fp1, fp1 /* The rounding instructions are double. */ frsp fp1, fp1 /* But we need to set ooverflow for float. */ blr END (__ceilf) -weak_alias (__ceilf, ceilf) +libm_alias_float (__ceil, ceil) diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S index c1fec4c9f2..9b9eb1529d 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S @@ -1,5 +1,5 @@ /* floor function. PowerPC64/power5+ version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,20 +18,13 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .machine "power5" -EALIGN (__floor, 4, 0) +ENTRY_TOCLESS (__floor, 4) CALL_MCOUNT 0 frim fp1, fp1 blr END (__floor) -weak_alias (__floor, floor) - -#ifdef NO_LONG_DOUBLE -weak_alias (__floor, floorl) -strong_alias (__floor, __floorl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __floor, floorl, GLIBC_2_0) -#endif +libm_alias_double (__floor, floor) diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S index 4108cfa06d..790edbd9a4 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S @@ -1,5 +1,5 @@ /* floorf function. PowerPC64/power5+ version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,14 +17,15 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> +#include <libm-alias-float.h> .machine "power5" -EALIGN (__floorf, 4, 0) +ENTRY_TOCLESS (__floorf, 4) CALL_MCOUNT 0 frim fp1, fp1 /* The rounding instructions are double. */ frsp fp1, fp1 /* But we need to set ooverflow for float. */ blr END (__floorf) -weak_alias (__floorf, floorf) +libm_alias_float (__floor, floor) diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S index 3388c35e6c..9fc4ec4a04 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S @@ -1,5 +1,5 @@ /* llround function. POWER5+, PowerPC64 version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,6 +18,8 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-float.h> +#include <libm-alias-double.h> /* long long [r3] llround (float x [fp1]) IEEE 1003.1 llround function. IEEE specifies "round to the nearest @@ -30,7 +32,7 @@ round to zero instruction. */ .machine "power5" -EALIGN (__llround, 4, 0) +ENTRY_TOCLESS (__llround, 4) CALL_MCOUNT 0 frin fp2, fp1 /* Round to nearest +-0.5. */ fctidz fp3, fp2 /* Convert To Integer DW round toward 0. */ @@ -43,16 +45,12 @@ EALIGN (__llround, 4, 0) END (__llround) strong_alias (__llround, __lround) -weak_alias (__llround, llround) -weak_alias (__lround, lround) - -#ifdef NO_LONG_DOUBLE -weak_alias (__llround, llroundl) -strong_alias (__llround, __llroundl) -weak_alias (__lround, lroundl) -strong_alias (__lround, __lroundl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __llround, llroundl, GLIBC_2_1) -compat_symbol (libm, __lround, lroundl, GLIBC_2_1) -#endif +libm_alias_double (__llround, llround) +libm_alias_double (__lround, lround) +/* The double version also works for single-precision as both float and + double parameters are passed in 64bit FPRs and both versions are expected + to return [long] long type. */ +strong_alias (__llround, __llroundf) +libm_alias_float (__llround, llround) +strong_alias (__lround, __lroundf) +libm_alias_float (__lround, lround) diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S new file mode 100644 index 0000000000..9ea6bd105b --- /dev/null +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S @@ -0,0 +1 @@ +/* __lroundf is in s_llround.S. */ diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S index a73311bbff..ed4df257d3 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S @@ -1,5 +1,5 @@ /* round function. PowerPC64/power5+ version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,20 +18,13 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .machine "power5" -EALIGN (__round, 4, 0) +ENTRY_TOCLESS (__round, 4) CALL_MCOUNT 0 frin fp1, fp1 blr END (__round) -weak_alias (__round, round) - -#ifdef NO_LONG_DOUBLE -weak_alias (__round, roundl) -strong_alias (__round, __roundl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __round, roundl, GLIBC_2_1) -#endif +libm_alias_double (__round, round) diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S index 7df18ecb6b..32df46059a 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S @@ -1,5 +1,5 @@ /* roundf function. PowerPC64/power5+ version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,14 +17,15 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> +#include <libm-alias-float.h> .machine "power5" -EALIGN (__roundf, 4, 0) +ENTRY_TOCLESS (__roundf, 4) CALL_MCOUNT 0 frin fp1, fp1 /* The rounding instructions are double. */ frsp fp1, fp1 /* But we need to set ooverflow for float. */ blr END (__roundf) -weak_alias (__roundf, roundf) +libm_alias_float (__round, round) diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S index b8971801dd..a45766582a 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S @@ -1,5 +1,5 @@ /* trunc function. PowerPC64/power5+ version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,20 +18,13 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .machine "power5" -EALIGN (__trunc, 4, 0) +ENTRY_TOCLESS (__trunc, 4) CALL_MCOUNT 0 friz fp1, fp1 blr END (__trunc) -weak_alias (__trunc, trunc) - -#ifdef NO_LONG_DOUBLE -weak_alias (__trunc, truncl) -strong_alias (__trunc, __truncl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __trunc, truncl, GLIBC_2_1) -#endif +libm_alias_double (__trunc, trunc) diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S index 6e18ae1ae8..f06f54f163 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S @@ -1,5 +1,5 @@ /* truncf function. PowerPC64/power5+ version. - Copyright (C) 2006-2016 Free Software Foundation, Inc. + Copyright (C) 2006-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,14 +17,15 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> +#include <libm-alias-float.h> .machine "power5" -EALIGN (__truncf, 4, 0) +ENTRY_TOCLESS (__truncf, 4) CALL_MCOUNT 0 friz fp1, fp1 /* The rounding instructions are double. */ frsp fp1, fp1 /* But we need to set ooverflow for float. */ blr END (__truncf) -weak_alias (__truncf, truncf) +libm_alias_float (__trunc, trunc) |