From: Siddhesh Poyarekar Date: Fri, 4 Jan 2013 16:35:49 +0000 (+0530) Subject: Fix build failure on power4 processors X-Git-Tag: glibc-2.18~888 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=b18decba11693f53a91c527cbbcef73aac7dd3e6;p=glibc.git Fix build failure on power4 processors The power4-specific mpa.c depended on some global variables that were removed by earlier patches. Also, it did not define mpone and mptwo. --- diff --git a/ChangeLog b/ChangeLog index b72c6b181e..2f706390a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2013-01-04 Siddhesh Poyarekar + + * 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 [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 /* 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]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 /* 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]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