mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-30 08:40:07 +00:00
f8e8b8ed9f
TS 18661-1 defines functions for manipulating the payloads of NaNs. This patch implements the getpayload functions for glibc; these extract the NaN payload (from an argument passed as a pointer, for which corresponding libm-test support is added) and return it in the same floating-point type. The return value of these functions is unspecified for non-NaN arguments; the patch does the simplest thing to implement, which is that the functions do not check whether the argument is a NaN and just treat the relevant bits of the representation as a payload regardless. A conversion from integer to floating-point is used to produce the required return value, except in the ldbl-128 case; as 128-bit integers are not supported for all configurations using ldbl-128, the code constructs the required floating-point representation of the return value directly instead. Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (getpayload): New declaration. * math/Versions (getpayload): New libm symbol at version GLIBC_2.25. (getpayloadf): Likewise. (getpayloadl): Likewise. * math/Makefile (libm-calls): Add s_getpayloadF. * math/libm-test.inc: Include <nan-high-order-bit.h>. (struct test_f_f_data): Add comment. (RUN_TEST_fp_f): New macro. (RUN_TEST_LOOP_fp_f): Likewise. (getpayload_test_data): New array. (getpayload_test): New function. (main): Call getpayload_test. * math/gen-libm-test.pl (parse_args): Handle 'p' in argument descriptor. * manual/arith.texi (FP Bit Twiddling): Document getpayload, getpayloadf and getpayloadl. * manual/libm-err-tab.pl: Update comment on interfaces without ulps tabulated. * sysdeps/ieee754/dbl-64/s_getpayload.c: New file. * sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c: Likewise. * sysdeps/ieee754/flt-32/s_getpayloadf.c: Likewise. * sysdeps/ieee754/ldbl-128/s_getpayloadl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_getpayloadl.c: Likewise. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
398 lines
8.3 KiB
Plaintext
398 lines
8.3 KiB
Plaintext
GLIBC_2.21 GLIBC_2.21 A
|
|
GLIBC_2.21 _LIB_VERSION D 0x4
|
|
GLIBC_2.21 __acos_finite F
|
|
GLIBC_2.21 __acosf_finite F
|
|
GLIBC_2.21 __acosh_finite F
|
|
GLIBC_2.21 __acoshf_finite F
|
|
GLIBC_2.21 __asin_finite F
|
|
GLIBC_2.21 __asinf_finite F
|
|
GLIBC_2.21 __atan2_finite F
|
|
GLIBC_2.21 __atan2f_finite F
|
|
GLIBC_2.21 __atanh_finite F
|
|
GLIBC_2.21 __atanhf_finite F
|
|
GLIBC_2.21 __clog10 F
|
|
GLIBC_2.21 __clog10f F
|
|
GLIBC_2.21 __clog10l F
|
|
GLIBC_2.21 __cosh_finite F
|
|
GLIBC_2.21 __coshf_finite F
|
|
GLIBC_2.21 __exp10_finite F
|
|
GLIBC_2.21 __exp10f_finite F
|
|
GLIBC_2.21 __exp2_finite F
|
|
GLIBC_2.21 __exp2f_finite F
|
|
GLIBC_2.21 __exp_finite F
|
|
GLIBC_2.21 __expf_finite F
|
|
GLIBC_2.21 __finite F
|
|
GLIBC_2.21 __finitef F
|
|
GLIBC_2.21 __finitel F
|
|
GLIBC_2.21 __fmod_finite F
|
|
GLIBC_2.21 __fmodf_finite F
|
|
GLIBC_2.21 __fpclassify F
|
|
GLIBC_2.21 __fpclassifyf F
|
|
GLIBC_2.21 __gamma_r_finite F
|
|
GLIBC_2.21 __gammaf_r_finite F
|
|
GLIBC_2.21 __hypot_finite F
|
|
GLIBC_2.21 __hypotf_finite F
|
|
GLIBC_2.21 __issignaling F
|
|
GLIBC_2.21 __issignalingf F
|
|
GLIBC_2.21 __j0_finite F
|
|
GLIBC_2.21 __j0f_finite F
|
|
GLIBC_2.21 __j1_finite F
|
|
GLIBC_2.21 __j1f_finite F
|
|
GLIBC_2.21 __jn_finite F
|
|
GLIBC_2.21 __jnf_finite F
|
|
GLIBC_2.21 __lgamma_r_finite F
|
|
GLIBC_2.21 __lgammaf_r_finite F
|
|
GLIBC_2.21 __log10_finite F
|
|
GLIBC_2.21 __log10f_finite F
|
|
GLIBC_2.21 __log2_finite F
|
|
GLIBC_2.21 __log2f_finite F
|
|
GLIBC_2.21 __log_finite F
|
|
GLIBC_2.21 __logf_finite F
|
|
GLIBC_2.21 __pow_finite F
|
|
GLIBC_2.21 __powf_finite F
|
|
GLIBC_2.21 __remainder_finite F
|
|
GLIBC_2.21 __remainderf_finite F
|
|
GLIBC_2.21 __scalb_finite F
|
|
GLIBC_2.21 __scalbf_finite F
|
|
GLIBC_2.21 __signbit F
|
|
GLIBC_2.21 __signbitf F
|
|
GLIBC_2.21 __sinh_finite F
|
|
GLIBC_2.21 __sinhf_finite F
|
|
GLIBC_2.21 __sqrt_finite F
|
|
GLIBC_2.21 __sqrtf_finite F
|
|
GLIBC_2.21 __y0_finite F
|
|
GLIBC_2.21 __y0f_finite F
|
|
GLIBC_2.21 __y1_finite F
|
|
GLIBC_2.21 __y1f_finite F
|
|
GLIBC_2.21 __yn_finite F
|
|
GLIBC_2.21 __ynf_finite F
|
|
GLIBC_2.21 acos F
|
|
GLIBC_2.21 acosf F
|
|
GLIBC_2.21 acosh F
|
|
GLIBC_2.21 acoshf F
|
|
GLIBC_2.21 acoshl F
|
|
GLIBC_2.21 acosl F
|
|
GLIBC_2.21 asin F
|
|
GLIBC_2.21 asinf F
|
|
GLIBC_2.21 asinh F
|
|
GLIBC_2.21 asinhf F
|
|
GLIBC_2.21 asinhl F
|
|
GLIBC_2.21 asinl F
|
|
GLIBC_2.21 atan F
|
|
GLIBC_2.21 atan2 F
|
|
GLIBC_2.21 atan2f F
|
|
GLIBC_2.21 atan2l F
|
|
GLIBC_2.21 atanf F
|
|
GLIBC_2.21 atanh F
|
|
GLIBC_2.21 atanhf F
|
|
GLIBC_2.21 atanhl F
|
|
GLIBC_2.21 atanl F
|
|
GLIBC_2.21 cabs F
|
|
GLIBC_2.21 cabsf F
|
|
GLIBC_2.21 cabsl F
|
|
GLIBC_2.21 cacos F
|
|
GLIBC_2.21 cacosf F
|
|
GLIBC_2.21 cacosh F
|
|
GLIBC_2.21 cacoshf F
|
|
GLIBC_2.21 cacoshl F
|
|
GLIBC_2.21 cacosl F
|
|
GLIBC_2.21 carg F
|
|
GLIBC_2.21 cargf F
|
|
GLIBC_2.21 cargl F
|
|
GLIBC_2.21 casin F
|
|
GLIBC_2.21 casinf F
|
|
GLIBC_2.21 casinh F
|
|
GLIBC_2.21 casinhf F
|
|
GLIBC_2.21 casinhl F
|
|
GLIBC_2.21 casinl F
|
|
GLIBC_2.21 catan F
|
|
GLIBC_2.21 catanf F
|
|
GLIBC_2.21 catanh F
|
|
GLIBC_2.21 catanhf F
|
|
GLIBC_2.21 catanhl F
|
|
GLIBC_2.21 catanl F
|
|
GLIBC_2.21 cbrt F
|
|
GLIBC_2.21 cbrtf F
|
|
GLIBC_2.21 cbrtl F
|
|
GLIBC_2.21 ccos F
|
|
GLIBC_2.21 ccosf F
|
|
GLIBC_2.21 ccosh F
|
|
GLIBC_2.21 ccoshf F
|
|
GLIBC_2.21 ccoshl F
|
|
GLIBC_2.21 ccosl F
|
|
GLIBC_2.21 ceil F
|
|
GLIBC_2.21 ceilf F
|
|
GLIBC_2.21 ceill F
|
|
GLIBC_2.21 cexp F
|
|
GLIBC_2.21 cexpf F
|
|
GLIBC_2.21 cexpl F
|
|
GLIBC_2.21 cimag F
|
|
GLIBC_2.21 cimagf F
|
|
GLIBC_2.21 cimagl F
|
|
GLIBC_2.21 clog F
|
|
GLIBC_2.21 clog10 F
|
|
GLIBC_2.21 clog10f F
|
|
GLIBC_2.21 clog10l F
|
|
GLIBC_2.21 clogf F
|
|
GLIBC_2.21 clogl F
|
|
GLIBC_2.21 conj F
|
|
GLIBC_2.21 conjf F
|
|
GLIBC_2.21 conjl F
|
|
GLIBC_2.21 copysign F
|
|
GLIBC_2.21 copysignf F
|
|
GLIBC_2.21 copysignl F
|
|
GLIBC_2.21 cos F
|
|
GLIBC_2.21 cosf F
|
|
GLIBC_2.21 cosh F
|
|
GLIBC_2.21 coshf F
|
|
GLIBC_2.21 coshl F
|
|
GLIBC_2.21 cosl F
|
|
GLIBC_2.21 cpow F
|
|
GLIBC_2.21 cpowf F
|
|
GLIBC_2.21 cpowl F
|
|
GLIBC_2.21 cproj F
|
|
GLIBC_2.21 cprojf F
|
|
GLIBC_2.21 cprojl F
|
|
GLIBC_2.21 creal F
|
|
GLIBC_2.21 crealf F
|
|
GLIBC_2.21 creall F
|
|
GLIBC_2.21 csin F
|
|
GLIBC_2.21 csinf F
|
|
GLIBC_2.21 csinh F
|
|
GLIBC_2.21 csinhf F
|
|
GLIBC_2.21 csinhl F
|
|
GLIBC_2.21 csinl F
|
|
GLIBC_2.21 csqrt F
|
|
GLIBC_2.21 csqrtf F
|
|
GLIBC_2.21 csqrtl F
|
|
GLIBC_2.21 ctan F
|
|
GLIBC_2.21 ctanf F
|
|
GLIBC_2.21 ctanh F
|
|
GLIBC_2.21 ctanhf F
|
|
GLIBC_2.21 ctanhl F
|
|
GLIBC_2.21 ctanl F
|
|
GLIBC_2.21 drem F
|
|
GLIBC_2.21 dremf F
|
|
GLIBC_2.21 dreml F
|
|
GLIBC_2.21 erf F
|
|
GLIBC_2.21 erfc F
|
|
GLIBC_2.21 erfcf F
|
|
GLIBC_2.21 erfcl F
|
|
GLIBC_2.21 erff F
|
|
GLIBC_2.21 erfl F
|
|
GLIBC_2.21 exp F
|
|
GLIBC_2.21 exp10 F
|
|
GLIBC_2.21 exp10f F
|
|
GLIBC_2.21 exp10l F
|
|
GLIBC_2.21 exp2 F
|
|
GLIBC_2.21 exp2f F
|
|
GLIBC_2.21 exp2l F
|
|
GLIBC_2.21 expf F
|
|
GLIBC_2.21 expl F
|
|
GLIBC_2.21 expm1 F
|
|
GLIBC_2.21 expm1f F
|
|
GLIBC_2.21 expm1l F
|
|
GLIBC_2.21 fabs F
|
|
GLIBC_2.21 fabsf F
|
|
GLIBC_2.21 fabsl F
|
|
GLIBC_2.21 fdim F
|
|
GLIBC_2.21 fdimf F
|
|
GLIBC_2.21 fdiml F
|
|
GLIBC_2.21 feclearexcept F
|
|
GLIBC_2.21 fedisableexcept F
|
|
GLIBC_2.21 feenableexcept F
|
|
GLIBC_2.21 fegetenv F
|
|
GLIBC_2.21 fegetexcept F
|
|
GLIBC_2.21 fegetexceptflag F
|
|
GLIBC_2.21 fegetround F
|
|
GLIBC_2.21 feholdexcept F
|
|
GLIBC_2.21 feraiseexcept F
|
|
GLIBC_2.21 fesetenv F
|
|
GLIBC_2.21 fesetexceptflag F
|
|
GLIBC_2.21 fesetround F
|
|
GLIBC_2.21 fetestexcept F
|
|
GLIBC_2.21 feupdateenv F
|
|
GLIBC_2.21 finite F
|
|
GLIBC_2.21 finitef F
|
|
GLIBC_2.21 finitel F
|
|
GLIBC_2.21 floor F
|
|
GLIBC_2.21 floorf F
|
|
GLIBC_2.21 floorl F
|
|
GLIBC_2.21 fma F
|
|
GLIBC_2.21 fmaf F
|
|
GLIBC_2.21 fmal F
|
|
GLIBC_2.21 fmax F
|
|
GLIBC_2.21 fmaxf F
|
|
GLIBC_2.21 fmaxl F
|
|
GLIBC_2.21 fmin F
|
|
GLIBC_2.21 fminf F
|
|
GLIBC_2.21 fminl F
|
|
GLIBC_2.21 fmod F
|
|
GLIBC_2.21 fmodf F
|
|
GLIBC_2.21 fmodl F
|
|
GLIBC_2.21 frexp F
|
|
GLIBC_2.21 frexpf F
|
|
GLIBC_2.21 frexpl F
|
|
GLIBC_2.21 gamma F
|
|
GLIBC_2.21 gammaf F
|
|
GLIBC_2.21 gammal F
|
|
GLIBC_2.21 hypot F
|
|
GLIBC_2.21 hypotf F
|
|
GLIBC_2.21 hypotl F
|
|
GLIBC_2.21 ilogb F
|
|
GLIBC_2.21 ilogbf F
|
|
GLIBC_2.21 ilogbl F
|
|
GLIBC_2.21 j0 F
|
|
GLIBC_2.21 j0f F
|
|
GLIBC_2.21 j0l F
|
|
GLIBC_2.21 j1 F
|
|
GLIBC_2.21 j1f F
|
|
GLIBC_2.21 j1l F
|
|
GLIBC_2.21 jn F
|
|
GLIBC_2.21 jnf F
|
|
GLIBC_2.21 jnl F
|
|
GLIBC_2.21 ldexp F
|
|
GLIBC_2.21 ldexpf F
|
|
GLIBC_2.21 ldexpl F
|
|
GLIBC_2.21 lgamma F
|
|
GLIBC_2.21 lgamma_r F
|
|
GLIBC_2.21 lgammaf F
|
|
GLIBC_2.21 lgammaf_r F
|
|
GLIBC_2.21 lgammal F
|
|
GLIBC_2.21 lgammal_r F
|
|
GLIBC_2.21 llrint F
|
|
GLIBC_2.21 llrintf F
|
|
GLIBC_2.21 llrintl F
|
|
GLIBC_2.21 llround F
|
|
GLIBC_2.21 llroundf F
|
|
GLIBC_2.21 llroundl F
|
|
GLIBC_2.21 log F
|
|
GLIBC_2.21 log10 F
|
|
GLIBC_2.21 log10f F
|
|
GLIBC_2.21 log10l F
|
|
GLIBC_2.21 log1p F
|
|
GLIBC_2.21 log1pf F
|
|
GLIBC_2.21 log1pl F
|
|
GLIBC_2.21 log2 F
|
|
GLIBC_2.21 log2f F
|
|
GLIBC_2.21 log2l F
|
|
GLIBC_2.21 logb F
|
|
GLIBC_2.21 logbf F
|
|
GLIBC_2.21 logbl F
|
|
GLIBC_2.21 logf F
|
|
GLIBC_2.21 logl F
|
|
GLIBC_2.21 lrint F
|
|
GLIBC_2.21 lrintf F
|
|
GLIBC_2.21 lrintl F
|
|
GLIBC_2.21 lround F
|
|
GLIBC_2.21 lroundf F
|
|
GLIBC_2.21 lroundl F
|
|
GLIBC_2.21 matherr F
|
|
GLIBC_2.21 modf F
|
|
GLIBC_2.21 modff F
|
|
GLIBC_2.21 modfl F
|
|
GLIBC_2.21 nan F
|
|
GLIBC_2.21 nanf F
|
|
GLIBC_2.21 nanl F
|
|
GLIBC_2.21 nearbyint F
|
|
GLIBC_2.21 nearbyintf F
|
|
GLIBC_2.21 nearbyintl F
|
|
GLIBC_2.21 nextafter F
|
|
GLIBC_2.21 nextafterf F
|
|
GLIBC_2.21 nextafterl F
|
|
GLIBC_2.21 nexttoward F
|
|
GLIBC_2.21 nexttowardf F
|
|
GLIBC_2.21 nexttowardl F
|
|
GLIBC_2.21 pow F
|
|
GLIBC_2.21 pow10 F
|
|
GLIBC_2.21 pow10f F
|
|
GLIBC_2.21 pow10l F
|
|
GLIBC_2.21 powf F
|
|
GLIBC_2.21 powl F
|
|
GLIBC_2.21 remainder F
|
|
GLIBC_2.21 remainderf F
|
|
GLIBC_2.21 remainderl F
|
|
GLIBC_2.21 remquo F
|
|
GLIBC_2.21 remquof F
|
|
GLIBC_2.21 remquol F
|
|
GLIBC_2.21 rint F
|
|
GLIBC_2.21 rintf F
|
|
GLIBC_2.21 rintl F
|
|
GLIBC_2.21 round F
|
|
GLIBC_2.21 roundf F
|
|
GLIBC_2.21 roundl F
|
|
GLIBC_2.21 scalb F
|
|
GLIBC_2.21 scalbf F
|
|
GLIBC_2.21 scalbl F
|
|
GLIBC_2.21 scalbln F
|
|
GLIBC_2.21 scalblnf F
|
|
GLIBC_2.21 scalblnl F
|
|
GLIBC_2.21 scalbn F
|
|
GLIBC_2.21 scalbnf F
|
|
GLIBC_2.21 scalbnl F
|
|
GLIBC_2.21 signgam D 0x4
|
|
GLIBC_2.21 significand F
|
|
GLIBC_2.21 significandf F
|
|
GLIBC_2.21 significandl F
|
|
GLIBC_2.21 sin F
|
|
GLIBC_2.21 sincos F
|
|
GLIBC_2.21 sincosf F
|
|
GLIBC_2.21 sincosl F
|
|
GLIBC_2.21 sinf F
|
|
GLIBC_2.21 sinh F
|
|
GLIBC_2.21 sinhf F
|
|
GLIBC_2.21 sinhl F
|
|
GLIBC_2.21 sinl F
|
|
GLIBC_2.21 sqrt F
|
|
GLIBC_2.21 sqrtf F
|
|
GLIBC_2.21 sqrtl F
|
|
GLIBC_2.21 tan F
|
|
GLIBC_2.21 tanf F
|
|
GLIBC_2.21 tanh F
|
|
GLIBC_2.21 tanhf F
|
|
GLIBC_2.21 tanhl F
|
|
GLIBC_2.21 tanl F
|
|
GLIBC_2.21 tgamma F
|
|
GLIBC_2.21 tgammaf F
|
|
GLIBC_2.21 tgammal F
|
|
GLIBC_2.21 trunc F
|
|
GLIBC_2.21 truncf F
|
|
GLIBC_2.21 truncl F
|
|
GLIBC_2.21 y0 F
|
|
GLIBC_2.21 y0f F
|
|
GLIBC_2.21 y0l F
|
|
GLIBC_2.21 y1 F
|
|
GLIBC_2.21 y1f F
|
|
GLIBC_2.21 y1l F
|
|
GLIBC_2.21 yn F
|
|
GLIBC_2.21 ynf F
|
|
GLIBC_2.21 ynl F
|
|
GLIBC_2.23 GLIBC_2.23 A
|
|
GLIBC_2.23 __signgam D 0x4
|
|
GLIBC_2.23 lgamma F
|
|
GLIBC_2.23 lgammaf F
|
|
GLIBC_2.23 lgammal F
|
|
GLIBC_2.24 GLIBC_2.24 A
|
|
GLIBC_2.24 nextdown F
|
|
GLIBC_2.24 nextdownf F
|
|
GLIBC_2.24 nextdownl F
|
|
GLIBC_2.24 nextup F
|
|
GLIBC_2.24 nextupf F
|
|
GLIBC_2.24 nextupl F
|
|
GLIBC_2.25 GLIBC_2.25 A
|
|
GLIBC_2.25 __iseqsig F
|
|
GLIBC_2.25 __iseqsigf F
|
|
GLIBC_2.25 fegetmode F
|
|
GLIBC_2.25 fesetexcept F
|
|
GLIBC_2.25 fesetmode F
|
|
GLIBC_2.25 fetestexceptflag F
|
|
GLIBC_2.25 getpayload F
|
|
GLIBC_2.25 getpayloadf F
|
|
GLIBC_2.25 getpayloadl F
|
|
GLIBC_2.25 totalorder F
|
|
GLIBC_2.25 totalorderf F
|
|
GLIBC_2.25 totalorderl F
|
|
GLIBC_2.25 totalordermag F
|
|
GLIBC_2.25 totalordermagf F
|
|
GLIBC_2.25 totalordermagl F
|