about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2013-01-04 22:05:49 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2013-01-04 22:05:49 +0530
commitb18decba11693f53a91c527cbbcef73aac7dd3e6 (patch)
tree9e78fffc9f640ea2f66925bfbce2c44e7472064f
parent8729819ba4c126268323595b89fb829390bd3a29 (diff)
downloadglibc-b18decba11693f53a91c527cbbcef73aac7dd3e6.tar.gz
glibc-b18decba11693f53a91c527cbbcef73aac7dd3e6.tar.xz
glibc-b18decba11693f53a91c527cbbcef73aac7dd3e6.zip
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.
-rw-r--r--ChangeLog13
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/mpa.c10
-rw-r--r--sysdeps/powerpc/powerpc64/power4/fpu/mpa.c10
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)