clarify the purpose of this project
[nyanglibc.git] / posix / sched_getcpu.s
blobc48889e6e638a60f0213ae679588572b32fe5a3b
1 .text
2 .p2align 4,,15
3 .globl sched_getcpu
4 .type sched_getcpu, @function
5 sched_getcpu:
6 pushq %rbx
7 subq $16, %rsp
8 movq _dl_vdso_getcpu(%rip), %rax
9 leaq 12(%rsp), %rbx
10 testq %rax, %rax
11 je .L5
12 xorl %edx, %edx
13 xorl %esi, %esi
14 movq %rbx, %rdi
15 call *%rax
16 movslq %eax, %rdx
17 cmpq $-4096, %rdx
18 ja .L12
19 .L4:
20 cmpl $-1, %edx
21 movl %edx, %eax
22 je .L1
23 movl 12(%rsp), %eax
24 .L1:
25 addq $16, %rsp
26 popq %rbx
27 ret
28 .p2align 4,,10
29 .p2align 3
30 .L12:
31 cmpq $-38, %rdx
32 je .L5
33 .L3:
34 movq __libc_errno@gottpoff(%rip), %rax
35 negl %edx
36 movl %edx, %fs:(%rax)
37 addq $16, %rsp
38 movl $-1, %eax
39 popq %rbx
40 ret
41 .p2align 4,,10
42 .p2align 3
43 .L5:
44 xorl %edx, %edx
45 xorl %esi, %esi
46 movq %rbx, %rdi
47 movl $309, %eax
48 #APP
49 # 29 "../sysdeps/unix/sysv/linux/sched_getcpu.c" 1
50 syscall
52 # 0 "" 2
53 #NO_APP
54 cmpq $-4096, %rax
55 movq %rax, %rdx
56 ja .L3
57 jmp .L4
58 .size sched_getcpu, .-sched_getcpu