diff options
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S index 006de2696e..e8d7bd9bb6 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -21,7 +21,6 @@ #include <shlib-compat.h> #include <lowlevelcond.h> #include <kernel-features.h> -#include <pthread-pi-defines.h> #ifdef UP # define LOCK @@ -81,15 +80,11 @@ __pthread_cond_broadcast: 8: cmpq $-1, %r8 je 9f - /* XXX: The kernel so far doesn't support requeue to PI futex. */ - testl $PI_BIT, MUTEX_KIND(%r8) - jne 9f - /* Wake up all threads. */ - movl $FUTEX_CMP_REQUEUE, %esi - movl $SYS_futex, %eax + movq $FUTEX_CMP_REQUEUE, %rsi + movq $SYS_futex, %rax movl $1, %edx - movl $0x7fffffff, %r10d + movq $0x7fffffff, %r10 syscall /* For any kind of error, which mainly is EAGAIN, we try again @@ -133,9 +128,9 @@ __pthread_cond_broadcast: jmp 8b 9: /* The futex requeue functionality is not available. */ - movl $0x7fffffff, %edx - movl $FUTEX_WAKE, %esi - movl $SYS_futex, %eax + movq $0x7fffffff, %rdx + movq $FUTEX_WAKE, %rsi + movq $SYS_futex, %rax syscall jmp 10b .size __pthread_cond_broadcast, .-__pthread_cond_broadcast |