From b17203463dc96148641c00fd5eda93fef95475c8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 9 Jun 2003 07:39:03 +0000 Subject: [PATCH] Update. 2003-06-09 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0. --- nptl/ChangeLog | 5 +++++ .../unix/sysv/linux/i386/i486/pthread_cond_signal.S | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 5a59e9a029..cd451c83c3 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2003-06-09 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S + (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0. + 2003-06-08 Ulrich Drepper * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S index 4b4fc051cb..c89851d373 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S @@ -65,6 +65,9 @@ __pthread_cond_signal: movl total_seq+4(%edi), %eax movl total_seq(%edi), %ecx cmpl 4(%ebx), %eax +#if cond_lock != 0 + leal cond_lock(%edi), %edi +#endif ja 3f jb 4f cmpl (%ebx), %ecx @@ -90,13 +93,10 @@ __pthread_cond_signal: testl %eax, %eax jne 5f - /* Unlock. */ + /* Unlock. Note that at this point %edi always points to + cond_lock. */ 4: LOCK -#if cond_lock == 0 subl $1, (%edi) -#else - subl $1, cond_lock(%edi) -#endif jne 5f 6: xorl %eax, %eax