diff options
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r-- | sysdeps/powerpc/Versions | 3 | ||||
-rw-r--r-- | sysdeps/powerpc/bits/fenv.h | 9 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/fenv_const.c | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/nofpu/fenv_const.c | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c | 4 |
5 files changed, 24 insertions, 0 deletions
diff --git a/sysdeps/powerpc/Versions b/sysdeps/powerpc/Versions index b959ea49fe..95849668f2 100644 --- a/sysdeps/powerpc/Versions +++ b/sysdeps/powerpc/Versions @@ -3,6 +3,9 @@ libm { # symbols used in macros from sysdeps/powerpc/bits/fenv.h __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env; } + GLIBC_2.25 { + __fe_dfl_mode; + } } libc { diff --git a/sysdeps/powerpc/bits/fenv.h b/sysdeps/powerpc/bits/fenv.h index d2a6d34a99..8d2bf3d163 100644 --- a/sysdeps/powerpc/bits/fenv.h +++ b/sysdeps/powerpc/bits/fenv.h @@ -169,3 +169,12 @@ extern const fenv_t __fe_nonieee_env; # define FE_MASK_ENV FE_DFL_ENV #endif + +#if __GLIBC_USE (IEC_60559_BFP_EXT) +/* Type representing floating-point control modes. */ +typedef double femode_t; + +/* Default floating-point control modes. */ +extern const femode_t __fe_dfl_mode; +# define FE_DFL_MODE (&__fe_dfl_mode) +#endif diff --git a/sysdeps/powerpc/fpu/fenv_const.c b/sysdeps/powerpc/fpu/fenv_const.c index b061daf578..93a4375430 100644 --- a/sysdeps/powerpc/fpu/fenv_const.c +++ b/sysdeps/powerpc/fpu/fenv_const.c @@ -23,6 +23,10 @@ const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) = 0xfff8000000000000ULL; +/* The same representation is used for femode_t. */ +extern const unsigned long long __fe_dfl_mode + __attribute__ ((aligned (8), alias ("__fe_dfl_env"))); + /* Floating-point environment where none of the exceptions are masked. */ const unsigned long long __fe_enabled_env __attribute__ ((aligned (8))) = 0xfff80000000000f8ULL; diff --git a/sysdeps/powerpc/nofpu/fenv_const.c b/sysdeps/powerpc/nofpu/fenv_const.c index ebf5c68fc5..ce1da3c197 100644 --- a/sysdeps/powerpc/nofpu/fenv_const.c +++ b/sysdeps/powerpc/nofpu/fenv_const.c @@ -25,6 +25,10 @@ const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) = 0x000000003e000000ULL; +/* The same representation is used for femode_t. */ +extern const unsigned long long __fe_dfl_mode + __attribute__ ((aligned (8), alias ("__fe_dfl_env"))); + /* Floating-point environment where none of the exceptions are masked. */ const unsigned long long __fe_enabled_env __attribute__ ((aligned (8))) = 0x0000000000000000ULL; diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c index 11e24ca182..eab47c8c0f 100644 --- a/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c +++ b/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c @@ -28,6 +28,10 @@ const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) = 0x3cULL; +/* The same representation is used for femode_t. */ +extern const unsigned long long __fe_dfl_mode + __attribute__ ((aligned (8), alias ("__fe_dfl_env"))); + /* Floating-point environment where none of the exceptions are masked. */ const unsigned long long __fe_enabled_env __attribute__ ((aligned (8))) = (((unsigned long long) (PR_FP_EXC_DIV |