Minor optimizations and cleanups of x86 cond_broadcast.
authorUlrich Drepper <drepper@redhat.com>
Wed, 18 Nov 2009 14:40:25 +0000 (06:40 -0800)
committerUlrich Drepper <drepper@redhat.com>
Wed, 18 Nov 2009 14:40:25 +0000 (06:40 -0800)
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S

index 1991a4d..a6acf8a 100644 (file)
@@ -1,3 +1,8 @@
+2009-11-18  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Minor
+       optimizations and cleanups.
+
 2009-11-18  Dinakar Guniguntala  <dino@in.ibm.com>
 
        * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
index 1a55e52..40fb04b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002,2003,2004,2006,2007,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -138,13 +138,6 @@ __pthread_cond_broadcast:
 
        cfi_restore_state
 
-       .align  16
-       /* Unlock.  */
-4:     LOCK
-       subl    $1, cond_lock-cond_futex(%ebx)
-       jne     5f
-       jmp     6b
-
        /* Initial locking failed.  */
 1:
 #if cond_lock == 0
@@ -165,7 +158,13 @@ __pthread_cond_broadcast:
        call    __lll_lock_wait
        jmp     2b
 
-       /* Unlock in loop requires waekup.  */
+       .align  16
+       /* Unlock.  */
+4:     LOCK
+       subl    $1, cond_lock-cond_futex(%ebx)
+       je      6b
+
+       /* Unlock in loop requires wakeup.  */
 5:     leal    cond_lock-cond_futex(%ebx), %eax
 #if (LLL_SHARED-LLL_PRIVATE) > 255
        xorl    %ecx, %ecx
@@ -180,7 +179,7 @@ __pthread_cond_broadcast:
        call    __lll_unlock_wake
        jmp     6b
 
-       /* Unlock in loop requires waekup.  */
+       /* Unlock in loop requires wakeup.  */
 7:     leal    cond_lock-cond_futex(%ebx), %eax
 #if (LLL_SHARED-LLL_PRIVATE) > 255
        xorl    %ecx, %ecx
index ad42fb7..013fcc3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002,2003,2004,2005,2007,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.