mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-11 11:50:06 +00:00
ldbl-128ibm-compat: Provide ieee128 symbols to narrow functions
Move the narrow math aliasing macros into a new sysdep header file math-narrow-alias-float128.h. Then, provide an override header to supply the necessary changes to supply the *ieee128 aliases of these symbols. This adds ieee128 aliases for faddl, fdivl, fmull, fsubl, daddl, ddivl, dmull, dsubl.
This commit is contained in:
parent
77ad97356c
commit
218dad29e8
@ -352,19 +352,6 @@
|
||||
weak_alias (__f64 ## func ## f128, f64 ## func ## f128) \
|
||||
weak_alias (__f64 ## func ## f128, f32x ## func ## f128)
|
||||
|
||||
#if __HAVE_FLOAT64X_LONG_DOUBLE
|
||||
# define libm_alias_float32_float128(func) \
|
||||
libm_alias_float32_float128_main (func)
|
||||
# define libm_alias_float64_float128(func) \
|
||||
libm_alias_float64_float128_main (func)
|
||||
#else
|
||||
# define libm_alias_float32_float128(func) \
|
||||
libm_alias_float32_float128_main (func) \
|
||||
weak_alias (__f32 ## func ## f128, f32 ## func ## f64x)
|
||||
# define libm_alias_float64_float128(func) \
|
||||
libm_alias_float64_float128_main (func) \
|
||||
weak_alias (__f64 ## func ## f128, f64 ## func ## f64x) \
|
||||
weak_alias (__f64 ## func ## f128, f32x ## func ## f64x)
|
||||
#endif
|
||||
#include <math-narrow-alias-float128.h>
|
||||
|
||||
#endif /* math-narrow.h. */
|
||||
|
32
sysdeps/generic/math-narrow-alias-float128.h
Normal file
32
sysdeps/generic/math-narrow-alias-float128.h
Normal file
@ -0,0 +1,32 @@
|
||||
/* Helper macros for functions returning a narrower type. F128-specific.
|
||||
Copyright (C) 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
|
||||
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/>. */
|
||||
|
||||
#if __HAVE_FLOAT64X_LONG_DOUBLE
|
||||
# define libm_alias_float32_float128(func) \
|
||||
libm_alias_float32_float128_main (func)
|
||||
# define libm_alias_float64_float128(func) \
|
||||
libm_alias_float64_float128_main (func)
|
||||
#else
|
||||
# define libm_alias_float32_float128(func) \
|
||||
libm_alias_float32_float128_main (func) \
|
||||
weak_alias (__f32 ## func ## f128, f32 ## func ## f64x)
|
||||
# define libm_alias_float64_float128(func) \
|
||||
libm_alias_float64_float128_main (func) \
|
||||
weak_alias (__f64 ## func ## f128, f64 ## func ## f64x) \
|
||||
weak_alias (__f64 ## func ## f128, f32x ## func ## f64x)
|
||||
#endif
|
@ -47,6 +47,14 @@ libm {
|
||||
__exp2ieee128;
|
||||
__expieee128;
|
||||
__expm1ieee128;
|
||||
__f32addieee128;
|
||||
__f32divieee128;
|
||||
__f32mulieee128;
|
||||
__f32subieee128;
|
||||
__f64addieee128;
|
||||
__f64divieee128;
|
||||
__f64mulieee128;
|
||||
__f64subieee128;
|
||||
__fabsieee128;
|
||||
__fdimieee128;
|
||||
__floorieee128;
|
||||
|
@ -0,0 +1,34 @@
|
||||
/* Helper macros for functions returning a narrower type. F128-specific.
|
||||
Copyright (C) 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
|
||||
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/>. */
|
||||
|
||||
#if __HAVE_FLOAT64X_LONG_DOUBLE
|
||||
# define libm_alias_float32_float128(func) \
|
||||
libm_alias_float32_float128_main (func)
|
||||
# define libm_alias_float64_float128(func) \
|
||||
libm_alias_float64_float128_main (func)
|
||||
#else
|
||||
# define libm_alias_float32_float128(func) \
|
||||
libm_alias_float32_float128_main (func) \
|
||||
weak_alias (__f32 ## func ## f128, f32 ## func ## f64x) \
|
||||
weak_alias (__f32 ## func ## f128, __ ## f32 ## func ## ieee128)
|
||||
# define libm_alias_float64_float128(func) \
|
||||
libm_alias_float64_float128_main (func) \
|
||||
weak_alias (__f64 ## func ## f128, f64 ## func ## f64x) \
|
||||
weak_alias (__f64 ## func ## f128, f32x ## func ## f64x) \
|
||||
weak_alias (__f64 ## func ## f128, __ ## f64 ## func ## ieee128)
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user