diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-06-09 07:39:03 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-06-09 07:39:03 +0000 |
commit | b17203463dc96148641c00fd5eda93fef95475c8 (patch) | |
tree | f019bf1017c04881b686d6e397856387504e89ae /nptl | |
parent | eae59a5681a6725d38f210acbd9ca82ba170c79c (diff) | |
download | glibc-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/ChangeLog | 5 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S | 10 |
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 |