Fix PLT uses in libm on powerpc

This commit is contained in:
Andreas Schwab 2011-09-15 11:16:03 +02:00
parent ee4d03150a
commit edc121be8b
5 changed files with 27 additions and 16 deletions

View File

@ -1,3 +1,14 @@
2011-09-15 Andreas Schwab <schwab@redhat.com>
* sysdeps/powerpc/fpu/e_hypot.c (__ieee754_hypot): Use
__ieee754_sqrt instead of sqrt.
* sysdeps/powerpc/fpu/e_hypotf.c (__ieee754_hypotf): Use
__ieee754_sqrtf instead of sqrtf.
* sysdeps/powerpc/fpu/e_rem_pio2f.c (__ieee754_rem_pio2f): Use
__floorf instead of floorf.
* sysdeps/powerpc/fpu/k_rem_pio2f.c (__fp_kernel_rem_pio2f): Use
__floorf, __truncf instead of floorf, truncf.
2011-09-14 Ulrich Drepper <drepper@gmail.com> 2011-09-14 Ulrich Drepper <drepper@gmail.com>
* sysdeps/x86_64/fpu/s_copysign.S [ELF]: Use correct section. * sysdeps/x86_64/fpu/s_copysign.S [ELF]: Use correct section.

View File

@ -96,7 +96,7 @@ __ieee754_hypot (double x, double y)
{ {
x *= twoM600; x *= twoM600;
y *= twoM600; y *= twoM600;
return sqrt (x * x + y * y) / twoM600; return __ieee754_sqrt (x * x + y * y) / twoM600;
} }
if (y < twoM500) if (y < twoM500)
{ {
@ -104,14 +104,14 @@ __ieee754_hypot (double x, double y)
{ {
x *= two1022; x *= two1022;
y *= two1022; y *= two1022;
return sqrt (x * x + y * y) / two1022; return __ieee754_sqrt (x * x + y * y) / two1022;
} }
else else
{ {
x *= two600; x *= two600;
y *= two600; y *= two600;
return sqrt (x * x + y * y) / two600; return __ieee754_sqrt (x * x + y * y) / two600;
} }
} }
return sqrt (x * x + y * y); return __ieee754_sqrt (x * x + y * y);
} }

View File

@ -97,7 +97,7 @@ __ieee754_hypotf (float x, float y)
{ {
x *= twoM60; x *= twoM60;
y *= twoM60; y *= twoM60;
return sqrtf (x * x + y * y) / twoM60; return __ieee754_sqrtf (x * x + y * y) / twoM60;
} }
if (y < twoM50) if (y < twoM50)
{ {
@ -105,14 +105,14 @@ __ieee754_hypotf (float x, float y)
{ {
x *= two126; x *= two126;
y *= two126; y *= two126;
return sqrtf (x * x + y * y) / two126; return __ieee754_sqrtf (x * x + y * y) / two126;
} }
else else
{ {
x *= two60; x *= two60;
y *= two60; y *= two60;
return sqrtf (x * x + y * y) / two60; return __ieee754_sqrtf (x * x + y * y) / two60;
} }
} }
return sqrtf (x * x + y * y); return __ieee754_sqrtf (x * x + y * y);
} }

View File

@ -112,7 +112,7 @@ __ieee754_rem_pio2f (float x, float *y)
} }
if (ax <= pio2_2e7) if (ax <= pio2_2e7)
{ {
n = floorf (ax * invpio2 + half); n = __floorf (ax * invpio2 + half);
i = (int32_t) n; i = (int32_t) n;
r = ax - n * pio2_1; r = ax - n * pio2_1;
w = n * pio2_1t; /* 1st round good to 40 bit */ w = n * pio2_1t; /* 1st round good to 40 bit */
@ -168,11 +168,11 @@ __ieee754_rem_pio2f (float x, float *y)
e0 = __float_and8 (ax / 128.0); e0 = __float_and8 (ax / 128.0);
z = ax / e0; z = ax / e0;
tx[0] = floorf (z); tx[0] = __floorf (z);
z = (z - tx[0]) * two8; z = (z - tx[0]) * two8;
tx[1] = floorf (z); tx[1] = __floorf (z);
z = (z - tx[1]) * two8; z = (z - tx[1]) * two8;
tx[2] = floorf (z); tx[2] = __floorf (z);
nx = 3; nx = 3;
while (tx[nx - 1] == zero) while (tx[nx - 1] == zero)

View File

@ -135,16 +135,16 @@ recompute:
/* distill q[] into iq[] reversingly */ /* distill q[] into iq[] reversingly */
for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--) for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--)
{ {
fw = truncf (twon8 * z); fw = __truncf (twon8 * z);
iq[i] = (int32_t) (z - two8 * fw); iq[i] = (int32_t) (z - two8 * fw);
z = q[j - 1] + fw; z = q[j - 1] + fw;
} }
/* compute n */ /* compute n */
z = __scalbnf (z, q0); /* actual value of z */ z = __scalbnf (z, q0); /* actual value of z */
z -= 8.0 * floorf (z * 0.125); /* trim off integer >= 8 */ z -= 8.0 * __floorf (z * 0.125); /* trim off integer >= 8 */
n = (int32_t) z; n = (int32_t) z;
z -= truncf (z); z -= __truncf (z);
ih = 0; ih = 0;
if (q0 > 0) if (q0 > 0)
{ /* need iq[jz-1] to determine n */ { /* need iq[jz-1] to determine n */
@ -234,7 +234,7 @@ recompute:
z = __scalbnf (z, -q0); z = __scalbnf (z, -q0);
if (z >= two8) if (z >= two8)
{ {
fw = truncf (twon8 * z); fw = __truncf (twon8 * z);
iq[jz] = (int32_t) (z - two8 * fw); iq[jz] = (int32_t) (z - two8 * fw);
jz += 1; jz += 1;
q0 += 8; q0 += 8;