diff options
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S index 8303a984ae..172689bec3 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S @@ -37,13 +37,13 @@ __pthread_rwlock_unlock: mov r4, r8 /* Get the lock. */ - mov #1, r3 + mov #0, r3 + mov #1, r4 #if MUTEX == 0 - XADD (r3, @r4, r2) + CMPXCHG (r3, @r8, r4, r2) #else - XADD (r3, @(MUTEX,r4), r2) + CMPXCHG (r3, @(MUTEX,r8), r4, r2) #endif - tst r2, r2 bf 1f 2: mov.l @(WRITER,r8), r0 |