diff options
-rw-r--r-- | libc/sysdeps/linux/x86_64/sched_getcpu.S | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/libc/sysdeps/linux/x86_64/sched_getcpu.S b/libc/sysdeps/linux/x86_64/sched_getcpu.S index 1e0a344c7..3964bf1d3 100644 --- a/libc/sysdeps/linux/x86_64/sched_getcpu.S +++ b/libc/sysdeps/linux/x86_64/sched_getcpu.S @@ -35,26 +35,21 @@ ENTRY (sched_getcpu) movl $VGETCPU_CACHE_OFFSET, %edx addq %fs:0, %rdx -#ifdef SHARED - movq __vdso_getcpu(%rip), %rax - callq *%rax -#else -# ifdef __NR_getcpu +#ifdef __NR_getcpu movl $__NR_getcpu, %eax syscall -# ifndef __ASSUME_GETCPU_SYSCALL +# ifndef __ASSUME_GETCPU_SYSCALL cmpq $-ENOSYS, %rax jne 1f -# endif # endif -# ifndef __ASSUME_GETCPU_SYSCALL +#endif +#ifndef __ASSUME_GETCPU_SYSCALL movq $VSYSCALL_ADDR_vgetcpu, %rax callq *%rax 1: -# else -# ifndef __NR_getcpu -# error "cannot happen" -# endif +#else +# ifndef __NR_getcpu +# error "cannot happen" # endif #endif |