about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S30
1 files changed, 21 insertions, 9 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
index 35dd607fc1..c7d7d2278d 100644
--- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
+++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
@@ -17,14 +17,10 @@
    02111-1307 USA.  */
 
 #include <sysdep.h>
+#include <lowlevellock.h>
 #include <lowlevelbarrier.h>
 #include "lowlevel-atomic.h"
 
-#define SYS_futex	240
-#define FUTEX_WAIT	0
-#define FUTEX_WAKE	1
-
-
 	.text
 
 	.globl	pthread_barrier_wait
@@ -152,6 +148,10 @@ pthread_barrier_wait:
 	 mov.l	@r15+, r9
 
 1:
+	mov.l	@(PRIVATE,r8), r6
+	mov	#LLL_SHARED, r0
+	extu.b	r0, r0
+	xor	r0, r6
 	mov	r2, r4
 	mov	r8, r5
 	mov.l	.Lwait0, r1
@@ -162,6 +162,10 @@ pthread_barrier_wait:
 	 nop
 
 4:
+	mov.l	@(PRIVATE,r8), r5
+	mov	#LLL_SHARED, r0
+	extu.b	r0, r0
+	xor	r0, r5
 	mov	r8, r4
 	mov.l	.Lwake0, r1
 	bsrf	r1
@@ -172,6 +176,10 @@ pthread_barrier_wait:
 
 6:
 	mov	r6, r9
+	mov.l	@(PRIVATE,r8), r5
+	mov	#LLL_SHARED, r0
+	extu.b	r0, r0
+	xor	r0, r5
 	mov	r8, r4
 	mov.l	.Lwake1, r1
 	bsrf	r1
@@ -182,6 +190,10 @@ pthread_barrier_wait:
 
 9:	
 	mov	r6, r9
+	mov.l	@(PRIVATE,r8), r5
+	mov	#LLL_SHARED, r0
+	extu.b	r0, r0
+	xor	r0, r5
 	mov	r8, r4
 	mov.l	.Lwake2, r1
 	bsrf	r1
@@ -194,11 +206,11 @@ pthread_barrier_wait:
 .Lall:
 	.long	0x7fffffff
 .Lwait0:
-	.long	__lll_mutex_lock_wait-.Lwait0b
+	.long	__lll_lock_wait-.Lwait0b
 .Lwake0:
-	.long	__lll_mutex_unlock_wake-.Lwake0b
+	.long	__lll_unlock_wake-.Lwake0b
 .Lwake1:
-	.long	__lll_mutex_unlock_wake-.Lwake1b
+	.long	__lll_unlock_wake-.Lwake1b
 .Lwake2:
-	.long	__lll_mutex_unlock_wake-.Lwake2b
+	.long	__lll_unlock_wake-.Lwake2b
 	.size	pthread_barrier_wait,.-pthread_barrier_wait