/* Macros to control TS 18661-3 glibc features on x86. Copyright (C) 2017-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ #ifndef _BITS_FLOATN_H #define _BITS_FLOATN_H #include <features.h> /* Defined to 1 if the current compiler invocation provides a floating-point type with the IEEE 754 binary128 format, and this glibc includes corresponding *f128 interfaces for it. The required libgcc support was added some time after the basic compiler support, for x86_64 and x86. */ #if (defined __x86_64__ \ ? __GNUC_PREREQ (4, 3) \ : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \ && !defined(__CUDACC__) && !defined(__ICC) # define __HAVE_FLOAT128 1 #else # define __HAVE_FLOAT128 0 #endif /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct from the default float, double and long double types in this glibc. */ #if __HAVE_FLOAT128 # define __HAVE_DISTINCT_FLOAT128 1 #else # define __HAVE_DISTINCT_FLOAT128 0 #endif /* Defined to 1 if the current compiler invocation provides a floating-point type with the right format for _Float64x, and this glibc includes corresponding *f64x interfaces for it. */ #define __HAVE_FLOAT64X 1 /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has the format of _Float128, which must be different from that of long double. */ #define __HAVE_FLOAT64X_LONG_DOUBLE 1 #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _Float128 types, if __HAVE_FLOAT128 is 1. */ # if __HAVE_FLOAT128 # if !__GNUC_PREREQ (7, 0) || defined __cplusplus /* The literal suffix f128 exists only since GCC 7.0. */ # define __f128(x) x##q # else # define __f128(x) x##f128 # endif # endif /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ # if __HAVE_FLOAT128 # if !__GNUC_PREREQ (7, 0) || defined __cplusplus /* Add a typedef for older GCC compilers which don't natively support _Complex _Float128. */ typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); # define __CFLOAT128 __cfloat128 # else # define __CFLOAT128 _Complex _Float128 # endif # endif /* The remaining of this file provides support for older compilers. */ # if __HAVE_FLOAT128 /* The type _Float128 exists only since GCC 7.0. */ # if !__GNUC_PREREQ (7, 0) || defined __cplusplus typedef __float128 _Float128; # endif /* __builtin_huge_valf128 doesn't exist before GCC 7.0. */ # if !__GNUC_PREREQ (7, 0) # define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) # endif /* Older GCC has only a subset of built-in functions for _Float128 on x86, and __builtin_infq is not usable in static initializers. Converting a narrower sNaN to _Float128 produces a quiet NaN, so attempts to use _Float128 sNaNs will not work properly with older compilers. */ # if !__GNUC_PREREQ (7, 0) # define __builtin_copysignf128 __builtin_copysignq # define __builtin_fabsf128 __builtin_fabsq # define __builtin_inff128() ((_Float128) __builtin_inf ()) # define __builtin_nanf128(x) ((_Float128) __builtin_nan (x)) # define __builtin_nansf128(x) ((_Float128) __builtin_nans (x)) # endif /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, e.g.: __builtin_signbitf128, before GCC 6. However, there has never been a __builtin_signbitf128 in GCC and the type-generic builtin is only available since GCC 6. */ # if !__GNUC_PREREQ (6, 0) # define __builtin_signbitf128 __signbitf128 # endif # endif #endif /* !__ASSEMBLER__. */ #include <bits/floatn-common.h> #endif /* _BITS_FLOATN_H */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
types | Folder | 0755 |
|
|
_G_config.h | File | 1.41 KB | 0644 |
|
a.out.h | File | 268 B | 0644 |
|
auxv.h | File | 3.39 KB | 0644 |
|
byteswap-16.h | File | 1.69 KB | 0644 |
|
byteswap.h | File | 5.53 KB | 0644 |
|
cmathcalls.h | File | 4.04 KB | 0644 |
|
confname.h | File | 23.15 KB | 0644 |
|
cpu-set.h | File | 4.41 KB | 0644 |
|
dirent.h | File | 1.69 KB | 0644 |
|
dlfcn.h | File | 2.46 KB | 0644 |
|
elfclass.h | File | 426 B | 0644 |
|
endian.h | File | 176 B | 0644 |
|
environments.h | File | 3.7 KB | 0644 |
|
epoll.h | File | 1.04 KB | 0644 |
|
errno.h | File | 1.39 KB | 0644 |
|
error.h | File | 2.62 KB | 0644 |
|
eventfd.h | File | 1.1 KB | 0644 |
|
fcntl-linux.h | File | 14.02 KB | 0644 |
|
fcntl.h | File | 2.19 KB | 0644 |
|
fcntl2.h | File | 5.44 KB | 0644 |
|
fenv.h | File | 4.5 KB | 0644 |
|
fenvinline.h | File | 190 B | 0644 |
|
floatn-common.h | File | 9.2 KB | 0644 |
|
floatn.h | File | 4.32 KB | 0644 |
|
flt-eval-method.h | File | 1.19 KB | 0644 |
|
fp-fast.h | File | 1.19 KB | 0644 |
|
fp-logb.h | File | 1011 B | 0644 |
|
getopt_core.h | File | 3.58 KB | 0644 |
|
getopt_ext.h | File | 2.97 KB | 0644 |
|
getopt_posix.h | File | 1.77 KB | 0644 |
|
hwcap.h | File | 971 B | 0644 |
|
in.h | File | 9.22 KB | 0644 |
|
initspin.h | File | 25 B | 0644 |
|
inotify.h | File | 1.05 KB | 0644 |
|
ioctl-types.h | File | 2.4 KB | 0644 |
|
ioctls.h | File | 4.37 KB | 0644 |
|
ipc.h | File | 2.02 KB | 0644 |
|
ipctypes.h | File | 1.15 KB | 0644 |
|
iscanonical.h | File | 2.42 KB | 0644 |
|
libc-header-start.h | File | 2.55 KB | 0644 |
|
libio-ldbl.h | File | 1.06 KB | 0644 |
|
libio.h | File | 16.82 KB | 0644 |
|
libm-simd-decl-stubs.h | File | 2.93 KB | 0644 |
|
link.h | File | 4.18 KB | 0644 |
|
local_lim.h | File | 3.11 KB | 0644 |
|
locale.h | File | 1.33 KB | 0644 |
|
long-double.h | File | 923 B | 0644 |
|
math-finite.h | File | 5.25 KB | 0644 |
|
math-vector.h | File | 2.25 KB | 0644 |
|
mathcalls-helper-functions.h | File | 1.72 KB | 0644 |
|
mathcalls.h | File | 12.81 KB | 0644 |
|
mathdef.h | File | 890 B | 0644 |
|
mathinline.h | File | 26.54 KB | 0644 |
|
mman-linux.h | File | 4.69 KB | 0644 |
|
mman-shared.h | File | 2.67 KB | 0644 |
|
mman.h | File | 1.83 KB | 0644 |
|
monetary-ldbl.h | File | 1.02 KB | 0644 |
|
mqueue.h | File | 1.22 KB | 0644 |
|
mqueue2.h | File | 2.1 KB | 0644 |
|
msq.h | File | 2.55 KB | 0644 |
|
netdb.h | File | 1.23 KB | 0644 |
|
param.h | File | 1.4 KB | 0644 |
|
poll.h | File | 2.03 KB | 0644 |
|
poll2.h | File | 2.87 KB | 0644 |
|
posix1_lim.h | File | 4.81 KB | 0644 |
|
posix2_lim.h | File | 2.8 KB | 0644 |
|
posix_opt.h | File | 5.57 KB | 0644 |
|
printf-ldbl.h | File | 991 B | 0644 |
|
pthreadtypes-arch.h | File | 3.21 KB | 0644 |
|
pthreadtypes.h | File | 3 KB | 0644 |
|
ptrace-shared.h | File | 2.83 KB | 0644 |
|
resource.h | File | 6.15 KB | 0644 |
|
sched.h | File | 3.72 KB | 0644 |
|
select.h | File | 2.06 KB | 0644 |
|
select2.h | File | 1.4 KB | 0644 |
|
sem.h | File | 2.53 KB | 0644 |
|
semaphore.h | File | 1.21 KB | 0644 |
|
setjmp.h | File | 1.26 KB | 0644 |
|
setjmp2.h | File | 1.66 KB | 0644 |
|
shm.h | File | 3.48 KB | 0644 |
|
sigaction.h | File | 2.8 KB | 0644 |
|
sigcontext.h | File | 4.16 KB | 0644 |
|
sigevent-consts.h | File | 1.44 KB | 0644 |
|
siginfo-arch.h | File | 729 B | 0644 |
|
siginfo-consts-arch.h | File | 204 B | 0644 |
|
siginfo-consts.h | File | 5.83 KB | 0644 |
|
signalfd.h | File | 1.04 KB | 0644 |
|
signum-generic.h | File | 4.24 KB | 0644 |
|
signum.h | File | 1.59 KB | 0644 |
|
sigstack.h | File | 1.14 KB | 0644 |
|
sigthread.h | File | 1.65 KB | 0644 |
|
sockaddr.h | File | 1.48 KB | 0644 |
|
socket.h | File | 13.99 KB | 0644 |
|
socket2.h | File | 2.95 KB | 0644 |
|
socket_type.h | File | 2.16 KB | 0644 |
|
ss_flags.h | File | 1.16 KB | 0644 |
|
stab.def | File | 8.83 KB | 0644 |
|
stat.h | File | 7.44 KB | 0644 |
|
statfs.h | File | 1.87 KB | 0644 |
|
statvfs.h | File | 3.34 KB | 0644 |
|
stdint-intn.h | File | 1.01 KB | 0644 |
|
stdint-uintn.h | File | 1.02 KB | 0644 |
|
stdio-ldbl.h | File | 2.94 KB | 0644 |
|
stdio.h | File | 5.36 KB | 0644 |
|
stdio2.h | File | 12.25 KB | 0644 |
|
stdio_lim.h | File | 1.18 KB | 0644 |
|
stdlib-bsearch.h | File | 1.34 KB | 0644 |
|
stdlib-float.h | File | 1.09 KB | 0644 |
|
stdlib-ldbl.h | File | 1.34 KB | 0644 |
|
stdlib.h | File | 5.53 KB | 0644 |
|
string_fortified.h | File | 4.21 KB | 0644 |
|
strings_fortified.h | File | 1.18 KB | 0644 |
|
stropts.h | File | 8.25 KB | 0644 |
|
sys_errlist.h | File | 1.19 KB | 0644 |
|
syscall.h | File | 39.59 KB | 0644 |
|
sysctl.h | File | 898 B | 0644 |
|
syslog-ldbl.h | File | 1.18 KB | 0644 |
|
syslog-path.h | File | 1.04 KB | 0644 |
|
syslog.h | File | 1.64 KB | 0644 |
|
sysmacros.h | File | 2.88 KB | 0644 |
|
termios.h | File | 5.24 KB | 0644 |
|
thread-shared-types.h | File | 6.56 KB | 0644 |
|
time.h | File | 2.93 KB | 0644 |
|
timerfd.h | File | 1.08 KB | 0644 |
|
timex.h | File | 4.49 KB | 0644 |
|
types.h | File | 7.8 KB | 0644 |
|
typesizes.h | File | 3.32 KB | 0644 |
|
uintn-identity.h | File | 1.5 KB | 0644 |
|
uio-ext.h | File | 1.88 KB | 0644 |
|
uio_lim.h | File | 1.35 KB | 0644 |
|
unistd.h | File | 13 KB | 0644 |
|
ustat.h | File | 1.06 KB | 0644 |
|
utmp.h | File | 3.96 KB | 0644 |
|
utmpx.h | File | 3.38 KB | 0644 |
|
utsname.h | File | 1.18 KB | 0644 |
|
waitflags.h | File | 2.17 KB | 0644 |
|
waitstatus.h | File | 2.23 KB | 0644 |
|
wchar-ldbl.h | File | 2.37 KB | 0644 |
|
wchar.h | File | 1.86 KB | 0644 |
|
wchar2.h | File | 20.02 KB | 0644 |
|
wctype-wchar.h | File | 6.15 KB | 0644 |
|
wordsize.h | File | 442 B | 0644 |
|
xopen_lim.h | File | 3.77 KB | 0644 |
|
xtitypes.h | File | 1.19 KB | 0644 |
|