* sysdeps/i386/fpu/ftestexcept.c (fetestexcept): Use short for fnstsw.
authorUlrich Drepper <drepper@redhat.com>
Tue, 22 Jan 2008 18:58:31 +0000 (18:58 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 22 Jan 2008 18:58:31 +0000 (18:58 +0000)
ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
nptl/sysdeps/unix/sysv/linux/sh/sem_post.S
sysdeps/i386/fpu/ftestexcept.c

index 0767bb0..16898b9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/i386/fpu/ftestexcept.c (fetestexcept): Use short for fnstsw.
+
 2008-01-12  Andreas Jaeger  <aj@suse.de>
 
        [BZ #5040]
index 7c88aa5..b1f8948 100644 (file)
@@ -1,3 +1,22 @@
+2008-01-22  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
+
+2008-01-21  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
+       a scratch register.
+       * sysdeps/unix/sysv/linux/sh/lowlevellock.S
+       (__lll_lock_wait_private): Fix typo.
+       * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
+       (pthread_barrier_wait): Likewise.  Adjust XADD use.
+       * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
+       Adjust XADD use.
+       * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
+       (pthread_rwlock_timedrdlock): Return correct return value.
+       * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
+       (pthread_rwlock_timedwrlock): Likewise.  
+
 2008-01-15  Ulrich Drepper  <drepper@redhat.com>
 
        * tst-eintr2.c (do_test): make sure that if mutex_lock in main
index afcf0be..d827917 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005, 2007, 2008
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -143,7 +144,7 @@ __lll_lock_wait_private:
        bf      1b
 
        mov.l   @r15+, r8
-       ret
+       rts
         mov    r2, r0
        cfi_endproc
        .size   __lll_lock_wait_private,.-__lll_lock_wait_private
index c7d7d22..4a6059a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -86,7 +86,7 @@ pthread_barrier_wait:
           initial count unlock the object.  */
        mov     #1, r3
        mov.l   @(INIT_COUNT,r8), r4
-       XADD    (r3, @(LEFT,r8), r2)
+       XADD    (r3, @(LEFT,r8), r2, r5)
        add     #-1, r4
        cmp/eq  r2, r4
        bf      10f
@@ -131,7 +131,7 @@ pthread_barrier_wait:
           initial count unlock the object.  */
        mov     #1, r3
        mov.l   @(INIT_COUNT,r8), r4
-       XADD    (r3, @(LEFT,r8), r2)
+       XADD    (r3, @(LEFT,r8), r2, r5)
        add     #-1, r4
        cmp/eq  r2, r4
        bf      5f
@@ -144,7 +144,7 @@ pthread_barrier_wait:
        mov     #-1, r0         /* == PTHREAD_BARRIER_SERIAL_THREAD */
        lds.l   @r15+, pr
        mov.l   @r15+, r8
-       ret
+       rts
         mov.l  @r15+, r9
 
 1:
index e40771d..743f283 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -232,6 +232,7 @@ pthread_rwlock_timedrdlock:
        .word   TID - TLS_PRE_TCB_SIZE
 
 6:
+       mov     r3, r10
        mov     r8, r4
 #if MUTEX != 0
        add     #MUTEX, r4
@@ -244,7 +245,7 @@ pthread_rwlock_timedrdlock:
         nop
 .Lwake2b:
        bra     7b
-        mov    #0, r3
+        mov    r10, r3
 
 8:
        /* Overflow.  */
@@ -278,6 +279,7 @@ pthread_rwlock_timedrdlock:
         nop
 
 12:
+       mov     r3, r10
        mov     r8, r5
 #if MUTEX != 0
        add     #MUTEX, r5
@@ -290,7 +292,7 @@ pthread_rwlock_timedrdlock:
         mov    r2, r4
 .Lwait3b:
        bra     13b
-        nop
+        mov    r10, r3
 
 16:
        bra     17b
index dfe1379..307494c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -225,6 +225,7 @@ pthread_rwlock_timedwrlock:
        bra     9b
         mov    #EDEADLK, r3
 6:
+       mov     r3, r10
        mov     r8, r4
 #if MUTEX != 0
        add     #MUTEX, r4
@@ -237,7 +238,7 @@ pthread_rwlock_timedwrlock:
         nop
 .Lwake6b:
        bra     7b
-        mov    #0, r3
+        mov    r10, r3
 
 .Ltidoff:
        .word   TID - TLS_PRE_TCB_SIZE
@@ -266,6 +267,7 @@ pthread_rwlock_timedwrlock:
         nop
 
 12:
+       mov     r3, r10
        mov     r8, r5
 #if MUTEX != 0
        add     #MUTEX, r5
@@ -278,7 +280,7 @@ pthread_rwlock_timedwrlock:
         mov    r2, r4
 .Lwait7b:
        bra     13b
-        nop
+        mov    r10, r3
 
 16:
        bra     17b
index a3a7710..4a154fc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
        .type   __new_sem_post,@function
        .align  5
 __new_sem_post:
-       mov     #1, r3
-       XADD (r3, @(VALUE,r4), r2)
+       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
index 9038e04..1979fe1 100644 (file)
@@ -26,7 +26,7 @@
 int
 fetestexcept (int excepts)
 {
-  int temp;
+  short temp;
   int xtemp = 0;
 
   /* Get current exceptions.  */