From 20cd7fb3ae63795ae7c9a464abf5ed19b364ade0 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Wed, 20 Feb 2013 18:56:20 +0530 Subject: [PATCH] Copy comment about inner loop from powerpc mpa.c to the default one --- ChangeLog | 8 ++++++++ sysdeps/ieee754/dbl-64/mpa.c | 10 ++++++++++ sysdeps/powerpc/powerpc32/power4/fpu/mpa.c | 2 +- sysdeps/powerpc/powerpc64/power4/fpu/mpa.c | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e99aef1f1a..2096d50b5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2013-02-20 Siddhesh Poyarekar + + * sysdeps/ieee754/dbl-64/mpa.c (__sqr): Copy over comment from + powerpc mpa.c. + * sysdeps/powerpc/powerpc32/power4/fpu/mpa.c (__mul): Fix + comment formatting. + * sysdeps/powerpc/powerpc64/power4/fpu/mpa.c (__mul): Likewise. + 2013-02-19 Joseph Myers [BZ #13550] diff --git a/sysdeps/ieee754/dbl-64/mpa.c b/sysdeps/ieee754/dbl-64/mpa.c index 1f60fa5a6d..845a42c5ca 100644 --- a/sysdeps/ieee754/dbl-64/mpa.c +++ b/sysdeps/ieee754/dbl-64/mpa.c @@ -749,6 +749,15 @@ __sqr (const mp_no *x, mp_no *y, int p) if (k % 2 == 0) yk += X[lim] * X[lim]; + /* In __mul, this loop (and the one within the next while loop) run + between a range to calculate the mantissa as follows: + + Z[k] = X[k] * Y[n] + X[k+1] * Y[n-1] ... + X[n-1] * Y[k+1] + + X[n] * Y[k] + + For X == Y, we can get away with summing halfway and doubling the + result. For cases where the range size is even, the mid-point needs + to be added separately (above). */ for (i = k - p, j = p; i < j; i++, j--) yk2 += X[i] * X[j]; @@ -769,6 +778,7 @@ __sqr (const mp_no *x, mp_no *y, int p) if (k % 2 == 0) yk += X[lim] * X[lim]; + /* Likewise for this loop. */ for (i = 1, j = k - 1; i < j; i++, j--) yk2 += X[i] * X[j]; diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c b/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c index c00342cb6c..be357a63af 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c @@ -598,7 +598,7 @@ __mul (const mp_no *x, const mp_no *y, mp_no *z, int p) long p2 = p; double u, zk, zk2; - /* Is z=0? */ + /* Is z=0? */ if (X[0] * Y[0] == ZERO) { Z[0] = ZERO; diff --git a/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c b/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c index c00342cb6c..be357a63af 100644 --- a/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c +++ b/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c @@ -598,7 +598,7 @@ __mul (const mp_no *x, const mp_no *y, mp_no *z, int p) long p2 = p; double u, zk, zk2; - /* Is z=0? */ + /* Is z=0? */ if (X[0] * Y[0] == ZERO) { Z[0] = ZERO;