about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-08-22 17:58:04 -0700
committerUlrich Drepper <drepper@redhat.com>2009-08-22 17:58:04 -0700
commitcd16986ee3a4fa92c7e6b3f5a601a635a7cdd21a (patch)
tree2d7e0db615f72fa98a21fe806204e49e0a0c2a04 /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
parent15efafdf07789322219cc8f938ac758f932fe208 (diff)
downloadglibc-cd16986ee3a4fa92c7e6b3f5a601a635a7cdd21a.tar.gz
glibc-cd16986ee3a4fa92c7e6b3f5a601a635a7cdd21a.tar.xz
glibc-cd16986ee3a4fa92c7e6b3f5a601a635a7cdd21a.zip
Rvert accidental checkins.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S89
1 files changed, 0 insertions, 89 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
index 63fc2dfd91..be6b8d8e20 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
@@ -31,94 +31,6 @@
 	.align	16
 __pthread_rwlock_wrlock:
 	cfi_startproc
-	movq	NRW_WORD(%rdi), %rax
-.Lagain:
-	movq	$(NRW_WW_MASK|NRW_WL|NRW_RC_MASK), %rdx
-	testq	%rdx, %rax
-	jnz	.Lwait
-
-	// XXX Probably make AR a don't-care for !WP.  Unconditionally set it
-	movq	$(NRW_AR|NRW_WL), %rdx
-	movq	$NRW_WL, %rcx
-	testq	$NRW_WP, %rax
-	cmovz	%rcx, %rdx
-	orq	%rax, %rdx
-	LOCK
-	cmpxchgq %rdx, NRW_WORD(%rdi)
-	jnz	.Lagain
-
-	movl	%fs:TID, %eax
-	movl	%eax, WRITER(%rdi)
-
-	xorl	%eax, %eax
-	ret
-
-.Lwait:	movq	$NRW_WL, %rcx
-	testq	%rcx, %rax
-	jz	1f
-
-	movl	%fs:TID, %eax
-	cmpl	%eax, WRITER(%rdi)
-	je	.Ldeadlk
-
-1:	leaq	NRW_WORD+4(%rdi), %rdi
-
-	movq	$NRW_WW, %rdx
-	movq	$NRW_WW_MASK, %rcx
-	addq	%rax, %rdx
-	testq	%rcx, %rdx
-	jz	.Lovfl
-
-	LOCK
-	cmpxchgq  %rdx, -4(%rdi)
-	jnz	.Lagain
-
-	xorq	%r10, %r10
-	movl	$NRW_W_WAKEUP, %r9d
-.Lwait2:
-	movl	$(FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG), %esi
-	movl	$__NR_futex, %eax
-	xorl	PSHARED-(NRW_WORD+4)(%rdi), %esi
-	syscall
-	movq	-4(%rdi), %rax
-
-.Lagain2:
-	movq	$(NRW_WL|NRW_RC_MASK), %rdx
-	movq	$(NRW_WL|NRW_AR), %rcx
-	testq	%rdx, %rax
-	movq	$NRW_AR, %rsi
-	setz	%cl
-	andq	%rax, %rcx
-	cmpq	%rsi, %rcx
-	sete	%cl
-	orb	%dl, %cl
-	jz	.Lwait2
-
-	movq	$-NRW_WW, %rdx
-	addq	%rax, %rdx
-	xorl	%ecx, %ecx
-	testq	$NRW_WP, %rax
-	cmovz	%rcx, %rsi
-	orq	%rsi, %rdx
-
-	LOCK
-	cmpxchgq %rdx, -4(%rdi)
-	jnz	.Lagain2
-
-	movl	%fs:TID, %eax
-	movl	%eax, WRITER(%rdi)
-
-	xorl	%eax, %eax
-	ret
-
-.Lovfl:	movl	$EAGAIN, %eax
-	ret
-
-.Ldeadlk:
-	movl	$EDEADLK, %eax
-	ret
-
-#if 0
 	xorq	%r10, %r10
 
 	/* Get the lock.  */
@@ -244,7 +156,6 @@ __pthread_rwlock_wrlock:
 	subq	$MUTEX, %rdi
 #endif
 	jmp	13b
-#endif
 	cfi_endproc
 	.size	__pthread_rwlock_wrlock,.-__pthread_rwlock_wrlock