diff options
author | Wilco <wdijkstr@arm.com> | 2014-05-15 15:21:55 +0100 |
---|---|---|
committer | Marcus Shawcroft <marcus.shawcroft@arm.com> | 2014-05-15 15:23:27 +0100 |
commit | c0c08d02c82275353f5c556f935a1a01714d9d7f (patch) | |
tree | c850cda3edb23e165d7d96eb9d82fdc74b5554f1 /sysdeps/arm/feenablxcpt.c | |
parent | 1a2f40e5d14ed6450696feacf04fca5eeceae7ef (diff) | |
download | glibc-c0c08d02c82275353f5c556f935a1a01714d9d7f.tar.gz glibc-c0c08d02c82275353f5c556f935a1a01714d9d7f.tar.xz glibc-c0c08d02c82275353f5c556f935a1a01714d9d7f.zip |
ARM: Improve fenv implementation
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 afd8943638..e649b2f1e1 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); - _FPU_SETCW (new_fpscr); - - if (excepts != 0) + if (new_fpscr != fpscr) { + _FPU_SETCW (new_fpscr); + /* 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 & (excepts << FE_EXCEPT_SHIFT)) - != (excepts << FE_EXCEPT_SHIFT)) + + if (((new_fpscr >> FE_EXCEPT_SHIFT) & excepts) != excepts) return -1; } |