diff options
author | Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> | 2018-06-18 19:02:08 -0300 |
---|---|---|
committer | Paul E. Murphy <murphyp@linux.vnet.ibm.com> | 2020-02-14 08:24:56 -0600 |
commit | 2b7dc93f826ee2cab7e6b7e5b6432f7920f0eec0 (patch) | |
tree | d8caa62c715221de1d127877f80d0c42bce0060a | |
parent | c624d23260d5c136bebdd3a0734876527cedc505 (diff) | |
download | glibc-2b7dc93f826ee2cab7e6b7e5b6432f7920f0eec0.tar.gz glibc-2b7dc93f826ee2cab7e6b7e5b6432f7920f0eec0.tar.xz glibc-2b7dc93f826ee2cab7e6b7e5b6432f7920f0eec0.zip |
ldbl-128ibm-compat: Provide a scalb implementation
Reuse the template in order to provide the redirect for scalbl to __scalbieee128, but avoid any extra aliasing as this is intended to support long double redirects only.
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm-compat/Versions | 1 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c | 26 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c | 27 |
3 files changed, 54 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions index b4609c99f7..db255cb282 100644 --- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions @@ -90,6 +90,7 @@ libm { __rintieee128; __roundevenieee128; __roundieee128; + __scalbieee128; __scalblnieee128; __scalbnieee128; __setpayloadieee128; diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c new file mode 100644 index 0000000000..f7a45065c3 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/e_scalbf128.c @@ -0,0 +1,26 @@ +/* Multiply _Float128 by integral power of 2 + Copyright (C) 2020 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <math-type-macros-float128.h> + +/* *_finite symbols are deprecated since this layer was introduced. + No symbols are needed. */ +#undef declare_mgen_finite_alias +#define declare_mgen_finite_alias(from, to) + +#include <math/e_scalb_template.c> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c new file mode 100644 index 0000000000..38e7627da9 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128ibm-compat/w_scalbf128.c @@ -0,0 +1,27 @@ +/* Multiply _Float128 by integral power of 2 + Copyright (C) 2020 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <float128_private.h> +#include <math-type-macros-float128.h> + +#undef declare_mgen_alias +#define declare_mgen_alias(a,b) +#define __ieee754_scalbl __ieee754_scalbf128 +#include <w_scalb_template.c> + +libm_alias_float128_other_r_ldbl (__scalb, scalb,) |