diff options
author | Rich Felker <dalias@aerifal.cx> | 2018-09-11 11:04:35 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2018-09-12 14:34:34 -0400 |
commit | 46e3895b6c986857b5759c5cb307e7fcb3fad39f (patch) | |
tree | 5da7051d6ff0092f295faac11de3dd3372e14f93 /src | |
parent | 13d1afa46f8098df290008c681816c9eb89ffbdb (diff) | |
download | musl-46e3895b6c986857b5759c5cb307e7fcb3fad39f.tar.gz musl-46e3895b6c986857b5759c5cb307e7fcb3fad39f.tar.bz2 musl-46e3895b6c986857b5759c5cb307e7fcb3fad39f.tar.xz musl-46e3895b6c986857b5759c5cb307e7fcb3fad39f.zip |
apply hidden visibility to internal math functions
this makes significant differences to codegen on archs with an
expensive PLT-calling ABI; on i386 and gcc 7.3 for example, the sin
and sinf functions no longer touch call-saved registers or the stack
except for pushing outgoing arguments. performance is likely improved
too, but no measurements were taken.
Diffstat (limited to 'src')
-rw-r--r-- | src/internal/libm.h | 48 | ||||
-rw-r--r-- | src/math/__invtrigl.h | 4 |
2 files changed, 26 insertions, 26 deletions
diff --git a/src/internal/libm.h b/src/internal/libm.h index f1bf0a61..fd916277 100644 --- a/src/internal/libm.h +++ b/src/internal/libm.h @@ -167,33 +167,33 @@ do { \ /* fdlibm kernel functions */ -int __rem_pio2_large(double*,double*,int,int,int); - -int __rem_pio2(double,double*); -double __sin(double,double,int); -double __cos(double,double); -double __tan(double,double,int); -double __expo2(double); -double complex __ldexp_cexp(double complex,int); - -int __rem_pio2f(float,double*); -float __sindf(double); -float __cosdf(double); -float __tandf(double,int); -float __expo2f(float); -float complex __ldexp_cexpf(float complex,int); - -int __rem_pio2l(long double, long double *); -long double __sinl(long double, long double, int); -long double __cosl(long double, long double); -long double __tanl(long double, long double, int); +hidden int __rem_pio2_large(double*,double*,int,int,int); + +hidden int __rem_pio2(double,double*); +hidden double __sin(double,double,int); +hidden double __cos(double,double); +hidden double __tan(double,double,int); +hidden double __expo2(double); +hidden double complex __ldexp_cexp(double complex,int); + +hidden int __rem_pio2f(float,double*); +hidden float __sindf(double); +hidden float __cosdf(double); +hidden float __tandf(double,int); +hidden float __expo2f(float); +hidden float complex __ldexp_cexpf(float complex,int); + +hidden int __rem_pio2l(long double, long double *); +hidden long double __sinl(long double, long double, int); +hidden long double __cosl(long double, long double); +hidden long double __tanl(long double, long double, int); /* polynomial evaluation */ -long double __polevll(long double, const long double *, int); -long double __p1evll(long double, const long double *, int); +hidden long double __polevll(long double, const long double *, int); +hidden long double __p1evll(long double, const long double *, int); extern int __signgam; -double __lgamma_r(double, int *); -float __lgammaf_r(float, int *); +hidden double __lgamma_r(double, int *); +hidden float __lgammaf_r(float, int *); #endif diff --git a/src/math/__invtrigl.h b/src/math/__invtrigl.h index 91a8a3b6..2d97133b 100644 --- a/src/math/__invtrigl.h +++ b/src/math/__invtrigl.h @@ -1,6 +1,6 @@ /* shared by acosl, asinl and atan2l */ #define pio2_hi __pio2_hi #define pio2_lo __pio2_lo -extern const long double pio2_hi, pio2_lo; +hidden extern const long double pio2_hi, pio2_lo; -long double __invtrigl_R(long double z); +hidden long double __invtrigl_R(long double z); |