about summary refs log tree commit diff
path: root/sysdeps/mips/fpu/fesetenv.c
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-06-20 13:05:21 +0000
committerAndreas Jaeger <aj@suse.de>2000-06-20 13:05:21 +0000
commit763f7e8ba7c381aee73e0536bb1f7732bb644ff1 (patch)
tree5baeac7db647af6425b8a9336e0a7b0a507cfbf9 /sysdeps/mips/fpu/fesetenv.c
parente5874a42333f64ccbd6fde6f0c1fe4a2a5279a4a (diff)
downloadglibc-763f7e8ba7c381aee73e0536bb1f7732bb644ff1.tar.gz
glibc-763f7e8ba7c381aee73e0536bb1f7732bb644ff1.tar.xz
glibc-763f7e8ba7c381aee73e0536bb1f7732bb644ff1.zip
* sysdeps/mips/fpu/fesetenv.c (__fesetenv): Flush fpu pipeline
first.
	* sysdeps/mips/fpu/feholdexcpt.c: New file.

	* sysdeps/mips/fpu/fraiseexcpt.c: New file.
Diffstat (limited to 'sysdeps/mips/fpu/fesetenv.c')
-rw-r--r--sysdeps/mips/fpu/fesetenv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/mips/fpu/fesetenv.c b/sysdeps/mips/fpu/fesetenv.c
index 7ae688a6b1..ab90e4d022 100644
--- a/sysdeps/mips/fpu/fesetenv.c
+++ b/sysdeps/mips/fpu/fesetenv.c
@@ -25,6 +25,11 @@
 int
 __fesetenv (const fenv_t *envp)
 {
+  fpu_control_t cw;
+
+  /* Read first current state to flush fpu pipeline.  */
+  _FPU_GETCW (cw);
+
   if (envp == FE_DFL_ENV)
     _FPU_SETCW (_FPU_DEFAULT);
   else
@@ -33,6 +38,7 @@ __fesetenv (const fenv_t *envp)
   /* Success.  */
   return 0;
 }
+
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);