about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S6
3 files changed, 9 insertions, 8 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index b85d911e0f..a3f0c94705 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -4,6 +4,11 @@
 
 2003-03-01  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
+	__pthread_cleanup_pop functionality.
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
+
 	* descr.h (struct pthread): Move tid field to the front now that
 	it is often used.
 
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
index b13ad19408..090fecbd43 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
@@ -197,10 +197,8 @@ __pthread_cond_timedwait:
 	jne	10f
 
 	/* Remove cancellation handler.  */
-11:	leal	28(%esp), %edx
-	movl	$0, 4(%esp)
-	movl	%edx, (%esp)
-	call	__pthread_cleanup_pop
+11:	movl	20+CLEANUP_PREV(%esp), %edx
+	movl	%edx, %gs:CLEANUP
 
 	/* Trick ahead:	 8(%esp) contains the address of the mutex.  */
 	addl	$8, %esp
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
index da0483ab1b..5d9248a8a1 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
@@ -218,10 +218,8 @@ __pthread_cond_wait:
 	jne	10f
 
 	/* Remove cancellation handler.  */
-11:	leal	20(%esp), %edx
-	movl	$0, 4(%esp)
-	movl	%edx, (%esp)
-	call	__pthread_cleanup_pop
+11:	movl	20+CLEANUP_PREV(%esp), %edx
+	movl	%edx, %gs:CLEANUP
 
 	/* Trick ahead:	 8(%esp) contains the address of the mutex.  */
 	addl	$8, %esp