Message ID | 1478716859-3246-3-git-send-email-gftg@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
"Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com> writes: > From: "Paul E. Murphy" <murphyp@linux.vnet.ibm.com> > > This adds the appropriate common bits for a platform to > enable float128 and expose ABI. Joseph, I'd like to clarify one thing: In a previous thread you mentioned that you'd review one patch of a patchset after fixing/committing the previous patch. In this patchset, you replied directly to patch #3, without making comments to patch #1 and #2. Does that mean they look good for you?
On Fri, 9 Dec 2016, Tulio Magno Quites Machado Filho wrote: > "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com> writes: > > > From: "Paul E. Murphy" <murphyp@linux.vnet.ibm.com> > > > > This adds the appropriate common bits for a platform to > > enable float128 and expose ABI. > > Joseph, I'd like to clarify one thing: > In a previous thread you mentioned that you'd review one patch of a > patchset after fixing/committing the previous patch. > > In this patchset, you replied directly to patch #3, without making comments to > patch #1 and #2. Does that mean they look good for you? No. There can be cases where dependencies among patches in a series, and the likelihood of issues with one patch requiring changes to subsequent patches, can mean that latter patches are more reviewable once earlier patches have passed their final review. And it may well end up that this series is like that. But for the series posted on 9 Nov I didn't do that. Instead, I did an initial general pass over the whole patch series to identify the most obvious issues - with all patches rather than just the first ones, so all patches can be updated accordingly for the next iteration of the series. I did comment on patch 2 - in my general comments on patch 0, relating to having the correct, consistent API/ABI exposed for the new types through the whole patch series, which affect patch 2 as well as other patches. https://sourceware.org/ml/libc-alpha/2016-11/msg00361.html https://sourceware.org/ml/libc-alpha/2016-11/msg00370.html (Note also the point there that when it comes to such things involving long lists of functions for the new type - in the cases where it's unavoidable to have such long lists, as opposed to the cases where existing lists for existing types can be macroized - one can have more confidence in the completeness of the list if the patch series as a whole has passed testing with existing libm tests enabled for the new type, so showing through the testsuite that all the expected functions are indeed exported for that type.)
diff --git a/math/Makefile b/math/Makefile index f400d7b..37e7ea0 100644 --- a/math/Makefile +++ b/math/Makefile @@ -108,6 +108,11 @@ type-double-routines := branred doasin dosincos halfulp mpa mpatan2 \ type-float-suffix := f type-float-routines := k_rem_pio2f +# _Float128 support +type-float128-suffix := f128 +type-float128-routines := t_sincosf128 k_sincosf128 +type-float128-yes := float128 +types += $(type-float128-$(float128-fcts)) # Apply suffix to each type in arg 1 type-foreach = $(foreach t,$(types),$(subst F,$(type-$(t)-suffix),$(1))) @@ -374,6 +379,7 @@ endif CFLAGS-s_modf.c += -fsignaling-nans CFLAGS-s_modff.c += -fsignaling-nans CFLAGS-s_modfl.c += -fsignaling-nans +CFLAGS-s_modff128.c += -fsignaling-nans # The -lieee library is actually an object file. # The module just defines the _LIB_VERSION_ variable. diff --git a/sysdeps/ieee754/float128/Makeconfig b/sysdeps/ieee754/float128/Makeconfig new file mode 100644 index 0000000..6c385d2 --- /dev/null +++ b/sysdeps/ieee754/float128/Makeconfig @@ -0,0 +1,3 @@ +# Include this earlier so it can be used earlier in Makefiles, +# and sysdep/ makefiles. +float128-fcts = yes diff --git a/sysdeps/ieee754/float128/Versions b/sysdeps/ieee754/float128/Versions new file mode 100644 index 0000000..cee823b --- /dev/null +++ b/sysdeps/ieee754/float128/Versions @@ -0,0 +1,133 @@ +%include <float128-abi.h> +%ifndef FLOAT128_VERSION +% error "float128-abi.h must define FLOAT128_VERSION" +%endif +libm { + FLOAT128_VERSION { + acosf128; + acoshf128; + asinf128; + asinhf128; + atan2f128; + atanf128; + atanhf128; + copysignf128; + cosf128; + coshf128; + erff128; + erfcf128; + exp2f128; + expf128; + expm1f128; + fabsf128; + fdimf128; + floorf128; + fmaf128; + fmaxf128; + fminf128; + fmodf128; + frexpf128; + getpayloadf128; + hypotf128; + ilogbf128; + ldexpf128; + lgammaf128; + llrintf128; + llroundf128; + log10f128; + log1pf128; + log2f128; + logf128; + logbf128; + lrintf128; + lroundf128; + modff128; + nanf128; + nearbyintf128; + nextafterf128; + nextdownf128; + nextupf128; + powf128; + remainderf128; + remquof128; + rintf128; + roundf128; + scalblnf128; + scalbnf128; + sinf128; + sinhf128; + sqrtf128; + tanf128; + tanhf128; + tgammaf128; + totalorderf128; + totalordermagf128; + truncf128; + exp10f128; + j0f128; + j1f128; + jnf128; + lgammaf128_r; + sincosf128; + y0f128; + y1f128; + ynf128; + __finitef128; + __fpclassifyf128; + __isinff128; + __isnanf128; + __issignalingf128; + __signbitf128; + cabsf128; + cacosf128; + cacoshf128; + cargf128; + casinf128; + casinhf128; + catanf128; + catanhf128; + cbrtf128; + ccosf128; + ccoshf128; + ceilf128; + cexpf128; + cimagf128; + clogf128; + conjf128; + cprojf128; + crealf128; + csinf128; + csinhf128; + csqrtf128; + ctanf128; + ctanhf128; + cpowf128; + clog10f128; + __acosf128_finite; + __acoshf128_finite; + __asinf128_finite; + __atan2f128_finite; + __atanhf128_finite; + __coshf128_finite; + __exp2f128_finite; + __expf128_finite; + __fmodf128_finite; + __hypotf128_finite; + __lgammaf128_r_finite; + __log10f128_finite; + __log2f128_finite; + __logf128_finite; + __powf128_finite; + __remainderf128_finite; + __sinhf128_finite; + __sqrtf128_finite; + __gammaf128_r_finite; + __exp10f128_finite; + __j0f128_finite; + __j1f128_finite; + __jnf128_finite; + __y0f128_finite; + __y1f128_finite; + __ynf128_finite; + } +}
From: "Paul E. Murphy" <murphyp@linux.vnet.ibm.com> This adds the appropriate common bits for a platform to enable float128 and expose ABI. 2016-10-21 Paul E. Murphy <murphyp@linux.vnet.ibm.com> * math/Makefile: (type-float128-suffix): New variable (type-float128-routines): Likewise (type-float128-yes): Likewise (types): Append float128 if supported * sysdeps/ieee754/float128/Makeconfig: New file. * sysdeps/ieee754/float128/Versions: New file. --- math/Makefile | 6 ++ sysdeps/ieee754/float128/Makeconfig | 3 + sysdeps/ieee754/float128/Versions | 133 ++++++++++++++++++++++++++++++++++++ 3 files changed, 142 insertions(+) create mode 100644 sysdeps/ieee754/float128/Makeconfig create mode 100644 sysdeps/ieee754/float128/Versions