Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 9 Jun 2003 07:39:03 +0000 (07:39 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 9 Jun 2003 07:39:03 +0000 (07:39 +0000)
2003-06-09  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
(__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.

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

index 5a59e9a..cd451c8 100644 (file)
@@ -1,3 +1,8 @@
+2003-06-09  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+       (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
+
 2003-06-08  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
index 4b4fc05..c89851d 100644 (file)
@@ -65,6 +65,9 @@ __pthread_cond_signal:
        movl    total_seq+4(%edi), %eax
        movl    total_seq(%edi), %ecx
        cmpl    4(%ebx), %eax
+#if cond_lock != 0
+       leal    cond_lock(%edi), %edi
+#endif
        ja      3f
        jb      4f
        cmpl    (%ebx), %ecx
@@ -90,13 +93,10 @@ __pthread_cond_signal:
        testl   %eax, %eax
        jne     5f
 
-       /* Unlock.  */
+       /* Unlock.  Note that at this point %edi always points to
+          cond_lock.  */
 4:     LOCK
-#if cond_lock == 0
        subl    $1, (%edi)
-#else
-       subl    $1, cond_lock(%edi)
-#endif
        jne     5f
 
 6:     xorl    %eax, %eax