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.
403 lines
8.1 KiB
Plaintext
403 lines
8.1 KiB
Plaintext
GLIBC_2.0 GLIBC_2.0 A
|
|
GLIBC_2.0 _LIB_VERSION D 0x4
|
|
GLIBC_2.0 acos F
|
|
GLIBC_2.0 acosf F
|
|
GLIBC_2.0 acosh F
|
|
GLIBC_2.0 acoshf F
|
|
GLIBC_2.0 acoshl F
|
|
GLIBC_2.0 acosl F
|
|
GLIBC_2.0 asin F
|
|
GLIBC_2.0 asinf F
|
|
GLIBC_2.0 asinh F
|
|
GLIBC_2.0 asinhf F
|
|
GLIBC_2.0 asinhl F
|
|
GLIBC_2.0 asinl F
|
|
GLIBC_2.0 atan F
|
|
GLIBC_2.0 atan2 F
|
|
GLIBC_2.0 atan2f F
|
|
GLIBC_2.0 atan2l F
|
|
GLIBC_2.0 atanf F
|
|
GLIBC_2.0 atanh F
|
|
GLIBC_2.0 atanhf F
|
|
GLIBC_2.0 atanhl F
|
|
GLIBC_2.0 atanl F
|
|
GLIBC_2.0 cbrt F
|
|
GLIBC_2.0 cbrtf F
|
|
GLIBC_2.0 cbrtl F
|
|
GLIBC_2.0 ceil F
|
|
GLIBC_2.0 ceilf F
|
|
GLIBC_2.0 ceill F
|
|
GLIBC_2.0 copysign F
|
|
GLIBC_2.0 copysignf F
|
|
GLIBC_2.0 copysignl F
|
|
GLIBC_2.0 cos F
|
|
GLIBC_2.0 cosf F
|
|
GLIBC_2.0 cosh F
|
|
GLIBC_2.0 coshf F
|
|
GLIBC_2.0 coshl F
|
|
GLIBC_2.0 cosl F
|
|
GLIBC_2.0 drem F
|
|
GLIBC_2.0 dremf F
|
|
GLIBC_2.0 dreml F
|
|
GLIBC_2.0 erf F
|
|
GLIBC_2.0 erfc F
|
|
GLIBC_2.0 erfcf F
|
|
GLIBC_2.0 erfcl F
|
|
GLIBC_2.0 erff F
|
|
GLIBC_2.0 erfl F
|
|
GLIBC_2.0 exp F
|
|
GLIBC_2.0 expf F
|
|
GLIBC_2.0 expl F
|
|
GLIBC_2.0 expm1 F
|
|
GLIBC_2.0 expm1f F
|
|
GLIBC_2.0 expm1l F
|
|
GLIBC_2.0 fabs F
|
|
GLIBC_2.0 fabsf F
|
|
GLIBC_2.0 fabsl F
|
|
GLIBC_2.0 finite F
|
|
GLIBC_2.0 finitef F
|
|
GLIBC_2.0 finitel F
|
|
GLIBC_2.0 floor F
|
|
GLIBC_2.0 floorf F
|
|
GLIBC_2.0 floorl F
|
|
GLIBC_2.0 fmod F
|
|
GLIBC_2.0 fmodf F
|
|
GLIBC_2.0 fmodl F
|
|
GLIBC_2.0 frexp F
|
|
GLIBC_2.0 frexpf F
|
|
GLIBC_2.0 frexpl F
|
|
GLIBC_2.0 gamma F
|
|
GLIBC_2.0 gammaf F
|
|
GLIBC_2.0 gammal F
|
|
GLIBC_2.0 hypot F
|
|
GLIBC_2.0 hypotf F
|
|
GLIBC_2.0 hypotl F
|
|
GLIBC_2.0 ilogb F
|
|
GLIBC_2.0 ilogbf F
|
|
GLIBC_2.0 ilogbl F
|
|
GLIBC_2.0 j0 F
|
|
GLIBC_2.0 j0f F
|
|
GLIBC_2.0 j0l F
|
|
GLIBC_2.0 j1 F
|
|
GLIBC_2.0 j1f F
|
|
GLIBC_2.0 j1l F
|
|
GLIBC_2.0 jn F
|
|
GLIBC_2.0 jnf F
|
|
GLIBC_2.0 jnl F
|
|
GLIBC_2.0 ldexp F
|
|
GLIBC_2.0 ldexpf F
|
|
GLIBC_2.0 ldexpl F
|
|
GLIBC_2.0 lgamma F
|
|
GLIBC_2.0 lgamma_r F
|
|
GLIBC_2.0 lgammaf F
|
|
GLIBC_2.0 lgammaf_r F
|
|
GLIBC_2.0 lgammal F
|
|
GLIBC_2.0 lgammal_r F
|
|
GLIBC_2.0 log F
|
|
GLIBC_2.0 log10 F
|
|
GLIBC_2.0 log10f F
|
|
GLIBC_2.0 log10l F
|
|
GLIBC_2.0 log1p F
|
|
GLIBC_2.0 log1pf F
|
|
GLIBC_2.0 log1pl F
|
|
GLIBC_2.0 logb F
|
|
GLIBC_2.0 logbf F
|
|
GLIBC_2.0 logbl F
|
|
GLIBC_2.0 logf F
|
|
GLIBC_2.0 logl F
|
|
GLIBC_2.0 matherr F
|
|
GLIBC_2.0 modf F
|
|
GLIBC_2.0 modff F
|
|
GLIBC_2.0 modfl F
|
|
GLIBC_2.0 nextafter F
|
|
GLIBC_2.0 nextafterf F
|
|
GLIBC_2.0 nextafterl F
|
|
GLIBC_2.0 pow F
|
|
GLIBC_2.0 powf F
|
|
GLIBC_2.0 powl F
|
|
GLIBC_2.0 remainder F
|
|
GLIBC_2.0 remainderf F
|
|
GLIBC_2.0 remainderl F
|
|
GLIBC_2.0 rint F
|
|
GLIBC_2.0 rintf F
|
|
GLIBC_2.0 rintl F
|
|
GLIBC_2.0 scalb F
|
|
GLIBC_2.0 scalbf F
|
|
GLIBC_2.0 scalbl F
|
|
GLIBC_2.0 scalbn F
|
|
GLIBC_2.0 scalbnf F
|
|
GLIBC_2.0 scalbnl F
|
|
GLIBC_2.0 signgam D 0x4
|
|
GLIBC_2.0 significand F
|
|
GLIBC_2.0 significandf F
|
|
GLIBC_2.0 significandl F
|
|
GLIBC_2.0 sin F
|
|
GLIBC_2.0 sinf F
|
|
GLIBC_2.0 sinh F
|
|
GLIBC_2.0 sinhf F
|
|
GLIBC_2.0 sinhl F
|
|
GLIBC_2.0 sinl F
|
|
GLIBC_2.0 sqrt F
|
|
GLIBC_2.0 sqrtf F
|
|
GLIBC_2.0 sqrtl F
|
|
GLIBC_2.0 tan F
|
|
GLIBC_2.0 tanf F
|
|
GLIBC_2.0 tanh F
|
|
GLIBC_2.0 tanhf F
|
|
GLIBC_2.0 tanhl F
|
|
GLIBC_2.0 tanl F
|
|
GLIBC_2.0 y0 F
|
|
GLIBC_2.0 y0f F
|
|
GLIBC_2.0 y0l F
|
|
GLIBC_2.0 y1 F
|
|
GLIBC_2.0 y1f F
|
|
GLIBC_2.0 y1l F
|
|
GLIBC_2.0 yn F
|
|
GLIBC_2.0 ynf F
|
|
GLIBC_2.0 ynl F
|
|
GLIBC_2.15 GLIBC_2.15 A
|
|
GLIBC_2.15 __acos_finite F
|
|
GLIBC_2.15 __acosf_finite F
|
|
GLIBC_2.15 __acosh_finite F
|
|
GLIBC_2.15 __acoshf_finite F
|
|
GLIBC_2.15 __asin_finite F
|
|
GLIBC_2.15 __asinf_finite F
|
|
GLIBC_2.15 __atan2_finite F
|
|
GLIBC_2.15 __atan2f_finite F
|
|
GLIBC_2.15 __atanh_finite F
|
|
GLIBC_2.15 __atanhf_finite F
|
|
GLIBC_2.15 __cosh_finite F
|
|
GLIBC_2.15 __coshf_finite F
|
|
GLIBC_2.15 __exp10_finite F
|
|
GLIBC_2.15 __exp10f_finite F
|
|
GLIBC_2.15 __exp2_finite F
|
|
GLIBC_2.15 __exp2f_finite F
|
|
GLIBC_2.15 __exp_finite F
|
|
GLIBC_2.15 __expf_finite F
|
|
GLIBC_2.15 __fmod_finite F
|
|
GLIBC_2.15 __fmodf_finite F
|
|
GLIBC_2.15 __gamma_r_finite F
|
|
GLIBC_2.15 __gammaf_r_finite F
|
|
GLIBC_2.15 __hypot_finite F
|
|
GLIBC_2.15 __hypotf_finite F
|
|
GLIBC_2.15 __j0_finite F
|
|
GLIBC_2.15 __j0f_finite F
|
|
GLIBC_2.15 __j1_finite F
|
|
GLIBC_2.15 __j1f_finite F
|
|
GLIBC_2.15 __jn_finite F
|
|
GLIBC_2.15 __jnf_finite F
|
|
GLIBC_2.15 __lgamma_r_finite F
|
|
GLIBC_2.15 __lgammaf_r_finite F
|
|
GLIBC_2.15 __log10_finite F
|
|
GLIBC_2.15 __log10f_finite F
|
|
GLIBC_2.15 __log2_finite F
|
|
GLIBC_2.15 __log2f_finite F
|
|
GLIBC_2.15 __log_finite F
|
|
GLIBC_2.15 __logf_finite F
|
|
GLIBC_2.15 __pow_finite F
|
|
GLIBC_2.15 __powf_finite F
|
|
GLIBC_2.15 __remainder_finite F
|
|
GLIBC_2.15 __remainderf_finite F
|
|
GLIBC_2.15 __scalb_finite F
|
|
GLIBC_2.15 __scalbf_finite F
|
|
GLIBC_2.15 __sinh_finite F
|
|
GLIBC_2.15 __sinhf_finite F
|
|
GLIBC_2.15 __sqrt_finite F
|
|
GLIBC_2.15 __sqrtf_finite F
|
|
GLIBC_2.15 __y0_finite F
|
|
GLIBC_2.15 __y0f_finite F
|
|
GLIBC_2.15 __y1_finite F
|
|
GLIBC_2.15 __y1f_finite F
|
|
GLIBC_2.15 __yn_finite F
|
|
GLIBC_2.15 __ynf_finite F
|
|
GLIBC_2.18 GLIBC_2.18 A
|
|
GLIBC_2.18 __issignaling F
|
|
GLIBC_2.18 __issignalingf F
|
|
GLIBC_2.2 GLIBC_2.2 A
|
|
GLIBC_2.2 __clog10 F
|
|
GLIBC_2.2 __clog10f F
|
|
GLIBC_2.2 __clog10l F
|
|
GLIBC_2.2 __finite F
|
|
GLIBC_2.2 __finitef F
|
|
GLIBC_2.2 __finitel F
|
|
GLIBC_2.2 __fpclassify F
|
|
GLIBC_2.2 __fpclassifyf F
|
|
GLIBC_2.2 __signbit F
|
|
GLIBC_2.2 __signbitf F
|
|
GLIBC_2.2 cabs F
|
|
GLIBC_2.2 cabsf F
|
|
GLIBC_2.2 cabsl F
|
|
GLIBC_2.2 cacos F
|
|
GLIBC_2.2 cacosf F
|
|
GLIBC_2.2 cacosh F
|
|
GLIBC_2.2 cacoshf F
|
|
GLIBC_2.2 cacoshl F
|
|
GLIBC_2.2 cacosl F
|
|
GLIBC_2.2 carg F
|
|
GLIBC_2.2 cargf F
|
|
GLIBC_2.2 cargl F
|
|
GLIBC_2.2 casin F
|
|
GLIBC_2.2 casinf F
|
|
GLIBC_2.2 casinh F
|
|
GLIBC_2.2 casinhf F
|
|
GLIBC_2.2 casinhl F
|
|
GLIBC_2.2 casinl F
|
|
GLIBC_2.2 catan F
|
|
GLIBC_2.2 catanf F
|
|
GLIBC_2.2 catanh F
|
|
GLIBC_2.2 catanhf F
|
|
GLIBC_2.2 catanhl F
|
|
GLIBC_2.2 catanl F
|
|
GLIBC_2.2 ccos F
|
|
GLIBC_2.2 ccosf F
|
|
GLIBC_2.2 ccosh F
|
|
GLIBC_2.2 ccoshf F
|
|
GLIBC_2.2 ccoshl F
|
|
GLIBC_2.2 ccosl F
|
|
GLIBC_2.2 cexp F
|
|
GLIBC_2.2 cexpf F
|
|
GLIBC_2.2 cexpl F
|
|
GLIBC_2.2 cimag F
|
|
GLIBC_2.2 cimagf F
|
|
GLIBC_2.2 cimagl F
|
|
GLIBC_2.2 clog F
|
|
GLIBC_2.2 clog10 F
|
|
GLIBC_2.2 clog10f F
|
|
GLIBC_2.2 clog10l F
|
|
GLIBC_2.2 clogf F
|
|
GLIBC_2.2 clogl F
|
|
GLIBC_2.2 conj F
|
|
GLIBC_2.2 conjf F
|
|
GLIBC_2.2 conjl F
|
|
GLIBC_2.2 cpow F
|
|
GLIBC_2.2 cpowf F
|
|
GLIBC_2.2 cpowl F
|
|
GLIBC_2.2 cproj F
|
|
GLIBC_2.2 cprojf F
|
|
GLIBC_2.2 cprojl F
|
|
GLIBC_2.2 creal F
|
|
GLIBC_2.2 crealf F
|
|
GLIBC_2.2 creall F
|
|
GLIBC_2.2 csin F
|
|
GLIBC_2.2 csinf F
|
|
GLIBC_2.2 csinh F
|
|
GLIBC_2.2 csinhf F
|
|
GLIBC_2.2 csinhl F
|
|
GLIBC_2.2 csinl F
|
|
GLIBC_2.2 csqrt F
|
|
GLIBC_2.2 csqrtf F
|
|
GLIBC_2.2 csqrtl F
|
|
GLIBC_2.2 ctan F
|
|
GLIBC_2.2 ctanf F
|
|
GLIBC_2.2 ctanh F
|
|
GLIBC_2.2 ctanhf F
|
|
GLIBC_2.2 ctanhl F
|
|
GLIBC_2.2 ctanl F
|
|
GLIBC_2.2 exp10 F
|
|
GLIBC_2.2 exp10f F
|
|
GLIBC_2.2 exp10l F
|
|
GLIBC_2.2 exp2 F
|
|
GLIBC_2.2 exp2f F
|
|
GLIBC_2.2 fdim F
|
|
GLIBC_2.2 fdimf F
|
|
GLIBC_2.2 fdiml F
|
|
GLIBC_2.2 feclearexcept F
|
|
GLIBC_2.2 fedisableexcept F
|
|
GLIBC_2.2 feenableexcept F
|
|
GLIBC_2.2 fegetenv F
|
|
GLIBC_2.2 fegetexcept F
|
|
GLIBC_2.2 fegetexceptflag F
|
|
GLIBC_2.2 fegetround F
|
|
GLIBC_2.2 feholdexcept F
|
|
GLIBC_2.2 feraiseexcept F
|
|
GLIBC_2.2 fesetenv F
|
|
GLIBC_2.2 fesetexceptflag F
|
|
GLIBC_2.2 fesetround F
|
|
GLIBC_2.2 fetestexcept F
|
|
GLIBC_2.2 feupdateenv F
|
|
GLIBC_2.2 fma F
|
|
GLIBC_2.2 fmaf F
|
|
GLIBC_2.2 fmal F
|
|
GLIBC_2.2 fmax F
|
|
GLIBC_2.2 fmaxf F
|
|
GLIBC_2.2 fmaxl F
|
|
GLIBC_2.2 fmin F
|
|
GLIBC_2.2 fminf F
|
|
GLIBC_2.2 fminl F
|
|
GLIBC_2.2 llrint F
|
|
GLIBC_2.2 llrintf F
|
|
GLIBC_2.2 llrintl F
|
|
GLIBC_2.2 llround F
|
|
GLIBC_2.2 llroundf F
|
|
GLIBC_2.2 llroundl F
|
|
GLIBC_2.2 log2 F
|
|
GLIBC_2.2 log2f F
|
|
GLIBC_2.2 log2l F
|
|
GLIBC_2.2 lrint F
|
|
GLIBC_2.2 lrintf F
|
|
GLIBC_2.2 lrintl F
|
|
GLIBC_2.2 lround F
|
|
GLIBC_2.2 lroundf F
|
|
GLIBC_2.2 lroundl F
|
|
GLIBC_2.2 nan F
|
|
GLIBC_2.2 nanf F
|
|
GLIBC_2.2 nanl F
|
|
GLIBC_2.2 nearbyint F
|
|
GLIBC_2.2 nearbyintf F
|
|
GLIBC_2.2 nearbyintl F
|
|
GLIBC_2.2 nexttoward F
|
|
GLIBC_2.2 nexttowardf F
|
|
GLIBC_2.2 nexttowardl F
|
|
GLIBC_2.2 pow10 F
|
|
GLIBC_2.2 pow10f F
|
|
GLIBC_2.2 pow10l F
|
|
GLIBC_2.2 remquo F
|
|
GLIBC_2.2 remquof F
|
|
GLIBC_2.2 remquol F
|
|
GLIBC_2.2 round F
|
|
GLIBC_2.2 roundf F
|
|
GLIBC_2.2 roundl F
|
|
GLIBC_2.2 scalbln F
|
|
GLIBC_2.2 scalblnf F
|
|
GLIBC_2.2 scalblnl F
|
|
GLIBC_2.2 sincos F
|
|
GLIBC_2.2 sincosf F
|
|
GLIBC_2.2 sincosl F
|
|
GLIBC_2.2 tgamma F
|
|
GLIBC_2.2 tgammaf F
|
|
GLIBC_2.2 tgammal F
|
|
GLIBC_2.2 trunc F
|
|
GLIBC_2.2 truncf F
|
|
GLIBC_2.2 truncl 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
|
|
GLIBC_2.4 GLIBC_2.4 A
|
|
GLIBC_2.4 exp2l F
|
|
_gp_disp _gp_disp A
|