mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 16:21:06 +00:00
Minor optimizations and cleanups of x86 cond_broadcast.
This commit is contained in:
parent
dd7106b3c6
commit
dfedb126d6
@ -1,3 +1,8 @@
|
|||||||
|
2009-11-18 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Minor
|
||||||
|
optimizations and cleanups.
|
||||||
|
|
||||||
2009-11-18 Dinakar Guniguntala <dino@in.ibm.com>
|
2009-11-18 Dinakar Guniguntala <dino@in.ibm.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
|
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
|
/* Copyright (C) 2002,2003,2004,2006,2007,2009 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||||
|
|
||||||
@ -138,13 +138,6 @@ __pthread_cond_broadcast:
|
|||||||
|
|
||||||
cfi_restore_state
|
cfi_restore_state
|
||||||
|
|
||||||
.align 16
|
|
||||||
/* Unlock. */
|
|
||||||
4: LOCK
|
|
||||||
subl $1, cond_lock-cond_futex(%ebx)
|
|
||||||
jne 5f
|
|
||||||
jmp 6b
|
|
||||||
|
|
||||||
/* Initial locking failed. */
|
/* Initial locking failed. */
|
||||||
1:
|
1:
|
||||||
#if cond_lock == 0
|
#if cond_lock == 0
|
||||||
@ -165,7 +158,13 @@ __pthread_cond_broadcast:
|
|||||||
call __lll_lock_wait
|
call __lll_lock_wait
|
||||||
jmp 2b
|
jmp 2b
|
||||||
|
|
||||||
/* Unlock in loop requires waekup. */
|
.align 16
|
||||||
|
/* Unlock. */
|
||||||
|
4: LOCK
|
||||||
|
subl $1, cond_lock-cond_futex(%ebx)
|
||||||
|
je 6b
|
||||||
|
|
||||||
|
/* Unlock in loop requires wakeup. */
|
||||||
5: leal cond_lock-cond_futex(%ebx), %eax
|
5: leal cond_lock-cond_futex(%ebx), %eax
|
||||||
#if (LLL_SHARED-LLL_PRIVATE) > 255
|
#if (LLL_SHARED-LLL_PRIVATE) > 255
|
||||||
xorl %ecx, %ecx
|
xorl %ecx, %ecx
|
||||||
@ -180,7 +179,7 @@ __pthread_cond_broadcast:
|
|||||||
call __lll_unlock_wake
|
call __lll_unlock_wake
|
||||||
jmp 6b
|
jmp 6b
|
||||||
|
|
||||||
/* Unlock in loop requires waekup. */
|
/* Unlock in loop requires wakeup. */
|
||||||
7: leal cond_lock-cond_futex(%ebx), %eax
|
7: leal cond_lock-cond_futex(%ebx), %eax
|
||||||
#if (LLL_SHARED-LLL_PRIVATE) > 255
|
#if (LLL_SHARED-LLL_PRIVATE) > 255
|
||||||
xorl %ecx, %ecx
|
xorl %ecx, %ecx
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
|
/* Copyright (C) 2002,2003,2004,2005,2007,2009 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user