aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc
AgeCommit message (Collapse)Author
2010-07-15Whitespace fixes.Ulrich Drepper
2010-07-15POWER6/7 optimizations for copysignLuis Machado
2010-06-30powerpc: Re-work the Implies structureLuis Machado
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-14More whitespace fixes.Ulrich Drepper
2010-06-14Fix whitespaces.Ulrich Drepper
2010-06-14power7 string compare optimizationsLuis Machado
2010-05-28Small fix to POWER7 32-bit memcpyLuis Machado
2010-05-24Small fix to POWER7 32-bit memsetLuis Machado
2010-05-20Add missing files.Luis Machado
2010-03-10Fix whitespace issues.Ulrich Drepper
2010-03-10power7-optimized 64-bit and 32-bit memcpyLuis Machado
2010-02-12Cleanup old obsolete PPC_REL16 checksLuis Machado
2010-02-10Fix POWER7 ImpliesLuis Machado
2010-02-09Fix whitespace issues.Ulrich Drepper
2010-02-09power7-optimized classification functionsLuis Machado
2010-02-09Avoid PLT call to fegetenv on s390Andreas Schwab
2010-01-18Fix whitespace issues.Ulrich Drepper
2010-01-18memcpy for ppc/cell.Ulrich Drepper
2009-11-06Fix spelling of (Newton-)RaphsonPhilippe De Muyter
2009-11-06Fix R_PPC64_{JMP_IREL,IRELATIVE} handling in dl-conflict.c.Jakub Jelinek
I've just committed STT_GNU_IFUNC ppc/ppc64 support into prelink, and this patch is needed on the glibc side. Without it ld.so segfaults, as in dl-conflict.c sym_map is always NULL. While dl-machine.h could use RESOLVE_CONFLICT_FIND_MAP macro to compute it, it doesn't make sense, because with prelink we know it is already properly relocated (all relative relocations are applied by prelink).
2009-10-30Uglify IFUNC tests for PPC.Alan Modra
2009-10-30Implement IFUNC for PPC.Alan Modra
2009-09-15configure tweaks, support $libc_add_on_config_subdirsRoland McGrath
2009-09-01Fix use of 64-bit insn in 32-bit memcpy for POWER6.Joshua W. Boyer
2009-08-22Add sigstack handling to Linux ____longjmp_chk on powerpc.Andreas Schwab
2009-07-05Fix wrong PPC_FEATURE_* values.Andreas Schwab
Nothing uses these wrong values yet, but it fixes a warning due to conflicting definitions in <asm/cputable.h>.
2009-06-25Fix text relocation on ppc32.Andreas Schwab
The ____longjmp_chk implementation didn't load from memory the right way.
2009-06-24Fix cfa offset for saved registers in PPC sqrt implementations.Andreas Schwab
2009-06-16Fix incorrect use of cmpldi in 32-bit PPC code.Ryan S. Arnold
The 32-bit PowerPC POWER6 memcpy uses the cmpldi insn when it should use a cmplwi. BZ #10107
2009-05-22Add ___longjmp_chk support for powerpc{32,64}.Andreas Schwab
2009-04-14* sysdeps/powerpc/powerpc32/elf/start.S: Ensure .data is non-empty. cvs/fedora-glibc-20090414T2104Jakub Jelinek
* 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-03-12* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Add branchUlrich Drepper
prediction. A few size optimizations.
2009-03-10* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: UseUlrich Drepper
.machine push; .machine "power6" and .machine pop around mtfsf insns outside of _ARCH_PWR6 define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Likewise. * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_SET_DI_FPSCR): Likewise. * sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_register, relax_fenv_state): Likewise.
2009-03-02* sysdeps/powerpc/powerpc32/power7/fpu/Implies: New file.Ulrich Drepper
* 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-02-16* stdlib/monetary.h: Uglify function parameter names. cvs/fedora-glibc-20090218T1534Jakub Jelinek
* sunrpc/rpc/pmap_clnt.h: Likewise. * sunrpc/rpc/svc.h: Likewise. * sunrpc/rpc/xdr.h: Likewise. * sunrpc/rpc/clnt.h: Likewise. * resolv/netdb.h: Likewise. * resolv/arpa/nameser.h: Likewise. * resolv/resolv.h: Likewise. * argp/argp.h: Likewise. * locale/langinfo.h: Likewise. * io/sys/stat.h: Likewise. * posix/spawn.h: Likewise. * nis/rpcsvc/nislib.h: Likewise. * malloc/obstack.h: Likewise. * sysdeps/ia64/bits/link.h: Likewise. * sysdeps/i386/bits/link.h: Likewise. * sysdeps/s390/bits/link.h: Likewise. * sysdeps/powerpc/bits/link.h: Likewise. * sysdeps/x86_64/bits/link.h: Likewise. * sysdeps/sparc/bits/link.h: Likewise. * sysdeps/sh/bits/link.h: Likewise. * sysdeps/unix/sysv/linux/i386/sys/io.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sys/io.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sys/eventfd.h: Likewise. * sysdeps/unix/sysv/linux/sys/eventfd.h: Likewise. 2009-02-16 Jakub Jelinek <jakub@redhat.com> * stdlib/monetary.h: Uglify function parameter names. * sunrpc/rpc/pmap_clnt.h: Likewise. * sunrpc/rpc/svc.h: Likewise. * sunrpc/rpc/xdr.h: Likewise. * sunrpc/rpc/clnt.h: Likewise. * resolv/netdb.h: Likewise. * resolv/arpa/nameser.h: Likewise. * resolv/resolv.h: Likewise. * argp/argp.h: Likewise. * locale/langinfo.h: Likewise. * io/sys/stat.h: Likewise. * posix/spawn.h: Likewise. * nis/rpcsvc/nislib.h: Likewise. * malloc/obstack.h: Likewise. * sysdeps/ia64/bits/link.h: Likewise. * sysdeps/i386/bits/link.h: Likewise. * sysdeps/s390/bits/link.h: Likewise. * sysdeps/powerpc/bits/link.h: Likewise. * sysdeps/x86_64/bits/link.h: Likewise. * sysdeps/sparc/bits/link.h: Likewise. * sysdeps/sh/bits/link.h: Likewise. * sysdeps/unix/sysv/linux/i386/sys/io.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sys/io.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sys/eventfd.h: Likewise. * sysdeps/unix/sysv/linux/sys/eventfd.h: Likewise.
2009-01-30(__longjmp): Make aligned_restore_vmx a local symbol.Ulrich Drepper
2009-01-30[BZ #9726]Ulrich Drepper
2009-01-11 Ryan S. Arnold <rsa@us.ibm.com> [BZ #9726] * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_SET_DI_FPSCR, _SET_SI_FPSCR): Clobber fp0 to prevent erroneous test-case passes. 2009-01-08 Ryan S. Arnold <rsa@us.ibm.com> [BZ #9726] * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0.
2008-11-17[BZ #6411]Ulrich Drepper
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-10-31[BZ #6867]Ulrich Drepper
* sysdeps/powerpc/elf/rtld-global-offsets.sym: Fix typo.
2008-10-31[BZ #6995]Ulrich Drepper
2008-10-31 Ulrich Drepper <drepper@redhat.com> [BZ #6995] * sysdeps/powerpc/powerpc32/dl-machine.c: Fix typo in message.
2008-08-17[BZ #6845]Ulrich Drepper
2008-08-14 Ryan S. Arnold <rsa@us.ibm.com> [BZ #6845] * sysdeps/powerpc/fpu/bits/mathinline.h (__signbitl): Copy new __signbitl definition and __LONG_DOUBLE_128__ guard from: * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Remove as redundant. Functions which call floating point assembler operations should go into a sysdeps powerpc/fpu directory.
2008-08-13(CHECK_STATIC_TLS): Remove macro since it is now available in ↵Ulrich Drepper
elf/dynamic-link.h.
2008-08-08[BZ #6817]Ulrich Drepper
2008-08-01 Steven Munroe <sjmunroe@us.ibm.com> Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> [BZ #6817] * sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Added the members 'vsx' and 'arch_2_06'. (_dl_powerpc_platforms): Add the member 'power7'. * sysdeps/powerpc/dl-procinfo.h: Modify _DL_HWCAP_FIRST to reflect the changes required by VSX and ISA 2.06. Modify _DL_PLATFORMS_COUNT to reflect the addition of 'power7'. Defined PPC_PLATFORM_POWER7. (_dl_string_platform): Add support for POWER7. * sysdeps/powerpc/sysdep.h: Define bit masks for VSX capability and ISA 2.06.
2008-06-13* sysdeps/powerpc/powerpc64/fpu/s_llround.S (__llround): Avoid usingUlrich Drepper
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-04-12* sysdeps/powerpc/fpu/e_sqrt.c: Avoid call to fetestexcept.Ulrich Drepper
* sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
2008-04-12* sysdeps/powerpc/fpu/fenv_libc.h: Add libm_hidden_proto forUlrich Drepper
__fe_nomask_env. * sysdeps/powerpc/fpu/fe_nomask.c: Add libm_hidden_def. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise. * sysdeps/powerpc/bits/fenv.h: Make safe for C++. * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: New file. * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Rename function from fegetexcept and make old name weak alias. * include/fenv.h: Declare __fegetexcept. * sysdeps/powerpc/fpu/fedisblxcpt.c: Use __fegetexcept instead of fegetexcept. * sysdeps/powerpc/fpu/feenablxcpt.c: Likewise. * sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Avoid call to fetestexcept. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Use __frexpl instead of frexpl to avoid local PLT. * math/s_significandl.c (__significandl): Use __ilogbl instead of ilogbl to avoid local PLT. * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Use __ldexpl instead of ldexpl to avoid local PLT. * sysdeps/ieee754/ldbl-128ibm/e_expl.c (__ieee754_expl): Use __roundl not roundl to avoid local PLT. * sysdeps/ieee754/ldbl-128/e_j0l.c: Use function names which avoid local PLTs. Use __sincosl instead of separate sinl and cosl calls. * sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
2008-04-11[BZ4997]Ulrich Drepper
* 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* include/features.h (__GLIBC_MINOR__): Bump to 8.Ulrich Drepper
* 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[BZ #5741]Ulrich Drepper
2008-01-24 Steven Munroe <sjmunroe@us.ibm.com> [BZ #5741] * sysdeps/powerpc/powerpc64/dl-machine.h (PPC_DCBT, PPC_DCBF): Define additonal Data Cache Block instruction macros. (elf_machine_fixup_plt): Add dcbt for opd and plt entries. Replace dcbst with dcbf and sync with sync/isync.
2008-04-10* sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_type_class):Ulrich Drepper
Always set ELF_RTYPE_CLASS_PLT. (elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p): Delete.