aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc64
AgeCommit message (Collapse)Author
2014-05-06PowerPC: strncpy/stpncpy optimization for PPC64/POWER7Vidya Ranganathan
The optimization is achieved by following techniques: > data alignment [gain from aligned memory access on read/write] > POWER7 gains performance with loop unrolling/unwinding [gain by reduction of branch penalty]. > zero padding done by calling optimized memset
2014-05-05PowerPC: ifunc improvement for internal callsAdhemerval Zanella
This patch changes de default symbol redirection for internal call of memcpy, memset, memchr, and strlen to the IFUNC resolved ones. The performance improvement is noticeable in algorithms that uses these symbols extensible, like the regex functions.
2014-04-09PowerPC: Fix --disable-multi-arch buildsAdhemerval Zanella
This patch fixes some powerpc32 and powerpc64 builds with --disable-multi-arch option along with different --with-cpu=powerN. It cleanups the Implies directories by removing the multiarch folder for non multiarch config and also fixing two assembly implementations: powerpc64/power7/strncat.S that is calling the wrong strlen; and power8/fpu/s_isnan.S that misses the hidden_def and weak_alias directives.
2014-04-02Correct prefetch hint in power7 memrchr.Alan Modra
Typo fix. * sysdeps/powerpc/powerpc64/power7/memrchr.S: Correct stream hint.
2014-04-02Fix reference to toc symbol.Alan Modra
https://sourceware.org/ml/binutils/2014-03/msg00033.html removes the "magic" treatment of symbols defined in a .toc section. * sysdeps/powerpc/powerpc64/start.S: Add @toc to toc symbol reference.
2014-04-01Fix s_copysign stack temp for PowerPC64 ELFv2Alan Modra
[BZ #16786] * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Don't trash stack.
2014-03-31PowerPC: Fix little endian enconding for mfvsrdAdhemerval Zanella
This patch fixes the MFVSRD_R3_V1 macro that encodes 'mfvsrd r3,vs1' (to support old binutils) for little endian.
2014-03-20PowerPC: optimized strpbrk for POWER7Adhemerval Zanella
This patch add an optimized strpbrk for POWER7 by using a different algorithm than default implementation: it constructs a table based on the 'accept' argument and use this table to check for any occurance on the input string. The idea is similar as x86_64 uses. For PowerPC some tunings were added, such as unroll loops and memory clear using VSX instructions.
2014-03-20PowerPC: optimized strcspn for PPC64/POWER7Adhemerval Zanella
This patch add a optimized strcspn for POWER7 by using a different algorithm than default implementation: it constructs a table based on the 'accept' argument and use this table to check for any occurance on the input string. The idea is similar as x86_64 uses. For PowerPC some tunings were added, such as unroll loops and align stack memory to table to 16 bytes (so VSX clean can ran without alignment issues).
2014-03-14PowerPC: remove wrong roundl implementation for PowerPC64Adhemerval Zanella
The roundl assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_roundl.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_roundl.c instead fixes the failing math. This fixes 16707.
2014-03-14PowerPC: remove wrong nearbyintl implementation for PPC64Adhemerval Zanella
The nearbyintl assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_nearbyintl.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c instead fixes the failing math. Fixes BZ#16706.
2014-03-14PowerPC: remove wrong ceill implementation for PowerPC64Adhemerval Zanella
The ceill assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_ceill.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_ceill.c instead fixes the failing math. Fixes BZ#16701.
2014-03-12PowerPC: Fix strspn for static buildAdhemerval Zanella
This patch makes the strspn ifunc selector build for static builds.
2014-03-11PowerPC: Fix bzero definition for static libc for PPC64Adhemerval Zanella
This patch fixes an issue for powerpc64[le] static build where __bzero is definied in multiple places (memset-ppc64.o and bzero.o). It is now defined only in bzero.o and memset-ppc64.o only defined __bzero_ppc for both dynamic and static library. Fixes BZ#16683.
2014-03-11PowerPC: strspn optimization for PPC64/POWER7Vidya Ranganathan
The optimization is achieved by following techniques: > hashing of needle. > hashing avoids scanning of duplicate entries in needle across the string. > initializing the hash table with Vector instructions (VSX) by quadword access. > unrolling when scanning for character in string across hash table.
2014-03-10PowerPC: strncat optimization for PPC64Adhemerval Zanella
The optimization is achieved by following techniques: 1. Doubleword aligned memory access and compares using cmpb instruction. 2. Loop unrolling for byte load/store. 3. CPU pre-fetch to avoid cache miss.
2014-03-03PowerPC: strrchr optimization for POWER7/PPC64Rajalakshmi Srinivasaraghavan
This patch optimizes strrchr() for ppc64. It uses aligned memory access along with cmpb instruction and CPU prefetch to avoid cache misses for speed improvement.
2014-02-27PowerPC: llround/llroundf POWER8 optimizationAdhemerval Zanella
This patch add a optimized llround/llroundf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move.
2014-02-27PowerPC: llrint/llrintf POWER8 optimizationAdhemerval Zanella
This patch add a optimized llrint/llrintf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move.
2014-02-27PowerPC: Optimized finite/finitef for POWER8Adhemerval Zanella
This patch add a optimized finite/finitef implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move.
2014-02-27PowerPC: Optimized isinf/isinff for POWER8Adhemerval Zanella
This patch add a optimized isinf/isinff implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move.
2014-02-27PowerPC: Optimized isnan/isnanf for POWER8Adhemerval Zanella
This patch add a optimized isnan/isnanf implementation for POWER8 using the new Move From VSR Doubleword instruction to gains some cycles from FP to GRP register move.
2014-02-10Use glibc_likely instead __builtin_expect.Ondřej Bílka
2014-01-08PowerPC: remove wrong truncl implementation for PowerPC64Adhemerval Zanella
The truncl assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_truncl.S) returns wrong results for some inputs where first double is a exact integer and the precision is determined by second long double. Checking on implementation comments and history, I am very confident the assembly implementation was based on a version before commit 5c68d401698a58cf7da150d9cce769fa6679ba5f that fixes BZ#2423 (Errors in long double (ldbl-128ibm) rounding functions in glibc-2.4). By just removing the implementation and make the build select sysdeps/ieee754/ldbl-128ibm/s_truncl.c instead it fixes tgammal issues regarding wrong result sign.
2014-01-03PowerPC: Fix compiler warningsAdhemerval Zanella
This patch fixes some compile warnings related to extra tokens at end of #undef directive from multilib patchset.
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae
2013-12-19Fix uses of CALL_MCOUNT in ppc64 assembler sourcesAndreas Schwab
2013-12-13PowerPC: multiarch hypot/hypotf for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch modf/modff for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch logb/logbl/logbf for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch isinf/isinff for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch finite/finitef for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch llrint/lrint for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch copysign/copysignf for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch trunc/truncf for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch round/roundf for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch floor/floorf for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch ceil/ceilf for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch llround/lround for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch isnan/isnanf for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: Adjust multiarch Implies for PowerPC64Adhemerval Zanella
This patch adds Implies files on multiarch folder for POWER chips so multirach is enabled when building with --with-cpu and powerN option.
2013-12-13PowerPC: Cleaning up uneeded sqrt routinesAdhemerval Zanella
For PPC64, all the wrappers at sysdeps are superfluous: they are basically the same implementation from math/w_sqrt.c with the '#ifdef _IEEE_LIBM'. And the power4 version just force the 'fsqrt' instruction utilization with an inline assembly, which is already handled by math_private.h __ieee754_sqrt implementation.
2013-12-13PowerPC: multiarch stpcpy for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch strcpy for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch wordcopy for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch wcscpy for PowerPC64.Adhemerval Zanella
2013-12-13PowerPC: multiarch wcsrchr for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch wcschr for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch strchrnul for PowerPC64Adhemerval Zanella
2013-12-13PowerPC: multiarch strchr for PowerPC64Adhemerval Zanella