bcf01e6d80
Add __exp*_finite optimizations and rewrite some wrappers.
202 lines
5.7 KiB
Plaintext
202 lines
5.7 KiB
Plaintext
libc {
|
|
GLIBC_2.0 {
|
|
# functions used in inline functions or macros
|
|
__isnan; __isnanf; __isnanl; __finite; __finitef; __finitel;
|
|
__isinf; __isinff; __isinfl;
|
|
|
|
# global variables
|
|
__fpu_control;
|
|
|
|
# c*
|
|
copysign; copysignf; copysignl;
|
|
|
|
# f*
|
|
finite; finitef; finitel; frexp; frexpf; frexpl;
|
|
|
|
# i*
|
|
isinf; isinff; isinfl; isnan; isnanf; isnanl; ldexp; ldexpf; ldexpl;
|
|
|
|
# m*
|
|
modf; modff; modfl;
|
|
|
|
# s*
|
|
scalbn; scalbnf; scalbnl;
|
|
}
|
|
GLIBC_2.1 {
|
|
# functions used in inline functions or macros
|
|
__signbit; __signbitf; __signbitl;
|
|
|
|
# s*
|
|
scalbln; scalblnf; scalblnl;
|
|
}
|
|
}
|
|
|
|
libm {
|
|
GLIBC_2.0 {
|
|
# mathematical functions
|
|
acos; acosf; acosl;
|
|
acosh; acoshf; acoshl;
|
|
asin; asinf; asinl;
|
|
asinh; asinhf; asinhl;
|
|
atan2; atan2f; atan2l;
|
|
atan; atanf; atanl;
|
|
atanh; atanhf; atanhl;
|
|
cbrt; cbrtf; cbrtl;
|
|
ceil; ceilf; ceill;
|
|
copysign; copysignf; copysignl;
|
|
cos; cosf; cosl;
|
|
coshf; cosh; coshl;
|
|
drem; dremf; dreml;
|
|
erf; erff; erfl;
|
|
erfc; erfcf; erfcl;
|
|
exp; expf; expl;
|
|
expm1; expm1f; expm1l;
|
|
fabs; fabsf; fabsl;
|
|
finite; finitef; finitel;
|
|
floor; floorf; floorl;
|
|
fmod; fmodf; fmodl;
|
|
frexp; frexpf; frexpl;
|
|
gamma; gammaf; gammal;
|
|
gamma_r; gammaf_r; gammal_r;
|
|
hypot; hypotf; hypotl;
|
|
ilogb; ilogbf; ilogbl;
|
|
j0; j0f; j0l;
|
|
j1; j1f; j1l;
|
|
jn; jnf; jnl;
|
|
ldexp; ldexpf; ldexpl;
|
|
lgamma; lgammaf; lgammal;
|
|
lgamma_r; lgammaf_r; lgammal_r;
|
|
log10; log10f; log10l;
|
|
log1p; log1pf; log1pl;
|
|
log; logf; logl;
|
|
logb; logbf; logbl;
|
|
matherr;
|
|
modf; modff; modfl;
|
|
nextafter; nextafterf; nextafterl;
|
|
pow; powf; powl;
|
|
remainder; remainderf; remainderl;
|
|
rint; rintf; rintl;
|
|
scalb; scalbf; scalbl;
|
|
scalbn; scalbnf; scalbnl;
|
|
significand; significandf; significandl;
|
|
sin; sinf; sinl;
|
|
sinh; sinhf; sinhl;
|
|
sqrt; sqrtf; sqrtl;
|
|
tan; tanf; tanl;
|
|
tanh; tanhf; tanhl;
|
|
y0; y0f; y0l;
|
|
y1; y1f; y1l;
|
|
yn; ynf; ynl;
|
|
|
|
|
|
# global variables
|
|
_LIB_VERSION; signgam;
|
|
}
|
|
GLIBC_2.1 {
|
|
# mathematical functions
|
|
exp2; exp2f; # exp2l; -- bug omitted this until GLIBC_2.4 (below)
|
|
exp10; exp10f; exp10l;
|
|
fdim; fdimf; fdiml;
|
|
fma; fmaf; fmal;
|
|
fmax; fmaxf; fmaxl;
|
|
fmin; fminf; fminl;
|
|
log2; log2f; log2l;
|
|
nan; nanf; nanl;
|
|
nearbyint; nearbyintf; nearbyintl;
|
|
nexttoward; nexttowardf; nexttowardl;
|
|
pow10; pow10f; pow10l;
|
|
remquo; remquof; remquol;
|
|
lrint; lrintf; lrintl;
|
|
llrint; llrintf; llrintl;
|
|
round; roundf; roundl;
|
|
lround; lroundf; lroundl;
|
|
llround; llroundf; llroundl;
|
|
scalbln; scalblnf; scalblnl;
|
|
sincos; sincosf; sincosl;
|
|
trunc; truncf; truncl;
|
|
tgamma; tgammaf; tgammal;
|
|
|
|
# complex functions
|
|
cabs; cabsf; cabsl;
|
|
cacos; cacosf; cacosl;
|
|
cacosh; cacoshf; cacoshl;
|
|
carg; cargf; cargl;
|
|
casin; casinf; casinl;
|
|
casinh; casinhf; casinhl;
|
|
catan; catanf; catanl;
|
|
catanh; catanhf; catanhl;
|
|
ccos; ccosf; ccosl;
|
|
ccosh; ccoshf; ccoshl;
|
|
cexp; cexpf; cexpl;
|
|
cimag; cimagf; cimagl;
|
|
clog; clogf; clogl;
|
|
clog10; clog10f; clog10l;
|
|
__clog10; __clog10f; __clog10l;
|
|
conj; conjf; conjl;
|
|
cpow; cpowf; cpowl;
|
|
cproj; cprojf; cprojl;
|
|
creal; crealf; creall;
|
|
csin; csinf; csinl;
|
|
csinh; csinhf; csinhl;
|
|
csqrt; csqrtf; csqrtl;
|
|
ctan; ctanf; ctanl;
|
|
ctanh; ctanhf; ctanhl;
|
|
|
|
# fp environment functions
|
|
feclearexcept; fegetenv; fegetexceptflag;
|
|
fegetround; feholdexcept; feraiseexcept;
|
|
fesetenv; fesetexceptflag; fesetround;
|
|
fetestexcept; feupdateenv;
|
|
|
|
# functions used in inline functions or macros
|
|
__finite; __finitef; __finitel;
|
|
__fpclassify; __fpclassifyf; __fpclassifyl;
|
|
__signbit; __signbitf; __signbitl;
|
|
}
|
|
GLIBC_2.2 {
|
|
# fp environment functions changes from ISO C99 TR1
|
|
feclearexcept; fegetenv; fegetexceptflag; feraiseexcept;
|
|
fesetenv; fesetexceptflag; feupdateenv;
|
|
|
|
# fp environment function
|
|
feenableexcept; fedisableexcept; fegetexcept;
|
|
}
|
|
GLIBC_2.4 {
|
|
# A bug in sysdeps/generic/w_exp2.c kept this from appearing
|
|
# in GLIBC_2.1 as it should have on platforms using that
|
|
# implementation file. On others, sysdeps/CPU/Versions now
|
|
# puts exp2l in GLIBC_2.1, which will override this entry.
|
|
exp2l;
|
|
}
|
|
GLIBC_2.15 {
|
|
# Optimized -ffinite-math-only entry points
|
|
__acos_finite; __acosf_finite; __acosl_finite;
|
|
__acosh_finite; __acoshf_finite; __acoshl_finite;
|
|
__asin_finite; __asinf_finite; __asinl_finite;
|
|
__atan2_finite; __atan2f_finite; __atan2l_finite;
|
|
__atanh_finite; __atanhf_finite; __atanhl_finite;
|
|
__cosh_finite; __coshf_finite; __coshl_finite;
|
|
__exp10_finite; __exp10f_finite; __exp10l_finite;
|
|
__exp2_finite; __exp2f_finite; __exp2l_finite;
|
|
__fmod_finite; __fmodf_finite; __fmodl_finite;
|
|
__hypot_finite; __hypotf_finite; __hypotl_finite;
|
|
__j0_finite; __j0f_finite; __j0l_finite;
|
|
__y0_finite; __y0f_finite; __y0l_finite;
|
|
__j1_finite; __j1f_finite; __j1l_finite;
|
|
__y1_finite; __y1f_finite; __y1l_finite;
|
|
__jn_finite; __jnf_finite; __jnl_finite;
|
|
__yn_finite; __ynf_finite; __ynl_finite;
|
|
__lgamma_r_finite; __lgammaf_r_finite; __lgammal_r_finite;
|
|
__log_finite; __logf_finite; __logl_finite;
|
|
__log10_finite; __log10f_finite; __log10l_finite;
|
|
__log2_finite; __log2f_finite; __log2l_finite;
|
|
__pow_finite; __powf_finite; __powl_finite;
|
|
__remainder_finite; __remainderf_finite; __remainderl_finite;
|
|
__scalb_finite; __scalbf_finite; __scalbl_finite;
|
|
__sinh_finite; __sinhf_finite; __sinhl_finite;
|
|
__sqrt_finite; __sqrtf_finite; __sqrtl_finite;
|
|
__gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
|
|
__exp_finite; __expf_finite; __expl_finite;
|
|
}
|
|
}
|