clarify the purpose of this project
[nyanglibc.git] / nptl / flockfile.s
blob0efa1c0844cef89a971ad0312b951140473c99b2
1 .text
2 .p2align 4,,15
3 .globl __flockfile
4 .type __flockfile, @function
5 __flockfile:
6 pushq %rbp
7 pushq %rbx
8 subq $8, %rsp
9 movq 136(%rdi), %rdx
10 orl $128, 116(%rdi)
11 movq %fs:16, %rbp
12 cmpq %rbp, 8(%rdx)
13 je .L2
14 movq %rdi, %rbx
15 xorl %eax, %eax
16 movl $1, %ecx
17 lock cmpxchgl %ecx, (%rdx)
18 jne .L6
19 .L3:
20 movq 136(%rbx), %rdx
21 movq %rbp, 8(%rdx)
22 .L2:
23 addl $1, 4(%rdx)
24 addq $8, %rsp
25 popq %rbx
26 popq %rbp
27 ret
28 .p2align 4,,10
29 .p2align 3
30 .L6:
31 movq %rdx, %rdi
32 call __lll_lock_wait_private@PLT
33 jmp .L3
34 .size __flockfile, .-__flockfile
35 .weak flockfile
36 .set flockfile,__flockfile
37 .globl _IO_flockfile
38 .set _IO_flockfile,__flockfile