Aarch32/64: Support __FLT_EVAL_METHOD__ values other than 0, 1, 2
2022-03-30 Andrea Corallo <andrea.corallo@arm.com> * libc/include/machine/ieeefp.h (__FLOAT_TYPE, __DOUBLE_TYPE): New macros. * libc/include/math.h: Uses __DOUBLE_TYPE __FLOAT_TYPE to define double_t float_t if possible.
This commit is contained in:
parent
45cfcfbd71
commit
27f0913c17
|
@ -90,6 +90,13 @@
|
|||
#ifndef __SOFTFP__
|
||||
# define _SUPPORTS_ERREXCEPT
|
||||
#endif
|
||||
/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16
|
||||
(if compiling with +fp16 support) so it can't be used by math.h to
|
||||
define float_t and double_t. For values of '__FLT_EVAL_METHOD__'
|
||||
other than 0, 1, 2 the definition of float_t and double_t is
|
||||
implementation-defined. */
|
||||
#define __DOUBLE_TYPE double
|
||||
#define __FLOAT_TYPE float
|
||||
#endif
|
||||
|
||||
#if defined (__aarch64__)
|
||||
|
@ -102,6 +109,13 @@
|
|||
#ifdef __ARM_FP
|
||||
# define _SUPPORTS_ERREXCEPT
|
||||
#endif
|
||||
/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16
|
||||
(if compiling with +fp16 support) so it can't be used by math.h to
|
||||
define float_t and double_t. For values of '__FLT_EVAL_METHOD__'
|
||||
other than 0, 1, 2 the definition of float_t and double_t is
|
||||
implementation-defined. */
|
||||
#define __DOUBLE_TYPE double
|
||||
#define __FLOAT_TYPE float
|
||||
#endif
|
||||
|
||||
#ifdef __epiphany__
|
||||
|
|
|
@ -168,6 +168,15 @@ extern int isnan (double);
|
|||
#else
|
||||
/* Implementation-defined. Assume float_t and double_t have been
|
||||
* defined previously for this configuration (e.g. config.h). */
|
||||
|
||||
/* If __DOUBLE_TYPE is defined (__FLOAT_TYPE is then supposed to be
|
||||
defined as well) float_t and double_t definition is suggested by
|
||||
an arch specific header. */
|
||||
#ifdef __DOUBLE_TYPE
|
||||
typedef __DOUBLE_TYPE double_t;
|
||||
typedef __FLOAT_TYPE float_t;
|
||||
#endif
|
||||
/* Assume config.h has provided these types. */
|
||||
#endif
|
||||
#else
|
||||
/* Assume basic definitions. */
|
||||
|
|
Loading…
Reference in New Issue