]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Remove x86 assembler rwlock code
authorAndi Kleen <ak@linux.intel.com>
Mon, 3 Mar 2014 15:06:11 +0000 (07:06 -0800)
committerAndi Kleen <ak@linux.intel.com>
Fri, 13 Jun 2014 20:16:06 +0000 (13:16 -0700)
With the recent tuning the C version of rwlocks is basically the same
performance as the x86 assembler version for uncontended locks (with a
a few cycles near the run-to-run variability). For others it should not
matter anyways.

So remove the assembler code and use the C version like other
architectures.

21 files changed:
ChangeLog
sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S [deleted file]
sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S [deleted file]
sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S [deleted file]
sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S [deleted file]
sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S [deleted file]
sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S [deleted file]
sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S [deleted file]

index 6e3d2a9a72d606307f9cf26014031cfbda47da91..5960dff9437e571a82a235874c443335fe937582 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2014-06-13  Andi Kleen  <ak@linux.intel.com>
+
+        * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Remove.
+        * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: dito.
+        * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: dito.
+        * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: dito.
+        * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: dito.
+        * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: dito.
+        * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: dito.
+        * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: dito.
+
 2014-06-13  Andi Kleen  <ak@linux.intel.com>
 
        * nptl/pthread_rwlock_rdlock.c: Include elide.h.
diff --git a/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
deleted file mode 100644 (file)
index a81bc06..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-
-#include <stap-probe.h>
-
-       .text
-
-       .globl  __pthread_rwlock_rdlock
-       .type   __pthread_rwlock_rdlock,@function
-       .align  16
-__pthread_rwlock_rdlock:
-       cfi_startproc
-       pushl   %esi
-       cfi_adjust_cfa_offset(4)
-       pushl   %ebx
-       cfi_adjust_cfa_offset(4)
-       cfi_offset(%esi, -8)
-       cfi_offset(%ebx, -12)
-
-       xorl    %esi, %esi
-       movl    12(%esp), %ebx
-
-       LIBC_PROBE (rdlock_entry, 1, %ebx)
-
-       /* Get the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%ebx)
-#else
-       cmpxchgl %edx, MUTEX(%ebx)
-#endif
-       jnz     1f
-
-2:     movl    WRITER(%ebx), %eax
-       testl   %eax, %eax
-       jne     14f
-       cmpl    $0, WRITERS_QUEUED(%ebx)
-       je      5f
-       cmpb    $0, FLAGS(%ebx)
-       je      5f
-
-3:     addl    $1, READERS_QUEUED(%ebx)
-       je      4f
-
-       movl    READERS_WAKEUP(%ebx), %edx
-
-       LOCK
-#if MUTEX == 0
-       subl    $1, (%ebx)
-#else
-       subl    $1, MUTEX(%ebx)
-#endif
-       jne     10f
-
-11:
-#ifdef __ASSUME_PRIVATE_FUTEX
-       movzbl  PSHARED(%ebx), %ecx
-       xorl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT, %ecx
-#else
-       movzbl  PSHARED(%ebx), %ecx
-# if FUTEX_WAIT != 0
-       orl     $FUTEX_WAIT, %ecx
-# endif
-       xorl    %gs:PRIVATE_FUTEX, %ecx
-#endif
-       addl    $READERS_WAKEUP, %ebx
-       movl    $SYS_futex, %eax
-       ENTER_KERNEL
-
-       subl    $READERS_WAKEUP, %ebx
-
-       /* Reget the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%ebx)
-#else
-       cmpxchgl %edx, MUTEX(%ebx)
-#endif
-       jnz     12f
-
-13:    subl    $1, READERS_QUEUED(%ebx)
-       jmp     2b
-
-5:     xorl    %edx, %edx
-       addl    $1, NR_READERS(%ebx)
-       je      8f
-9:     LOCK
-#if MUTEX == 0
-       subl    $1, (%ebx)
-#else
-       subl    $1, MUTEX(%ebx)
-#endif
-       jne     6f
-7:
-
-       movl    %edx, %eax
-       popl    %ebx
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%ebx)
-       popl    %esi
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%esi)
-       ret
-
-       cfi_adjust_cfa_offset(8)
-       cfi_offset(%esi, -8)
-       cfi_offset(%ebx, -12)
-1:
-#if MUTEX == 0
-       movl    %ebx, %edx
-#else
-       leal    MUTEX(%ebx), %edx
-#endif
-       movzbl  PSHARED(%ebx), %ecx
-       call    __lll_lock_wait
-       jmp     2b
-
-14:    cmpl    %gs:TID, %eax
-       jne     3b
-       /* Deadlock detected.  */
-       movl    $EDEADLK, %edx
-       jmp     9b
-
-6:
-#if MUTEX == 0
-       movl    %ebx, %eax
-#else
-       leal    MUTEX(%ebx), %eax
-#endif
-       movzbl  PSHARED(%ebx), %ecx
-       call    __lll_unlock_wake
-       jmp     7b
-
-       /* Overflow.  */
-8:     subl    $1, NR_READERS(%ebx)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-       /* Overflow.  */
-4:     subl    $1, READERS_QUEUED(%ebx)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-10:
-#if MUTEX == 0
-       movl    %ebx, %eax
-#else
-       leal    MUTEX(%ebx), %eax
-#endif
-       movzbl  PSHARED(%ebx), %ecx
-       call    __lll_unlock_wake
-       jmp     11b
-
-12:
-#if MUTEX == 0
-       movl    %ebx, %edx
-#else
-       leal    MUTEX(%ebx), %edx
-#endif
-       movzbl  PSHARED(%ebx), %ecx
-       call    __lll_lock_wait
-       jmp     13b
-       cfi_endproc
-       .size   __pthread_rwlock_rdlock,.-__pthread_rwlock_rdlock
-
-strong_alias (__pthread_rwlock_rdlock, pthread_rwlock_rdlock)
-hidden_def (__pthread_rwlock_rdlock)
diff --git a/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S b/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
deleted file mode 100644 (file)
index bc1001c..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-
-
-       .text
-
-       .globl  pthread_rwlock_timedrdlock
-       .type   pthread_rwlock_timedrdlock,@function
-       .align  16
-pthread_rwlock_timedrdlock:
-       cfi_startproc
-       pushl   %esi
-       cfi_adjust_cfa_offset(4)
-       pushl   %edi
-       cfi_adjust_cfa_offset(4)
-       pushl   %ebx
-       cfi_adjust_cfa_offset(4)
-       pushl   %ebp
-       cfi_adjust_cfa_offset(4)
-       cfi_offset(%esi, -8)
-       cfi_offset(%edi, -12)
-       cfi_offset(%ebx, -16)
-       cfi_offset(%ebp, -20)
-       subl    $8, %esp
-       cfi_adjust_cfa_offset(8)
-
-       movl    28(%esp), %ebp
-       movl    32(%esp), %edi
-
-       /* Get the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%ebp)
-#else
-       cmpxchgl %edx, MUTEX(%ebp)
-#endif
-       jnz     1f
-
-2:     movl    WRITER(%ebp), %eax
-       testl   %eax, %eax
-       jne     14f
-       cmpl    $0, WRITERS_QUEUED(%ebp)
-       je      5f
-       cmpb    $0, FLAGS(%ebp)
-       je      5f
-
-       /* Check the value of the timeout parameter.  */
-3:     cmpl    $1000000000, 4(%edi)
-       jae     19f
-
-       addl    $1, READERS_QUEUED(%ebp)
-       je      4f
-
-       movl    READERS_WAKEUP(%ebp), %esi
-
-       LOCK
-#if MUTEX == 0
-       subl    $1, (%ebp)
-#else
-       subl    $1, MUTEX(%ebp)
-#endif
-       jne     10f
-
-       /* Get current time.  */
-11:    movl    %esp, %ebx
-       xorl    %ecx, %ecx
-       movl    $__NR_gettimeofday, %eax
-       ENTER_KERNEL
-
-       /* Compute relative timeout.  */
-       movl    4(%esp), %eax
-       movl    $1000, %edx
-       mul     %edx            /* Milli seconds to nano seconds.  */
-       movl    (%edi), %ecx
-       movl    4(%edi), %edx
-       subl    (%esp), %ecx
-       subl    %eax, %edx
-       jns     15f
-       addl    $1000000000, %edx
-       subl    $1, %ecx
-15:    testl   %ecx, %ecx
-       js      16f             /* Time is already up.  */
-
-       /* Futex call.  */
-       movl    %ecx, (%esp)    /* Store relative timeout.  */
-       movl    %edx, 4(%esp)
-
-       movl    %esi, %edx
-#ifdef __ASSUME_PRIVATE_FUTEX
-       movzbl  PSHARED(%ebp), %ecx
-       xorl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT, %ecx
-#else
-       movzbl  PSHARED(%ebp), %ecx
-# if FUTEX_WAIT != 0
-       orl     $FUTEX_WAIT, %ecx
-# endif
-       xorl    %gs:PRIVATE_FUTEX, %ecx
-#endif
-       movl    %esp, %esi
-       leal    READERS_WAKEUP(%ebp), %ebx
-       movl    $SYS_futex, %eax
-       ENTER_KERNEL
-       movl    %eax, %esi
-17:
-
-       /* Reget the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%ebp)
-#else
-       cmpxchgl %edx, MUTEX(%ebp)
-#endif
-       jnz     12f
-
-13:    subl    $1, READERS_QUEUED(%ebp)
-       cmpl    $-ETIMEDOUT, %esi
-       jne     2b
-
-18:    movl    $ETIMEDOUT, %edx
-       jmp     9f
-
-
-5:     xorl    %edx, %edx
-       addl    $1, NR_READERS(%ebp)
-       je      8f
-9:     LOCK
-#if MUTEX == 0
-       subl    $1, (%ebp)
-#else
-       subl    $1, MUTEX(%ebp)
-#endif
-       jne     6f
-
-7:     movl    %edx, %eax
-
-       addl    $8, %esp
-       cfi_adjust_cfa_offset(-8)
-       popl    %ebp
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%ebp)
-       popl    %ebx
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%ebx)
-       popl    %edi
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%edi)
-       popl    %esi
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%esi)
-       ret
-
-       cfi_adjust_cfa_offset(24)
-       cfi_offset(%esi, -8)
-       cfi_offset(%edi, -12)
-       cfi_offset(%ebx, -16)
-       cfi_offset(%ebp, -20)
-1:
-#if MUTEX == 0
-       movl    %ebp, %edx
-#else
-       leal    MUTEX(%ebp), %edx
-#endif
-       movzbl  PSHARED(%ebp), %ecx
-       call    __lll_lock_wait
-       jmp     2b
-
-14:    cmpl    %gs:TID, %eax
-       jne     3b
-       movl    $EDEADLK, %edx
-       jmp     9b
-
-6:
-#if MUTEX == 0
-       movl    %ebp, %eax
-#else
-       leal    MUTEX(%ebp), %eax
-#endif
-       movzbl  PSHARED(%ebp), %ecx
-       call    __lll_unlock_wake
-       jmp     7b
-
-       /* Overflow.  */
-8:     subl    $1, NR_READERS(%ebp)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-       /* Overflow.  */
-4:     subl    $1, READERS_QUEUED(%ebp)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-10:
-#if MUTEX == 0
-       movl    %ebp, %eax
-#else
-       leal    MUTEX(%ebp), %eax
-#endif
-       movzbl  PSHARED(%ebp), %ecx
-       call    __lll_unlock_wake
-       jmp     11b
-
-12:
-#if MUTEX == 0
-       movl    %ebp, %edx
-#else
-       leal    MUTEX(%ebp), %edx
-#endif
-       movzbl  PSHARED(%ebp), %ecx
-       call    __lll_lock_wait
-       jmp     13b
-
-16:    movl    $-ETIMEDOUT, %esi
-       jmp     17b
-
-19:    movl    $EINVAL, %edx
-       jmp     9b
-       cfi_endproc
-       .size   pthread_rwlock_timedrdlock,.-pthread_rwlock_timedrdlock
diff --git a/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S b/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
deleted file mode 100644 (file)
index 9abba58..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-
-
-       .text
-
-       .globl  pthread_rwlock_timedwrlock
-       .type   pthread_rwlock_timedwrlock,@function
-       .align  16
-pthread_rwlock_timedwrlock:
-       cfi_startproc
-       pushl   %esi
-       cfi_adjust_cfa_offset(4)
-       pushl   %edi
-       cfi_adjust_cfa_offset(4)
-       pushl   %ebx
-       cfi_adjust_cfa_offset(4)
-       pushl   %ebp
-       cfi_adjust_cfa_offset(4)
-       cfi_offset(%esi, -8)
-       cfi_offset(%edi, -12)
-       cfi_offset(%ebx, -16)
-       cfi_offset(%ebp, -20)
-       subl    $8, %esp
-       cfi_adjust_cfa_offset(8)
-
-       movl    28(%esp), %ebp
-       movl    32(%esp), %edi
-
-       /* Get the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%ebp)
-#else
-       cmpxchgl %edx, MUTEX(%ebp)
-#endif
-       jnz     1f
-
-2:     movl    WRITER(%ebp), %eax
-       testl   %eax, %eax
-       jne     14f
-       cmpl    $0, NR_READERS(%ebp)
-       je      5f
-
-       /* Check the value of the timeout parameter.  */
-3:     cmpl    $1000000000, 4(%edi)
-       jae     19f
-
-       addl    $1, WRITERS_QUEUED(%ebp)
-       je      4f
-
-       movl    WRITERS_WAKEUP(%ebp), %esi
-
-       LOCK
-#if MUTEX == 0
-       subl    $1, (%ebp)
-#else
-       subl    $1, MUTEX(%ebp)
-#endif
-       jne     10f
-
-       /* Get current time.  */
-11:    movl    %esp, %ebx
-       xorl    %ecx, %ecx
-       movl    $__NR_gettimeofday, %eax
-       ENTER_KERNEL
-
-       /* Compute relative timeout.  */
-       movl    4(%esp), %eax
-       movl    $1000, %edx
-       mul     %edx            /* Milli seconds to nano seconds.  */
-       movl    (%edi), %ecx
-       movl    4(%edi), %edx
-       subl    (%esp), %ecx
-       subl    %eax, %edx
-       jns     15f
-       addl    $1000000000, %edx
-       subl    $1, %ecx
-15:    testl   %ecx, %ecx
-       js      16f             /* Time is already up.  */
-
-       /* Futex call.  */
-       movl    %ecx, (%esp)    /* Store relative timeout.  */
-       movl    %edx, 4(%esp)
-
-       movl    %esi, %edx
-#ifdef __ASSUME_PRIVATE_FUTEX
-       movzbl  PSHARED(%ebp), %ecx
-       xorl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT, %ecx
-#else
-       movzbl  PSHARED(%ebp), %ecx
-# if FUTEX_WAIT != 0
-       orl     $FUTEX_WAIT, %ecx
-# endif
-       xorl    %gs:PRIVATE_FUTEX, %ecx
-#endif
-       movl    %esp, %esi
-       leal    WRITERS_WAKEUP(%ebp), %ebx
-       movl    $SYS_futex, %eax
-       ENTER_KERNEL
-       movl    %eax, %esi
-17:
-
-       /* Reget the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%ebp)
-#else
-       cmpxchgl %edx, MUTEX(%ebp)
-#endif
-       jnz     12f
-
-13:    subl    $1, WRITERS_QUEUED(%ebp)
-       cmpl    $-ETIMEDOUT, %esi
-       jne     2b
-
-18:    movl    $ETIMEDOUT, %edx
-       jmp     9f
-
-
-5:     xorl    %edx, %edx
-       movl    %gs:TID, %eax
-       movl    %eax, WRITER(%ebp)
-9:     LOCK
-#if MUTEX == 0
-       subl    $1, (%ebp)
-#else
-       subl    $1, MUTEX(%ebp)
-#endif
-       jne     6f
-
-7:     movl    %edx, %eax
-
-       addl    $8, %esp
-       cfi_adjust_cfa_offset(-8)
-       popl    %ebp
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%ebp)
-       popl    %ebx
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%ebx)
-       popl    %edi
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%edi)
-       popl    %esi
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%esi)
-       ret
-
-       cfi_adjust_cfa_offset(24)
-       cfi_offset(%esi, -8)
-       cfi_offset(%edi, -12)
-       cfi_offset(%ebx, -16)
-       cfi_offset(%ebp, -20)
-1:
-#if MUTEX == 0
-       movl    %ebp, %edx
-#else
-       leal    MUTEX(%ebp), %edx
-#endif
-       movzbl  PSHARED(%ebp), %ecx
-       call    __lll_lock_wait
-       jmp     2b
-
-14:    cmpl    %gs:TID, %eax
-       jne     3b
-20:    movl    $EDEADLK, %edx
-       jmp     9b
-
-6:
-#if MUTEX == 0
-       movl    %ebp, %eax
-#else
-       leal    MUTEX(%ebp), %eax
-#endif
-       movzbl  PSHARED(%ebp), %ecx
-       call    __lll_unlock_wake
-       jmp     7b
-
-       /* Overflow.  */
-4:     subl    $1, WRITERS_QUEUED(%ebp)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-10:
-#if MUTEX == 0
-       movl    %ebp, %eax
-#else
-       leal    MUTEX(%ebp), %eax
-#endif
-       movzbl  PSHARED(%ebp), %ecx
-       call    __lll_unlock_wake
-       jmp     11b
-
-12:
-#if MUTEX == 0
-       movl    %ebp, %edx
-#else
-       leal    MUTEX(%ebp), %edx
-#endif
-       movzbl  PSHARED(%ebp), %ecx
-       call    __lll_lock_wait
-       jmp     13b
-
-16:    movl    $-ETIMEDOUT, %esi
-       jmp     17b
-
-19:    movl    $EINVAL, %edx
-       jmp     9b
-       cfi_endproc
-       .size   pthread_rwlock_timedwrlock,.-pthread_rwlock_timedwrlock
diff --git a/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S b/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
deleted file mode 100644 (file)
index 738c067..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <kernel-features.h>
-
-
-       .text
-
-       .globl  __pthread_rwlock_unlock
-       .type   __pthread_rwlock_unlock,@function
-       .align  16
-__pthread_rwlock_unlock:
-       cfi_startproc
-       pushl   %ebx
-       cfi_adjust_cfa_offset(4)
-       pushl   %edi
-       cfi_adjust_cfa_offset(4)
-       cfi_offset(%ebx, -8)
-       cfi_offset(%edi, -12)
-
-       movl    12(%esp), %edi
-
-       /* Get the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%edi)
-#else
-       cmpxchgl %edx, MUTEX(%edi)
-#endif
-       jnz     1f
-
-2:     cmpl    $0, WRITER(%edi)
-       jne     5f
-       subl    $1, NR_READERS(%edi)
-       jnz     6f
-
-5:     movl    $0, WRITER(%edi)
-
-       movl    $1, %edx
-       leal    WRITERS_WAKEUP(%edi), %ebx
-       cmpl    $0, WRITERS_QUEUED(%edi)
-       jne     0f
-
-       /* If also no readers waiting nothing to do.  */
-       cmpl    $0, READERS_QUEUED(%edi)
-       je      6f
-
-       movl    $0x7fffffff, %edx
-       leal    READERS_WAKEUP(%edi), %ebx
-
-0:     addl    $1, (%ebx)
-       LOCK
-#if MUTEX == 0
-       subl    $1, (%edi)
-#else
-       subl    $1, MUTEX(%edi)
-#endif
-       jne     7f
-
-8:
-#ifdef __ASSUME_PRIVATE_FUTEX
-       movzbl  PSHARED(%edi), %ecx
-       xorl    $FUTEX_PRIVATE_FLAG|FUTEX_WAKE, %ecx
-#else
-       movzbl  PSHARED(%edi), %ecx
-       orl     $FUTEX_WAKE, %ecx
-       xorl    %gs:PRIVATE_FUTEX, %ecx
-#endif
-       movl    $SYS_futex, %eax
-       ENTER_KERNEL
-
-       xorl    %eax, %eax
-       popl    %edi
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%edi)
-       popl    %ebx
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%ebx)
-       ret
-
-       cfi_adjust_cfa_offset(8)
-       cfi_offset(%ebx, -8)
-       cfi_offset(%edi, -12)
-       .align  16
-6:     LOCK
-#if MUTEX == 0
-       subl    $1, (%edi)
-#else
-       subl    $1, MUTEX(%edi)
-#endif
-       jne     3f
-
-4:     xorl    %eax, %eax
-       popl    %edi
-       popl    %ebx
-       ret
-
-1:
-#if MUTEX == 0
-       movl    %edi, %edx
-#else
-       leal    MUTEX(%edi), %edx
-#endif
-       movzbl  PSHARED(%edi), %ecx
-       call    __lll_lock_wait
-       jmp     2b
-
-3:
-#if MUTEX == 0
-       movl    %edi, %eax
-#else
-       leal    MUTEX(%edi), %eax
-#endif
-       movzbl  PSHARED(%edi), %ecx
-       call    __lll_unlock_wake
-       jmp     4b
-
-7:
-#if MUTEX == 0
-       movl    %edi, %eax
-#else
-       leal    MUTEX(%edi), %eax
-#endif
-       movzbl  PSHARED(%edi), %ecx
-       call    __lll_unlock_wake
-       jmp     8b
-       cfi_endproc
-       .size   __pthread_rwlock_unlock,.-__pthread_rwlock_unlock
-
-strong_alias (__pthread_rwlock_unlock, pthread_rwlock_unlock)
-hidden_def (__pthread_rwlock_unlock)
diff --git a/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
deleted file mode 100644 (file)
index 8345cae..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-
-#include <stap-probe.h>
-
-       .text
-
-       .globl  __pthread_rwlock_wrlock
-       .type   __pthread_rwlock_wrlock,@function
-       .align  16
-__pthread_rwlock_wrlock:
-       cfi_startproc
-       pushl   %esi
-       cfi_adjust_cfa_offset(4)
-       pushl   %ebx
-       cfi_adjust_cfa_offset(4)
-       cfi_offset(%esi, -8)
-       cfi_offset(%ebx, -12)
-
-       xorl    %esi, %esi
-       movl    12(%esp), %ebx
-
-       LIBC_PROBE (wrlock_entry, 1, %ebx)
-
-       /* Get the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%ebx)
-#else
-       cmpxchgl %edx, MUTEX(%ebx)
-#endif
-       jnz     1f
-
-2:     movl    WRITER(%ebx), %eax
-       testl   %eax, %eax
-       jne     14f
-       cmpl    $0, NR_READERS(%ebx)
-       je      5f
-
-3:     addl    $1, WRITERS_QUEUED(%ebx)
-       je      4f
-
-       movl    WRITERS_WAKEUP(%ebx), %edx
-
-       LOCK
-#if MUTEX == 0
-       subl    $1, (%ebx)
-#else
-       subl    $1, MUTEX(%ebx)
-#endif
-       jne     10f
-
-11:
-#ifdef __ASSUME_PRIVATE_FUTEX
-       movzbl  PSHARED(%ebx), %ecx
-       xorl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT, %ecx
-#else
-       movzbl  PSHARED(%ebx), %ecx
-# if FUTEX_WAIT != 0
-       orl     $FUTEX_WAIT, %ecx
-# endif
-       xorl    %gs:PRIVATE_FUTEX, %ecx
-#endif
-       addl    $WRITERS_WAKEUP, %ebx
-       movl    $SYS_futex, %eax
-       ENTER_KERNEL
-
-       subl    $WRITERS_WAKEUP, %ebx
-
-       /* Reget the lock.  */
-       movl    $1, %edx
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %edx, (%ebx)
-#else
-       cmpxchgl %edx, MUTEX(%ebx)
-#endif
-       jnz     12f
-
-13:    subl    $1, WRITERS_QUEUED(%ebx)
-       jmp     2b
-
-5:     xorl    %edx, %edx
-       movl    %gs:TID, %eax
-       movl    %eax, WRITER(%ebx)
-9:     LOCK
-#if MUTEX == 0
-       subl    $1, (%ebx)
-#else
-       subl    $1, MUTEX(%ebx)
-#endif
-       jne     6f
-7:
-
-       movl    %edx, %eax
-       popl    %ebx
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%ebx)
-       popl    %esi
-       cfi_adjust_cfa_offset(-4)
-       cfi_restore(%esi)
-       ret
-
-       cfi_adjust_cfa_offset(8)
-       cfi_offset(%esi, -8)
-       cfi_offset(%ebx, -12)
-1:
-#if MUTEX == 0
-       movl    %ebx, %edx
-#else
-       leal    MUTEX(%ebx), %edx
-#endif
-       movzbl  PSHARED(%ebx), %ecx
-       call    __lll_lock_wait
-       jmp     2b
-
-14:    cmpl    %gs:TID , %eax
-       jne     3b
-       movl    $EDEADLK, %edx
-       jmp     9b
-
-6:
-#if MUTEX == 0
-       movl    %ebx, %eax
-#else
-       leal    MUTEX(%ebx), %eax
-#endif
-       movzbl  PSHARED(%ebx), %ecx
-       call    __lll_unlock_wake
-       jmp     7b
-
-4:     subl    $1, WRITERS_QUEUED(%ebx)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-10:
-#if MUTEX == 0
-       movl    %ebx, %eax
-#else
-       leal    MUTEX(%ebx), %eax
-#endif
-       movzbl  PSHARED(%ebx), %ecx
-       call    __lll_unlock_wake
-       jmp     11b
-
-12:
-#if MUTEX == 0
-       movl    %ebx, %edx
-#else
-       leal    MUTEX(%ebx), %edx
-#endif
-       movzbl  PSHARED(%ebx), %ecx
-       call    __lll_lock_wait
-       jmp     13b
-       cfi_endproc
-       .size   __pthread_rwlock_wrlock,.-__pthread_rwlock_wrlock
-
-strong_alias (__pthread_rwlock_wrlock, pthread_rwlock_wrlock)
-hidden_def (__pthread_rwlock_wrlock)
diff --git a/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S b/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S
deleted file mode 100644 (file)
index 85127c7..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_rdlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S b/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S
deleted file mode 100644 (file)
index 5a843e5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_timedrdlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S b/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S
deleted file mode 100644 (file)
index a8ca4cf..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_timedwrlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S b/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S
deleted file mode 100644 (file)
index 8018c8f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_unlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S b/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S
deleted file mode 100644 (file)
index 0b4cfa8..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_wrlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S b/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S
deleted file mode 100644 (file)
index 85127c7..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_rdlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S b/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S
deleted file mode 100644 (file)
index 5a843e5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_timedrdlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S b/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S
deleted file mode 100644 (file)
index a8ca4cf..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_timedwrlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S b/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S
deleted file mode 100644 (file)
index e52344b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define HAVE_CMOV      1
-#include "../i486/pthread_rwlock_unlock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S b/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S
deleted file mode 100644 (file)
index 0b4cfa8..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "../i486/pthread_rwlock_wrlock.S"
diff --git a/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S b/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
deleted file mode 100644 (file)
index 3bbb4c7..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-#include <stap-probe.h>
-
-       .text
-
-       .globl  __pthread_rwlock_rdlock
-       .type   __pthread_rwlock_rdlock,@function
-       .align  16
-__pthread_rwlock_rdlock:
-       cfi_startproc
-
-       LIBC_PROBE (rdlock_entry, 1, %rdi)
-
-       xorq    %r10, %r10
-
-       /* Get the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%rdi)
-#else
-       cmpxchgl %esi, MUTEX(%rdi)
-#endif
-       jnz     1f
-
-2:     movl    WRITER(%rdi), %eax
-       testl   %eax, %eax
-       jne     14f
-       cmpl    $0, WRITERS_QUEUED(%rdi)
-       je      5f
-       cmpl    $0, FLAGS(%rdi)
-       je      5f
-
-3:     incl    READERS_QUEUED(%rdi)
-       je      4f
-
-       movl    READERS_WAKEUP(%rdi), %edx
-
-       LOCK
-#if MUTEX == 0
-       decl    (%rdi)
-#else
-       decl    MUTEX(%rdi)
-#endif
-       jne     10f
-
-11:
-#ifdef __ASSUME_PRIVATE_FUTEX
-       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT, %esi
-       xorl    PSHARED(%rdi), %esi
-#else
-# if FUTEX_WAIT == 0
-       movl    PSHARED(%rdi), %esi
-# else
-       movl    $FUTEX_WAIT, %esi
-       orl     PSHARED(%rdi), %esi
-# endif
-       xorl    %fs:PRIVATE_FUTEX, %esi
-#endif
-       addq    $READERS_WAKEUP, %rdi
-       movl    $SYS_futex, %eax
-       syscall
-
-       subq    $READERS_WAKEUP, %rdi
-
-       /* Reget the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%rdi)
-#else
-       cmpxchgl %esi, MUTEX(%rdi)
-#endif
-       jnz     12f
-
-13:    decl    READERS_QUEUED(%rdi)
-       jmp     2b
-
-5:     xorl    %edx, %edx
-       incl    NR_READERS(%rdi)
-       je      8f
-9:     LOCK
-#if MUTEX == 0
-       decl    (%rdi)
-#else
-       decl    MUTEX(%rdi)
-#endif
-       jne     6f
-7:
-
-       movq    %rdx, %rax
-       retq
-
-1:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_lock_wait
-#if MUTEX != 0
-       subq    $MUTEX, %rdi
-#endif
-       jmp     2b
-
-14:    cmpl    %fs:TID, %eax
-       jne     3b
-       /* Deadlock detected.  */
-       movl    $EDEADLK, %edx
-       jmp     9b
-
-6:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_unlock_wake
-#if MUTEX != 0
-       subq    $MUTEX, %rdi
-#endif
-       jmp     7b
-
-       /* Overflow.  */
-8:     decl    NR_READERS(%rdi)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-       /* Overflow.  */
-4:     decl    READERS_QUEUED(%rdi)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-10:    movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_unlock_wake
-#if MUTEX != 0
-       subq    $MUTEX, %rdi
-#endif
-       jmp     11b
-
-12:    movl    PSHARED(%rdi), %esi
-#if MUTEX == 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_lock_wait
-#if MUTEX != 0
-       subq    $MUTEX, %rdi
-#endif
-       jmp     13b
-       cfi_endproc
-       .size   __pthread_rwlock_rdlock,.-__pthread_rwlock_rdlock
-
-strong_alias (__pthread_rwlock_rdlock, pthread_rwlock_rdlock)
-hidden_def (__pthread_rwlock_rdlock)
diff --git a/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
deleted file mode 100644 (file)
index 40bcc04..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-
-       .text
-
-       .globl  pthread_rwlock_timedrdlock
-       .type   pthread_rwlock_timedrdlock,@function
-       .align  16
-pthread_rwlock_timedrdlock:
-       cfi_startproc
-       pushq   %r12
-       cfi_adjust_cfa_offset(8)
-       cfi_rel_offset(%r12, 0)
-       pushq   %r13
-       cfi_adjust_cfa_offset(8)
-       cfi_rel_offset(%r13, 0)
-#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
-# define VALREG        %edx
-#else
-       pushq   %r14
-       cfi_adjust_cfa_offset(8)
-       cfi_rel_offset(%r14, 0)
-
-       subq    $16, %rsp
-       cfi_adjust_cfa_offset(16)
-# define VALREG %r14d
-#endif
-
-       movq    %rdi, %r12
-       movq    %rsi, %r13
-
-       /* Get the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%rdi)
-#else
-       cmpxchgl %esi, MUTEX(%rdi)
-#endif
-       jnz     1f
-
-2:     movl    WRITER(%r12), %eax
-       testl   %eax, %eax
-       jne     14f
-       cmpl    $0, WRITERS_QUEUED(%r12)
-       je      5f
-       cmpl    $0, FLAGS(%r12)
-       je      5f
-
-       /* Check the value of the timeout parameter.  */
-3:     cmpq    $1000000000, 8(%r13)
-       jae     19f
-
-       incl    READERS_QUEUED(%r12)
-       je      4f
-
-       movl    READERS_WAKEUP(%r12), VALREG
-
-       /* Unlock.  */
-       LOCK
-#if MUTEX == 0
-       decl    (%r12)
-#else
-       decl    MUTEX(%r12)
-#endif
-       jne     10f
-
-11:
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-#  ifdef PIC
-       cmpl    $0, __have_futex_clock_realtime(%rip)
-#  else
-       cmpl    $0, __have_futex_clock_realtime
-#  endif
-       je      .Lreltmo
-#endif
-
-       cmpq    $0, (%r13)
-       js      16f             /* Time is already up.  */
-
-       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi
-       xorl    PSHARED(%r12), %esi
-       movq    %r13, %r10
-       movl    $0xffffffff, %r9d
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-       movl    %r14d, %edx
-#endif
-21:    leaq    READERS_WAKEUP(%r12), %rdi
-       movl    $SYS_futex, %eax
-       syscall
-       movq    %rax, %rdx
-
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-       .subsection 2
-.Lreltmo:
-       /* Get current time.  */
-       movq    %rsp, %rdi
-       xorl    %esi, %esi
-       /* This call works because we directly jump to a system call entry
-          which preserves all the registers.  */
-       call    JUMPTARGET(__gettimeofday)
-
-       /* Compute relative timeout.  */
-       movq    8(%rsp), %rax
-       movl    $1000, %edi
-       mul     %rdi            /* Milli seconds to nano seconds.  */
-       movq    (%r13), %rcx
-       movq    8(%r13), %rdi
-       subq    (%rsp), %rcx
-       subq    %rax, %rdi
-       jns     15f
-       addq    $1000000000, %rdi
-       decq    %rcx
-15:    testq   %rcx, %rcx
-       js      16f             /* Time is already up.  */
-
-       /* Futex call.  */
-       movq    %rcx, (%rsp)    /* Store relative timeout.  */
-       movq    %rdi, 8(%rsp)
-
-# ifdef __ASSUME_PRIVATE_FUTEX
-       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT, %esi
-       xorl    PSHARED(%r12), %esi
-# else
-#  if FUTEX_WAIT == 0
-       movl    PSHARED(%r12), %esi
-#  else
-       movl    $FUTEX_WAIT, %esi
-       orl     PSHARED(%r12), %esi
-#  endif
-       xorl    %fs:PRIVATE_FUTEX, %esi
-# endif
-       movq    %rsp, %r10
-       movl    %r14d, %edx
-
-       jmp     21b
-       .previous
-#endif
-
-17:    /* Reget the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%r12)
-#else
-       cmpxchgl %esi, MUTEX(%r12)
-#endif
-       jnz     12f
-
-13:    decl    READERS_QUEUED(%r12)
-       cmpq    $-ETIMEDOUT, %rdx
-       jne     2b
-
-18:    movl    $ETIMEDOUT, %edx
-       jmp     9f
-
-
-5:     xorl    %edx, %edx
-       incl    NR_READERS(%r12)
-       je      8f
-9:     LOCK
-#if MUTEX == 0
-       decl    (%r12)
-#else
-       decl    MUTEX(%r12)
-#endif
-       jne     6f
-
-7:     movq    %rdx, %rax
-
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-       addq    $16, %rsp
-       cfi_adjust_cfa_offset(-16)
-       popq    %r14
-       cfi_adjust_cfa_offset(-8)
-       cfi_restore(%r14)
-#endif
-       popq    %r13
-       cfi_adjust_cfa_offset(-8)
-       cfi_restore(%r13)
-       popq    %r12
-       cfi_adjust_cfa_offset(-8)
-       cfi_restore(%r12)
-       retq
-
-#ifdef __ASSUME_PRIVATE_FUTEX
-       cfi_adjust_cfa_offset(16)
-       cfi_rel_offset(%r12, 8)
-       cfi_rel_offset(%r13, 0)
-#else
-       cfi_adjust_cfa_offset(40)
-       cfi_offset(%r12, -16)
-       cfi_offset(%r13, -24)
-       cfi_offset(%r14, -32)
-#endif
-1:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_lock_wait
-       jmp     2b
-
-14:    cmpl    %fs:TID, %eax
-       jne     3b
-       movl    $EDEADLK, %edx
-       jmp     9b
-
-6:     movl    PSHARED(%r12), %esi
-#if MUTEX == 0
-       movq    %r12, %rdi
-#else
-       leal    MUTEX(%r12), %rdi
-#endif
-       callq   __lll_unlock_wake
-       jmp     7b
-
-       /* Overflow.  */
-8:     decl    NR_READERS(%r12)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-       /* Overflow.  */
-4:     decl    READERS_QUEUED(%r12)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-10:    movl    PSHARED(%r12), %esi
-#if MUTEX == 0
-       movq    %r12, %rdi
-#else
-       leaq    MUTEX(%r12), %rdi
-#endif
-       callq   __lll_unlock_wake
-       jmp     11b
-
-12:    movl    PSHARED(%r12), %esi
-#if MUTEX == 0
-       movq    %r12, %rdi
-#else
-       leaq    MUTEX(%r12), %rdi
-#endif
-       callq   __lll_lock_wait
-       jmp     13b
-
-16:    movq    $-ETIMEDOUT, %rdx
-       jmp     17b
-
-19:    movl    $EINVAL, %edx
-       jmp     9b
-       cfi_endproc
-       .size   pthread_rwlock_timedrdlock,.-pthread_rwlock_timedrdlock
diff --git a/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S b/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
deleted file mode 100644 (file)
index f57ef52..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-
-       .text
-
-       .globl  pthread_rwlock_timedwrlock
-       .type   pthread_rwlock_timedwrlock,@function
-       .align  16
-pthread_rwlock_timedwrlock:
-       cfi_startproc
-       pushq   %r12
-       cfi_adjust_cfa_offset(8)
-       cfi_rel_offset(%r12, 0)
-       pushq   %r13
-       cfi_adjust_cfa_offset(8)
-       cfi_rel_offset(%r13, 0)
-#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
-# define VALREG        %edx
-#else
-       pushq   %r14
-       cfi_adjust_cfa_offset(8)
-       cfi_rel_offset(%r14, 0)
-
-       subq    $16, %rsp
-       cfi_adjust_cfa_offset(16)
-# define VALREG %r14d
-#endif
-
-       movq    %rdi, %r12
-       movq    %rsi, %r13
-
-       /* Get the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%rdi)
-#else
-       cmpxchgl %esi, MUTEX(%rdi)
-#endif
-       jnz     1f
-
-2:     movl    WRITER(%r12), %eax
-       testl   %eax, %eax
-       jne     14f
-       cmpl    $0, NR_READERS(%r12)
-       je      5f
-
-       /* Check the value of the timeout parameter.  */
-3:     cmpq    $1000000000, 8(%r13)
-       jae     19f
-
-       incl    WRITERS_QUEUED(%r12)
-       je      4f
-
-       movl    WRITERS_WAKEUP(%r12), VALREG
-
-       LOCK
-#if MUTEX == 0
-       decl    (%r12)
-#else
-       decl    MUTEX(%r12)
-#endif
-       jne     10f
-
-11:
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-#  ifdef PIC
-       cmpl    $0, __have_futex_clock_realtime(%rip)
-#  else
-       cmpl    $0, __have_futex_clock_realtime
-#  endif
-       je      .Lreltmo
-#endif
-
-       cmpq    $0, (%r13)
-       js      16f             /* Time is already up. */
-
-       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi
-       xorl    PSHARED(%r12), %esi
-       movq    %r13, %r10
-       movl    $0xffffffff, %r9d
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-       movl    %r14d, %edx
-#endif
-21:    leaq    WRITERS_WAKEUP(%r12), %rdi
-       movl    $SYS_futex, %eax
-       syscall
-       movq    %rax, %rdx
-
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-       .subsection 2
-.Lreltmo:
-       /* Get current time.  */
-       movq    %rsp, %rdi
-       xorl    %esi, %esi
-       /* This call works because we directly jump to a system call entry
-          which preserves all the registers.  */
-       call    JUMPTARGET(__gettimeofday)
-
-       /* Compute relative timeout.  */
-       movq    8(%rsp), %rax
-       movl    $1000, %edi
-       mul     %rdi            /* Milli seconds to nano seconds.  */
-       movq    (%r13), %rcx
-       movq    8(%r13), %rdi
-       subq    (%rsp), %rcx
-       subq    %rax, %rdi
-       jns     15f
-       addq    $1000000000, %rdi
-       decq    %rcx
-15:    testq   %rcx, %rcx
-       js      16f             /* Time is already up.  */
-
-       /* Futex call.  */
-       movq    %rcx, (%rsp)    /* Store relative timeout.  */
-       movq    %rdi, 8(%rsp)
-
-# ifdef __ASSUME_PRIVATE_FUTEX
-       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT, %esi
-       xorl    PSHARED(%r12), %esi
-# else
-#  if FUTEX_WAIT == 0
-       movl    PSHARED(%r12), %esi
-#  else
-       movl    $FUTEX_WAIT, %esi
-       orl     PSHARED(%r12), %esi
-#  endif
-       xorl    %fs:PRIVATE_FUTEX, %esi
-# endif
-       movq    %rsp, %r10
-       movl    %r14d, %edx
-
-       jmp     21b
-       .previous
-#endif
-
-17:    /* Reget the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%r12)
-#else
-       cmpxchgl %esi, MUTEX(%r12)
-#endif
-       jnz     12f
-
-13:    decl    WRITERS_QUEUED(%r12)
-       cmpq    $-ETIMEDOUT, %rdx
-       jne     2b
-
-18:    movl    $ETIMEDOUT, %edx
-       jmp     9f
-
-
-5:     xorl    %edx, %edx
-       movl    %fs:TID, %eax
-       movl    %eax, WRITER(%r12)
-9:     LOCK
-#if MUTEX == 0
-       decl    (%r12)
-#else
-       decl    MUTEX(%r12)
-#endif
-       jne     6f
-
-7:     movq    %rdx, %rax
-
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-       addq    $16, %rsp
-       cfi_adjust_cfa_offset(-16)
-       popq    %r14
-       cfi_adjust_cfa_offset(-8)
-       cfi_restore(%r14)
-#endif
-       popq    %r13
-       cfi_adjust_cfa_offset(-8)
-       cfi_restore(%r13)
-       popq    %r12
-       cfi_adjust_cfa_offset(-8)
-       cfi_restore(%r12)
-       retq
-
-#ifdef __ASSUME_PRIVATE_FUTEX
-       cfi_adjust_cfa_offset(16)
-       cfi_rel_offset(%r12, 8)
-       cfi_rel_offset(%r13, 0)
-#else
-       cfi_adjust_cfa_offset(40)
-       cfi_offset(%r12, -16)
-       cfi_offset(%r13, -24)
-       cfi_offset(%r14, -32)
-#endif
-1:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_lock_wait
-       jmp     2b
-
-14:    cmpl    %fs:TID, %eax
-       jne     3b
-20:    movl    $EDEADLK, %edx
-       jmp     9b
-
-6:     movl    PSHARED(%r12), %esi
-#if MUTEX == 0
-       movq    %r12, %rdi
-#else
-       leal    MUTEX(%r12), %rdi
-#endif
-       callq   __lll_unlock_wake
-       jmp     7b
-
-       /* Overflow.  */
-4:     decl    WRITERS_QUEUED(%r12)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-10:    movl    PSHARED(%r12), %esi
-#if MUTEX == 0
-       movq    %r12, %rdi
-#else
-       leaq    MUTEX(%r12), %rdi
-#endif
-       callq   __lll_unlock_wake
-       jmp     11b
-
-12:    movl    PSHARED(%r12), %esi
-#if MUTEX == 0
-       movq    %r12, %rdi
-#else
-       leaq    MUTEX(%r12), %rdi
-#endif
-       callq   __lll_lock_wait
-       jmp     13b
-
-16:    movq    $-ETIMEDOUT, %rdx
-       jmp     17b
-
-19:    movl    $EINVAL, %edx
-       jmp     9b
-       cfi_endproc
-       .size   pthread_rwlock_timedwrlock,.-pthread_rwlock_timedwrlock
diff --git a/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S b/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
deleted file mode 100644 (file)
index d779f7b..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <kernel-features.h>
-
-
-       .text
-
-       .globl  __pthread_rwlock_unlock
-       .type   __pthread_rwlock_unlock,@function
-       .align  16
-__pthread_rwlock_unlock:
-       cfi_startproc
-       /* Get the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%rdi)
-#else
-       cmpxchgl %esi, MUTEX(%rdi)
-#endif
-       jnz     1f
-
-2:     cmpl    $0, WRITER(%rdi)
-       jne     5f
-       decl    NR_READERS(%rdi)
-       jnz     6f
-
-5:     movl    $0, WRITER(%rdi)
-
-       movl    $1, %edx
-       leaq    WRITERS_WAKEUP(%rdi), %r10
-       cmpl    $0, WRITERS_QUEUED(%rdi)
-       jne     0f
-
-       /* If also no readers waiting nothing to do.  */
-       cmpl    $0, READERS_QUEUED(%rdi)
-       je      6f
-
-       movl    $0x7fffffff, %edx
-       leaq    READERS_WAKEUP(%rdi), %r10
-
-0:     incl    (%r10)
-       LOCK
-#if MUTEX == 0
-       decl    (%rdi)
-#else
-       decl    MUTEX(%rdi)
-#endif
-       jne     7f
-
-8:
-#ifdef __ASSUME_PRIVATE_FUTEX
-       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAKE, %esi
-       xorl    PSHARED(%rdi), %esi
-#else
-       movl    $FUTEX_WAKE, %esi
-       orl     PSHARED(%rdi), %esi
-       xorl    %fs:PRIVATE_FUTEX, %esi
-#endif
-       movl    $SYS_futex, %eax
-       movq    %r10, %rdi
-       syscall
-
-       xorl    %eax, %eax
-       retq
-
-       .align  16
-6:     LOCK
-#if MUTEX == 0
-       decl    (%rdi)
-#else
-       decl    MUTEX(%rdi)
-#endif
-       jne     3f
-
-4:     xorl    %eax, %eax
-       retq
-
-1:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_lock_wait
-#if MUTEX != 0
-       subq    $MUTEX, %rdi
-#endif
-       jmp     2b
-
-3:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_unlock_wake
-       jmp     4b
-
-7:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_unlock_wake
-       jmp     8b
-       cfi_endproc
-       .size   __pthread_rwlock_unlock,.-__pthread_rwlock_unlock
-
-strong_alias (__pthread_rwlock_unlock, pthread_rwlock_unlock)
-hidden_def (__pthread_rwlock_unlock)
diff --git a/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S b/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
deleted file mode 100644 (file)
index e444def..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <lowlevelrwlock.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-#include <stap-probe.h>
-
-       .text
-
-       .globl  __pthread_rwlock_wrlock
-       .type   __pthread_rwlock_wrlock,@function
-       .align  16
-__pthread_rwlock_wrlock:
-       cfi_startproc
-
-       LIBC_PROBE (wrlock_entry, 1, %rdi)
-
-       xorq    %r10, %r10
-
-       /* Get the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%rdi)
-#else
-       cmpxchgl %esi, MUTEX(%rdi)
-#endif
-       jnz     1f
-
-2:     movl    WRITER(%rdi), %eax
-       testl   %eax, %eax
-       jne     14f
-       cmpl    $0, NR_READERS(%rdi)
-       je      5f
-
-3:     incl    WRITERS_QUEUED(%rdi)
-       je      4f
-
-       movl    WRITERS_WAKEUP(%rdi), %edx
-
-       LOCK
-#if MUTEX == 0
-       decl    (%rdi)
-#else
-       decl    MUTEX(%rdi)
-#endif
-       jne     10f
-
-11:
-#ifdef __ASSUME_PRIVATE_FUTEX
-       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT, %esi
-       xorl    PSHARED(%rdi), %esi
-#else
-# if FUTEX_WAIT == 0
-       movl    PSHARED(%rdi), %esi
-# else
-       movl    $FUTEX_WAIT, %esi
-       orl     PSHARED(%rdi), %esi
-# endif
-       xorl    %fs:PRIVATE_FUTEX, %esi
-#endif
-       addq    $WRITERS_WAKEUP, %rdi
-       movl    $SYS_futex, %eax
-       syscall
-
-       subq    $WRITERS_WAKEUP, %rdi
-
-       /* Reget the lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-       LOCK
-#if MUTEX == 0
-       cmpxchgl %esi, (%rdi)
-#else
-       cmpxchgl %esi, MUTEX(%rdi)
-#endif
-       jnz     12f
-
-13:    decl    WRITERS_QUEUED(%rdi)
-       jmp     2b
-
-5:     xorl    %edx, %edx
-       movl    %fs:TID, %eax
-       movl    %eax, WRITER(%rdi)
-9:     LOCK
-#if MUTEX == 0
-       decl    (%rdi)
-#else
-       decl    MUTEX(%rdi)
-#endif
-       jne     6f
-7:
-
-       movq    %rdx, %rax
-       retq
-
-1:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_lock_wait
-#if MUTEX != 0
-       subq    $MUTEX, %rdi
-#endif
-       jmp     2b
-
-14:    cmpl    %fs:TID, %eax
-       jne     3b
-       movl    $EDEADLK, %edx
-       jmp     9b
-
-6:     movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_unlock_wake
-       jmp     7b
-
-4:     decl    WRITERS_QUEUED(%rdi)
-       movl    $EAGAIN, %edx
-       jmp     9b
-
-10:    movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_unlock_wake
-#if MUTEX != 0
-       subq    $MUTEX, %rdi
-#endif
-       jmp     11b
-
-12:    movl    PSHARED(%rdi), %esi
-#if MUTEX != 0
-       addq    $MUTEX, %rdi
-#endif
-       callq   __lll_lock_wait
-#if MUTEX != 0
-       subq    $MUTEX, %rdi
-#endif
-       jmp     13b
-       cfi_endproc
-       .size   __pthread_rwlock_wrlock,.-__pthread_rwlock_wrlock
-
-strong_alias (__pthread_rwlock_wrlock, pthread_rwlock_wrlock)
-hidden_def (__pthread_rwlock_wrlock)