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/libc-lowlevellock.S | |
parent | 85c54a327d4c05381603eb49792afa5ad5dbe46c (diff) | |
download | glibc-bd8bb78ba24ecd14b648dbf7f001a8afa9d5ede5.tar.gz glibc-bd8bb78ba24ecd14b648dbf7f001a8afa9d5ede5.tar.xz glibc-bd8bb78ba24ecd14b648dbf7f001a8afa9d5ede5.zip |
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/libc-lowlevellock.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S | 72 |
1 files changed, 2 insertions, 70 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S index 34840092ed..de0df72d78 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S @@ -69,8 +69,8 @@ __lll_lock_wait: .globl __lll_unlock_wake .type __lll_unlock_wake,@function .hidden __lll_unlock_wake + .align 16 __lll_unlock_wake: - pushl %esi pushl %ebx pushl %ecx pushl %edx @@ -78,80 +78,12 @@ __lll_unlock_wake: movl %eax, %ebx 1: movl $FUTEX_WAKE, %ecx movl $1, %edx /* Wake one thread. */ - xorl %esi, %esi - movl %edx, (%ebx) /* Stores '$1'. */ movl $SYS_futex, %eax + movl %edx, (%ebx) /* Stores '$1'. */ ENTER_KERNEL popl %edx popl %ecx popl %ebx - popl %esi ret .size __lll_unlock_wake,.-__lll_unlock_wake - - - .globl __lll_timedwait_tid - .type __lll_timedwait_tid,@function - .hidden __lll_timedwait_tid -__lll_timedwait_tid: - pushl %edi - pushl %esi - pushl %ebx - pushl %ebp - - movl %eax, %ebp - movl %edx, %edi - subl $8, %esp - - /* Get current time. */ -2: movl %esp, %ebx - xorl %ecx, %ecx - movl $SYS_gettimeofday, %eax - ENTER_KERNEL - - /* Compute relative timeout. */ - movl 4(%esp), %eax - movl $1000, %edx - mul %edx /* Milli seconds to nano seconds. */ - movl (%edi), %ecx - movl 4(%edi), %edx - subl (%esp), %ecx - subl %eax, %edx - jns 5f - addl $1000000000, %edx - decl %ecx -5: testl %ecx, %ecx - js 6f /* Time is already up. */ - - movl %ecx, (%esp) /* Store relative timeout. */ - movl %edx, 4(%esp) - - movl (%ebp), %edx - testl %edx, %edx - jz 4f - - movl %esp, %esi - xorl %ecx, %ecx /* movl $FUTEX_WAIT, %ecx */ - movl %ebp, %ebx - movl $SYS_futex, %eax - ENTER_KERNEL - - movl %eax, %edx - - cmpl $0, (%ebx) - jne 1f -4: xorl %eax, %eax - -3: addl $8, %esp - popl %ebp - popl %ebx - popl %esi - popl %edi - ret - -1: cmpl $-ETIMEDOUT, %edx - jne 2b -6: movl $ETIMEDOUT, %eax - jmp 3b - .size __lll_timedwait_tid,.-__lll_timedwait_tid |