aboutsummaryrefslogtreecommitdiff
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.zip
glibc-763f7e8ba7c381aee73e0536bb1f7732bb644ff1.tar.gz
glibc-763f7e8ba7c381aee73e0536bb1f7732bb644ff1.tar.bz2
* 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 7ae688a..ab90e4d 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);