Commit Graph

211 Commits

Author SHA1 Message Date
Will Schmidt
15d0da8cb3 Add versions of wcscpy, wcschr, wcsrchr for power6/power7.
Initially based on the versions found in wcsmbs/* ; these files have
been changed by hand unrolling, and adding some additional variables
to allow some read-ahead to occur, which then relieves some of the
wait-for-increment/wait-for-load/wait-for-compare-results pressure
that was slowing down every iteration through the while-loop.

For 64-bit Power7, These changes give an approx 20% throughput boost
for the wcschr and wcsrchr functions; and approx 40% boost for the
wcscpy function.  32-bit improvements appear to be slightly better
with ~ %30 and ~ %45 respectively.  Results for Power6 closely match
those for power7.
2012-08-22 11:04:42 -05:00
Will Schmidt
14a50c9d23 [Powerpc] Tune/optimize powerpc{32,64}/power7/memchr.S.
Assorted tweaking, twisting and tuning to squeeze a few additional cycles
out of the memchr code.   Changes include bypassing the shift pairs
(sld,srd) when they are not required, and unrolling the small_loop that
handles short and trailing strings.

Per scrollpipe data measuring aligned strings for 64-bit, these changes
save between five and eight cycles (9-13% overall) for short strings (<32),
Longer aligned strings see slight improvement of 1-3% due to bypassing the
shifts and the instruction rearranging.
2012-08-21 14:20:55 -05:00
Joseph Myers
3129cfc6ec Move testsuite audit definitions to sysdeps tst-audit.h files. 2012-07-26 11:29:07 +00:00
Adhemerval Zanella
d37cbdaa86 Split tls-macros.h in sysdeps directories.
Split PowerPC definitions in PPC32 and PPC64 headers.
2012-07-19 17:04:04 -03:00
Marek Polacek
3b05db33f6 Remove TLS configure checks. 2012-07-17 23:57:43 +02:00
Richard Henderson
a386f1cc22 ppc: Pass hwcap to ifuncs.
* sysdeps/powerpc/powerpc32/dl-irel.h (elf_ifunc_invoke): Pass
        dl_hwcap to ifunc resolver.
        * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Use
        elf_ifunc_invoke.
        * sysdeps/powerpc/powerpc64/dl-irel.h (elf_ifunc_invoke): Pass
        dl_hwcap to ifunc resolver.
        * sysdeps/powerpc/powerpc64/dl-machine.h (resolve_ifunc): Likewise.
2012-05-25 10:30:42 -07:00
Adhemerval Zanella
45470df378 PowerPC: libm ABI update
Update for libm abilist for POWER6 and POWER7.
2012-05-22 15:34:02 -03:00
H.J. Lu
20c07380db Rename __WORDSIZE_COMPAT32 to __WORDSIZE_TIME64_COMPAT32 2012-05-21 13:39:55 -07:00
Tulio Magno Quites Machado Filho
a88b64b9bb [PowerPC] Remove -ftree-loop-linear from Makefiles
In the past the "-ftree-loop-linear" switch provided a measurable
improvement in performance for certain functions.  At some point it
was assigned as the responsibility of Graphite in GCC.  It has been
found that even with Graphite enabled these flags no longer perform
any appreciable improvement over the baseline.

Graphite now has some open bugs which need to be fixed in order for it
to provide measurable performance improvements but it lacks active
development.  As a result some compiler distributors may disable
Graphite.  If Graphite is disabled then building GLIBC will fail if
the "-ftree-loop-linear" switch is used.

This patch removes the use of "-ftree-loop-linear" as unnecessary.
2012-05-18 10:15:30 -05:00
Andreas Schwab
37fb1dc057 Avoid runtime GOT relocations in ld.so on powerpc 2012-05-18 12:00:22 +02:00
Joseph Myers
a9538892ad Split up stackguard-macros.h into sysdeps directories. 2012-05-15 23:34:30 +00:00
Adhemerval Zanella
777b1eea9d PowerPC - logb[f|l] optimization for POWER7
This patch provides optimized logb (1.2x on PPC32 and 2.5x on PPC64),
logbf (1.1x on PPC32 and 2.2x on PPC64), and logbl (1.3x on PPC32 and
50% on PPC64) for the POWER7 processor.
2012-05-15 10:32:28 -05:00
Andreas Schwab
412bd96612 Fix missing nearbyintl@GLIBC_2.1 on powerpc 2012-05-01 12:40:59 +02:00
Adhemerval Zanella
94e02fc410 Correct powerpc64 s_floorl edge cases (bug 13886).
[BZ #13886]
Remove powerpc64/fpu/s_floorl.  Use fully correct ldbl-128bim/s_floorl.c.
2012-04-24 14:21:45 -05:00
Will Schmidt
6b652f46c3 Further simplify power6 wordcopy by removing switch statements.
This fix replaces switch statements that contain individual
[fwd|bwd]_align_merge (<constant>) calls with a single [fwd|bwd]_align_merge
(align) call.
2012-04-18 15:34:23 -05:00
Will Schmidt
b282631e36 Simplify power6 wordcopy by adding [fwd|bwd]_align_merge macros. 2012-04-18 14:52:25 -05:00
Andreas Jaeger
bdc6f13012 Fix whitespace 2012-03-28 10:00:15 +02:00
Andreas Jaeger
51d8bb8f3b Regenerate configure files 2012-03-28 09:37:58 +02:00
Andreas Jaeger
0238008669 Move sysdeps/powerpc/powerpc64/elf files
* sysdeps/powerpc/powerpc64/elf/bzero.S: Moved to ...
	* sysdeps/powerpc/powerpc64/bzero.S: ... here.
	* sysdeps/powerpc/powerpc64/elf/entry.h: Moved to ...
	* sysdeps/powerpc/powerpc64/entry.h: ... here.
	* sysdeps/powerpc/powerpc64/elf/start.S: Moved to ...
	* sysdeps/powerpc/powerpc64/start.S: here.
	* sysdeps/powerpc/powerpc64/elf/Makefile: Merge into ...
	* sysdeps/powerpc/powerpc64/Makefile: ... this.
	* sysdeps/powerpc/powerpc64/elf/configure.in: Merge into ...
	* sysdeps/powerpc/powerpc64/configure.in: ... this.
	* sysdeps/powerpc/powerpc64/elf/configure: Delete file.
2012-03-28 09:22:05 +02:00
Andreas Schwab
7998fa7899 Disable use of FMA instructions in branred 2012-03-21 23:58:50 +01:00
H.J. Lu
eb96ffb07d Move stdio-common/_itoa.h to sysdeps/generic 2012-03-20 16:00:23 -07:00
Paul Eggert
c524201ab0 Replace FSF snail mail address with URL in miscellaneous files. 2012-03-10 00:45:35 +00:00
Richard Henderson
1ed0291c31 Use <> for math.h and math_private.h everywhere.
Entire tree edited via find | grep | sed.
2012-03-09 16:09:10 -08:00
Joseph Myers
0e7dfaef51 Remove old initfini mechanism. 2012-02-21 00:46:01 +00:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Andreas Schwab
ba988fc563 powerpc: add crt files
* sysdeps/powerpc/powerpc32/crti.S: New file.
	* sysdeps/powerpc/powerpc32/crtn.S: New file.
	* sysdeps/powerpc/powerpc64/crti.S: New file.
	* sysdeps/powerpc/powerpc64/crtn.S: New file.
2012-02-08 22:25:14 +01:00
Marek Polacek
622c86f480 Remove __ELF__ conditionals 2012-02-07 00:41:11 +01:00
Adhemerval Zanella
d73f93a461 PowerPC - A2 memcpy cache line size initialization 2012-01-27 18:05:45 -05:00
Joseph Myers
8db2188281 Remove __STDC__ conditionals from libm. 2012-01-27 17:29:45 +00:00
Ulrich Drepper
0269750ca6 Remove non-ELF support 2012-01-07 20:30:26 -05:00
Adhemerval Zanella
f0b264f174 Optimized strcasecmp for Power7 2011-12-17 20:32:59 -05:00
Adhemerval Zanella
a1267ba1c6 Optimized nearbyint for PPC 2011-12-17 14:59:47 -05:00
Adhemerval Zanella
8a6d525522 PowerPC: Arithmetic function optimizations for POWER 2011-11-11 13:33:38 -05:00
Ulrich Drepper
0ac5ae2335 Optimize libm
libm is now somewhat integrated with gcc's -ffinite-math-only option
and lots of the wrapper functions have been optimized.
2011-10-12 11:27:51 -04:00
Andreas Schwab
3a62d00d40 Don't call ifunc functions in trace mode 2011-10-05 14:35:40 +02:00
Andreas Schwab
1ae12c758f Fix undefined symbol in powerpc64 dl-machine.h 2011-09-13 20:01:15 +02:00
Ulrich Drepper
83cd142045 Remove --wth-tls option, TLS support is required 2011-09-11 15:02:01 -04:00
Ulrich Drepper
d063d16433 Remove support for !USE___THREAD 2011-09-10 16:50:28 -04:00
Alan Modra
24f579d86e Fix profiling on powerpc32 secure-plt shared libs and PIEs 2011-09-07 22:02:42 -04:00
Will Schmidt
2270037782 power7 strncmp optimization 2011-09-07 21:56:57 -04:00
Will Schmidt
5025581e1c power7 memcpy VSX optimizations 2011-09-07 21:54:41 -04:00
Aurelien Jarno
873a772e30 Fix duplicate definition of Elf64_FuncDesc 2011-08-23 15:05:32 +02:00
David S. Miller
42675c6ff0 Add an elf_ifunc_invoke interface so that architectures can implement
the ifunc resolver calls however they wish.
2011-06-20 19:56:40 -07:00
Ryan S. Arnold
457bddfc2a Prevent Altivec and VSX insns on PowerPC64 when no FPRs or VRs are avail.
(cherry picked from commit 4749a0058b)

Conflicts:

	ChangeLog
2011-05-20 06:34:48 -04:00
Ulrich Drepper
7a41d99a35 Fix whitespaces. 2011-04-22 21:38:13 -04:00
Jim Meyering
ded5b9b7c7 Remove doubled words. 2011-04-22 21:34:32 -04:00
Andreas Schwab
4420675c9d Fix POWER4/POWER7 optimized strncmp to not read past differing bytes 2011-04-17 22:03:53 -04:00
Ryan S. Arnold
2206397e1c Disable VSX usage in rtld.c to prevent TOC ref before relocs are resolved. 2011-02-17 00:59:15 -05:00
Luis Machado
344d0b545d power7-optimized mempcpy 2010-11-05 08:01:13 -04:00
Michael B. Brutman
d0b9e94faf powerpc: PPCA2/A2 optimized memcpy function 2010-10-24 21:47:33 -04:00