diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-01 09:45:23 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-01 09:45:23 +0000 |
commit | bd8bb78ba24ecd14b648dbf7f001a8afa9d5ede5 (patch) | |
tree | 4ede4b546342198dd0869b7814967725445a7f6c /nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S | |
parent | 85c54a327d4c05381603eb49792afa5ad5dbe46c (diff) |
Update.
2003-03-01 Ulrich Drepper <drepper@redhat.com>
* descr.h (struct pthread): Move tid field to the front now that
it is often used.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
(__lll_mutex_timedlock_wait): Remove.
(__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
(__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
(lll_unlock_wake_cb): Don't save and restore %esi.
(__lll_unlock_wake): Add alignment. Don't save, load, and restore
%esi.
(__lll_timedwait_tid): Add alignment.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
(__lll_unlock_wake): Add alignment. Don't save, load, and restore
%esi.
(__lll_timedwait_tid): Removed.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
(__pthread_cond_broadcast): Don't save, load, and restore %esi.
* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
(pthread_barrier_wait): Don't save, load, and restore %esi for
last thread.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
(__pthread_cond_signal): Don't save, load, and restore %esi.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
(__pthread_rwlock_unlock): Don't save, load, and restore %esi.
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
Don't save, load, and restore %esi.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S index 8348f6e017..d36bc7e1b2 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S @@ -41,11 +41,9 @@ .type pthread_barrier_wait,@function .align 16 pthread_barrier_wait: - pushl %esi pushl %ebx - movl 12(%esp), %ebx - xorl %esi, %esi + movl 8(%esp), %ebx /* Get the mutex. */ orl $-1, %eax @@ -59,6 +57,8 @@ pthread_barrier_wait: je 3f /* There are more threads to come. */ + pushl %esi + #if CURR_EVENT == 0 movl (%ebx), %edx #else @@ -72,7 +72,8 @@ pthread_barrier_wait: /* Wait for the remaining threads. The call will return immediately if the CURR_EVENT memory has meanwhile been changed. */ -7: movl %esi, %ecx /* movl $FUTEX_WAIT, %ecx */ +7: xorl %ecx, %ecx /* movl $FUTEX_WAIT, %ecx */ + xorl %esi, %esi 8: movl $SYS_futex, %eax ENTER_KERNEL @@ -89,8 +90,8 @@ pthread_barrier_wait: /* Note: %esi is still zero. */ movl %esi, %eax /* != PTHREAD_BARRIER_SERIAL_THREAD */ - popl %ebx popl %esi + popl %ebx ret /* The necessary number of threads arrived. */ @@ -119,7 +120,6 @@ pthread_barrier_wait: 5: orl $-1, %eax /* == PTHREAD_BARRIER_SERIAL_THREAD */ popl %ebx - popl %esi ret 1: leal MUTEX(%ebx), %ecx |