Commit Graph

329 Commits

Author SHA1 Message Date
Khem Raj
a78b712d40 Define __GI_fegetenv for e500 libm
generic HAVE_RM_CTX implementation which is used for ppc/e500 as well
has introduced calls to fegetenv which should be resolved internally
with in libm

Signed-off-by: Khem Raj <raj.khem@gmail.com>

	* sysdeps/powerpc/powerpc32/e500/nofpu/fegetenv.c (fegetenv): Add
	libm_hidden_ver.
2014-09-02 21:39:04 +00:00
Siddhesh Poyarekar
eb72478a28 Remove unnecessary uses of NOT_IN_libc
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.
2014-08-21 10:26:46 +05:30
Adhemerval Zanella
27b75f56c9 PowerPC: Cleanup powerpc memmove
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.
2014-07-08 09:16:15 -05:00
Adhemerval Zanella
e7f95bb5f0 PowerPC: Fix compiler warnings
This patch fixes some compiler due trailing data in #undef directives
and due missing prototypes.
2014-07-08 09:16:12 -05:00
Adhemerval Zanella
91f4b564bd PowerPC: Add ifunc tests for memmove
This patch add the missing ifunc tests definition for memmove ppc32
optimization patch (commit 07aedd7).
2014-07-08 09:16:09 -05:00
Adhemerval Zanella
87868c2418 PowerPC: Align power7 memcpy using VSX to quadword
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).
2014-07-07 15:41:27 -05:00
Adhemerval Zanella
07aedd78b0 PowerPC: optimized memmove for POWER7/PPC32
This patch adds a optimized memmove for power7 by using the optimized
power7 memcpy for forward copying.
2014-07-07 15:41:27 -05:00
Richard Henderson
05502548e9 Always provide HP_SMALL_TIMING_AVAIL 2014-07-03 08:38:36 -07:00
Richard Henderson
86e1a7ff92 Unify hp-timing implementations
Provide an hp-timing-common.h for ports to use.
2014-07-03 08:38:30 -07:00
Richard Henderson
428dd03f5a Remove HP_TIMING_DIFF_INIT and dl_hp_timing_overhead
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.
2014-07-03 08:38:25 -07:00
Richard Henderson
c39323e9d2 Removing HP_TIMING_ACCUM as unused 2014-07-03 08:38:21 -07:00
Richard Henderson
850e0e032b Removing HP_TIMING_ZERO as unused 2014-07-03 08:38:18 -07:00
Richard Henderson
7db48f6aab powerpc: Remove dummy hp-timing.h
It's the same as the generic dummy version.
2014-07-03 08:38:15 -07:00
Siddhesh Poyarekar
4cf5b6d0d7 Fix Wundef warning for ELF_MACHINE_NO_RELA
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.
2014-06-26 22:30:40 +05:30
Adhemerval Zanella
d298c41635 PowerPC: Remove 64 bits instructions in PPC32 code
This patch replaces the insrdi by insrwi in powerpc32 assembly.
2014-05-26 09:09:21 -05:00
Adhemerval Zanella
3d2badacf1 PowerPC: Fix memchr ifunc hidden symbol for PPC32
This patch fixes a similar issue to
736c304a1a, 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).
2014-05-22 07:53:44 -05:00
Adhemerval Zanella
19c4bec0f4 PowerPC: ifunc improvement for internal calls
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-05-05 13:30:16 -05:00
Adhemerval Zanella
de21c33c06 PowerPC: Fix --disable-multi-arch builds
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-09 06:22:53 -05:00
Adhemerval Zanella
8bd70862e1 PowerPC: Fix nearbyint/nearbyintf result for FE_DOWNWARD
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.
2014-04-06 14:58:05 -05:00
Adhemerval Zanella
dd3946c615 PowerPC: Fix bzero definition for static libc for PPC32
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.
2014-03-12 09:03:22 -05:00
Adhemerval Zanella
487972aea5 PowerPC: Optimized isnan/isnanf for POWER8
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-27 12:58:32 -06:00
Ondřej Bílka
a1ffb40e32 Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Joseph Myers
eb98356875 Don't make soft-fp symbols compat symbols for powerpc-nofpu.
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.
2013-12-19 21:26:36 +00:00
Adhemerval Zanella
ccdc8438dc PowerPC: Adjust multiarch Implies for PowerPC32
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-06 05:47:05 -06:00
Adhemerval Zanella
2e973d9919 PowerPC: multiarch __ieee754_hypot[f] for PowerPC32 2013-12-06 05:47:05 -06:00
Adhemerval Zanella
2d9470b2ae PowerPC: multiarch logb/logbf/logbl for PowerPC32 2013-12-06 05:47:05 -06:00
Adhemerval Zanella
5212ffce0e PowerPC: multiarch modf/modff for PowerPC32 2013-12-06 05:47:05 -06:00
Adhemerval Zanella
79dccf31bf PowerPC: multiarch lrint/lrintf for PowerPC32 2013-12-06 05:47:04 -06:00
Adhemerval Zanella
deb6648026 PowerPC: multiarch lround/lrounf for PowerPC32 2013-12-06 05:47:04 -06:00
Adhemerval Zanella
264b036bea PowerPC: multiarch copysign/copysignf for PowerPC32 2013-12-06 05:47:04 -06:00
Adhemerval Zanella
d47db6c906 PowerPC: multiarch trunc/truncf for PowerPC32 2013-12-06 05:47:04 -06:00
Adhemerval Zanella
ddb60b5aa9 PowerPC: multiarch round/roundf for PowerPC32 2013-12-06 05:47:04 -06:00
Adhemerval Zanella
bedcf49b45 PowerPC: multiarch floor/floorf for PowerPC32 2013-12-06 05:47:04 -06:00
Adhemerval Zanella
35ae5b40a4 PowerPC: multiarch ceil/ceilf for PowerPC32 2013-12-06 05:47:03 -06:00
Adhemerval Zanella
ae1a4cd9ff PowerPC: multiarch finite/finitef for PowerPC32 2013-12-06 05:47:03 -06:00
Adhemerval Zanella
64fffd65d7 PowerPC: multiarch isinf/isinff for PowerPC32 2013-12-06 05:47:03 -06:00
Adhemerval Zanella
8e4e7ba2d7 PowerPC: multiarch isnan/isnanf for PowerPC32 2013-12-06 05:47:03 -06:00
Adhemerval Zanella
ddba588e2d PowerPC: multiarch sqrt/sqrtf for PowerPC32 2013-12-06 05:47:03 -06:00
Adhemerval Zanella
0f96a2f0b5 PowerPC: multiarch llround/llroundf for PowerPC32 2013-12-06 05:47:03 -06:00
Adhemerval Zanella
c9b5d79e0c PowerPC: multiarch llrint/llrintf for PowerPC32 2013-12-06 05:47:02 -06:00
Adhemerval Zanella
ea5a72f882 PowerPC: multiarch wordcopy routines for PowerPC32 2013-12-06 05:47:02 -06:00
Adhemerval Zanella
93be09e725 PowerPC: multiarch wcscpy for PowerPC32 2013-12-06 05:47:02 -06:00
Adhemerval Zanella
bb04e529f6 PowerPC: multiarch wcsrchr for PowerPC32 2013-12-06 05:47:02 -06:00
Adhemerval Zanella
05b5cd1ce5 PowerPC: multiarch wcschr for PowerPC32 2013-12-06 05:47:02 -06:00
Adhemerval Zanella
ba9641477e PowerPC: multiarch strchr for PowerPC32 2013-12-06 05:47:01 -06:00
Adhemerval Zanella
31c81aaa01 PowerPC: multiarch strchrnul for PowerPC32 2013-12-06 05:47:01 -06:00
Adhemerval Zanella
0d0607d9ab PowerPC: multiarch strncasecmp for PowerPC32 2013-12-06 05:47:01 -06:00
Adhemerval Zanella
4dfd5c8647 PowerPC: multiarch strcasecmp for PowerPC32 2013-12-06 05:47:01 -06:00
Adhemerval Zanella
a19e01a355 PowerPC: multiarch strncmp for PowerPC32 2013-12-06 05:47:01 -06:00