clarify the purpose of this project
[nyanglibc.git] / nptl / ftrylockfile.shared.s
blobc1079bde6c4d29bf691beab726cb73a006068bc9
1 .text
2 .p2align 4,,15
3 .globl __ftrylockfile
4 .type __ftrylockfile, @function
5 __ftrylockfile:
6 movq 136(%rdi), %rdx
7 movq %fs:16, %rcx
8 cmpq %rcx, 8(%rdx)
9 je .L2
10 xorl %eax, %eax
11 movl $1, %esi
12 lock cmpxchgl %esi, (%rdx)
13 jne .L4
14 movq 136(%rdi), %rax
15 movq %rcx, 8(%rax)
16 movl $1, 4(%rax)
17 xorl %eax, %eax
18 ret
19 .p2align 4,,10
20 .p2align 3
21 .L2:
22 addl $1, 4(%rdx)
23 xorl %eax, %eax
24 ret
25 .p2align 4,,10
26 .p2align 3
27 .L4:
28 movl $16, %eax
29 ret
30 .size __ftrylockfile, .-__ftrylockfile
31 .weak ftrylockfile
32 .set ftrylockfile,__ftrylockfile
33 .globl _IO_ftrylockfile
34 .set _IO_ftrylockfile,__ftrylockfile