diff options
author | David S. Miller <davem@davemloft.net> | 2016-08-02 21:00:21 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-08-02 21:00:21 -0700 |
commit | 3ef3f1b93fdf20143865cc16dd75f39a7f0fac2f (patch) | |
tree | 13fd94627cbe59b2b245de7f87108b5ac4ebe663 /sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S | |
parent | 5a0b6138d8325d6aabd504bcccd7ee5fba07bb25 (diff) | |
download | glibc-3ef3f1b93fdf20143865cc16dd75f39a7f0fac2f.tar glibc-3ef3f1b93fdf20143865cc16dd75f39a7f0fac2f.tar.gz glibc-3ef3f1b93fdf20143865cc16dd75f39a7f0fac2f.tar.bz2 glibc-3ef3f1b93fdf20143865cc16dd75f39a7f0fac2f.zip |
Fix sNaN handling in nearbyint on 32-bit sparc.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
(__nearbyint_vis3): Don't check for sNaN before float register is
loaded with the incoming argument.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
(__nearbyintf_vis3): Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S (__nearbyint):
Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S (__nearbyintf):
Likewise.
Diffstat (limited to 'sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S')
-rw-r--r-- | sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S index d5cf5ce815..9be41f6c22 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S @@ -35,9 +35,10 @@ #define SIGN_BIT %f12 /* -0.0 */ ENTRY (__nearbyintf) + st %o0, [%sp + 68] + ld [%sp + 68], %f1 fcmps %fcc3, %f1, %f1 /* Check for sNaN */ st %fsr, [%sp + 88] - st %o0, [%sp + 68] sethi %hi(TWO_TWENTYTHREE), %o2 sethi %hi(0xf8003e0), %o5 ld [%sp + 88], %o4 @@ -46,7 +47,6 @@ ENTRY (__nearbyintf) fnegs ZERO, SIGN_BIT andn %o4, %o5, %o4 st %o4, [%sp + 80] - ld [%sp + 68], %f1 ld [%sp + 80], %fsr st %o2, [%sp + 68] fabss %f1, %f14 |