diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-02-24 09:23:15 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-02-24 09:23:15 +0000 |
commit | 18a535792b7a63721a123e152266c4b8cf1fae8e (patch) | |
tree | b86a475d52a5cade9e9820808a7d8f165cf081aa /nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S | |
parent | 3724f268b15bdbd322cda97f88a965a68f2fd3ef (diff) |
Update.
* sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
* sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S index ff3960960d..080e66305e 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S @@ -45,7 +45,6 @@ __pthread_rwlock_wrlock: pushl %ebx xorl %esi, %esi - xorl %edx, %edx movl 12(%esp), %ebx /* Get the lock. */ @@ -68,6 +67,8 @@ __pthread_rwlock_wrlock: 3: incl WRITERS_QUEUED(%ebx) je 4f + movl WRITERS_WAKEUP(%ebx), %edx + LOCK #if MUTEX == 0 decl (%ebx) @@ -95,7 +96,6 @@ __pthread_rwlock_wrlock: jne 12f 13: decl WRITERS_QUEUED(%ebx) - movl $0, WRITERS_WAKEUP(%ebx) jmp 2b 5: xorl %ecx, %ecx @@ -115,7 +115,12 @@ __pthread_rwlock_wrlock: popl %esi ret -1: movl %ebx, %ecx +1: +#if MUTEX == 0 + movl %ebx, %ecx +#else + leal MUTEX(%ebx), %ecx +#endif call __lll_mutex_lock_wait jmp 2b @@ -124,7 +129,12 @@ __pthread_rwlock_wrlock: movl $EDEADLK, %ecx jmp 9b -6: movl %ebx, %eax +6: +#if MUTEX == 0 + movl %ebx, %eax +#else + leal MUTEX(%ebx), %eax +#endif call __lll_mutex_unlock_wake jmp 7b @@ -132,11 +142,21 @@ __pthread_rwlock_wrlock: movl $EAGAIN, %ecx jmp 9b -10: movl %ebx, %eax +10: +#if MUTEX == 0 + movl %ebx, %eax +#else + leal MUTEX(%ebx), %eax +#endif call __lll_mutex_unlock_wake jmp 11b -12: movl %ebx, %ecx +12: +#if MUTEX == 0 + movl %ebx, %ecx +#else + leal MUTEX(%ebx), %ecx +#endif call __lll_mutex_lock_wait jmp 13b .size __pthread_rwlock_wrlock,.-__pthread_rwlock_wrlock |