diff --git a/nptl/ChangeLog b/nptl/ChangeLog index c75be9a91a..a10c6c12ec 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,9 @@ 2004-03-23 Ulrich Drepper + * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S + (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the + vgettimeofday call miht destroy the content. + * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint @pause in the loop. diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S index 2c918d7622..cf3dad18fb 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S @@ -78,6 +78,8 @@ __lll_mutex_timedlock_wait: cmpq $1000000000, 8(%rdx) jae 3f + pushq %r8 + pushq %r9 pushq %r12 pushq %r13 pushq %r14 @@ -142,6 +144,8 @@ __lll_mutex_timedlock_wait: popq %r14 popq %r13 popq %r12 + popq %r9 + popq %r8 retq /* Check whether the time expired. */