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>
* 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;
y *= twoM600;
return sqrt (x * x + y * y) / twoM600;
return __ieee754_sqrt (x * x + y * y) / twoM600;
}
if (y < twoM500)
{
@ -104,14 +104,14 @@ __ieee754_hypot (double x, double y)
{
x *= two1022;
y *= two1022;
return sqrt (x * x + y * y) / two1022;
return __ieee754_sqrt (x * x + y * y) / two1022;
}
else
{
x *= 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;
y *= twoM60;
return sqrtf (x * x + y * y) / twoM60;
return __ieee754_sqrtf (x * x + y * y) / twoM60;
}
if (y < twoM50)
{
@ -105,14 +105,14 @@ __ieee754_hypotf (float x, float y)
{
x *= two126;
y *= two126;
return sqrtf (x * x + y * y) / two126;
return __ieee754_sqrtf (x * x + y * y) / two126;
}
else
{
x *= 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)
{
n = floorf (ax * invpio2 + half);
n = __floorf (ax * invpio2 + half);
i = (int32_t) n;
r = ax - n * pio2_1;
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);
z = ax / e0;
tx[0] = floorf (z);
tx[0] = __floorf (z);
z = (z - tx[0]) * two8;
tx[1] = floorf (z);
tx[1] = __floorf (z);
z = (z - tx[1]) * two8;
tx[2] = floorf (z);
tx[2] = __floorf (z);
nx = 3;
while (tx[nx - 1] == zero)

View File

@ -135,16 +135,16 @@ recompute:
/* distill q[] into iq[] reversingly */
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);
z = q[j - 1] + fw;
}
/* compute n */
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;
z -= truncf (z);
z -= __truncf (z);
ih = 0;
if (q0 > 0)
{ /* need iq[jz-1] to determine n */
@ -234,7 +234,7 @@ recompute:
z = __scalbnf (z, -q0);
if (z >= two8)
{
fw = truncf (twon8 * z);
fw = __truncf (twon8 * z);
iq[jz] = (int32_t) (z - two8 * fw);
jz += 1;
q0 += 8;