aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-06-09 07:39:03 +0000
committerUlrich Drepper <drepper@redhat.com>2003-06-09 07:39:03 +0000
commitb17203463dc96148641c00fd5eda93fef95475c8 (patch)
treef019bf1017c04881b686d6e397856387504e89ae /nptl
parenteae59a5681a6725d38f210acbd9ca82ba170c79c (diff)
downloadglibc-b17203463dc96148641c00fd5eda93fef95475c8.zip
glibc-b17203463dc96148641c00fd5eda93fef95475c8.tar.gz
glibc-b17203463dc96148641c00fd5eda93fef95475c8.tar.bz2
Update.
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.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S10
2 files changed, 10 insertions, 5 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 5a59e9a..cd451c8 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -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
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
index 4b4fc05..c89851d 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
@@ -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