From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24738 invoked by alias); 16 Jun 2007 22:08:19 -0000 Received: (qmail 24722 invoked by uid 22791); 16 Jun 2007 22:08:18 -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; Sat, 16 Jun 2007 22:08:15 +0000 Received: by mo.iij4u.or.jp (mo10) id l5GM8DPM002410; Sun, 17 Jun 2007 07:08:13 +0900 Received: from localhost (238.152.138.210.bn.2iij.net [210.138.152.238]) by mbox.iij4u.or.jp (mbox11) id l5GM86Tq003004; Sun, 17 Jun 2007 07:08:11 +0900 Date: Sat, 16 Jun 2007 22:08:00 -0000 Message-Id: <20070617.070718.77323891.kkojima@rr.iij4u.or.jp> To: libc-hacker@sources.redhat.com Subject: Re: [PATCH] Fix SH build From: Kaz Kojima In-Reply-To: <20070610.133139.77259625.kkojima@rr.iij4u.or.jp> References: <20070610.133139.77259625.kkojima@rr.iij4u.or.jp> 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: 2007-06/txt/msg00009.txt.bz2 The attached patch is a follow-up of Fix SH build http://sources.redhat.com/ml/libc-hacker/2007-06/msg00008.html and fixes instructions which are non-existent on SH-3/4. I've missed that mov.b insn has a very limited display on these CPUs. I could fix my kernel problems and now these patches are tested with "make check" on 2.6.22-rc4 kernel with no nptl failures. Uli, could you please approve these patches? Should I send the whole revised patch? Regards, kaz -- 2007-06-17 Kaz Kojima * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction. * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: (__pthread_rwlock_wrlock): Likewise. * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: (pthread_rwlock_timedrdlock): Likewise. * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: (pthread_rwlock_timedwrlock): Likewise. * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: (__pthread_rwlock_unlock): Likewise. diff -uprN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S 2007-06-17 00:00:04.000000000 +0900 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S 2007-06-17 06:34:50.000000000 +0900 @@ -57,7 +57,8 @@ __pthread_rwlock_rdlock: mov.l @(WRITERS_QUEUED,r8), r0 tst r0, r0 bt 5f - mov.b @(FLAGS,r8), r0 + mov #FLAGS, r0 + mov.b @(r0,r8), r0 tst r0, r0 bt 5f 3: @@ -78,12 +79,14 @@ __pthread_rwlock_rdlock: bf 10f 11: #if __ASSUME_PRIVATE_FUTEX - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 mov #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r0 xor r0, r5 extu.b r5, r5 #else - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 extu.b r5, r5 # if FUTEX_WAIT != 0 mov #FUTEX_WAIT, r0 diff -uprN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S 2007-06-17 00:00:04.000000000 +0900 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S 2007-06-17 06:35:28.000000000 +0900 @@ -61,7 +61,8 @@ pthread_rwlock_timedrdlock: mov.l @(WRITERS_QUEUED,r8), r0 tst r0, r0 bt 5f - mov.b @(FLAGS,r8), r0 + mov #FLAGS, r0 + mov.b @(r0,r8), r0 tst r0, r0 bt 5f 3: @@ -120,12 +121,14 @@ pthread_rwlock_timedrdlock: /* Futex call. */ mov r15, r7 #if __ASSUME_PRIVATE_FUTEX - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 mov #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r0 xor r0, r5 extu.b r5, r5 #else - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 extu.b r5, r5 # if FUTEX_WAIT != 0 mov #FUTEX_WAIT, r0 diff -uprN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S 2007-06-17 00:00:04.000000000 +0900 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S 2007-06-16 23:39:19.000000000 +0900 @@ -117,12 +117,14 @@ pthread_rwlock_timedwrlock: /* Futex call. */ mov r15, r7 #if __ASSUME_PRIVATE_FUTEX - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 mov #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r0 xor r0, r5 extu.b r5, r5 #else - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 extu.b r5, r5 # if FUTEX_WAIT != 0 mov #FUTEX_WAIT, r0 diff -uprN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S 2007-06-17 00:00:04.000000000 +0900 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S 2007-06-16 23:39:56.000000000 +0900 @@ -90,12 +90,14 @@ __pthread_rwlock_unlock: 8: #if __ASSUME_PRIVATE_FUTEX - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 mov #(FUTEX_PRIVATE_FLAG|FUTEX_WAKE), r0 xor r0, r5 extu.b r5, r5 #else - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 extu.b r5, r5 mov #FUTEX_WAKE, r0 or r0, r5 diff -uprN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S 2007-06-17 00:00:04.000000000 +0900 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S 2007-06-16 23:34:12.000000000 +0900 @@ -77,12 +77,14 @@ __pthread_rwlock_wrlock: mov r8, r4 add #WRITERS_WAKEUP, r4 #if __ASSUME_PRIVATE_FUTEX - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 mov #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r0 xor r0, r5 extu.b r5, r5 #else - mov.b @(PSHARED,r8), r5 + mov #PSHARED, r0 + mov.b @(r0,r8), r5 extu.b r5, r5 # if FUTEX_WAIT != 0 mov #FUTEX_WAIT, r0