]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 6 Feb 2003 08:38:56 +0000 (08:38 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 6 Feb 2003 08:38:56 +0000 (08:38 +0000)
2003-02-06  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
but inactive generalization.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
Minor optimization, remove one instruction.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.

nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S

index 40f2dd5254dd17f54fdd87a86262a4d664f68b3b..997fbbff7e4d68b3f97ce0320843d9964752f1f2 100644 (file)
@@ -1,3 +1,12 @@
+2003-02-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
+       but inactive generalization.
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
+       Minor optimization, remove one instruction.
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
+
 2003-02-04  Martin Schwidefsky  <schwidefsky@de.ibm.com>
 
        * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
index 90d2d3ba907a761fd254c9e00eb3e3742bc5e715..81a4623a9c0594b09cf6389c5f4b0d0e688f0a6e 100644 (file)
@@ -44,9 +44,6 @@ __pthread_cond_broadcast:
        pushl   %ebx
 
        movl    12(%esp), %ebx
-#if cond_lock != 0
-       addl    $cond_lock, %ebx
-#endif
 
        /* Get internal lock.  */
        movl    $1, %eax
@@ -72,22 +69,16 @@ __pthread_cond_broadcast:
        movl    %eax, wakeup_seq+4(%ebx)
 
        /* Wake up all threads.  */
-       addl    $wakeup_seq-cond_lock, %ebx
+       addl    $wakeup_seq, %ebx
        movl    $FUTEX_WAKE, %ecx
        xorl    %esi, %esi
        movl    $SYS_futex, %eax
        movl    $0x7fffffff, %edx
        ENTER_KERNEL
 
-       subl    $wakeup_seq-cond_lock, %ebx
-
        /* Unlock.  */
 4:     LOCK
-#if cond_lock == 0
-       decl    (%ebx)
-#else
-       decl    cond_lock(%ebx)
-#endif
+       decl    cond_lock-wakeup_seq(%ebx)
        jne     5f
 
 6:     xorl    %eax, %eax
@@ -107,11 +98,7 @@ __pthread_cond_broadcast:
 
        /* Unlock in loop requires waekup.  */
 5:
-#if cond_lock == 0
-       movl    %ebx, %eax
-#else
-       leal    cond_lock(%ebx), %eax
-#endif
+       leal    cond_lock-wakeup_seq(%ebx), %eax
        call    __lll_mutex_unlock_wake
        jmp     6b
        .size   __pthread_cond_broadcast, .-__pthread_cond_broadcast
index 5067345b72db4e70d2cf75eb150533d1341ce46f..a581c127b21f27a26fa9f74c70c8cfabef75a186 100644 (file)
@@ -42,9 +42,6 @@ __pthread_cond_signal:
 
        pushl   %esi
        pushl   %ebx
-#if cond_lock != 0
-       addl    $cond_lock, %ebx
-#endif
 
        movl    12(%esp), %ebx
 
@@ -72,22 +69,16 @@ __pthread_cond_signal:
        adcl    $0, wakeup_seq+4(%ebx)
 
        /* Wake up one thread.  */
-       addl    $wakeup_seq-cond_lock, %ebx
+       addl    $wakeup_seq, %ebx
        movl    $FUTEX_WAKE, %ecx
        xorl    %esi, %esi
        movl    $SYS_futex, %eax
        movl    %ecx, %edx      /* movl $1, %edx */
        ENTER_KERNEL
 
-       subl    $wakeup_seq-cond_lock, %ebx
-
        /* Unlock.  */
 4:     LOCK
-#if cond_lock == 0
-       decl    (%ebx)
-#else
-       decl    cond_lock(%ebx)
-#endif
+       decl    cond_lock-wakeup_seq(%ebx)
        jne     5f
 
 6:     xorl    %eax, %eax
@@ -107,11 +98,7 @@ __pthread_cond_signal:
 
        /* Unlock in loop requires waekup.  */
 5:
-#if cond_lock == 0
-       movl    %ebx, %eax
-#else
-       leal    cond_lock(%ebx), %eax
-#endif
+       leal    cond_lock-wakeup_seq(%ebx), %eax
        call    __lll_mutex_unlock_wake
        jmp     6b
        .size   __pthread_cond_signal, .-__pthread_cond_signal
index 7b8ec9328f6f9e724fba752f53da5cb51c149296..c520f287d9b2fcaf0a845ae274a386d2b2560218 100644 (file)
@@ -51,9 +51,6 @@ __pthread_cond_timedwait:
 
        movl    20(%esp), %ebx
        movl    28(%esp), %ebp
-#if cond_lock != 0
-       addl    $cond_lock, %ebx
-#endif
 
        /* Get internal lock.  */
        movl    $1, %eax
@@ -134,10 +131,10 @@ __pthread_cond_timedwait:
        leal    4(%esp), %esi
        xorl    %ecx, %ecx      /* movl $FUTEX_WAIT, %ecx */
        movl    %edi, %edx
-       addl    $wakeup_seq-cond_lock, %ebx
+       addl    $wakeup_seq, %ebx
        movl    $SYS_futex, %eax
        ENTER_KERNEL
-       subl    $wakeup_seq-cond_lock, %ebx
+       subl    $wakeup_seq, %ebx
        movl    %eax, %esi
 
        call    __pthread_disable_asynccancel
index 438fcca6a403840051798345f6cddfda579b43ce..e43bcbac823d04cb60d638772437eacc2ee506d4 100644 (file)
@@ -41,9 +41,6 @@
 __condvar_cleanup:
        pushl   %ebx
        movl    8(%esp), %ebx
-#if cond_lock != 0
-       addl    $cond_lock, %ebx
-#endif
 
        /* Get internal lock.  */
        movl    $1, %eax
@@ -70,7 +67,11 @@ __condvar_cleanup:
        adcl    $0, woken_seq+4(%ebx)
 
        LOCK
+#if cond_lock == 0
        decl    (%ebx)
+#else
+       decl    cond_lock(%ebx)
+#endif
        je      2f
 #if cond_lock == 0
        movl    %ebx, %eax
@@ -96,9 +97,6 @@ __pthread_cond_wait:
 
        xorl    %esi, %esi
        movl    16(%esp), %ebx
-#if cond_lock != 0
-       addl    $cond_lock, %ebx
-#endif
 
        /* Get internal lock.  */
        movl    $1, %eax
@@ -153,10 +151,10 @@ __pthread_cond_wait:
 
        movl    %esi, %ecx      /* movl $FUTEX_WAIT, %ecx */
        movl    %edi, %edx
-       addl    $wakeup_seq-cond_lock, %ebx
+       addl    $wakeup_seq, %ebx
        movl    $SYS_futex, %eax
        ENTER_KERNEL
-       subl    $wakeup_seq-cond_lock, %ebx
+       subl    $wakeup_seq, %ebx
 
        call    __pthread_disable_asynccancel