mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Declare most TS 18661-1 interfaces for C2X.
C2X adds the interfaces from TS 18661-1, and all except a handful in Annex F are unconditionally visible in C2X rather than only visible when __STDC_WANT_IEC_60559_BFP_EXT__ is defined. This patch updates glibc headers accordingly: most uses of __GLIBC_USE (IEC_60559_BFP_EXT) are changed to a new __GLIBC_USE (IEC_60559_BFP_EXT_C2X). (Regarding totalorder and totalordermag, the type-generic macros in tgmath.h will go away when the functions are changed to take pointer arguments.) * bits/libc-header-start.h (__GLIBC_USE_IEC_60559_BFP_EXT): Update comment. (__GLIBC_USE_IEC_60559_BFP_EXT_C2X): New macro. * bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Change to [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)]. * include/limits.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * math/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * stdlib/bits/stdlib-ldbl.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * stdlib/stdint.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * stdlib/stdlib.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/aarch64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/alpha/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/arm/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/csky/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/hppa/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/ia64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/m68k/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/microblaze/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/mips/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/nios2/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/powerpc/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/riscv/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/s390/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/sh/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/sparc/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * sysdeps/x86/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise, except for totalorder, totalordermag, getpayload, setpayload and setpayloadsig. * math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise, except for totalorder and totalordermag.
This commit is contained in:
parent
a8c2fa984a
commit
0175c9e9be
50
ChangeLog
50
ChangeLog
@ -1,5 +1,55 @@
|
|||||||
2019-08-13 Joseph Myers <joseph@codesourcery.com>
|
2019-08-13 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* bits/libc-header-start.h (__GLIBC_USE_IEC_60559_BFP_EXT): Update
|
||||||
|
comment.
|
||||||
|
(__GLIBC_USE_IEC_60559_BFP_EXT_C2X): New macro.
|
||||||
|
* bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Change to
|
||||||
|
[__GLIBC_USE (IEC_60559_BFP_EXT_C2X)].
|
||||||
|
* include/limits.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise.
|
||||||
|
* math/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise.
|
||||||
|
* math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise.
|
||||||
|
* stdlib/bits/stdlib-ldbl.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* stdlib/stdint.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise.
|
||||||
|
* stdlib/stdlib.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise.
|
||||||
|
* sysdeps/aarch64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/alpha/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/arm/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/csky/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/hppa/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/ia64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/m68k/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/microblaze/bits/fenv.h [__GLIBC_USE
|
||||||
|
(IEC_60559_BFP_EXT)]: Likewise.
|
||||||
|
* sysdeps/mips/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/nios2/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/powerpc/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/riscv/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/s390/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/sh/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/sparc/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* sysdeps/x86/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise.
|
||||||
|
* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]:
|
||||||
|
Likewise, except for totalorder, totalordermag, getpayload,
|
||||||
|
setpayload and setpayloadsig.
|
||||||
|
* math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise,
|
||||||
|
except for totalorder and totalordermag.
|
||||||
|
|
||||||
* string/string.h (memccpy): Also declare if [__GLIBC_USE (ISOC2X)].
|
* string/string.h (memccpy): Also declare if [__GLIBC_USE (ISOC2X)].
|
||||||
(strdup): Likewise.
|
(strdup): Likewise.
|
||||||
(strndup): Likewise.
|
(strndup): Likewise.
|
||||||
|
@ -54,7 +54,7 @@ fenv_t;
|
|||||||
/* If the default argument is used we use this value. */
|
/* If the default argument is used we use this value. */
|
||||||
#define FE_DFL_ENV ((const fenv_t *) -1l)
|
#define FE_DFL_ENV ((const fenv_t *) -1l)
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -43,13 +43,21 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
|
/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
|
||||||
macro. */
|
macro. Most but not all symbols enabled by that macro in TS
|
||||||
|
18661-1 are enabled unconditionally in C2X; the symbols in Annex F
|
||||||
|
still require that macro in C2X. */
|
||||||
#undef __GLIBC_USE_IEC_60559_BFP_EXT
|
#undef __GLIBC_USE_IEC_60559_BFP_EXT
|
||||||
#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__
|
#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__
|
||||||
# define __GLIBC_USE_IEC_60559_BFP_EXT 1
|
# define __GLIBC_USE_IEC_60559_BFP_EXT 1
|
||||||
#else
|
#else
|
||||||
# define __GLIBC_USE_IEC_60559_BFP_EXT 0
|
# define __GLIBC_USE_IEC_60559_BFP_EXT 0
|
||||||
#endif
|
#endif
|
||||||
|
#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X
|
||||||
|
#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X)
|
||||||
|
# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1
|
||||||
|
#else
|
||||||
|
# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ISO/IEC TS 18661-4:2015 defines the
|
/* ISO/IEC TS 18661-4:2015 defines the
|
||||||
__STDC_WANT_IEC_60559_FUNCS_EXT__ macro. */
|
__STDC_WANT_IEC_60559_FUNCS_EXT__ macro. */
|
||||||
|
@ -142,7 +142,7 @@
|
|||||||
/* The integer width macros are not defined by GCC's <limits.h> before
|
/* The integer width macros are not defined by GCC's <limits.h> before
|
||||||
GCC 7, or if _GNU_SOURCE rather than
|
GCC 7, or if _GNU_SOURCE rather than
|
||||||
__STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature. */
|
__STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature. */
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
# ifndef CHAR_WIDTH
|
# ifndef CHAR_WIDTH
|
||||||
# define CHAR_WIDTH 8
|
# define CHAR_WIDTH 8
|
||||||
# endif
|
# endif
|
||||||
|
@ -261,7 +261,7 @@ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y));
|
|||||||
__MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y));
|
__MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y));
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
|
# if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
|
||||||
/* Return X - epsilon. */
|
/* Return X - epsilon. */
|
||||||
__MATHCALL (nextdown,, (_Mdouble_ __x));
|
__MATHCALL (nextdown,, (_Mdouble_ __x));
|
||||||
/* Return X + epsilon. */
|
/* Return X + epsilon. */
|
||||||
@ -280,7 +280,7 @@ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n));
|
|||||||
__MATHDECL (int,ilogb,, (_Mdouble_ __x));
|
__MATHDECL (int,ilogb,, (_Mdouble_ __x));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
|
||||||
/* Like ilogb, but returning long int. */
|
/* Like ilogb, but returning long int. */
|
||||||
__MATHDECL (long int, llogb,, (_Mdouble_ __x));
|
__MATHDECL (long int, llogb,, (_Mdouble_ __x));
|
||||||
#endif
|
#endif
|
||||||
@ -335,7 +335,7 @@ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
|
|||||||
__MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
|
__MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
|
||||||
#endif /* Use ISO C99. */
|
#endif /* Use ISO C99. */
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
|
||||||
/* Round X to nearest integer value, rounding halfway cases to even. */
|
/* Round X to nearest integer value, rounding halfway cases to even. */
|
||||||
__MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__));
|
__MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__));
|
||||||
|
|
||||||
@ -367,6 +367,11 @@ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
|
|||||||
/* Return value with minimum magnitude. */
|
/* Return value with minimum magnitude. */
|
||||||
__MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
|
__MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
|
||||||
|
|
||||||
|
/* Canonicalize floating-point representation. */
|
||||||
|
__MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
|
||||||
/* Total order operation. */
|
/* Total order operation. */
|
||||||
__MATHDECL_1 (int, totalorder,, (_Mdouble_ __x, _Mdouble_ __y))
|
__MATHDECL_1 (int, totalorder,, (_Mdouble_ __x, _Mdouble_ __y))
|
||||||
__attribute__ ((__const__));
|
__attribute__ ((__const__));
|
||||||
@ -375,9 +380,6 @@ __MATHDECL_1 (int, totalorder,, (_Mdouble_ __x, _Mdouble_ __y))
|
|||||||
__MATHDECL_1 (int, totalordermag,, (_Mdouble_ __x, _Mdouble_ __y))
|
__MATHDECL_1 (int, totalordermag,, (_Mdouble_ __x, _Mdouble_ __y))
|
||||||
__attribute__ ((__const__));
|
__attribute__ ((__const__));
|
||||||
|
|
||||||
/* Canonicalize floating-point representation. */
|
|
||||||
__MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x));
|
|
||||||
|
|
||||||
/* Get NaN payload. */
|
/* Get NaN payload. */
|
||||||
__MATHCALL (getpayload,, (const _Mdouble_ *__x));
|
__MATHCALL (getpayload,, (const _Mdouble_ *__x));
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ extern int fegetexceptflag (fexcept_t *__flagp, int __excepts) __THROW;
|
|||||||
/* Raise the supported exceptions represented by EXCEPTS. */
|
/* Raise the supported exceptions represented by EXCEPTS. */
|
||||||
extern int feraiseexcept (int __excepts) __THROW;
|
extern int feraiseexcept (int __excepts) __THROW;
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Set the supported exception flags represented by EXCEPTS, without
|
/* Set the supported exception flags represented by EXCEPTS, without
|
||||||
causing enabled traps to be taken. */
|
causing enabled traps to be taken. */
|
||||||
extern int fesetexcept (int __excepts) __THROW;
|
extern int fesetexcept (int __excepts) __THROW;
|
||||||
@ -91,7 +91,7 @@ extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
|
|||||||
currently set. */
|
currently set. */
|
||||||
extern int fetestexcept (int __excepts) __THROW;
|
extern int fetestexcept (int __excepts) __THROW;
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Determine which of subset of the exceptions specified by EXCEPTS
|
/* Determine which of subset of the exceptions specified by EXCEPTS
|
||||||
are set in *FLAGP. */
|
are set in *FLAGP. */
|
||||||
extern int fetestexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
|
extern int fetestexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
|
||||||
@ -130,7 +130,7 @@ extern int feupdateenv (const fenv_t *__envp) __THROW;
|
|||||||
|
|
||||||
/* Control modes. */
|
/* Control modes. */
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Store the current floating-point control modes in the object
|
/* Store the current floating-point control modes in the object
|
||||||
pointed to by MODEP. */
|
pointed to by MODEP. */
|
||||||
extern int fegetmode (femode_t *__modep) __THROW;
|
extern int fegetmode (femode_t *__modep) __THROW;
|
||||||
@ -147,7 +147,7 @@ extern int fesetmode (const femode_t *__modep) __THROW;
|
|||||||
|
|
||||||
/* NaN support. */
|
/* NaN support. */
|
||||||
|
|
||||||
#if (__GLIBC_USE (IEC_60559_BFP_EXT) \
|
#if (__GLIBC_USE (IEC_60559_BFP_EXT_C2X) \
|
||||||
&& defined FE_INVALID \
|
&& defined FE_INVALID \
|
||||||
&& defined __SUPPORT_SNAN__)
|
&& defined __SUPPORT_SNAN__)
|
||||||
# define FE_SNANS_ALWAYS_SIGNAL 1
|
# define FE_SNANS_ALWAYS_SIGNAL 1
|
||||||
|
12
math/math.h
12
math/math.h
@ -104,7 +104,7 @@ __BEGIN_DECLS
|
|||||||
# endif
|
# endif
|
||||||
#endif /* __USE_ISOC99 */
|
#endif /* __USE_ISOC99 */
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Signaling NaN macros, if supported. */
|
/* Signaling NaN macros, if supported. */
|
||||||
# if __GNUC_PREREQ (3, 3)
|
# if __GNUC_PREREQ (3, 3)
|
||||||
# define SNANF (__builtin_nansf (""))
|
# define SNANF (__builtin_nansf (""))
|
||||||
@ -200,7 +200,7 @@ typedef _Float128x double_t;
|
|||||||
# define FP_ILOGBNAN 2147483647
|
# define FP_ILOGBNAN 2147483647
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
# if __WORDSIZE == 32
|
# if __WORDSIZE == 32
|
||||||
# define __FP_LONG_MAX 0x7fffffffL
|
# define __FP_LONG_MAX 0x7fffffffL
|
||||||
# else
|
# else
|
||||||
@ -232,7 +232,7 @@ typedef _Float128x double_t;
|
|||||||
|
|
||||||
#include <bits/fp-fast.h>
|
#include <bits/fp-fast.h>
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Rounding direction macros for fromfp functions. */
|
/* Rounding direction macros for fromfp functions. */
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -495,7 +495,7 @@ extern long double __REDIRECT_NTH (nexttowardl,
|
|||||||
#define __MATHCALL_NARROW(func, redir, nargs) \
|
#define __MATHCALL_NARROW(func, redir, nargs) \
|
||||||
__MATHCALL_NARROW_NORMAL (func, nargs)
|
__MATHCALL_NARROW_NORMAL (func, nargs)
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
|
|
||||||
# define _Mret_ float
|
# define _Mret_ float
|
||||||
# define _Marg_ double
|
# define _Marg_ double
|
||||||
@ -969,7 +969,7 @@ enum
|
|||||||
|
|
||||||
#endif /* Use ISO C99. */
|
#endif /* Use ISO C99. */
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
# include <bits/iscanonical.h>
|
# include <bits/iscanonical.h>
|
||||||
|
|
||||||
/* Return nonzero value if X is a signaling NaN. */
|
/* Return nonzero value if X is a signaling NaN. */
|
||||||
@ -1466,7 +1466,7 @@ iszero (__T __val)
|
|||||||
|
|
||||||
#endif /* __FINITE_MATH_ONLY__ > 0. */
|
#endif /* __FINITE_MATH_ONLY__ > 0. */
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* An expression whose type has the widest of the evaluation formats
|
/* An expression whose type has the widest of the evaluation formats
|
||||||
of X and Y (which are of floating-point types). */
|
of X and Y (which are of floating-point types). */
|
||||||
# if __FLT_EVAL_METHOD__ == 2 || __FLT_EVAL_METHOD__ > 64
|
# if __FLT_EVAL_METHOD__ == 2 || __FLT_EVAL_METHOD__ > 64
|
||||||
|
@ -661,7 +661,7 @@
|
|||||||
prevailing rounding mode. */
|
prevailing rounding mode. */
|
||||||
#define rint(Val) __TGMATH_UNARY_REAL_ONLY (Val, rint)
|
#define rint(Val) __TGMATH_UNARY_REAL_ONLY (Val, rint)
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Return X - epsilon. */
|
/* Return X - epsilon. */
|
||||||
# define nextdown(Val) __TGMATH_UNARY_REAL_ONLY (Val, nextdown)
|
# define nextdown(Val) __TGMATH_UNARY_REAL_ONLY (Val, nextdown)
|
||||||
/* Return X + epsilon. */
|
/* Return X + epsilon. */
|
||||||
@ -706,7 +706,7 @@
|
|||||||
#define fma(Val1, Val2, Val3) \
|
#define fma(Val1, Val2, Val3) \
|
||||||
__TGMATH_TERNARY_REAL_ONLY (Val1, Val2, Val3, fma)
|
__TGMATH_TERNARY_REAL_ONLY (Val1, Val2, Val3, fma)
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Round X to nearest integer value, rounding halfway cases to even. */
|
/* Round X to nearest integer value, rounding halfway cases to even. */
|
||||||
# define roundeven(Val) __TGMATH_UNARY_REAL_ONLY (Val, roundeven)
|
# define roundeven(Val) __TGMATH_UNARY_REAL_ONLY (Val, roundeven)
|
||||||
|
|
||||||
@ -730,7 +730,9 @@
|
|||||||
|
|
||||||
/* Return value with minimum magnitude. */
|
/* Return value with minimum magnitude. */
|
||||||
# define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag)
|
# define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
||||||
/* Total order operation. */
|
/* Total order operation. */
|
||||||
# define totalorder(Val1, Val2) \
|
# define totalorder(Val1, Val2) \
|
||||||
__TGMATH_BINARY_REAL_RET_ONLY (Val1, Val2, totalorder)
|
__TGMATH_BINARY_REAL_RET_ONLY (Val1, Val2, totalorder)
|
||||||
|
@ -28,7 +28,7 @@ __LDBL_REDIR1_DECL (strtold, strtod)
|
|||||||
__LDBL_REDIR1_DECL (strtold_l, strtod_l)
|
__LDBL_REDIR1_DECL (strtold_l, strtod_l)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
__LDBL_REDIR1_DECL (strfroml, strfromd)
|
__LDBL_REDIR1_DECL (strfroml, strfromd)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ typedef __uintmax_t uintmax_t;
|
|||||||
# define UINTMAX_C(c) c ## ULL
|
# define UINTMAX_C(c) c ## ULL
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
|
|
||||||
# define INT8_WIDTH 8
|
# define INT8_WIDTH 8
|
||||||
# define UINT8_WIDTH 8
|
# define UINT8_WIDTH 8
|
||||||
|
@ -208,7 +208,7 @@ extern unsigned long long int strtoull (const char *__restrict __nptr,
|
|||||||
#endif /* ISO C99 or use MISC. */
|
#endif /* ISO C99 or use MISC. */
|
||||||
|
|
||||||
/* Convert a floating-point number to a string. */
|
/* Convert a floating-point number to a string. */
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
extern int strfromd (char *__dest, size_t __size, const char *__format,
|
extern int strfromd (char *__dest, size_t __size, const char *__format,
|
||||||
double __f)
|
double __f)
|
||||||
__THROW __nonnull ((3));
|
__THROW __nonnull ((3));
|
||||||
|
@ -73,7 +73,7 @@ fenv_t;
|
|||||||
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ typedef unsigned long int fenv_t;
|
|||||||
extern unsigned long int __ieee_get_fp_control (void) __THROW;
|
extern unsigned long int __ieee_get_fp_control (void) __THROW;
|
||||||
extern void __ieee_set_fp_control (unsigned long int __value) __THROW;
|
extern void __ieee_set_fp_control (unsigned long int __value) __THROW;
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned long int femode_t;
|
typedef unsigned long int femode_t;
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ fenv_t;
|
|||||||
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ typedef struct
|
|||||||
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ typedef struct
|
|||||||
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ typedef unsigned long int fenv_t;
|
|||||||
# define FE_NONIEEE_ENV ((const fenv_t *) 0xc009a04d0270037fUL)
|
# define FE_NONIEEE_ENV ((const fenv_t *) 0xc009a04d0270037fUL)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned long int femode_t;
|
typedef unsigned long int femode_t;
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ fenv_t;
|
|||||||
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ typedef unsigned int fenv_t;
|
|||||||
/* If the default argument is used we use this value. */
|
/* If the default argument is used we use this value. */
|
||||||
#define FE_DFL_ENV ((const fenv_t *) -1l)
|
#define FE_DFL_ENV ((const fenv_t *) -1l)
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ fenv_t;
|
|||||||
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ typedef unsigned int fenv_t;
|
|||||||
/* If the default argument is used we use this value. */
|
/* If the default argument is used we use this value. */
|
||||||
#define FE_DFL_ENV ((const fenv_t *) -1)
|
#define FE_DFL_ENV ((const fenv_t *) -1)
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ extern const fenv_t __fe_nonieee_env;
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef double femode_t;
|
typedef double femode_t;
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ typedef unsigned int fenv_t;
|
|||||||
/* If the default argument is used we use this value. */
|
/* If the default argument is used we use this value. */
|
||||||
#define FE_DFL_ENV ((__const fenv_t *) -1)
|
#define FE_DFL_ENV ((__const fenv_t *) -1)
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ typedef struct
|
|||||||
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ fenv_t;
|
|||||||
/* If the default argument is used we use this value. */
|
/* If the default argument is used we use this value. */
|
||||||
#define FE_DFL_ENV ((const fenv_t *) -1)
|
#define FE_DFL_ENV ((const fenv_t *) -1)
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned int femode_t;
|
typedef unsigned int femode_t;
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ typedef unsigned long int fenv_t;
|
|||||||
# define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X))
|
# define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef unsigned long int femode_t;
|
typedef unsigned long int femode_t;
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ fenv_t;
|
|||||||
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GLIBC_USE (IEC_60559_BFP_EXT)
|
#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
|
||||||
/* Type representing floating-point control modes. */
|
/* Type representing floating-point control modes. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user