2003-01-01 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
unnecessary zero offset when addressing MUTEX.
+2003-01-01 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
+ unnecessary zero offset when addressing MUTEX.
+
2002-12-31 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
/* Get the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%ebx)
+#else
xaddl %eax, MUTEX(%ebx)
+#endif
testl %eax, %eax
jne 1f
je 4f
LOCK
+#if MUTEX == 0
+ decl (%ebx)
+#else
decl MUTEX(%ebx)
+#endif
jne 10f
11: addl $READERS_WAKEUP-MUTEX, %ebx
/* Reget the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%ebx)
+#else
xaddl %eax, MUTEX(%ebx)
+#endif
testl %eax, %eax
jne 12f
incl NR_READERS(%ebx)
je 8f
9: LOCK
+#if MUTEX == 0
+ decl (%ebx)
+#else
decl MUTEX(%ebx)
+#endif
jne 6f
7:
/* Get the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%ebp)
+#else
xaddl %eax, MUTEX(%ebp)
+#endif
testl %eax, %eax
jne 1f
je 4f
LOCK
+#if MUTEX == 0
+ decl (%ebp)
+#else
decl MUTEX(%ebp)
+#endif
jne 10f
/* Get current time. */
/* Reget the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%ebp)
+#else
xaddl %eax, MUTEX(%ebp)
+#endif
testl %eax, %eax
jne 12f
incl NR_READERS(%ebp)
je 8f
9: LOCK
+#if MUTEX == 0
+ decl (%ebp)
+#else
decl MUTEX(%ebp)
+#endif
jne 6f
7: movl %ecx, %eax
/* Get the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%ebx)
+#else
xaddl %eax, MUTEX(%ebx)
+#endif
testl %eax, %eax
jne 1f
je 4f
LOCK
+#if MUTEX == 0
+ decl (%ebx)
+#else
decl MUTEX(%ebx)
+#endif
jne 10f
11: addl $WRITERS_WAKEUP-MUTEX, %ebx
/* Reget the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%ebx)
+#else
xaddl %eax, MUTEX(%ebx)
+#endif
testl %eax, %eax
jne 12f
movl %gs:8, %eax
movl %eax, WRITER(%ebx)
9: LOCK
+#if MUTEX == 0
+ decl (%ebx)
+#else
decl MUTEX(%ebx)
+#endif
jne 6f
7:
/* Get the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%ebp)
+#else
xaddl %eax, MUTEX(%ebp)
+#endif
testl %eax, %eax
jne 1f
je 4f
LOCK
+#if MUTEX == 0
+ decl (%ebp)
+#else
decl MUTEX(%ebp)
+#endif
jne 10f
/* Get current time. */
/* Reget the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%ebp)
+#else
xaddl %eax, MUTEX(%ebp)
+#endif
testl %eax, %eax
jne 12f
movl %gs:8, %eax
movl %eax, WRITER(%ebp)
9: LOCK
+#if MUTEX == 0
+ decl (%ebp)
+#else
decl MUTEX(%ebp)
+#endif
jne 6f
7: movl %ecx, %eax
/* Get the lock. */
movl $1, %eax
LOCK
+#if MUTEX == 0
+ xaddl %eax, (%edi)
+#else
xaddl %eax, MUTEX(%edi)
+#endif
testl %eax, %eax
jne 1f
ENTER_KERNEL
6: LOCK
+#if MUTEX == 0
+ decl (%edi)
+#else
decl MUTEX(%edi)
+#endif
jne 3f
4: xorl %eax, %eax