about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/x86_64
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-17 01:53:39 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-17 01:53:39 +0000
commit25d025ce77452fa37ffda90de8ccd774d0924dab (patch)
tree69d2d71df6af4c91d7fe58e110960a37684f4e53 /nptl/sysdeps/unix/sysv/linux/x86_64
parentb6e2f87a61dd5af7088aab32cd8377c55925354c (diff)
downloadglibc-25d025ce77452fa37ffda90de8ccd774d0924dab.tar.gz
glibc-25d025ce77452fa37ffda90de8ccd774d0924dab.tar.xz
glibc-25d025ce77452fa37ffda90de8ccd774d0924dab.zip
(__lll_lock_wait): Remove jump prediction suffix.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S14
3 files changed, 10 insertions, 8 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
index 755bb25896..aff449b13a 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
@@ -58,7 +58,7 @@ __lll_lock_wait:
 	orl	$-1, %esi	/* Load -1.  */
 	LOCK
 	xaddl	%esi, (%rdi)
-	jne,pn	1b
+	jne	1b
 
 	movl	$-1, (%rdi)
 
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index ef3867bfb9..7d5df9521a 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -92,7 +92,7 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
 		       "jmp 2f\n\t"					      \
 		       ".previous\n"					      \
 		       "2:"						      \
-		       : "=S" (result), "=&D" (ignore1), "=&a" (ignore2),     \
+		       : "=a" (result), "=&D" (ignore1), "=&S" (ignore2),     \
 			 "=&d" (ignore3), "=m" (futex)			      \
 		       : "0" (1), "4" (futex), "m" (timeout)		      \
 		       : "memory", "cx", "cc", "r10");			      \
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
index e189dc1266..1b2731a29e 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
@@ -87,10 +87,11 @@ __lll_mutex_timedlock_wait:
 
 	movq	%rdi, %r12
 	movq	%rdx, %r13
-	leaq	1(%rsi), %r14
+
+1:	leaq	1(%rax), %r14
 
 	/* Get current time.  */
-1:	movq	%rsp, %rdi
+	movq	%rsp, %rdi
 	xorq	%rsi, %rsi
 	movq	$VSYSCALL_ADDR_vgettimeofday, %rax
 	/* This is a regular function call, all calleer-save registers
@@ -121,11 +122,12 @@ __lll_mutex_timedlock_wait:
 	movq	%r12, %rdi
 	movq	$SYS_futex, %rax
 	syscall
+	movq	%rax, %rcx
 
-	movl	$1, %r14d
+	movl	$1, %eax
 	LOCK
-	xaddl	%r14d, (%rdi)
-	testl	%r14d, %r14d
+	xaddl	%eax, (%rdi)
+	testl	%eax, %eax
 	jne	7f
 
 	movl	$2, (%rdi)
@@ -138,7 +140,7 @@ __lll_mutex_timedlock_wait:
 	retq
 
 	/* Check whether the time expired.  */
-7:	cmpq	$-ETIMEDOUT, %rax
+7:	cmpq	$-ETIMEDOUT, %rcx
 	je	5f
 	jmp	1b