about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc32
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove unnecessary uses of NOT_IN_libcSiddhesh Poyarekar2014-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a IS_IN_* macro is defined, then NOT_IN_libc is always defined, except obviously for IS_IN_libc. There's no need to check for both. Verified on x86_64 and i686 that the source is unchanged. * include/libc-symbols.h: Remove unnecessary check for NOT_IN_libc. * nptl/pthreadP.h: Likewise. * sysdeps/aarch64/setjmp.S: Likewise. * sysdeps/alpha/setjmp.S: Likewise. * sysdeps/arm/sysdep.h: Likewise. * sysdeps/i386/setjmp.S: Likewise. * sysdeps/m68k/setjmp.c: Likewise. * sysdeps/posix/getcwd.c: Likewise. * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise. * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise. * sysdeps/s390/s390-32/setjmp.S: Likewise. * sysdeps/s390/s390-64/setjmp.S: Likewise. * sysdeps/sh/sh3/setjmp.S: Likewise. * sysdeps/sh/sh4/setjmp.S: Likewise. * sysdeps/unix/alpha/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise. * sysdeps/x86_64/setjmp.S: Likewise.
* PowerPC: Cleanup powerpc memmoveAdhemerval Zanella2014-07-083-2/+4
| | | | | | | Now that MEMCPY_OK_FOR_FWD_MEMMOVE should be define on memcopy.h there is no need to specialized powerpc memmove implementation. This patch moves the define set to powerpc memcopy and cleanup its definition on powerpc code.
* PowerPC: Fix compiler warningsAdhemerval Zanella2014-07-082-2/+2
| | | | | This patch fixes some compiler due trailing data in #undef directives and due missing prototypes.
* PowerPC: Add ifunc tests for memmoveAdhemerval Zanella2014-07-081-0/+6
| | | | | This patch add the missing ifunc tests definition for memmove ppc32 optimization patch (commit 07aedd7).
* PowerPC: Align power7 memcpy using VSX to quadwordAdhemerval Zanella2014-07-071-2/+2
| | | | | | This patch changes power7 memcpy to use VSX instructions only when memory is aligned to quardword. It is to avoid unaligned kernel traps on non-cacheable memory (for instance, memory-mapped I/O).
* PowerPC: optimized memmove for POWER7/PPC32Adhemerval Zanella2014-07-074-1/+100
| | | | | This patch adds a optimized memmove for power7 by using the optimized power7 memcpy for forward copying.
* Always provide HP_SMALL_TIMING_AVAILRichard Henderson2014-07-031-0/+1
|
* Unify hp-timing implementationsRichard Henderson2014-07-031-53/+1
| | | | Provide an hp-timing-common.h for ports to use.
* Remove HP_TIMING_DIFF_INIT and dl_hp_timing_overheadRichard Henderson2014-07-032-48/+0
| | | | | Without HP_TIMING_ACCUM, dl_hp_timing_overhead is write-only. If we remove it, there's no point in HP_TIMING_DIFF_INIT either.
* Removing HP_TIMING_ACCUM as unusedRichard Henderson2014-07-031-16/+2
|
* Removing HP_TIMING_ZERO as unusedRichard Henderson2014-07-031-5/+0
|
* powerpc: Remove dummy hp-timing.hRichard Henderson2014-07-031-81/+0
| | | | It's the same as the generic dummy version.
* Fix Wundef warning for ELF_MACHINE_NO_RELASiddhesh Poyarekar2014-06-261-0/+1
| | | | | | | This patch defines ELF_MACHINE_NO_RELA on all architectures. Tested only on x86_64 to verify that the sources before and after are identical except for two instructions that pass the current line number in dl-machine.h to assert_fail.
* PowerPC: Remove 64 bits instructions in PPC32 codeAdhemerval Zanella2014-05-268-16/+16
| | | | This patch replaces the insrdi by insrwi in powerpc32 assembly.
* PowerPC: Fix memchr ifunc hidden symbol for PPC32Adhemerval Zanella2014-05-222-10/+14
| | | | | | | | | This patch fixes a similar issue to 736c304a1ab4cee36a2f3343f1698bc0abae4608, where for PPC32 if the symbol is defined as hidden (memchr) then compiler will create a local branc (symbol@local) and the linker will not create a required PLT call to make the ifunc work. It changes the default hidden symbol (__GI_memchr) to default memchr symbol for powerpc32 (__memchr_ppc32).
* PowerPC: ifunc improvement for internal callsAdhemerval Zanella2014-05-051-2/+1
| | | | | | | 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.
* PowerPC: Fix --disable-multi-arch buildsAdhemerval Zanella2014-04-091-0/+1
| | | | | | | | | | 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.
* PowerPC: Fix nearbyint/nearbyintf result for FE_DOWNWARDAdhemerval Zanella2014-04-062-10/+11
| | | | | | | | | This patch fixes the powerpc32 optimized nearbyint/nearbyintf bogus results for FE_DOWNWARD rounding mode. This is due wrong instructions sequence used in the rounding calculation (two subtractions instead of adition and a subtraction). Fixes BZ#16815.
* PowerPC: Fix bzero definition for static libc for PPC32Adhemerval Zanella2014-03-122-2/+11
| | | | | | | | | | This patch fixes an issue for powerpc32-fpu static build which fails with an 'bzero' undefined reference. This patch adds bzero ifunc selector for static builds and fixes the '__bzero_ppc' reference to default memset symbol (since static memset build does not provide ifunc selector). Fixes BZ#16689.
* PowerPC: Optimized isnan/isnanf for POWER8Adhemerval Zanella2014-02-271-0/+1
| | | | | | 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.
* Use glibc_likely instead __builtin_expect.Ondřej Bílka2014-02-103-8/+8
|
* Update copyright notices with scripts/update-copyrightsAllan McRae2014-01-01324-324/+324
|
* Don't make soft-fp symbols compat symbols for powerpc-nofpu.Joseph Myers2013-12-191-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sysdeps/powerpc/powerpc32/libgcc-compat.S makes certain symbols that glibc once accidentally reexported from libgcc into compat symbols. Where the exports were purely accidental, this is the right thing to do. However, for powerpc-nofpu the soft-fp symbols are deliberately exported from libc, given public versions in sysdeps/powerpc/nofpu/Versions and used by libm in preference to the libgcc versions that do not support the software exceptions and rounding modes. The libc versions should also be usable by user programs, though normally libgcc gets linked in first (meaning, effectively, that the <fenv.h> functions are broken as regards their expected effects on user arithmetic). A longstanding todo item is to remove the functions in question from libgcc (when built with recent enough glibc) - that is, remove them from static libgcc and make them compat symbols in shared libgcc - so that this works properly (this is one of the items mentioned at <http://gcc.gnu.org/wiki/Software_floating_point> - parts of that page are obviously out of date, but this item still applies). Doing this requires first that the functions are actually available from libc for new links, not just as compat symbols. This patch stops the symbols in question being compat symbols for powerpc-nofpu. The nofpu Versions entries for them are removed (the symbols never were exported at GLIBC_2.3.2, only GLIBC_2.0, because the compat symbols took precedence). Tested powerpc-nofpu. The symbols are no longer compat symbols and libm.so now properly gets undefined references to them (resolved to libc.so) instead of the libgcc copies getting linked into libm as before. * sysdeps/powerpc/powerpc32/libgcc-compat.S [_SOFT_FLOAT || __NO_FPRS__] (__fixdfdi_v_glibc20): Do not define as a macro and a compat symbol. [_SOFT_FLOAT || __NO_FPRS__] (__fixsfdi_v_glibc20): Likewise. [_SOFT_FLOAT || __NO_FPRS__] (__fixunsdfdi_v_glibc20): Likewise. [_SOFT_FLOAT || __NO_FPRS__] (__fixunssfdi_v_glibc20): Likewise. [_SOFT_FLOAT || __NO_FPRS__] (__floatdidf_v_glibc20): Likewise. [_SOFT_FLOAT || __NO_FPRS__] (__floaddisf_v_glibc20): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixdfdi): Do not use .hidden. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixsfdi): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunsdfdi): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__fixunssfdi): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddidf): Likewise. [HAVE_DOT_HIDDEN && (_SOFT_FLOAT || __NO_FPRS__)] (__floaddisf): Likewise. * sysdeps/powerpc/nofpu/Versions (libc): Remove __fixdfdi, __fixsfdi, __fixunsdfdi, __fixunssfdi, __floatdidf and __floatdisf from GLIBC_2.3.2.
* PowerPC: Adjust multiarch Implies for PowerPC32Adhemerval Zanella2013-12-0613-2/+12
| | | | | This patch adds Implies files on multiarch folder for POWER chips so multirach is enabled when building with --with-cpu and powerN option.
* PowerPC: multiarch __ieee754_hypot[f] for PowerPC32Adhemerval Zanella2013-12-067-1/+172
|
* PowerPC: multiarch logb/logbf/logbl for PowerPC32Adhemerval Zanella2013-12-0613-209/+264
|
* PowerPC: multiarch modf/modff for PowerPC32Adhemerval Zanella2013-12-067-2/+194
|
* PowerPC: multiarch lrint/lrintf for PowerPC32Adhemerval Zanella2013-12-065-1/+137
|
* PowerPC: multiarch lround/lrounf for PowerPC32Adhemerval Zanella2013-12-066-1/+176
|
* PowerPC: multiarch copysign/copysignf for PowerPC32Adhemerval Zanella2013-12-065-2/+154
|
* PowerPC: multiarch trunc/truncf for PowerPC32Adhemerval Zanella2013-12-067-1/+191
|
* PowerPC: multiarch round/roundf for PowerPC32Adhemerval Zanella2013-12-067-1/+191
|
* PowerPC: multiarch floor/floorf for PowerPC32Adhemerval Zanella2013-12-067-1/+192
|
* PowerPC: multiarch ceil/ceilf for PowerPC32Adhemerval Zanella2013-12-067-1/+191
|
* PowerPC: multiarch finite/finitef for PowerPC32Adhemerval Zanella2013-12-066-2/+184
|
* PowerPC: multiarch isinf/isinff for PowerPC32Adhemerval Zanella2013-12-066-2/+178
|
* PowerPC: multiarch isnan/isnanf for PowerPC32Adhemerval Zanella2013-12-0610-1/+283
|
* PowerPC: multiarch sqrt/sqrtf for PowerPC32Adhemerval Zanella2013-12-067-1/+188
|
* PowerPC: multiarch llround/llroundf for PowerPC32Adhemerval Zanella2013-12-066-1/+172
|
* PowerPC: multiarch llrint/llrintf for PowerPC32Adhemerval Zanella2013-12-067-0/+189
|
* PowerPC: multiarch wordcopy routines for PowerPC32Adhemerval Zanella2013-12-067-426/+159
|
* PowerPC: multiarch wcscpy for PowerPC32Adhemerval Zanella2013-12-067-105/+119
|
* PowerPC: multiarch wcsrchr for PowerPC32Adhemerval Zanella2013-12-067-89/+116
|
* PowerPC: multiarch wcschr for PowerPC32Adhemerval Zanella2013-12-067-89/+136
|
* PowerPC: multiarch strchr for PowerPC32Adhemerval Zanella2013-12-066-1/+143
|
* PowerPC: multiarch strchrnul for PowerPC32Adhemerval Zanella2013-12-065-1/+113
|
* PowerPC: multiarch strncasecmp for PowerPC32Adhemerval Zanella2013-12-066-1/+155
|
* PowerPC: multiarch strcasecmp for PowerPC32Adhemerval Zanella2013-12-066-1/+179
|
* PowerPC: multiarch strncmp for PowerPC32Adhemerval Zanella2013-12-065-1/+121
|
* PowerPC: multiarch strnlen for PowerPC32Adhemerval Zanella2013-12-066-1/+123
|