mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-02 01:40:07 +00:00
b7b88cea41
Since the addition of the _Float128 API, strfromf128 and printf_size use __printf_fp to print _Float128 values. This is achieved by setting the 'is_binary128' member of the 'printf_info' structure to one. Now that the format of long double on powerpc64le is getting a third option, this mechanism is reused for long double values that have binary128 format (i.e.: when -mabi=ieeelongdouble). This patch adds __printf_sizeieee128 as an exported symbol, but doesn't provide redirections from printf_size, yet. All redirections will be installed in a future commit, once all other functions that print or read long double values with binary128 format are ready. In __printf_fp, when 'is_binary128' is one, the floating-point argument is treated as if it was of _Float128 type, regardless of the value of 'is_long_double', thus __printf_sizeieee128 sets 'is_binary128' to the same value of 'is_long_double'. Otherwise, double values would not be printed correctly. Tested for powerpc64le.
124 lines
2.4 KiB
Plaintext
124 lines
2.4 KiB
Plaintext
%include <ldbl-128ibm-compat-abi.h>
|
|
%ifndef LDBL_IBM128_VERSION
|
|
% error "ldbl-128ibm-compat-abi.h must define LDBL_IBM128_VERSION"
|
|
%endif
|
|
|
|
libm {
|
|
LDBL_IBM128_VERSION {
|
|
__acoshieee128;
|
|
__acosieee128;
|
|
__asinhieee128;
|
|
__asinieee128;
|
|
__atan2ieee128;
|
|
__atanhieee128;
|
|
__atanieee128;
|
|
__cabsieee128;
|
|
__cacoshieee128;
|
|
__cacosieee128;
|
|
__canonicalizeieee128;
|
|
__cargieee128;
|
|
__casinhieee128;
|
|
__casinieee128;
|
|
__catanhieee128;
|
|
__catanieee128;
|
|
__cbrtieee128;
|
|
__ccoshieee128;
|
|
__ccosieee128;
|
|
__ceilieee128;
|
|
__cexpieee128;
|
|
__cimagieee128;
|
|
__clog10ieee128;
|
|
__clogieee128;
|
|
__conjieee128;
|
|
__copysignieee128;
|
|
__coshieee128;
|
|
__cosieee128;
|
|
__cpowieee128;
|
|
__cprojieee128;
|
|
__crealieee128;
|
|
__csinhieee128;
|
|
__csinieee128;
|
|
__csqrtieee128;
|
|
__ctanhieee128;
|
|
__ctanieee128;
|
|
__erfcieee128;
|
|
__erfieee128;
|
|
__exp10ieee128;
|
|
__exp2ieee128;
|
|
__expieee128;
|
|
__expm1ieee128;
|
|
__fabsieee128;
|
|
__fdimieee128;
|
|
__floorieee128;
|
|
__fmaieee128;
|
|
__fmaxieee128;
|
|
__fmaxmagieee128;
|
|
__fminieee128;
|
|
__fminmagieee128;
|
|
__fmodieee128;
|
|
__frexpieee128;
|
|
__fromfpieee128;
|
|
__fromfpxieee128;
|
|
__getpayloadieee128;
|
|
__hypotieee128;
|
|
__ilogbieee128;
|
|
__j0ieee128;
|
|
__j1ieee128;
|
|
__jnieee128;
|
|
__ldexpieee128;
|
|
__lgammaieee128;
|
|
__lgammaieee128_r;
|
|
__llogbieee128;
|
|
__llrintieee128;
|
|
__llroundieee128;
|
|
__log10ieee128;
|
|
__log1pieee128;
|
|
__log2ieee128;
|
|
__logbieee128;
|
|
__logieee128;
|
|
__lrintieee128;
|
|
__lroundieee128;
|
|
__modfieee128;
|
|
__nanieee128;
|
|
__nearbyintieee128;
|
|
__nextafterieee128;
|
|
__nextdownieee128;
|
|
__nextupieee128;
|
|
__powieee128;
|
|
__remainderieee128;
|
|
__remquoieee128;
|
|
__rintieee128;
|
|
__roundevenieee128;
|
|
__roundieee128;
|
|
__scalblnieee128;
|
|
__scalbnieee128;
|
|
__setpayloadieee128;
|
|
__setpayloadsigieee128;
|
|
__sincosieee128;
|
|
__sinhieee128;
|
|
__sinieee128;
|
|
__sqrtieee128;
|
|
__tanhieee128;
|
|
__tanieee128;
|
|
__tgammaieee128;
|
|
__totalorderieee128;
|
|
__totalordermagieee128;
|
|
__truncieee128;
|
|
__ufromfpieee128;
|
|
__ufromfpxieee128;
|
|
__y0ieee128;
|
|
__y1ieee128;
|
|
__ynieee128;
|
|
}
|
|
}
|
|
libc {
|
|
LDBL_IBM128_VERSION {
|
|
__strfromieee128;
|
|
__strtoieee128;
|
|
__strtoieee128_l;
|
|
__wcstoieee128;
|
|
__wcstoieee128_l;
|
|
|
|
__printf_sizeieee128;
|
|
}
|