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.25-570-gc340290
- From: tuliom at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 23 Jun 2017 12:21:08 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.25-570-gc340290
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 c340290de867e02d37215df139fac0a7d9640704 (commit)
via 76c4c838e7463aab5a9aec6c3e5ce70eb1887bc0 (commit)
via 1301c20f6c2c36a84f418da513841ce89aba7d1c (commit)
via 7dcdfbcf6749cdc4c63e2613cbb3e2392d2fc2fb (commit)
from 12f50337ae80672c393c2317d471d097ad92c492 (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://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c340290de867e02d37215df139fac0a7d9640704
commit c340290de867e02d37215df139fac0a7d9640704
Author: Paul Clarke <pc@us.ibm.com>
Date: Fri Jun 23 09:10:32 2017 -0300
Optimized version of powf()
Most significant changes are code simplification and use of doubles for
intermediate values. Also, some rearrangement to move early
non-dependent code later, out of the faster paths.
* sysdeps/ieee754/flt-32/e_powf.c: Optimized implementation utilizing
rearranged code and doubles float types.
diff --git a/ChangeLog b/ChangeLog
index 044f605..1c3e6ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-23 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/ieee754/flt-32/e_powf.c: Optimized implementation utilizing
+ rearranged code and doubles float types.
+
2017-06-23 Rogerio A. Cardoso <rcardoso@linux.vnet.ibm.com>
* sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c: Change
diff --git a/sysdeps/ieee754/flt-32/e_powf.c b/sysdeps/ieee754/flt-32/e_powf.c
index 13b49de..3f06020 100644
--- a/sysdeps/ieee754/flt-32/e_powf.c
+++ b/sysdeps/ieee754/flt-32/e_powf.c
@@ -1,6 +1,22 @@
/* e_powf.c -- float version of e_pow.c.
* Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
*/
+/* Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
/*
* ====================================================
@@ -20,8 +36,6 @@ static const float huge = 1.0e+30, tiny = 1.0e-30;
static const float
bp[] = {1.0, 1.5,},
-dp_h[] = { 0.0, 5.84960938e-01,}, /* 0x3f15c000 */
-dp_l[] = { 0.0, 1.56322085e-06,}, /* 0x35d1cfdc */
zero = 0.0,
one = 1.0,
two = 2.0,
@@ -38,28 +52,24 @@ P2 = -2.7777778450e-03, /* 0xbb360b61 */
P3 = 6.6137559770e-05, /* 0x388ab355 */
P4 = -1.6533901999e-06, /* 0xb5ddea0e */
P5 = 4.1381369442e-08, /* 0x3331bb4c */
-lg2 = 6.9314718246e-01, /* 0x3f317218 */
-lg2_h = 6.93145752e-01, /* 0x3f317200 */
-lg2_l = 1.42860654e-06, /* 0x35bfbe8c */
-ovt = 4.2995665694e-08, /* -(128-log2(ovfl+.5ulp)) */
-cp = 9.6179670095e-01, /* 0x3f76384f =2/(3ln2) */
-cp_h = 0xf.64p-4, /* cp high 12 bits. */
-cp_l = -0x7.b11e3p-16, /* 2/(3ln2) - cp_h. */
-ivln2 = 1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */
-ivln2_h = 1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/
-ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
+ovt = 4.2995665694e-08; /* -(128-log2(ovfl+.5ulp)) */
+
+static const double
+ dp[] = { 0.0, 0x1.2b803473f7ad1p-1, }, /* log2(1.5) */
+ lg2 = M_LN2,
+ cp = 2.0/3.0/M_LN2,
+ invln2 = 1.0/M_LN2;
float
__ieee754_powf(float x, float y)
{
- float z,ax,z_h,z_l,p_h,p_l;
- float y1,t1,t2,r,s,t,u,v,w;
+ float z, ax, s;
+ double d1, d2;
int32_t i,j,k,yisint,n;
- int32_t hx,hy,ix,iy,is;
+ int32_t hx,hy,ix,iy;
- GET_FLOAT_WORD(hx,x);
GET_FLOAT_WORD(hy,y);
- ix = hx&0x7fffffff; iy = hy&0x7fffffff;
+ iy = hy&0x7fffffff;
/* y==zero: x**0 = 1 */
if(iy==0 && !issignaling (x)) return one;
@@ -68,26 +78,14 @@ __ieee754_powf(float x, float y)
if(x == 1.0 && !issignaling (y)) return one;
if(x == -1.0 && isinf(y)) return one;
+ GET_FLOAT_WORD(hx,x);
+ ix = hx&0x7fffffff;
+
/* +-NaN return x+y */
if(__builtin_expect(ix > 0x7f800000 ||
iy > 0x7f800000, 0))
return x+y;
- /* determine if y is an odd int when x < 0
- * yisint = 0 ... y is not an integer
- * yisint = 1 ... y is an odd int
- * yisint = 2 ... y is an even int
- */
- yisint = 0;
- if(hx<0) {
- if(iy>=0x4b800000) yisint = 2; /* even integer y */
- else if(iy>=0x3f800000) {
- k = (iy>>23)-0x7f; /* exponent */
- j = iy>>(23-k);
- if((j<<(23-k))==iy) yisint = 2-(j&1);
- }
- }
-
/* special value of y */
if (__builtin_expect(iy==0x7f800000, 0)) { /* y is +-inf */
if (ix==0x3f800000)
@@ -106,6 +104,21 @@ __ieee754_powf(float x, float y)
return __ieee754_sqrtf(x);
}
+ /* determine if y is an odd int when x < 0
+ * yisint = 0 ... y is not an integer
+ * yisint = 1 ... y is an odd int
+ * yisint = 2 ... y is an even int
+ */
+ yisint = 0;
+ if(hx<0) {
+ if(iy>=0x4b800000) yisint = 2; /* even integer y */
+ else if(iy>=0x3f800000) {
+ k = (iy>>23)-0x7f; /* exponent */
+ j = iy>>(23-k);
+ if((j<<(23-k))==iy) yisint = 2-(j&1);
+ }
+ }
+
ax = fabsf(x);
/* special value of x */
if(__builtin_expect(ix==0x7f800000||ix==0||ix==0x3f800000, 0)){
@@ -131,16 +144,10 @@ __ieee754_powf(float x, float y)
if(ix>0x3f800007) return (hy>0)? huge*huge:tiny*tiny;
/* now |1-x| is tiny <= 2**-20, suffice to compute
log(x) by x-x^2/2+x^3/3-x^4/4 */
- t = ax-1; /* t has 20 trailing zeros */
- w = (t*t)*((float)0.5-t*((float)0.333333333333-t*(float)0.25));
- u = ivln2_h*t; /* ivln2_h has 16 sig. bits */
- v = t*ivln2_l-w*ivln2;
- t1 = u+v;
- GET_FLOAT_WORD(is,t1);
- SET_FLOAT_WORD(t1,is&0xfffff000);
- t2 = v-(t1-u);
+ d2 = ax-1; /* d2 has 20 trailing zeros. */
+ d2 = d2 * invln2 -
+ (d2 * d2) * (0.5 - d2 * (0.333333333333 - d2 * 0.25)) * invln2;
} else {
- float s2,s_h,s_l,t_h,t_l;
/* Avoid internal underflow for tiny y. The exact value
of y does not matter if |y| <= 2**-32. */
if (iy < 0x2f800000)
@@ -158,69 +165,37 @@ __ieee754_powf(float x, float y)
else {k=0;n+=1;ix -= 0x00800000;}
SET_FLOAT_WORD(ax,ix);
- /* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
- u = ax-bp[k]; /* bp[0]=1.0, bp[1]=1.5 */
- v = one/(ax+bp[k]);
- s = u*v;
- s_h = s;
- GET_FLOAT_WORD(is,s_h);
- SET_FLOAT_WORD(s_h,is&0xfffff000);
- /* t_h=ax+bp[k] High */
- SET_FLOAT_WORD (t_h,
- ((((ix>>1)|0x20000000)+0x00400000+(k<<21))
- & 0xfffff000));
- t_l = ax - (t_h-bp[k]);
- s_l = v*((u-s_h*t_h)-s_h*t_l);
- /* compute log(ax) */
- s2 = s*s;
- r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
- r += s_l*(s_h+s);
- s2 = s_h*s_h;
- t_h = (float)3.0+s2+r;
- GET_FLOAT_WORD(is,t_h);
- SET_FLOAT_WORD(t_h,is&0xfffff000);
- t_l = r-((t_h-(float)3.0)-s2);
- /* u+v = s*(1+...) */
- u = s_h*t_h;
- v = s_l*t_h+t_l*s;
- /* 2/(3log2)*(s+...) */
- p_h = u+v;
- GET_FLOAT_WORD(is,p_h);
- SET_FLOAT_WORD(p_h,is&0xfffff000);
- p_l = v-(p_h-u);
- z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */
- z_l = cp_l*p_h+p_l*cp+dp_l[k];
- /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
- t = (float)n;
- t1 = (((z_h+z_l)+dp_h[k])+t);
- GET_FLOAT_WORD(is,t1);
- SET_FLOAT_WORD(t1,is&0xfffff000);
- t2 = z_l-(((t1-t)-dp_h[k])-z_h);
+ /* compute d1 = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
+ d1 = (ax-(double)bp[k])/(ax+(double)bp[k]);
+ /* compute d2 = log(ax) */
+ d2 = d1 * d1;
+ d2 = 3.0 + d2 + d2*d2*(L1+d2*(L2+d2*(L3+d2*(L4+d2*(L5+d2*L6)))));
+ /* 2/(3log2)*(d2+...) */
+ d2 = d1*d2*cp;
+ /* log2(ax) = (d2+..)*2/(3*log2) */
+ d2 = d2+dp[k]+(double)n;
}
s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
if(((((u_int32_t)hx>>31)-1)|(yisint-1))==0)
s = -one; /* (-ve)**(odd int) */
- /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
- GET_FLOAT_WORD(is,y);
- SET_FLOAT_WORD(y1,is&0xfffff000);
- p_l = (y-y1)*t1+y*t2;
- p_h = y1*t1;
- z = p_l+p_h;
+ /* compute y * d2 */
+ d1 = y * d2;
+ z = d1;
GET_FLOAT_WORD(j,z);
if (__builtin_expect(j>0x43000000, 0)) /* if z > 128 */
return s*huge*huge; /* overflow */
else if (__builtin_expect(j==0x43000000, 0)) { /* if z == 128 */
- if(p_l+ovt>z-p_h) return s*huge*huge; /* overflow */
+ if(ovt>(z-d1)) return s*huge*huge; /* overflow */
}
else if (__builtin_expect((j&0x7fffffff)>0x43160000, 0))/* z <= -150 */
return s*tiny*tiny; /* underflow */
else if (__builtin_expect((u_int32_t) j==0xc3160000, 0)){/* z == -150*/
- if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */
+ if(0.0<=(z-d1)) return s*tiny*tiny; /* underflow */
}
/*
- * compute 2**(p_h+p_l)
+ * compute 2**d1
*/
i = j&0x7fffffff;
k = (i>>23)-0x7f;
@@ -228,22 +203,16 @@ __ieee754_powf(float x, float y)
if(i>0x3f000000) { /* if |z| > 0.5, set n = [z+0.5] */
n = j+(0x00800000>>(k+1));
k = ((n&0x7fffffff)>>23)-0x7f; /* new k for n */
- SET_FLOAT_WORD(t,n&~(0x007fffff>>k));
+ SET_FLOAT_WORD(z,n&~(0x007fffff>>k));
n = ((n&0x007fffff)|0x00800000)>>(23-k);
if(j<0) n = -n;
- p_h -= t;
+ d1 -= z;
}
- t = p_l+p_h;
- GET_FLOAT_WORD(is,t);
- SET_FLOAT_WORD(t,is&0xfffff000);
- u = t*lg2_h;
- v = (p_l-(t-p_h))*lg2+t*lg2_l;
- z = u+v;
- w = v-(z-u);
- t = z*z;
- t1 = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
- r = (z*t1)/(t1-two)-(w+z*w);
- z = one-(r-z);
+ d1 = d1 * lg2;
+ d2 = d1*d1;
+ d2 = d1 - d2*(P1+d2*(P2+d2*(P3+d2*(P4+d2*P5))));
+ d2 = (d1*d2)/(d2-two);
+ z = one - (d2-d1);
GET_FLOAT_WORD(j,z);
j += (n<<23);
if((j>>23)<=0) /* subnormal output */
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=76c4c838e7463aab5a9aec6c3e5ce70eb1887bc0
commit 76c4c838e7463aab5a9aec6c3e5ce70eb1887bc0
Author: Rogerio A. Cardoso <rcardoso@linux.vnet.ibm.com>
Date: Fri Jun 23 09:10:32 2017 -0300
powerpc: Fix sinf() IFUNC fallback.
sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c should fall back to
sysdeps/powerpc/fpu/s_sinf.c not to sysdeps/ieee754/flt-32/s_sinf.c.
* sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c: Change
s_sinf.c from sysdeps/ieee754/flt-32/ to sysdeps/powerpc/fpu/.
diff --git a/ChangeLog b/ChangeLog
index 4411528..044f605 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-23 Rogerio A. Cardoso <rcardoso@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c: Change
+ s_sinf.c from sysdeps/ieee754/flt-32/ to sysdeps/powerpc/fpu/.
+
2017-06-23 Paul A. Clarke <pc@us.ibm.com>
* sysdeps/unix/sysv/linux/powerpc/sysconf.c: Remove references
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c
index 83e37f9..b2ff032 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c
@@ -23,4 +23,4 @@
#define __sinf __sinf_ppc64
-#include <sysdeps/ieee754/flt-32/s_sinf.c>
+#include <sysdeps/powerpc/fpu/s_sinf.c>
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1301c20f6c2c36a84f418da513841ce89aba7d1c
commit 1301c20f6c2c36a84f418da513841ce89aba7d1c
Author: Paul Clarke <pc@us.ibm.com>
Date: Fri Jun 23 09:10:32 2017 -0300
powerpc: fix sysconf support for cache geometries
Commit cdfbe5037f2f67bf5f560b73732b69d0fabe2314 added sysconf support
for cache geometries on powerpc, but mishandled errno. For valid input
parameters, sysconf() should not set errno.
* sysdeps/unix/sysv/linux/powerpc/sysconf.c: Remove references
to errno, and simplify remaining related code.
diff --git a/ChangeLog b/ChangeLog
index c52002a..4411528 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-23 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/sysconf.c: Remove references
+ to errno, and simplify remaining related code.
+
2017-06-23 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
* sysdeps/powerpc/bits/hwcap.h: Add PPC_FEATURE2_DARN and
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysconf.c b/sysdeps/unix/sysv/linux/powerpc/sysconf.c
index 10c4aa0..7bed701 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysconf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/sysconf.c
@@ -22,37 +22,16 @@
static long linux_sysconf (int name);
-static long
-auxv2sysconf (unsigned long type)
-{
- long rc;
- rc = __getauxval (type);
- if (rc == 0)
- {
- __set_errno (EINVAL);
- rc = -1;
- }
- return rc;
-}
-
-static long
+static inline long
auxv2sysconf_cache_associativity (unsigned long type)
{
- long rc;
- rc = auxv2sysconf (type);
- if (rc != -1)
- rc = (rc & 0xffff0000) >> 16;
- return rc;
+ return (__getauxval (type) & 0xffff0000) >> 16;
}
-static long
+static inline long
auxv2sysconf_cache_linesize (unsigned long type)
{
- long rc;
- rc = auxv2sysconf (type);
- if (rc != -1)
- rc = rc & 0xffff;
- return rc;
+ return __getauxval (type) & 0xffff;
}
/* Get the value of the system variable NAME. */
@@ -62,25 +41,25 @@ __sysconf (int name)
switch (name)
{
case _SC_LEVEL1_ICACHE_SIZE:
- return auxv2sysconf (AT_L1I_CACHESIZE);
+ return __getauxval (AT_L1I_CACHESIZE);
case _SC_LEVEL1_ICACHE_ASSOC:
return auxv2sysconf_cache_associativity (AT_L1I_CACHEGEOMETRY);
case _SC_LEVEL1_ICACHE_LINESIZE:
return auxv2sysconf_cache_linesize (AT_L1I_CACHEGEOMETRY);
case _SC_LEVEL1_DCACHE_SIZE:
- return auxv2sysconf (AT_L1D_CACHESIZE);
+ return __getauxval (AT_L1D_CACHESIZE);
case _SC_LEVEL1_DCACHE_ASSOC:
return auxv2sysconf_cache_associativity (AT_L1D_CACHEGEOMETRY);
case _SC_LEVEL1_DCACHE_LINESIZE:
return auxv2sysconf_cache_linesize (AT_L1D_CACHEGEOMETRY);
case _SC_LEVEL2_CACHE_SIZE:
- return auxv2sysconf (AT_L2_CACHESIZE);
+ return __getauxval (AT_L2_CACHESIZE);
case _SC_LEVEL2_CACHE_ASSOC:
return auxv2sysconf_cache_associativity (AT_L2_CACHEGEOMETRY);
case _SC_LEVEL2_CACHE_LINESIZE:
return auxv2sysconf_cache_linesize (AT_L2_CACHEGEOMETRY);
case _SC_LEVEL3_CACHE_SIZE:
- return auxv2sysconf (AT_L3_CACHESIZE);
+ return __getauxval (AT_L3_CACHESIZE);
case _SC_LEVEL3_CACHE_ASSOC:
return auxv2sysconf_cache_associativity (AT_L3_CACHEGEOMETRY);
case _SC_LEVEL3_CACHE_LINESIZE:
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7dcdfbcf6749cdc4c63e2613cbb3e2392d2fc2fb
commit 7dcdfbcf6749cdc4c63e2613cbb3e2392d2fc2fb
Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Date: Fri Jun 23 09:10:32 2017 -0300
powerpc: Update AT_HWCAP[2] bits
Linux commit ID a4700a26107241cc7b9ac8528b2c6714ff99983d reserved 2 more
bits for the instructions darn (Deliver a Random Number) and scv (System
Call Vectored).
Linux commit ID 6997e57d693b07289694239e52a10d2f02c3a46f reserved
another bit for internal usage.
* sysdeps/powerpc/bits/hwcap.h: Add PPC_FEATURE2_DARN and
PPC_FEATURE2_SCV.
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add scv
and darn.
diff --git a/ChangeLog b/ChangeLog
index e495f4c..c52002a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2017-06-23 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/bits/hwcap.h: Add PPC_FEATURE2_DARN and
+ PPC_FEATURE2_SCV.
+ * sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add scv
+ and darn.
+
2017-06-23 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
* sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S(STRRCHR): Define
diff --git a/sysdeps/powerpc/bits/hwcap.h b/sysdeps/powerpc/bits/hwcap.h
index c9daeed..dfc71c2 100644
--- a/sysdeps/powerpc/bits/hwcap.h
+++ b/sysdeps/powerpc/bits/hwcap.h
@@ -50,6 +50,7 @@
#define PPC_FEATURE_ARCH_2_06 0x00000100 /* ISA 2.06 */
#define PPC_FEATURE_HAS_VSX 0x00000080 /* P7 Vector Extension. */
#define PPC_FEATURE_PSERIES_PERFMON_COMPAT 0x00000040
+/* Reserved by the kernel. 0x00000004 Do not use. */
#define PPC_FEATURE_TRUE_LE 0x00000002
#define PPC_FEATURE_PPC_LE 0x00000001
@@ -69,3 +70,5 @@
#define PPC_FEATURE2_ARCH_3_00 0x00800000 /* ISA 3.0 */
#define PPC_FEATURE2_HAS_IEEE128 0x00400000 /* VSX IEEE Binary Float
128-bit */
+#define PPC_FEATURE2_DARN 0x00200000 /* darn instruction. */
+#define PPC_FEATURE2_SCV 0x00100000 /* scv syscall. */
diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c
index cd7329b..4dac16d 100644
--- a/sysdeps/powerpc/dl-procinfo.c
+++ b/sysdeps/powerpc/dl-procinfo.c
@@ -62,7 +62,7 @@ PROCINFO_CLASS const char _dl_powerpc_cap_flags[64][10]
"", "", "", "",
"", "", "", "",
"", "", "", "",
- "", "", "ieee128", "arch_3_00",
+ "scv", "darn", "ieee128", "arch_3_00",
"htm-nosc", "vcrypto", "tar", "isel",
"ebb", "dscr", "htm", "arch_2_07",
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 22 +++
sysdeps/ieee754/flt-32/e_powf.c | 171 ++++++++------------
sysdeps/powerpc/bits/hwcap.h | 3 +
sysdeps/powerpc/dl-procinfo.c | 2 +-
.../powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c | 2 +-
sysdeps/unix/sysv/linux/powerpc/sysconf.c | 37 +----
6 files changed, 105 insertions(+), 132 deletions(-)
hooks/post-receive
--
GNU C Library master sources