about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nptl/ChangeLog8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S1
3 files changed, 15 insertions, 0 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d79e7988fd..d5b5c07cbe 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,11 @@
+2003-07-31  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+	(__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
+	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
+	Define HAVE_CMOV.
+	Patch by Nicholas Miell <nmiell@attbi.com>.
+
 2003-07-30  Jakub Jelinek  <jakub@redhat.com>
 
 	* init.c (__pthread_initialize_minimal_internal): Initialize
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 f09be4403d..f88d2d33bb 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
@@ -226,7 +226,13 @@ __pthread_cond_timedwait:
 
 	/* We return the result of the mutex_lock operation if it failed.  */
 	testl	%eax, %eax
+#ifdef HAVE_CMOV
 	cmovel	%esi, %eax
+#else
+	jne	22f
+	movl	%esi, %eax
+22:
+#endif
 
 18:	popl	%ebx
 .Lpop_ebx:
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S
index c0131555bf..07d481f372 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S
@@ -17,4 +17,5 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#define HAVE_CMOV 1
 #include "../i486/pthread_cond_timedwait.S"