diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-05-26 16:19:15 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-05-26 16:19:15 +0000 |
commit | d8ff3792a8020ff25b703109a763161236cfa8dd (patch) | |
tree | 64c957412858723994412de62d1f13a6e5ff2ece /nptl/sysdeps/unix/sysv/linux/x86_64 | |
parent | 42e6c66593eb7a07afd58e70bef9aeed9f910548 (diff) | |
download | glibc-d8ff3792a8020ff25b703109a763161236cfa8dd.tar.gz glibc-d8ff3792a8020ff25b703109a763161236cfa8dd.tar.xz glibc-d8ff3792a8020ff25b703109a763161236cfa8dd.zip |
* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
Add private field. * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition. * pthread_barrier_init.c: Set private flag if pshared and private futexes are supported. * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use private field in futex command setup. * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S index fa8125dd87..63771b3840 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -65,9 +65,10 @@ pthread_barrier_wait: if the CURR_EVENT memory has meanwhile been changed. */ 7: #if FUTEX_WAIT == 0 - xorl %esi, %esi + movl PRIVATE(%rdi), %esi #else movl $FUTEX_WAIT, %esi + orl PRIVATE(%rdi), %esi #endif xorq %r10, %r10 8: movl $SYS_futex, %eax @@ -116,6 +117,7 @@ pthread_barrier_wait: so 0x7fffffff is the highest value. */ movl $0x7fffffff, %edx movl $FUTEX_WAKE, %esi + orl PRIVATE(%rdi), %esi movl $SYS_futex, %eax syscall |