From 2ecccfc97ac9e755f6b67fa0bac785148c7b8256 Mon Sep 17 00:00:00 2001 From: Kaz Kojima Date: Thu, 5 Apr 2012 11:57:03 +0900 Subject: Set SH fpcsr register which read again. --- sysdeps/sh/sh4/fpu/fegetenv.c | 6 +++++- sysdeps/sh/sh4/fpu/ftestexcept.c | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'sysdeps/sh') diff --git a/sysdeps/sh/sh4/fpu/fegetenv.c b/sysdeps/sh/sh4/fpu/fegetenv.c index 68687dc2d1..3103316e34 100644 --- a/sysdeps/sh/sh4/fpu/fegetenv.c +++ b/sysdeps/sh/sh4/fpu/fegetenv.c @@ -1,5 +1,5 @@ /* Store current floating-point environment. - Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,6 +24,10 @@ fegetenv (fenv_t *envp) { unsigned long int temp; _FPU_GETCW (temp); + /* When read fpscr, this was initialized. + We need to rewrite value of temp. */ + _FPU_SETCW (temp); + envp->__fpscr = temp; return 0; diff --git a/sysdeps/sh/sh4/fpu/ftestexcept.c b/sysdeps/sh/sh4/fpu/ftestexcept.c index 9e0bfc5c27..c2e1772a91 100644 --- a/sysdeps/sh/sh4/fpu/ftestexcept.c +++ b/sysdeps/sh/sh4/fpu/ftestexcept.c @@ -26,6 +26,9 @@ fetestexcept (int excepts) /* Get current exceptions. */ _FPU_GETCW (temp); + /* When read fpscr, this was initialized. + We need to rewrite value of temp. */ + _FPU_SETCW (temp); return temp & excepts & FE_ALL_EXCEPT; } -- cgit 1.4.1