This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.17-234-g2d0e0f2
- From: siddhesh at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 15 Feb 2013 18:26:23 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.17-234-g2d0e0f2
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 2d0e0f29f85036d1189231cb7c1f19f27ba14a89 (commit)
from daaa7713e9170ec42536b5a0e46b434dd84753a5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2d0e0f29f85036d1189231cb7c1f19f27ba14a89
commit 2d0e0f29f85036d1189231cb7c1f19f27ba14a89
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date: Fri Feb 15 23:56:20 2013 +0530
Fix determination of lower precision in __mul
diff --git a/ChangeLog b/ChangeLog
index bb84e32..012fce4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-15 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * sysdeps/ieee754/dbl-64/mpa.c (__mul): Fix determination of
+ the lower precision input.
+
2013-02-15 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
diff --git a/sysdeps/ieee754/dbl-64/mpa.c b/sysdeps/ieee754/dbl-64/mpa.c
index 542d81b..25f52f6 100644
--- a/sysdeps/ieee754/dbl-64/mpa.c
+++ b/sysdeps/ieee754/dbl-64/mpa.c
@@ -612,6 +612,7 @@ __mul (const mp_no *x, const mp_no *y, mp_no *z, int p)
{
int i, j, k, ip, ip2;
double u, zk;
+ const mp_no *a;
/* Is z=0? */
if (__glibc_unlikely (X[0] * Y[0] == ZERO))
@@ -626,9 +627,11 @@ __mul (const mp_no *x, const mp_no *y, mp_no *z, int p)
if (X[ip2] != ZERO || Y[ip2] != ZERO)
break;
+ a = X[ip2] != ZERO ? y : x;
+
/* ... and here, at least one of them is still zero. */
for (ip = ip2; ip > 0; ip--)
- if (X[ip] * Y[ip] != ZERO)
+ if (a->d[ip] != ZERO)
break;
/* The product looks like this for p = 3 (as an example):
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/ieee754/dbl-64/mpa.c | 5 ++++-
2 files changed, 9 insertions(+), 1 deletions(-)
hooks/post-receive
--
GNU C Library master sources