diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/powerpc/power5+/fpu/s_modf.c | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/power5+/fpu/s_modff.c | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 4071f087d1..526617720f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-03-03 Adhemerval Zanella <azanella@linux.vnet.ibm.com> + + * sysdeps/powerpc/power5+/fpu/s_modf.c (__modf): Fix to return correct + sign in non default rounding modes. + * sysdeps/powerpc/power5+/fpu/s_modff.c (__modff): Likewise. + 2014-03-08 Joseph Myers <joseph@codesourcery.com> * math/libm-test.inc (ALL_RM_TEST): New macro. diff --git a/sysdeps/powerpc/power5+/fpu/s_modf.c b/sysdeps/powerpc/power5+/fpu/s_modf.c index eb469f7647..06da3ac809 100644 --- a/sysdeps/powerpc/power5+/fpu/s_modf.c +++ b/sysdeps/powerpc/power5+/fpu/s_modf.c @@ -36,12 +36,12 @@ __modf (double x, double *iptr) if (x >= 0.0) { *iptr = __floor (x); - return (x - *iptr); + return __copysign (x - *iptr, x); } else { *iptr = __ceil (x); - return (x - *iptr); + return __copysign (x - *iptr, x); } } weak_alias (__modf, modf) diff --git a/sysdeps/powerpc/power5+/fpu/s_modff.c b/sysdeps/powerpc/power5+/fpu/s_modff.c index e4fe857d29..af17becf13 100644 --- a/sysdeps/powerpc/power5+/fpu/s_modff.c +++ b/sysdeps/powerpc/power5+/fpu/s_modff.c @@ -35,12 +35,12 @@ __modff (float x, float *iptr) if (x >= 0.0) { *iptr = __floorf (x); - return (x - *iptr); + return __copysignf (x - *iptr, x); } else { *iptr = __ceilf (x); - return (x - *iptr); + return __copysignf (x - *iptr, x); } } weak_alias (__modff, modff) |