mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
float128: Add _Float128 make bits to libm.
This adds the appropriate common bits for a platform to enable float128 and expose ABI. * math/Makefile: (type-float128-suffix): New variable (type-float128-routines): Likewise (type-float128-yes): Likewise (types): Append float128 if supported (types-basic): New variable to control the use of templates for float, double, and long double, but not for float128 or newer types. (type-basic-foreach): Likewise. * sysdeps/ieee754/float128/Makeconfig: New file. * sysdeps/ieee754/float128/Versions: New file.
This commit is contained in:
parent
695d7d138e
commit
26265c3bce
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
||||
2017-05-09 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
|
||||
Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
|
||||
|
||||
* math/Makefile:
|
||||
(type-float128-suffix): New variable
|
||||
(type-float128-routines): Likewise
|
||||
(type-float128-yes): Likewise
|
||||
(types): Append float128 if supported
|
||||
(types-basic): New variable to control the use of templates for
|
||||
float, double, and long double, but not for float128 or newer types.
|
||||
(type-basic-foreach): Likewise.
|
||||
|
||||
* sysdeps/ieee754/float128/Makeconfig: New file.
|
||||
* sysdeps/ieee754/float128/Versions: New file.
|
||||
|
||||
2017-05-09 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PRLIMIT64):
|
||||
|
@ -100,7 +100,7 @@ libm-compat-calls = \
|
||||
# Finally, note that types is an intentionally recursive variable.
|
||||
# We only know the full set of supported types for the target machine
|
||||
# after the Rules makefile has been parsed.
|
||||
types = $(type-ldouble-$(long-double-fcts)) double float
|
||||
types-basic = $(type-ldouble-$(long-double-fcts)) double float
|
||||
|
||||
# long double support
|
||||
type-ldouble-suffix := l
|
||||
@ -117,12 +117,23 @@ 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 = $(types-basic) $(type-float128-$(float128-fcts))
|
||||
|
||||
# For each of the basic types (float, double, long double), replace the
|
||||
# occurrences of 'F' in arg 1 with the appropriate suffix for the type.
|
||||
type-basic-foreach = $(foreach t, $(types-basic), \
|
||||
$(subst F,$(type-$(t)-suffix),$(1)))
|
||||
|
||||
# Apply suffix to each type in arg 1
|
||||
type-foreach = $(foreach t,$(types),$(subst F,$(type-$(t)-suffix),$(1)))
|
||||
|
||||
libm-routines = $(strip $(libm-support) \
|
||||
$(call type-foreach, $(libm-compat-calls)) \
|
||||
$(call type-basic-foreach, \
|
||||
$(libm-compat-calls)) \
|
||||
$(call type-foreach, $(libm-calls)) \
|
||||
$(foreach t, $(types), $(type-$(t)-routines))) \
|
||||
|
||||
@ -543,6 +554,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.
|
||||
|
3
sysdeps/ieee754/float128/Makeconfig
Normal file
3
sysdeps/ieee754/float128/Makeconfig
Normal file
@ -0,0 +1,3 @@
|
||||
# Include this earlier so it can be used earlier in Makefiles,
|
||||
# and sysdep/ makefiles.
|
||||
float128-fcts = yes
|
145
sysdeps/ieee754/float128/Versions
Normal file
145
sysdeps/ieee754/float128/Versions
Normal file
@ -0,0 +1,145 @@
|
||||
%include <float128-abi.h>
|
||||
%ifndef FLOAT128_VERSION
|
||||
% error "float128-abi.h must define FLOAT128_VERSION"
|
||||
%endif
|
||||
libm {
|
||||
FLOAT128_VERSION {
|
||||
__acosf128_finite;
|
||||
__acoshf128_finite;
|
||||
__asinf128_finite;
|
||||
__atan2f128_finite;
|
||||
__atanhf128_finite;
|
||||
__coshf128_finite;
|
||||
__exp10f128_finite;
|
||||
__exp2f128_finite;
|
||||
__expf128_finite;
|
||||
__finitef128;
|
||||
__fmodf128_finite;
|
||||
__fpclassifyf128;
|
||||
__gammaf128_r_finite;
|
||||
__hypotf128_finite;
|
||||
__iseqsigf128;
|
||||
__isinff128;
|
||||
__isnanf128;
|
||||
__issignalingf128;
|
||||
__j0f128_finite;
|
||||
__j1f128_finite;
|
||||
__jnf128_finite;
|
||||
__lgammaf128_r_finite;
|
||||
__log10f128_finite;
|
||||
__log2f128_finite;
|
||||
__logf128_finite;
|
||||
__powf128_finite;
|
||||
__remainderf128_finite;
|
||||
__signbitf128;
|
||||
__sinhf128_finite;
|
||||
__sqrtf128_finite;
|
||||
__y0f128_finite;
|
||||
__y1f128_finite;
|
||||
__ynf128_finite;
|
||||
acosf128;
|
||||
acoshf128;
|
||||
asinf128;
|
||||
asinhf128;
|
||||
atan2f128;
|
||||
atanf128;
|
||||
atanhf128;
|
||||
cabsf128;
|
||||
cacosf128;
|
||||
cacoshf128;
|
||||
canonicalizef128;
|
||||
cargf128;
|
||||
casinf128;
|
||||
casinhf128;
|
||||
catanf128;
|
||||
catanhf128;
|
||||
cbrtf128;
|
||||
ccosf128;
|
||||
ccoshf128;
|
||||
ceilf128;
|
||||
cexpf128;
|
||||
cimagf128;
|
||||
clog10f128;
|
||||
clogf128;
|
||||
conjf128;
|
||||
copysignf128;
|
||||
cosf128;
|
||||
coshf128;
|
||||
cpowf128;
|
||||
cprojf128;
|
||||
crealf128;
|
||||
csinf128;
|
||||
csinhf128;
|
||||
csqrtf128;
|
||||
ctanf128;
|
||||
ctanhf128;
|
||||
erfcf128;
|
||||
erff128;
|
||||
exp10f128;
|
||||
exp2f128;
|
||||
expf128;
|
||||
expm1f128;
|
||||
fabsf128;
|
||||
fdimf128;
|
||||
floorf128;
|
||||
fmaf128;
|
||||
fmaxf128;
|
||||
fmaxmagf128;
|
||||
fminf128;
|
||||
fminmagf128;
|
||||
fmodf128;
|
||||
frexpf128;
|
||||
fromfpf128;
|
||||
fromfpxf128;
|
||||
getpayloadf128;
|
||||
hypotf128;
|
||||
ilogbf128;
|
||||
j0f128;
|
||||
j1f128;
|
||||
jnf128;
|
||||
ldexpf128;
|
||||
lgammaf128;
|
||||
lgammaf128_r;
|
||||
llogbf128;
|
||||
llrintf128;
|
||||
llroundf128;
|
||||
log10f128;
|
||||
log1pf128;
|
||||
log2f128;
|
||||
logbf128;
|
||||
logf128;
|
||||
lrintf128;
|
||||
lroundf128;
|
||||
modff128;
|
||||
nanf128;
|
||||
nearbyintf128;
|
||||
nextafterf128;
|
||||
nextdownf128;
|
||||
nextupf128;
|
||||
powf128;
|
||||
remainderf128;
|
||||
remquof128;
|
||||
rintf128;
|
||||
roundevenf128;
|
||||
roundf128;
|
||||
scalblnf128;
|
||||
scalbnf128;
|
||||
setpayloadf128;
|
||||
setpayloadsigf128;
|
||||
sincosf128;
|
||||
sinf128;
|
||||
sinhf128;
|
||||
sqrtf128;
|
||||
tanf128;
|
||||
tanhf128;
|
||||
tgammaf128;
|
||||
totalorderf128;
|
||||
totalordermagf128;
|
||||
truncf128;
|
||||
ufromfpf128;
|
||||
ufromfpxf128;
|
||||
y0f128;
|
||||
y1f128;
|
||||
ynf128;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user