+2014-04-06 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ [BZ #16815]
+ * sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S (__nearbyint): Fix
+ result for FE_DOWNWARD rounding mode.
+ * sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S (__nearbyintf):
+ Likewise.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
2014-04-02 Alan Modra <amodra@gmail.com>
[BZ #16739]
* The following bugs are resolved with this release:
- 16545, 16683, 16689, 16701, 16706, 16707, 16739.
+ 16545, 16683, 16689, 16701, 16706, 16707, 16739, 16815.
\f
Version 2.19
fcmpu cr7,fp1,fp12 /* if (x > 0.0 */
ble cr7,L(lessthanzero)
mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fadd fp0,fp1,fp13 /* x += TWO52 */
- fsub fp1,fp0,fp13 /* x -= TWO52 */
+ fadd fp1,fp1,fp13 /* x += TWO52 */
+ fsub fp1,fp1,fp13 /* x -= TWO52 */
fabs fp1,fp1 /* if (x == 0.0 */
mtfsb0 4*cr1+eq /* Clear any FE_INEXACT exception */
blr
L(lessthanzero):
bgelr cr7
mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fsub fp0,fp13,fp1 /* x -= TWO52 */
- fsub fp0,fp0,fp13 /* x += TWO52 */
- fneg fp1,fp0 /* if (x == 0.0) */
+ fsub fp1,fp1,fp13 /* x -= TWO52 */
+ fadd fp1,fp1,fp13 /* x += TWO52 */
+ fnabs fp1,fp1 /* if (x == 0.0) */
mtfsb0 4*cr1+eq /* Clear any FE_INEXACT exception */
blr
END (__nearbyint)
fcmpu cr7,fp1,fp12 /* if (x > 0.0 */
ble cr7,L(lessthanzero)
mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fadds fp0,fp1,fp13 /* x += TWO23 */
- fsubs fp1,fp0,fp13 /* x -= TWO23 */
+ fadds fp1,fp1,fp13 /* x += TWO23 */
+ fsubs fp1,fp1,fp13 /* x -= TWO23 */
+ fabs fp1,fp1 /* if (x == 0.0) */
mtfsb0 4*cr1+eq /* Clear any FE_INEXACT exception */
blr
L(lessthanzero):
bgelr cr7
mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fsubs fp0,fp13,fp1 /* x -= TWO23 */
- fsubs fp0,fp0,fp13 /* x += TWO23 */
- fneg fp1,fp0 /* if (x == 0.0) */
+ fsubs fp1,fp1,fp13 /* x -= TWO23 */
+ fadds fp1,fp1,fp13 /* x += TWO23 */
+ fnabs fp1,fp1 /* if (x == 0.0) */
mtfsb0 4*cr1+eq /* Clear any FE_INEXACT exception */
blr
END (__nearbyintf)