diff options
Diffstat (limited to 'sysdeps/arm/fclrexcpt.c')
-rw-r--r-- | sysdeps/arm/fclrexcpt.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sysdeps/arm/fclrexcpt.c b/sysdeps/arm/fclrexcpt.c index 31420ed3c7..cbf61a6f4a 100644 --- a/sysdeps/arm/fclrexcpt.c +++ b/sysdeps/arm/fclrexcpt.c @@ -24,7 +24,7 @@ int feclearexcept (int excepts) { - fpu_control_t fpscr, new_fpscr; + fpu_control_t fpscr; /* Fail if a VFP unit isn't present unless nothing needs to be done. */ if (!ARM_HAVE_VFP) @@ -32,11 +32,11 @@ feclearexcept (int excepts) _FPU_GETCW (fpscr); excepts &= FE_ALL_EXCEPT; - new_fpscr = fpscr & ~excepts; - /* Write new exception flags if changed. */ - if (new_fpscr != fpscr) - _FPU_SETCW (new_fpscr); + /* Clear the relevant bits. */ + fpscr = (fpscr & ~FE_ALL_EXCEPT) | (fpscr & FE_ALL_EXCEPT & ~excepts); + + _FPU_SETCW (fpscr); return 0; } |