about summary refs log tree commit diff
path: root/sysdeps/s390/fpu/fesetenv.c
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.ibm.com>2019-12-11 15:09:32 +0100
committerStefan Liebler <stli@linux.ibm.com>2019-12-11 15:12:25 +0100
commit238adf59db85646ebae47876819bd896dae597bc (patch)
treebc11e42ee2928d1549b9dfd405fbaee17c9cabfd /sysdeps/s390/fpu/fesetenv.c
parent7c94d036c17dfd352d11e9bf98e5d84122c1f95e (diff)
downloadglibc-238adf59db85646ebae47876819bd896dae597bc.tar.gz
glibc-238adf59db85646ebae47876819bd896dae597bc.tar.xz
glibc-238adf59db85646ebae47876819bd896dae597bc.zip
S390: Use libc_fe* macros in fe* functions.
This patch updates the s390 specific functions fegetround,
fesetround, feholdexcept, fesetenv, feupdateenv, fegetexceptflag,
fetestexcept, fesetexceptflag, fetestexceptflag.
Now those functions are using the libc_fe* macros if possible.

Furthermore fegetexceptflag is now returning the exception from
dxc field shifted to the usual exception-flags.
Thus a special fetestexceptflag implementation is not needed anymore.
Diffstat (limited to 'sysdeps/s390/fpu/fesetenv.c')
-rw-r--r--sysdeps/s390/fpu/fesetenv.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/sysdeps/s390/fpu/fesetenv.c b/sysdeps/s390/fpu/fesetenv.c
index ede3d89b3b..dca26033a7 100644
--- a/sysdeps/s390/fpu/fesetenv.c
+++ b/sysdeps/s390/fpu/fesetenv.c
@@ -17,28 +17,13 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-#include <fenv_libc.h>
-#include <fpu_control.h>
-#include <stddef.h>
-#include <unistd.h>
+#include <fenv_private.h>
 
 int
 __fesetenv (const fenv_t *envp)
 {
-  fenv_t env;
-
-  if (envp == FE_DFL_ENV)
-    {
-      env.__fpc = _FPU_DEFAULT;
-    }
-  else if (envp == FE_NOMASK_ENV)
-    {
-      env.__fpc = FPC_EXCEPTION_MASK;
-    }
-  else
-    env = (*envp);
-
-  _FPU_SETCW (env.__fpc);
+  fenv_t env = libc_handle_user_fenv_s390 (envp);
+  libc_fesetenv_s390 (&env);
 
   /* Success.  */
   return 0;