From fb84593c439da7998f29777525b4ad49d379b2a1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 20 Aug 2007 22:36:43 +0000 Subject: * csu/libc-start.c: Don't handle VDSO_SETUP here. * sysdeps/unix/sysv/linux/init-first.c: Handle it here instead. * sysdeps/unix/sysv/linux/x86_64/libc-start.c: Renamed to... * sysdeps/unix/sysv/linux/x86_64/init-first.c: ...this. New file. * sysdeps/unix/sysv/linux/powerpc/libc-start.c: Move VDSO_SETUP code to... * sysdeps/unix/sysv/linux/x86_64/init-first.c: ...here. New file. --- nptl/ChangeLog | 5 +++++ nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'nptl') diff --git a/nptl/ChangeLog b/nptl/ChangeLog index f130a7c..3063248 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2007-08-20 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S + (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible. + 2007-08-16 Jakub Jelinek * sysdeps/unix/sysv/linux/alpha/lowlevellock.h diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S index a5de670..d730a7e 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S @@ -134,8 +134,15 @@ __pthread_cond_timedwait: /* Only clocks 0 and 1 are allowed so far. Both are handled in the kernel. */ leaq 24(%rsp), %rsi - movl $__NR_clock_gettime, %eax + movq __vdso_clock_gettime@GOTPCREL(%rip), %rax + movq (%rax), %rax + PTR_DEMANGLE (%rax) + jz 26f + call *%rax + jmp 27f +26: movl $__NR_clock_gettime, %eax syscall +27: # ifndef __ASSUME_POSIX_TIMERS cmpq $-ENOSYS, %rax je 19f -- cgit v1.1