diff options
Diffstat (limited to 'sysdeps/arm/feenablxcpt.c')
-rw-r--r-- | sysdeps/arm/feenablxcpt.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sysdeps/arm/feenablxcpt.c b/sysdeps/arm/feenablxcpt.c index e649b2f1e1..afd8943638 100644 --- a/sysdeps/arm/feenablxcpt.c +++ b/sysdeps/arm/feenablxcpt.c @@ -35,15 +35,15 @@ feenableexcept (int excepts) excepts &= FE_ALL_EXCEPT; new_fpscr = fpscr | (excepts << FE_EXCEPT_SHIFT); - if (new_fpscr != fpscr) - { - _FPU_SETCW (new_fpscr); + _FPU_SETCW (new_fpscr); + if (excepts != 0) + { /* Not all VFP architectures support trapping exceptions, so test whether the relevant bits were set and fail if not. */ _FPU_GETCW (new_fpscr); - - if (((new_fpscr >> FE_EXCEPT_SHIFT) & excepts) != excepts) + if ((new_fpscr & (excepts << FE_EXCEPT_SHIFT)) + != (excepts << FE_EXCEPT_SHIFT)) return -1; } |