Commit Graph

152 Commits

Author SHA1 Message Date
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 ccfe366e6f PowerPC: Fix POWER6 s_isnanf.S: END(__isnan) to END(__isnanf) 2011-03-18 05:15:00 -04: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
Jakub Jelinek 5e908464b9 Implement accurate fma. 2010-10-13 22:27:03 -04:00
Luis Machado 91c4255919 powerpc: Use generic memset for RTLD for ppc32/64 2010-09-29 12:21:14 -04:00
Ulrich Drepper 724da3d7f4 Revert "powerpc: PPCA2 optimized memcpy function"
This reverts commit 44f91d3884.

Conflicts:

	ChangeLog
2010-09-27 23:02:55 -04:00
Michael B. Brutman 44f91d3884 powerpc: PPCA2 optimized memcpy function 2010-09-21 14:06:46 -07:00
Luis Machado fe2f79db99 powerpc: Various P7-optimized string functions 2010-08-19 07:38:41 -07:00
Alan Modra bebff237c5 PowerPC64 ABI fixes 2010-08-12 09:19:19 -07:00
Ulrich Drepper 9b059f9774 Whitespace fixes. 2010-07-15 08:39:26 -07:00
Luis Machado 77c1b06986 POWER6/7 optimizations for copysign 2010-07-15 08:24:40 -07:00
Luis Machado f47c9a11ad powerpc: Re-work the Implies structure
This patch tries to organize the implies files for ppc, since there are
a number of processors and most of them are compatible with each other
(backwards compatible).

Having in mind that we start the search for processor-specific files in
the sysdeps/unix/sysv/linux tree
(sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/[processor]/fpu to be
exact), we would like to grab any linux-specific code from that tree
prior to going through the other tree (sysdeps/powerpc/...).

For that, i removed the Implies files that were originally inside the
fpu directories and placed then in the non-fpu directories (still inside
the unix/sysv/linux tree). If no processor-specific/linux-specific files
could be found, we "imply" the other tree's (sysdeps/powerpc/...) fpu
directory for that specific processor AND also the non-fpu directory for
that same tree.

If, again, no processor-specific code is found, we read another Implies
file that will point to the most compatible processor that we should
grab code from, and so on, until we reach the power4 processor.

So, in summary, the Implies files will live inside these directories
now:

* sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/[processor]
* sysdeps/powerpc/powerpc[32|64]/[processor]

Practical example of the order we will use to pick power6-specific code
with the new structure.

sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/power6/fpu ->
sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/power6 ->
sysdeps/powerpc/powerpc[32|64]/power6/fpu ->
sysdeps/powerpc/powerpc[32|64]/power6 ->
sysdeps/powerpc/powerpc[32|64]/power5+/fpu ->
sysdeps/powerpc/powerpc[32|64]/power5+ ->
sysdeps/powerpc/powerpc[32|64]/power5/fpu ->
sysdeps/powerpc/powerpc[32|64]/power5 ->
sysdeps/powerpc/powerpc[32|64]/power4/fpu ->
sysdeps/powerpc/powerpc[32|64]/power4 (from here, it'll go to the
generic path as usual)
2010-06-30 09:57:38 -07:00
Ulrich Drepper 1dc242356a Fix whitespaces. 2010-06-14 17:15:33 -07:00
Luis Machado 158db12267 power7 string compare optimizations 2010-06-14 17:13:24 -07:00
Luis Machado eb5ad2eb0d Small fix to POWER7 32-bit memcpy 2010-05-28 14:19:21 -07:00
Luis Machado ebd2e13d67 Small fix to POWER7 32-bit memset 2010-05-24 17:56:44 -07:00
Luis Machado 33b8d90a1b Add missing files. 2010-05-20 04:35:05 -07:00
Ulrich Drepper b8907dfd8b Fix whitespace issues. 2010-03-10 07:28:04 -08:00
Luis Machado fb084e5e80 power7-optimized 64-bit and 32-bit memcpy 2010-03-10 07:14:16 -08:00
Luis Machado 41288fbb78 Cleanup old obsolete PPC_REL16 checks 2010-02-12 07:55:01 -08:00
Luis Machado 61c9346ddc Fix POWER7 Implies 2010-02-10 07:15:01 -08:00
Ulrich Drepper 029f8f41c7 Fix whitespace issues. 2010-02-09 22:46:23 -08:00
Luis Machado 0f507b6c95 power7-optimized classification functions 2010-02-09 22:42:38 -08:00
Ulrich Drepper d6ac9329b3 Fix whitespace issues. 2010-01-18 12:43:47 -08:00
Ulrich Drepper 057edf90e0 memcpy for ppc/cell. 2010-01-18 12:40:29 -08:00
Alan Modra 77799d9d9b Implement IFUNC for PPC. 2009-10-30 00:39:38 -07:00
Roland McGrath 7967983fd4 configure tweaks, support $libc_add_on_config_subdirs 2009-09-15 14:14:42 -07:00
Joshua W. Boyer a050d2a5e7 Fix use of 64-bit insn in 32-bit memcpy for POWER6. 2009-09-01 15:35:35 -07:00
Andreas Schwab 15efafdf07 Add sigstack handling to Linux ____longjmp_chk on powerpc. 2009-08-22 02:01:51 -07:00
Andreas Schwab 80a98966c8 Fix text relocation on ppc32.
The ____longjmp_chk implementation didn't load from memory the
right way.
2009-06-25 08:56:20 -07:00
Andreas Schwab 3f241d7584 Fix cfa offset for saved registers in PPC sqrt implementations. 2009-06-24 11:36:57 -07:00
Ryan S. Arnold 25bfbb9e0e Fix incorrect use of cmpldi in 32-bit PPC code.
The 32-bit PowerPC POWER6 memcpy uses the cmpldi insn when it should use a cmplwi.
BZ #10107
2009-06-16 08:29:04 -07:00
Andreas Schwab 0323b051be Add ___longjmp_chk support for powerpc{32,64}. 2009-05-22 08:28:20 -07:00
Jakub Jelinek e42e88abb6 * sysdeps/powerpc/powerpc32/elf/start.S: Ensure .data is non-empty.
* sysdeps/powerpc/powerpc64/elf/start.S: Likewise. 
* sysdeps/sparc/sparc32/elf/start.S: Likewise. 
* sysdeps/sparc/sparc64/elf/start.S: Likewise.
2009-04-14  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/powerpc32/elf/start.S: Ensure .data is non-empty.
	* sysdeps/powerpc/powerpc64/elf/start.S: Likewise.
	* sysdeps/sparc/sparc32/elf/start.S: Likewise.
	* sysdeps/sparc/sparc64/elf/start.S: Likewise.
2009-04-14 20:57:18 +00:00
Ulrich Drepper e7f110cdbd * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Add branch
prediction.  A few size optimizations.
2009-03-12 06:31:25 +00:00
Ulrich Drepper 134a97667f * sysdeps/powerpc/powerpc32/power7/fpu/Implies: New file.
* sysdeps/powerpc/powerpc32/power7/Implies: Likewise.
	* sysdeps/powerpc/powerpc64/power7/fpu/Implies: Likewise.
	* sysdeps/powerpc/powerpc64/power7/Implies: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power7/fpu/Implies:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/power7/fpu/Implies:
	Likewise.
2009-03-02 13:50:16 +00:00
Ulrich Drepper 59eade4810 (__longjmp): Make aligned_restore_vmx a local symbol. 2009-01-30 20:35:22 +00:00
Ulrich Drepper edba7a54eb [BZ #6411]
2008-11-13  Ryan S. Arnold  <rsa@us.ibm.com>
	[BZ #6411]
	* sysdeps/powerpc/fpu/Makefile: Added test case tst-setcontext-fpscr.
	* sysdeps/powerpc/fpu/feholdexcpt.c (_FPU_MASK_ALL): Define to replace
	magic numbers.
	* sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_register): Dynamically
	choose mtfsf insn based on PPC_FEATURE_HAS_DFP.
	(relax_fenv_state): Same as above.
	(FPSCR_29): Reserve bit in ISA 2.05.
	(FPSCR_NI): Provide define for compat.
	* sysdeps/powerpc/fpu/fesetenv.c (_FPU_MASK_ALL): Define to replace
	magic numbers.
	* sysdeps/powerpc/fpu/feupdateenv.c (_FPU_MASK_ALL): Define to replace
	magic numbers.
	* sysdeps/powerpc/fpu/tst-setcontext-fpscr.c: New file.  Test case to
	test setcontext and swapcontext with dynamic 64-bit FPSCR detection.
	* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S (__longjmp): Adjust
	access to hwcap to account for hwcap size increase to uint64_t.
	* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S (__sigsetjmp ):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
	(*setcontext): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/setcontext.S:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/swapcontext.S:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
	(*setcontext): dynamically select mtfsf insn based on
	PPC_FEATURE_HAS_DFP. Adjust access to hwcap to account for hwcap size
	increase to uint64_t.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
	(*swapcontext): dynamically select mtfsf insn based on
	PPC_FEATURE_HAS_DFP.  Adjust access to hwcap to account for hwcap size
	increase to uint64_t.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/setcontext.S:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/swapcontext.S:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
	(*setcontext): dynamically select mtfsf insn based on
	PPC_FEATURE_HAS_DFP.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
	(*swapcontext): dynamically select mtfsf insn based on
	PPC_FEATURE_HAS_DFP.
2008-11-17 02:49:45 +00:00
Ulrich Drepper 3cf449180c [BZ #6995]
2008-10-31  Ulrich Drepper  <drepper@redhat.com>
	[BZ #6995]
	* sysdeps/powerpc/powerpc32/dl-machine.c: Fix typo in message.
2008-10-31 14:19:57 +00:00
Ulrich Drepper 8ebb58677f (CHECK_STATIC_TLS): Remove macro since it is now available in elf/dynamic-link.h. 2008-08-13 03:14:18 +00:00
Ulrich Drepper 9ea8bfec35 * sysdeps/powerpc/powerpc64/fpu/s_llround.S (__llround): Avoid using
cr[34] registers.
	* sysdeps/powerpc/powerpc64/fpu/s_llroundf.S (__llroundf): Likewise.
	* sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S (__llround):
	Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_lround.S (__lround): Avoid using cr3
	register.
2008-06-13 01:18:22 +00:00
Ulrich Drepper c1e6b459c8 [BZ4997]
* sysdeps/powerpc/powerpc32/fpu/s_lround.S (__lround): Fixed erroneous
	result when x is +/-nextafter(+/-0.5,-/+1) i.e. all 1's in the
	mantissa.
	* sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S (__llround):
	Likewise.  Also account for when x is an odd number between 2^52
	and 2^53-1.
	* sysdeps/powerpc/powerpc64/fpu/s_llround.S (__llround): Likewise.
	* sysdeps/powerpc/powerpc64/fpu/s_llroundf.S (__llroundf): Likewise.
	* math/libm-test.inc (lround_test, llround_test): Added test cases to
	detect aforementioned erroneous conditions.
2008-04-11 19:32:37 +00:00
Ulrich Drepper 5d59f4a50f * include/features.h (__GLIBC_MINOR__): Bump to 8.
* sysdeps/powerpc/powerpc32/fpu/s_lroundf.S: Remove duplicate comment.
	* sysdeps/powerpc/powerpc32/power5+/fpu/s_llroundf.S: Likewise.
	* sysdeps/powerpc/powerpc32/power6/fpu/s_llroundf.S: Likewise.
	* sysdeps/powerpc/powerpc64/fpu/s_lrint.S: Likewise.
	* sysdeps/powerpc/powerpc64/fpu/s_lround.S: Likewise.
	* sysdeps/powerpc/powerpc64/fpu/s_lroundf.S: Likewise.
2008-04-11 17:33:24 +00:00
Ulrich Drepper 13d83320ff * sysdeps/powerpc/powerpc32/power4/hp-timing.c: New file.
* sysdeps/powerpc/powerpc32/power4/hp-timing.h: New file.
	* sysdeps/powerpc/powerpc64/hp-timing.h [_ARCH_PWR4] (HP_TIMING_NOW):
	For ISA 2.01 and later replace mftb with mfspr 268.

	* sysdeps/i386/i686/memcpy.S: Optimize copying of equally aligned
	buffers.
2008-04-10 16:50:07 +00:00
Ulrich Drepper 5f7aead5c4 [BZ #5768]
2008-02-19  Steven Munroe  <sjmunroe@us.ibm.com>
	[BZ #5768]
	* sysdeps/powerpc/fpu/Makefile (libm-tests): Add test-powerpc-snan.
	* sysdeps/powerpc/fpu/test-powerpc-snan.c: New file.

2008-02-18  Steven Munroe  <sjmunroe@us.ibm.com>

	[BZ #5768]
	* sysdeps/powerpc/powerpc32/fpu/s_isnan.S: New file.
	* sysdeps/powerpc/powerpc32/fpu/s_isnan.c: Removed.
	* sysdeps/powerpc/powerpc64/fpu/s_isnan.S: New file.
	* sysdeps/powerpc/powerpc64/fpu/s_isnan.c: Removed.
2008-04-10 14:17:22 +00:00
Ulrich Drepper 1ee82cfa18 isnan implementation for ppc32. 2008-04-10 14:15:27 +00:00
Ulrich Drepper 3b32d8a259 * sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: New file.
* sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S: New file.
	* sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: New file.
	* sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S: New file.
	* sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: New file.
	* sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: New file.
	* sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: New file.
2008-04-10 05:59:13 +00:00