Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 23 Feb 2003 07:20:34 +0000 (07:20 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 23 Feb 2003 07:20:34 +0000 (07:20 +0000)
* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
off 3 more bytes by using offset-less instructions when possible.

nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S

index 7727fdf..7515861 100644 (file)
@@ -1,5 +1,8 @@
 2003-02-22  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
+       off 3 more bytes by using offset-less instructions when possible.
+
        * Makefile: Add dependency for $(objpfx)version.d.
 
        * eintr.c (eintr_source): Add unnecessary return but the compiler
index b77c342..7c27b94 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -59,7 +59,11 @@ pthread_barrier_wait:
        je      3f
 
        /* There are more threads to come.  */
+#if CURR_EVENT == 0
+       movl    (%ebx), %edx
+#else
        movl    CURR_EVENT(%ebx), %edx
+#endif
 
        /* Release the mutex.  */
        LOCK
@@ -75,7 +79,11 @@ pthread_barrier_wait:
        /* Don't return on spurious wakeups.  The syscall does not change
           any register except %eax so there is no need to reload any of
           them.  */
+#if CURR_EVENT == 0
+       cmpl    %edx, (%ebx)
+#else
        cmpl    %edx, CURR_EVENT(%ebx)
+#endif
        je,pn   8b
 
        /* Note: %esi is still zero.  */
@@ -88,7 +96,11 @@ pthread_barrier_wait:
        /* The necessary number of threads arrived.  */
 3:     movl    INIT_COUNT(%ebx), %eax
        movl    %eax, LEFT(%ebx)
+#if CURR_EVENT == 0
+       incl    (%ebx)
+#else
        incl    CURR_EVENT(%ebx)
+#endif
 
        /* Wake up all waiters.  The count is a signed number in the kernel
           so 0x7fffffff is the highest value.  */