From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20778 invoked by alias); 21 Jan 2008 23:46:14 -0000 Received: (qmail 20762 invoked by uid 22791); 21 Jan 2008 23:46:13 -0000 X-Spam-Check-By: sourceware.org Received: from mo10.iij4u.or.jp (HELO mo10.iij4u.or.jp) (210.138.174.78) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 21 Jan 2008 23:45:50 +0000 Received: by mo.iij4u.or.jp (mo10) id m0LNjleK008582; Tue, 22 Jan 2008 08:45:47 +0900 Received: from localhost (238.152.138.210.bn.2iij.net [210.138.152.238]) by mbox.iij4u.or.jp (mbox10) id m0LNjl6s030088; Tue, 22 Jan 2008 08:45:47 +0900 Date: Mon, 21 Jan 2008 23:46:00 -0000 Message-Id: <20080122.084546.104036843.kkojima@rr.iij4u.or.jp> To: libc-hacker@sources.redhat.com Subject: [PATCH] SH nptl tidyup From: Kaz Kojima X-Mailer: Mew version 3.3 on Emacs 21.4 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mailing-List: contact libc-hacker-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sourceware.org X-SW-Source: 2008-01/txt/msg00006.txt.bz2 Hi, Here is another nptl patch for SH to sync with the recent change of sem_post. Regards, kaz - 2008-01-22 Kaz Kojima * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field. --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S 2007-08-04 09:57:14.000000000 +0900 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S 2008-01-22 08:27:18.000000000 +0900 @@ -30,8 +30,16 @@ .type __new_sem_post,@function .align 5 __new_sem_post: - mov #1, r3 - XADD (r3, @(VALUE,r4), r2, r5) + mov.l @(VALUE,r4), r2 +0: + mov.l .Lmax, r1 + cmp/eq r1, r2 + bt/s 3f + mov r2, r3 + mov r3, r5 + add #1, r5 + CMPXCHG (r3, @(VALUE,r4), r5, r2) + bf 0b mov.l @(NWAITERS,r4), r2 tst r2, r2 bt 2f @@ -52,7 +60,15 @@ __new_sem_post: mov #0, r0 1: - mov #EINVAL, r2 + bra 4f + mov #EINVAL, r2 + +3: + mov #EOVERFLOW, r2 +4: + mov.l r12, @-r15 + mov.l r8, @-r15 + sts.l pr, @-r15 mova .Lgot3, r0 mov.l .Lgot3, r12 add r0, r12 @@ -67,19 +83,24 @@ __new_sem_post: .Lerrno3: .long errno@GOTTPOFF .Lexit: + mov.l r2, @r0 #else + mov r2, r8 mov.l .Lerrloc3, r1 bsrf r1 nop .Lerrloc3b: + mov r8, @r0 #endif - mov.l r2, @r0 lds.l @r15+, pr + mov.l @r15+, r8 mov.l @r15+, r12 rts mov #-1, r0 .align 2 +.Lmax: + .long SEM_VALUE_MAX .Lgot3: .long _GLOBAL_OFFSET_TABLE_ #if !USE___THREAD