mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-18 12:16:13 +08:00
Do not wrap expf and exp2f
The new generic expf and exp2f code don't need wrappers any more, they set errno inline, so only use the wrappers on targets that need it. (If the wrapper is needed, then the top level wrapper code is included, otherwise empty w_exp*f.c is used to suppress the wrapper.) A powerpc64 expf implementation includes the expf c code directly which needed some changes. * sysdeps/ieee754/flt-32/e_exp2f.c (__exp2f): Define without wrapper. * sysdeps/ieee754/flt-32/e_expf.c (__expf): Likewise * sysdeps/ieee754/flt-32/w_exp2f.c: New file. * sysdeps/ieee754/flt-32/w_expf.c: New file. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c: Update for the new expf code. * sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c: New file. * sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c: New file. * sysdeps/m68k/m680x0/fpu/w_exp2f.c: New file. * sysdeps/m68k/m680x0/fpu/w_expf.c: New file. * sysdeps/i386/fpu/w_exp2f.c: New file. * sysdeps/i386/fpu/w_expf.c: New file. * sysdeps/i386/i686/fpu/multiarch/w_expf.c: New file. * sysdeps/x86_64/fpu/w_expf.c: New file.
This commit is contained in:
parent
72d3d28108
commit
f7a0b063e7
18
ChangeLog
18
ChangeLog
@ -1,3 +1,21 @@
|
||||
2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||||
H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* sysdeps/ieee754/flt-32/e_exp2f.c (__exp2f): Define without wrapper.
|
||||
* sysdeps/ieee754/flt-32/e_expf.c (__expf): Likewise
|
||||
* sysdeps/ieee754/flt-32/w_exp2f.c: New file.
|
||||
* sysdeps/ieee754/flt-32/w_expf.c: New file.
|
||||
* sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c: Update for
|
||||
the new expf code.
|
||||
* sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c: New file.
|
||||
* sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c: New file.
|
||||
* sysdeps/m68k/m680x0/fpu/w_exp2f.c: New file.
|
||||
* sysdeps/m68k/m680x0/fpu/w_expf.c: New file.
|
||||
* sysdeps/i386/fpu/w_exp2f.c: New file.
|
||||
* sysdeps/i386/fpu/w_expf.c: New file.
|
||||
* sysdeps/i386/i686/fpu/multiarch/w_expf.c: New file.
|
||||
* sysdeps/x86_64/fpu/w_expf.c: New file.
|
||||
|
||||
2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||||
|
||||
* math/Versions (logf): New libm symbol at GLIBC_2.27.
|
||||
|
1
sysdeps/i386/fpu/w_exp2f.c
Normal file
1
sysdeps/i386/fpu/w_exp2f.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/../math/w_exp2f.c>
|
1
sysdeps/i386/fpu/w_expf.c
Normal file
1
sysdeps/i386/fpu/w_expf.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/../math/w_expf.c>
|
1
sysdeps/i386/i686/fpu/multiarch/w_expf.c
Normal file
1
sysdeps/i386/i686/fpu/multiarch/w_expf.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/../math/w_expf.c>
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
#include <shlib-compat.h>
|
||||
#include "math_config.h"
|
||||
|
||||
/*
|
||||
@ -42,7 +43,7 @@ top12 (float x)
|
||||
}
|
||||
|
||||
float
|
||||
__ieee754_exp2f (float x)
|
||||
__exp2f (float x)
|
||||
{
|
||||
uint32_t abstop;
|
||||
uint64_t ki, t;
|
||||
@ -85,4 +86,8 @@ __ieee754_exp2f (float x)
|
||||
y = y * s;
|
||||
return (float) y;
|
||||
}
|
||||
strong_alias (__ieee754_exp2f, __exp2f_finite)
|
||||
#ifndef __exp2f
|
||||
strong_alias (__exp2f, __ieee754_exp2f)
|
||||
strong_alias (__exp2f, __exp2f_finite)
|
||||
versioned_symbol (libm, __exp2f, exp2f, GLIBC_2_27);
|
||||
#endif
|
||||
|
@ -16,8 +16,14 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifdef __expf
|
||||
# undef libm_hidden_proto
|
||||
# define libm_hidden_proto(ignored)
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
#include <shlib-compat.h>
|
||||
#include "math_config.h"
|
||||
|
||||
/*
|
||||
@ -42,7 +48,7 @@ top12 (float x)
|
||||
}
|
||||
|
||||
float
|
||||
__ieee754_expf (float x)
|
||||
__expf (float x)
|
||||
{
|
||||
uint32_t abstop;
|
||||
uint64_t ki, t;
|
||||
@ -99,4 +105,10 @@ __ieee754_expf (float x)
|
||||
y = y * s;
|
||||
return (float) y;
|
||||
}
|
||||
strong_alias (__ieee754_expf, __expf_finite)
|
||||
|
||||
#ifndef __expf
|
||||
hidden_def (__expf)
|
||||
strong_alias (__expf, __ieee754_expf)
|
||||
strong_alias (__expf, __expf_finite)
|
||||
versioned_symbol (libm, __expf, expf, GLIBC_2_27);
|
||||
#endif
|
||||
|
1
sysdeps/ieee754/flt-32/w_exp2f.c
Normal file
1
sysdeps/ieee754/flt-32/w_exp2f.c
Normal file
@ -0,0 +1 @@
|
||||
/* Not needed. */
|
1
sysdeps/ieee754/flt-32/w_expf.c
Normal file
1
sysdeps/ieee754/flt-32/w_expf.c
Normal file
@ -0,0 +1 @@
|
||||
/* Not needed. */
|
1
sysdeps/m68k/m680x0/fpu/w_exp2f.c
Normal file
1
sysdeps/m68k/m680x0/fpu/w_exp2f.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/../math/w_exp2f.c>
|
1
sysdeps/m68k/m680x0/fpu/w_expf.c
Normal file
1
sysdeps/m68k/m680x0/fpu/w_expf.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/../math/w_expf.c>
|
@ -16,9 +16,6 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#undef strong_alias
|
||||
#define strong_alias(a, b)
|
||||
|
||||
#define __ieee754_expf __ieee754_expf_ppc64
|
||||
#define __expf __ieee754_expf_ppc64
|
||||
|
||||
#include <sysdeps/ieee754/flt-32/e_expf.c>
|
||||
|
1
sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c
Normal file
1
sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/../math/w_expf.c>
|
1
sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c
Normal file
1
sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/../math/w_expf.c>
|
1
sysdeps/x86_64/fpu/w_expf.c
Normal file
1
sysdeps/x86_64/fpu/w_expf.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/../math/w_expf.c>
|
Loading…
Reference in New Issue
Block a user