about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S22
1 files changed, 10 insertions, 12 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S
index e5e064b3a5..7924e87594 100644
--- a/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S
@@ -21,13 +21,10 @@
 #include <pthread-errnos.h>
 #include <tcb-offsets.h>
 #include <structsem.h>
+#include <lowlevellock.h>
 #include "lowlevel-atomic.h"
 
 
-#define SYS_gettimeofday	__NR_gettimeofday
-#define SYS_futex		240
-#define FUTEX_WAIT		0
-
 #if VALUE != 0
 # error "code needs to be rewritten for VALUE != 0"
 #endif
@@ -81,7 +78,7 @@ sem_timedwait:
 	/* Compute relative timeout.  */
 	mov	r15, r4
 	mov	#0, r5
-	mov	#SYS_gettimeofday, r3
+	mov	#__NR_gettimeofday, r3
 	trapa	#0x12
 	SYSCALL_INST_PAD
 
@@ -180,15 +177,19 @@ sem_timedwait:
 	mov.l	.Lerrno2, r0
 	stc	gbr, r1
 	mov.l	@(r0, r12), r0
-	add	r1, r0
-	mov.l	r10, @r0
+	bra	.Lexit
+	 add	r1, r0
+	.align	2
+.Lerrno2:
+ 	.long	errno@GOTTPOFF
+.Lexit:
 #else
 	mov.l	.Lerrloc2, r1
 	bsrf	r1
 	 nop
 .Lerrloc2b:
-	mov.l	r10, @r0
 #endif
+	mov.l	r10, @r0
 	DEC (@(NWAITERS,r8), r2)
 	bra	10b
 	 mov	#-1, r0
@@ -200,10 +201,7 @@ sem_timedwait:
 	.long	1000000000
 .Lgot2:
 	.long	_GLOBAL_OFFSET_TABLE_
-#if USE___THREAD
-.Lerrno2:
-	.long	errno@GOTTPOFF
-#else
+#if !USE___THREAD
 .Lerrloc2:
 	.long	__errno_location@PLT-(.Lerrloc2b-.)
 #endif