summaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/bits/atomic.h
Commit message (Collapse)AuthorAgeFilesLines
* Move bits/atomic.h to atomic-machine.h (bug 14912).Joseph Myers2015-09-111-345/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was noted in <https://sourceware.org/ml/libc-alpha/2012-09/msg00305.html> that the bits/*.h naming scheme should only be used for installed headers. This patch renames bits/atomic.h to atomic-machine.h to follow that convention. This is the only change in this series that needs to change the filename rather than simply removing a directory level (because both atomic.h and bits/atomic.h exist at present). Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #14912] * sysdeps/aarch64/bits/atomic.h: Move to ... * sysdeps/aarch64/atomic-machine.h: ...here. (_AARCH64_BITS_ATOMIC_H): Rename macro to _AARCH64_ATOMIC_MACHINE_H. * sysdeps/alpha/bits/atomic.h: Move to ... * sysdeps/alpha/atomic-machine.h: ...here. * sysdeps/arm/bits/atomic.h: Move to ... * sysdeps/arm/atomic-machine.h: ...here. Update comments. * bits/atomic.h: Move to ... * sysdeps/generic/atomic-machine.h: ...here. (_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H. * sysdeps/i386/bits/atomic.h: Move to ... * sysdeps/i386/atomic-machine.h: ...here. * sysdeps/ia64/bits/atomic.h: Move to ... * sysdeps/ia64/atomic-machine.h: ...here. * sysdeps/m68k/coldfire/bits/atomic.h: Move to ... * sysdeps/m68k/coldfire/atomic-machine.h: ...here. (_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H. * sysdeps/m68k/m680x0/m68020/bits/atomic.h: Move to ... * sysdeps/m68k/m680x0/m68020/atomic-machine.h: ...here. * sysdeps/microblaze/bits/atomic.h: Move to ... * sysdeps/microblaze/atomic-machine.h: ...here. * sysdeps/mips/bits/atomic.h: Move to ... * sysdeps/mips/atomic-machine.h: ...here. (_MIPS_BITS_ATOMIC_H): Rename macro to _MIPS_ATOMIC_MACHINE_H. * sysdeps/powerpc/bits/atomic.h: Move to ... * sysdeps/powerpc/atomic-machine.h: ...here. Update comments. * sysdeps/powerpc/powerpc32/bits/atomic.h: Move to ... * sysdeps/powerpc/powerpc32/atomic-machine.h: ...here. Update comments. Include <atomic-machine.h> instead of <bits/atomic.h>. * sysdeps/powerpc/powerpc64/bits/atomic.h: Move to ... * sysdeps/powerpc/powerpc64/atomic-machine.h: ...here. Include <atomic-machine.h> instead of <bits/atomic.h>. * sysdeps/s390/bits/atomic.h: Move to ... * sysdeps/s390/atomic-machine.h: ...here. * sysdeps/sparc/sparc32/bits/atomic.h: Move to ... * sysdeps/sparc/sparc32/atomic-machine.h: ...here. (_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H. * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h: Move to ... * sysdeps/sparc/sparc32/sparcv9/atomic-machine.h: ...here. * sysdeps/sparc/sparc64/bits/atomic.h: Move to ... * sysdeps/sparc/sparc64/atomic-machine.h: ...here. * sysdeps/tile/bits/atomic.h: Move to ... * sysdeps/tile/atomic-machine.h: ...here. * sysdeps/tile/tilegx/bits/atomic.h: Move to ... * sysdeps/tile/tilegx/atomic-machine.h: ...here. Include <sysdeps/tile/atomic-machine.h> instead of <sysdeps/tile/bits/atomic.h>. (_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H. * sysdeps/tile/tilepro/bits/atomic.h: Move to ... * sysdeps/tile/tilepro/atomic-machine.h: ...here. Include <sysdeps/tile/atomic-machine.h> instead of <sysdeps/tile/bits/atomic.h>. (_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H. * sysdeps/unix/sysv/linux/arm/bits/atomic.h: Move to ... * sysdeps/unix/sysv/linux/arm/atomic-machine.h: ...here. Include <sysdeps/arm/atomic-machine.h> instead of <sysdeps/arm/bits/atomic.h>. * sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Move to ... * sysdeps/unix/sysv/linux/hppa/atomic-machine.h: ...here. (_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H. * sysdeps/unix/sysv/linux/m68k/coldfire/bits/atomic.h: Move to ... * sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h: ...here. (_BITS_ATOMIC_H): Rename macro to _ATOMIC_MACHINE_H. * sysdeps/unix/sysv/linux/nios2/bits/atomic.h: Move to ... * sysdeps/unix/sysv/linux/nios2/atomic-machine.h: ...here. (_NIOS2_BITS_ATOMIC_H): Rename macro to _NIOS2_ATOMIC_MACHINE_H. * sysdeps/unix/sysv/linux/sh/bits/atomic.h: Move to ... * sysdeps/unix/sysv/linux/sh/atomic-machine.h: ...here. * sysdeps/x86_64/bits/atomic.h: Move to ... * sysdeps/x86_64/atomic-machine.h: ...here. * include/atomic.h: Include <atomic-machine.h> instead of <bits/atomic.h>.
* Update copyright dates with scripts/update-copyrights.Joseph Myers2015-01-021-1/+1
|
* powerpc: Fix missing barriers in atomic_exchange_and_add_{acq,rel}Adhemerval Zanella2014-11-261-0/+50
| | | | | | On powerpc, atomic_exchange_and_add is implemented without any barriers. This patchs adds the missing instruction and memory barrier for acquire and release semanthics.
* powerpc: Change atomic_write_barrier to have release semantics.Torvald Riegel2014-10-311-1/+0
|
* Update copyright notices with scripts/update-copyrightsAllan McRae2014-01-011-1/+1
|
* Update copyright notices with scripts/update-copyrights.Joseph Myers2013-01-021-1/+1
|
* Replace FSF snail mail address with URLs.Paul Eggert2012-02-091-3/+2
|
* * sysdeps/powerpc/bits/atomic.hUlrich Drepper2007-03-261-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | [!MUTEX_HINT_ACQ]: Define MUTEX_HINT_ACQ. [!MUTEX_HINT_REL]: Define MUTEX_HINT_REL. (__arch_compare_and_exchange_val_32_acq): Add MUTEX_HINT_ACQ to lwarx. (__arch_compare_and_exchange_val_32_rel): Add MUTEX_HINT_REL to lwarx. (__arch_atomic_exchange_val_32_acq): Add MUTEX_HINT_ACQ to lwarx. (__arch_atomic_exchange_rel_32_rel): Add MUTEX_HINT_REL to lwarx. * sysdeps/powerpc/powerpc32/bits/atomic.h [_ARCH_PWR6 || _ARCH_PWR6X]: Define MUTEX_HINT_ACQ as ",1" and MUTEX_HINT_REL as ",0". (__arch_compare_and_exchange_bool_32_acq): Add MUTEX_HINT_ACQ to lwarx. (__arch_compare_and_exchange_bool_32_rel): Add MUTEX_HINT_REL to lwarx. * sysdeps/powerpc/powerpc64/bits/atomic.h [_ARCH_PWR6 || _ARCH_PWR6D]: Define MUTEX_HINT_ACQ as ",1" and MUTEX_HINT_REL as ",0". (__arch_compare_and_exchange_bool_32_acq): Add MUTEX_HINT_ACQ to lwarx. (__arch_compare_and_exchange_bool_32_rel): Add MUTEX_HINT_REL to lwarx. (__arch_compare_and_exchange_bool_64_acq): Add MUTEX_HINT_ACQ to lwarx. (__arch_compare_and_exchange_bool_64_rel): Add MUTEX_HINT_REL to lwarx. (__arch_compare_and_exchange_val_64_acq): Add MUTEX_HINT_ACQ to lwarx. (__arch_compare_and_exchange_val_64_rel): Add MUTEX_HINT_REL to lwarx. (__arch_atomic_exchange_val_64_acq): Add MUTEX_HINT_ACQ to lwarx. (__arch_atomic_exchange_rel_64_rel): Add MUTEX_HINT_REL to lwarx. 2007-03-20 Jakub Jelinek <jakub@redhat.com>
* Update.Ulrich Drepper2004-09-081-0/+54
| | | | | | | | | | | | | * sysdeps/powerpc/bits/atomic.h (atomic_increment): Define. (atomic_decrement): Define. * sysdeps/powerpc/bits/atomic.h: Implement atomic_increment_val and atomic_decrement_val. * sysdeps/powerpc/powerpc32/bits/atomic.h: Likewise. * sysdeps/powerpc/powerpc64/bits/atomic.h: Likewise. * csu/tst-atomic.c (do_test): Add tests of atomic_increment_val and atomic_decrement_val.
* Update.Ulrich Drepper2004-04-041-7/+7
| | | | | | * sysdeps/powerpc/powerpc64/bits/atomic.h: Never use matching constraints for asm mem parameters. * sysdeps/powerpc/bits/atomic.h: Likewise.
* Update.Ulrich Drepper2003-05-131-14/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-05-12 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/bits/atomic.h (__arch_compare_and_exchange_bool_8_rel): Define. (__arch_compare_and_exchange_bool_16_rel): Define. (__ARCH_REL_INSTR): Define if not already defined. (__arch_atomic_exchange_and_add_32): Add "memory" to clobber list. (__arch_atomic_decrement_if_positive_32): Add "memory" to clobber list. (__arch_compare_and_exchange_val_32_acq): Remove release sync. (__arch_compare_and_exchange_val_32_rel): Define. (__arch_atomic_exchange_32): Remove. (__arch_atomic_exchange_32_acq): Define. (__arch_atomic_exchange_32_rel): Define. (atomic_compare_and_exchange_val_rel): Define. (atomic_exchange_acq): Use __arch_atomic_exchange_*_acq forms. (atomic_exchange_rel): Define. * sysdeps/powerpc/powerpc32/bits/atomic.h (__arch_compare_and_exchange_bool_32_acq): Remove release sync. (__arch_compare_and_exchange_bool_32_rel): Define. (__arch_compare_and_exchange_bool_64_rel): Define. (__arch_compare_and_exchange_val_64_rel): Define. (__arch_atomic_exchange_64): Remove. (__arch_atomic_exchange_64_acq): Define. (__arch_atomic_exchange_64_rel): Define. * sysdeps/powerpc/powerpc64/bits/atomic.h (__arch_compare_and_exchange_bool_32_rel): Define. (__arch_compare_and_exchange_bool_64_acq): Remove release sync. (__arch_compare_and_exchange_bool_64_rel): Define. (__arch_compare_and_exchange_val_64_acq): Remove release sync. (__arch_compare_and_exchange_val_64_rel): Define. (__arch_atomic_exchange_64): Remove. (__arch_atomic_exchange_64_acq): Define. (__arch_atomic_exchange_64_rel): Define. (__arch_atomic_exchange_and_add_64): Add "memory" to clobber list. (__arch_atomic_decrement_if_positive_64): Add "memory" to clobber list. [!UP](__ARCH_REL_INSTR): Define as lwsync. the space-padded-by-default conversion specifiers, %e, %k, %l.
* Update.Ulrich Drepper2003-05-101-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | * posix/sched.h: Change prototypes of sched_getaffinity and sched_setaffinity. Define CPU_SET, CPU_CLR, CPU_ISSET, and CPU_ZERO. * sysdeps/generic/sched_getaffinity.c: Adjust definition. * sysdeps/generic/sched_setaffinity.c: Likewise. * sysdeps/generic/bits/sched.h: Define __CPU_SETSIZE, __NCPUBITS, __CPUELT, __CPUMASK, cpu_set_t, __cpu_mask, __CPU_ZERO, __CPU_SET, __CPU_CLR, and __CPU_ISSET. * sysdeps/unix/sysv/linux/bits/sched.h: Likewise. * sysdeps/unix/sysv/linux/sched_getaffinity.c: New file. * sysdeps/unix/sysv/linux/sched_setaffinity.c: New file. * include/atomic.h (atomic_exchange_acq): Renamed from atomic_exchange. (atomic_exchange_rel): New #define. * sysdeps/ia64/bits/atomic.h: Likewise. * sysdeps/i386/i486/bits/atomic.h (atomic_exchange_acq): Renamed from atomic_exchange. * sysdeps/m68k/m68020/bits/atomic.h: Likewise. * sysdeps/powerpc/bits/atomic.h: Likewise. * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h: Likewise. * sysdeps/sparc/sparc64/bits/atomic.h: Likewise. * sysdeps/x86_64/bits/atomic.h: Likewise. * csu/tst-atomic.c: Use atomic_exchange_acq instead of atomic_exchange.
* Update.Ulrich Drepper2003-04-171-155/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-04-16 Jakub Jelinek <jakub@redhat.com> * elf/Makefile (distribute): Add tst-tlsmod{[7-9],1[0-2]}.c and tst-tls10.h. (tests): Add tst-tls1[0-2]. (modules-names): Add tst-tlsmod{[7-8],1[0-2]}. ($(objpfx)tst-tlsmod8.so): Depend on tst-tlsmod7.so. ($(objpfx)tst-tlsmod10.so): Depend on tst-tlsmod9.so. ($(objpfx)tst-tlsmod12.so): Depend on tst-tlsmod11.so. ($(objpfx)tst-tls10): Depend on tst-tlsmod8.so. ($(objpfx)tst-tls11): Depend on tst-tlsmod10.so. ($(objpfx)tst-tls12): Depend on tst-tlsmod12.so. * elf/tst-tls10.c: New test. * elf/tst-tls11.c: New test. * elf/tst-tls12.c: New test. * elf/tst-tls10.h: New file. * elf/tst-tlsmod7.c: New file. * elf/tst-tlsmod8.c: New file. * elf/tst-tlsmod9.c: New file. * elf/tst-tlsmod10.c: New file. * elf/tst-tlsmod11.c: New file. * elf/tst-tlsmod12.c: New file. 2003-04-15 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/bits/atomic.h: Moved ppc32/64 specific code to ... * sysdeps/powerpc/powerpc32/bits/atomic.h: New file. * sysdeps/powerpc/powerpc64/bits/atomic.h: New file. * posix/regex.h: Include <sys/types.h>.
* Update.Ulrich Drepper2003-04-151-12/+63
| | | | | | | | | | | 2003-04-15 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/bits/atomic.h [__powerpc64] (__arch_compare_and_exchange_val_64_acq): Define. [! __powerpc64] (__arch_compare_and_exchange_val_64_acq): Defined as abort stub. (__arch_compare_and_exchange_val_32_acq): Define. (atomic_compare_and_exchange_val_acq): Define.
* 2003-03-27 Roland McGrath <roland@redhat.com>Roland McGrath2003-03-281-12/+12
| | | | | * sysdeps/powerpc/bits/atomic.h [! __powerpc64__] (__arch_atomic_decrement_if_positive_64): Fix bogus definition.
* Update.Ulrich Drepper2003-03-271-24/+74
| | | | | | | | | | | | | | | | | | | 2003-03-27 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/bits/atomic.h (__arch_compare_and_exchange_bool_32_acq): Move to [!__powerpc64__]. [__powerpc64__] (__arch_compare_and_exchange_bool_32_acq): Define PPC64 specific version. [__powerpc64__] (__arch_compare_and_exchange_bool_64_acq): Change (mem) constraint to "b". [__powerpc64__] (__arch_atomic_exchange_and add_64): Replace addi with add. Change (value) contraint to "r". Change (mem) constraint to "b". [__powerpc64__] (__arch_atomic_decrement_if_positive_64): New macro. (__arch_atomic_exchange_32): Change (mem) constraint to "b". (__arch_atomic_exchange_and_add_32): Change (mem) constraint to "b". (__arch_atomic_decrement_if_positive_32): New macro. (atomic_decrement_if_positive): Use __arch* macros.
* * csu/tst-atomic.c (do_test): Add some newRoland McGrath2003-03-261-6/+6
| | | | | | | | | | | | | | | | | | | | | | atomic_compare_and_exchange_val_acq, atomic_add_zero, atomic_compare_and_exchange_bool_acq and atomic_add_negative tests. * include/atomic.h (atomic_add_negative, atomic_add_zero): Prefix local variable so that it doesn't clash with the one in atomic_exchange_and_add. * sysdeps/ia64/bits/atomic.h (atomic_exchange): Fix for long/void * pointers. (atomic_exchange_and_add): Implement using __sync_fetch_and_add_?i. * sysdeps/powerpc/bits/atomic.h (atomic_exchange_and_add): Force value into register. * sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_64_acq): Cast newval to long. * sysdeps/x86_64/bits/atomic.h (__arch_compare_and_exchange_val_64_acq): Cast newval and oldval to long. (atomic_exchange): Cast newvalue to long if sizeof == 8. (atomic_exchange_and_add): Cast value to long if sizeof == 8. (atomic_add, atomic_add_negative, atomic_add_zero): Likewise. (atomic_bit_set): Shift 1L up in all cases to shut up warnings.
* 2003-03-25 Roland McGrath <roland@redhat.com>Roland McGrath2003-03-251-24/+75
| | | | | | | | | | * sysdeps/powerpc/bits/atomic.h (__arch_atomic_exchange_32): New macro. (__arch_atomic_exchange_64): New macro. (atomic_exchange): Use them. (__arch_atomic_exchange_and_add_32): New macro. (__arch_atomic_exchange_and_add_64): New macro. (atomic_exchange_and_add): Use them. Original patch from Steven Munroe <sjmunroe@us.ibm.com>.
* Update.Ulrich Drepper2003-03-211-31/+31
| | | | | | | | | | | | | | | | | | | | | | | 2003-03-21 Ulrich Drepper <drepper@redhat.com> * cancellation.c: Adjust for new form of compare&exchange macros. * cleanup_defer.c: Likewise. * init.c: Likewise. * libc-cancellation.c: Likewise. * old_pthread_cond_broadcast.c: Likewise. * old_pthread_cond_signal.c: Likewise. * old_pthread_cond_timedwait.c: Likewise. * old_pthread_cond_wait.c: Likewise. * pthread_cancel.c: Likewise. * pthread_create.c: Likewise. * pthread_detach.c: Likewise. * pthread_join.c: Likewise. * pthread_key_delete.c: Likewise. * pthread_setcancelstate.c: Likewise. * pthread_setcanceltype.c: Likewise. * pthread_timedjoin.c: Likewise. * pthread_tryjoin.c: Likewise. * sysdeps/pthread/createthread.c: Likewise.
* * sysdeps/powerpc/bits/atomic.h (atomic_exchange): Remove unusedRoland McGrath2003-03-201-2/+2
| | | | | | | | | | variable. Remove superfluous memory clobber. * include/atomic.h: Syntax braino fix. * posix/tst-nice.c (do_test): Use %m formats instead of printing errno in decimal. Don't bail if niced at start. Just check that nice call bumps the total at all.
* Update.Ulrich Drepper2003-03-201-8/+58
| | | | | | | | | | | | | | 2003-03-20 Ulrich Drepper <drepper@redhat.com> * include/atomic.h: Define atomic_exchange and atomic_decrement_if_positive if not already defined. Add some __builtin_expect. * sysdeps/i386/i486/bits/atomic.h: Define atomic_exchange. * sysdeps/x86_64/bits/atomic.h: Likewise. * sysdeps/ia64/bits/atomic.h: Pretty printing. Define atomic_exchange. * sysdeps/powerpc/bits/atomic.h: Pretty printing. Define atomic_exchange, atomic_exchange_and_add, and atomic_decrement_if_positive
* Update.Ulrich Drepper2003-03-201-0/+116
2003-03-19 Ulrich Drepper <drepper@redhat.com> * Makefile (distribute): Add include/atomic.h and bits/atomic.h. * include/atomic.h: New file. * sysdeps/i386/i486/bits/atomic.h: New file. * sysdeps/x86_64/bits/atomic.h: New file. * sysdeps/s390/bits/atomic.h: New file. * sysdeps/sh/bits/atomic.h: New file. * sysdeps/ia64/bits/atomic.h: New file. * sysdeps/powerpc/bits/atomic.h: New file. * sysdeps/generic/bits/atomic.h: New file. * sysdeps/i386/i486/atomicity.h: Removed. * sysdeps/x86_64/atomicity.h: Removed. * sysdeps/s390/s390-32/atomicity.h: Removed. * sysdeps/s390/s390-64/atomicity.h: Removed. * sysdeps/ia64/atomicity.h: Removed. * sysdeps/powerpc/powerpc32/atomicity.h: Removed. * sysdeps/powerpc/powerpc64/atomicity.h: Removed. * elf/dl-profile.c: Use atomic.h instead of atomicity.h. Adjust use of macros from atomicity.h to new names and semantics. * gmon_mcount.c: Likewise. * malloc/set-freeres.c: Likewise. * nscd/cache.c: Likewise. * stdlib/cxa_finalize.c: Likewise. * sysdeps/unix/sysv/linux/getsysstats.c: Likewise. * sysdeps/mips/ieee754.h: New file, suitable to replace both * stdlib/strtod.c (INTERNAL): While eating trailing zeros handle