diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-02-27 10:32:38 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-02-27 10:32:38 +0000 |
commit | d2637c70532ba49bf41b25c6aaf1b5d2b09d4aed (patch) | |
tree | 055a8b0bf4eb4462552352fbe52793c09f82fdcf /nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S | |
parent | e361e438a115275fdd56eb25a52b798127adae76 (diff) | |
download | glibc-d2637c70532ba49bf41b25c6aaf1b5d2b09d4aed.tar.gz glibc-d2637c70532ba49bf41b25c6aaf1b5d2b09d4aed.tar.xz glibc-d2637c70532ba49bf41b25c6aaf1b5d2b09d4aed.zip |
Update.
2003-02-24 David Mosberger <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/sysdep.S (__syscall_error): Fix unwind info.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S index bb5f8d1bc8..7dd97ba49e 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S @@ -76,10 +76,25 @@ __pthread_rwlock_unlock: leal READERS_WAKEUP(%edi), %ebx 0: incl (%ebx) - xorl %esi, %esi + LOCK +#if MUTEX == 0 + decl (%edi) +#else + decl MUTEX(%edi) +#endif + jne 7f + +8: xorl %esi, %esi movl $SYS_futex, %eax ENTER_KERNEL + xorl %eax, %eax + popl %edi + popl %esi + popl %ebx + ret + + .align 16 6: LOCK #if MUTEX == 0 decl (%edi) @@ -112,6 +127,15 @@ __pthread_rwlock_unlock: call __lll_mutex_unlock_wake jmp 4b +7: +#if MUTEX == 0 + movl %edi, %eax +#else + leal MUTEX(%edx), %eax +#endif + call __lll_mutex_unlock_wake + jmp 8b + .size __pthread_rwlock_unlock,.-__pthread_rwlock_unlock .globl pthread_rwlock_unlock |