about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S14
1 files changed, 7 insertions, 7 deletions
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 a581c127b2..404bb4ff85 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
@@ -56,20 +56,20 @@ __pthread_cond_signal:
 	testl	%eax, %eax
 	jne	1f
 
-2:	movl	total_seq+4(%ebx), %eax
-	movl	total_seq(%ebx), %ecx
-	cmpl	wakeup_seq+4(%ebx), %eax
+2:	addl	$wakeup_seq, %ebx
+	movl	total_seq+4-wakeup_seq(%ebx), %eax
+	movl	total_seq-wakeup_seq(%ebx), %ecx
+	cmpl	4(%ebx), %eax
 	ja	3f
 	jb	4f
-	cmpl	wakeup_seq(%ebx), %ecx
+	cmpl	(%ebx), %ecx
 	jbe	4f
 
 	/* Bump the wakeup number.  */
-3:	addl	$1, wakeup_seq(%ebx)
-	adcl	$0, wakeup_seq+4(%ebx)
+3:	addl	$1, (%ebx)
+	adcl	$0, 4(%ebx)
 
 	/* Wake up one thread.  */
-	addl	$wakeup_seq, %ebx
 	movl	$FUTEX_WAKE, %ecx
 	xorl	%esi, %esi
 	movl	$SYS_futex, %eax