diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/power4/fpu/mpa.c | 10 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power4/fpu/mpa.c | 10 |
3 files changed, 27 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index b72c6b181e..2f706390a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2013-01-04 Siddhesh Poyarekar <siddhesh@redhat.com> + + * sysdeps/powerpc/powerpc32/power4/fpu/mpa.c (mpone): Define + mp_no value for 1.0 and 2.0. + (norm): Use RADIXI instead of radixi.d. + (denorm): Likewise. + (__mul): Use 0.0 instead of zero.d. + * sysdeps/powerpc/powerpc64/power4/fpu/mpa.c (mpone): Define + mp_no value for 1.0 and 2.0. + (norm): Use RADIXI instead of radixi.d. + (denorm): Likewise. + (__mul): Use 0.0 instead of zero.d. + 2013-01-04 Joseph Myers <joseph@codesourcery.com> [BZ #14994] diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c b/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c index 7635a6055c..b52fa60632 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/mpa.c @@ -47,6 +47,10 @@ #include "mpa.h" #include "mpa2.h" #include <sys/param.h> /* For MIN() */ + +const mp_no mpone = {1, {1.0, 1.0}}; +const mp_no mptwo = {1, {1.0, 2.0}}; + /* mcr() compares the sizes of the mantissas of two multiple precision */ /* numbers. Mantissas are compared regardless of the signs of the */ /* numbers, even if x->d[0] or y->d[0] are zero. Exponents are also */ @@ -129,7 +133,7 @@ void __cpymn(const mp_no *x, int m, mp_no *y, int n) { /* number *y, normalized case (|x| >= 2**(-1022))) */ static void norm(const mp_no *x, double *y, int p) { - #define R radixi.d + #define R RADIXI long i; #if 0 int k; @@ -191,7 +195,7 @@ static void denorm(const mp_no *x, double *y, int p) double a,v; #endif -#define R radixi.d +#define R RADIXI if (EX<-44 || (EX==-44 && X[1]<TWO5)) { *y=ZERO; return; } @@ -461,7 +465,7 @@ void __mul(const mp_no *x, const mp_no *y, mp_no *z, int p) { zk2 = x->d[i2-1]*y->d[i1]; } else - zk2 = zero.d; + zk2 = 0.0; /* Do two multiply/adds per loop iteration, using independent accumulators; zk and zk2. */ for (i=i1,j=i2-1; i<i2-1; i+=2,j-=2) diff --git a/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c b/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c index 7635a6055c..b52fa60632 100644 --- a/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c +++ b/sysdeps/powerpc/powerpc64/power4/fpu/mpa.c @@ -47,6 +47,10 @@ #include "mpa.h" #include "mpa2.h" #include <sys/param.h> /* For MIN() */ + +const mp_no mpone = {1, {1.0, 1.0}}; +const mp_no mptwo = {1, {1.0, 2.0}}; + /* mcr() compares the sizes of the mantissas of two multiple precision */ /* numbers. Mantissas are compared regardless of the signs of the */ /* numbers, even if x->d[0] or y->d[0] are zero. Exponents are also */ @@ -129,7 +133,7 @@ void __cpymn(const mp_no *x, int m, mp_no *y, int n) { /* number *y, normalized case (|x| >= 2**(-1022))) */ static void norm(const mp_no *x, double *y, int p) { - #define R radixi.d + #define R RADIXI long i; #if 0 int k; @@ -191,7 +195,7 @@ static void denorm(const mp_no *x, double *y, int p) double a,v; #endif -#define R radixi.d +#define R RADIXI if (EX<-44 || (EX==-44 && X[1]<TWO5)) { *y=ZERO; return; } @@ -461,7 +465,7 @@ void __mul(const mp_no *x, const mp_no *y, mp_no *z, int p) { zk2 = x->d[i2-1]*y->d[i1]; } else - zk2 = zero.d; + zk2 = 0.0; /* Do two multiply/adds per loop iteration, using independent accumulators; zk and zk2. */ for (i=i1,j=i2-1; i<i2-1; i+=2,j-=2) |