diff options
author | Andreas Schwab <schwab@redhat.com> | 2009-11-12 18:00:10 +0100 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2009-11-12 18:00:10 +0100 |
commit | b975c921d68e42868a5e97f70f449ecf45c2d9eb (patch) | |
tree | 073284bb48e9a9b21afd13366f5eba06cfb22a5f /sysdeps/powerpc | |
parent | dcdbf85d97d878dc90f5681124485c1633bc9423 (diff) | |
parent | 24c0bf7a76ecec65aca0dbce1f7ebb8f68425dc2 (diff) | |
download | glibc-b975c921d68e42868a5e97f70f449ecf45c2d9eb.tar glibc-b975c921d68e42868a5e97f70f449ecf45c2d9eb.tar.gz glibc-b975c921d68e42868a5e97f70f449ecf45c2d9eb.tar.bz2 glibc-b975c921d68e42868a5e97f70f449ecf45c2d9eb.zip |
Merge remote branch 'origin/master' into fedora/master
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r-- | sysdeps/powerpc/fpu/e_sqrt.c | 6 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/e_sqrtf.c | 6 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/dl-machine.h | 6 |
3 files changed, 10 insertions, 8 deletions
diff --git a/sysdeps/powerpc/fpu/e_sqrt.c b/sysdeps/powerpc/fpu/e_sqrt.c index 24e0dd3523..e95b786a00 100644 --- a/sysdeps/powerpc/fpu/e_sqrt.c +++ b/sysdeps/powerpc/fpu/e_sqrt.c @@ -35,7 +35,7 @@ extern const float __t_sqrt[1024]; /* The method is based on a description in Computation of elementary functions on the IBM RISC System/6000 processor, P. W. Markstein, IBM J. Res. Develop, 34(1) 1990. - Basically, it consists of two interleaved Newton-Rhapson approximations, + Basically, it consists of two interleaved Newton-Raphson approximations, one to find the actual square root, and one to find its reciprocal without the expense of a division operation. The tricky bit here is the use of the POWER/PowerPC multiply-add operation to get the @@ -44,7 +44,7 @@ extern const float __t_sqrt[1024]; The argument reduction works by a combination of table lookup to obtain the initial guesses, and some careful modification of the generated guesses (which mostly runs on the integer unit, while the - Newton-Rhapson is running on the FPU). */ + Newton-Raphson is running on the FPU). */ #ifdef __STDC__ double @@ -102,7 +102,7 @@ __slow_ieee754_sqrt (x) /* complete the INSERT_WORDS (sx, sxi, xi1) operation. */ sx = iw_u.value; - /* Here we have three Newton-Rhapson iterations each of a + /* Here we have three Newton-Raphson iterations each of a division and a square root and the remainder of the argument reduction, all interleaved. */ sd = -(sg * sg - sx); diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c index 8e8138a17d..ca44fac559 100644 --- a/sysdeps/powerpc/fpu/e_sqrtf.c +++ b/sysdeps/powerpc/fpu/e_sqrtf.c @@ -35,7 +35,7 @@ extern const float __t_sqrt[1024]; /* The method is based on a description in Computation of elementary functions on the IBM RISC System/6000 processor, P. W. Markstein, IBM J. Res. Develop, 34(1) 1990. - Basically, it consists of two interleaved Newton-Rhapson approximations, + Basically, it consists of two interleaved Newton-Raphson approximations, one to find the actual square root, and one to find its reciprocal without the expense of a division operation. The tricky bit here is the use of the POWER/PowerPC multiply-add operation to get the @@ -44,7 +44,7 @@ extern const float __t_sqrt[1024]; The argument reduction works by a combination of table lookup to obtain the initial guesses, and some careful modification of the generated guesses (which mostly runs on the integer unit, while the - Newton-Rhapson is running on the FPU). */ + Newton-Raphson is running on the FPU). */ #ifdef __STDC__ float @@ -90,7 +90,7 @@ __slow_ieee754_sqrtf (x) sg = t_sqrt[0]; sy = t_sqrt[1]; - /* Here we have three Newton-Rhapson iterations each of a + /* Here we have three Newton-Raphson iterations each of a division and a square root and the remainder of the argument reduction, all interleaved. */ sd = -(sg * sg - sx); diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h index 8a720ae9c2..00888587af 100644 --- a/sysdeps/powerpc/powerpc64/dl-machine.h +++ b/sysdeps/powerpc/powerpc64/dl-machine.h @@ -531,13 +531,14 @@ auto inline Elf64_Addr __attribute__ ((always_inline)) resolve_ifunc (Elf64_Addr value, const struct link_map *map, const struct link_map *sym_map) { +#ifndef RESOLVE_CONFLICT_FIND_MAP /* The function we are calling may not yet have its opd entry relocated. */ Elf64_FuncDesc opd; if (map != sym_map -#if !defined RTLD_BOOTSTRAP && defined SHARED +# if !defined RTLD_BOOTSTRAP && defined SHARED /* Bootstrap map doesn't have l_relocated set for it. */ && sym_map != &GL(dl_rtld_map) -#endif +# endif && !sym_map->l_relocated) { Elf64_FuncDesc *func = (Elf64_FuncDesc *) value; @@ -546,6 +547,7 @@ resolve_ifunc (Elf64_Addr value, opd.fd_aux = func->fd_aux; value = (Elf64_Addr) &opd; } +#endif return ((Elf64_Addr (*) (void)) value) (); } |