This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] SH: NPTL: Fixup sem_timedwait


Hi,

The appended patch is to set errno correctly when sem_timedwait
is timeouted.  It also gets rid of an assembler warning for a too
far offset for conditinal-branch.

Regards,
	kaz
--
2004-10-29  Kaz  Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
	Set ETIMEDOUT to errno when time is up.  Tweak to avoid
	assembler warning.

--- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S	Mon Jul  5 11:14:05 2004
+++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S	Tue Oct 26 08:01:38 2004
@@ -42,8 +42,10 @@ sem_timedwait:
 	mov	#0xf9, r1
 	and	r1, r0
 	cmp/eq	#8, r0
-	bt	10f
-
+	bf	0f
+	bra	10f
+	 stc	gbr, r0
+0:
 	mov.l	@r4, r0
 2:
 	tst	r0, r0
@@ -115,7 +117,8 @@ sem_timedwait:
 	add	#-1, r2
 5:
 	cmp/pz	r2
-	bf	6f		/* Time is already up.  */
+	bf/s	6f		/* Time is already up.  */
+	 mov	#ETIMEDOUT, r0
 
 	/* Store relative timeout.  */
 	mov.l	r2, @r15
@@ -196,7 +199,6 @@ sem_timedwait:
 
 10:
 	/* Canceled.  */
-	stc	gbr, r0
 	mov.w	.Lresult, r1
 	mov	#-1, r2
 	mov.l	r2, @(r0,r1)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]