clarify the purpose of this project
[nyanglibc.git] / nptl / elision-unlock.s
blob4ad90f417787f490243e95078ab53badb88f8462
1 .text
2 .p2align 4,,15
3 .globl __lll_unlock_elision
4 .type __lll_unlock_elision, @function
5 __lll_unlock_elision:
6 movl (%rdi), %eax
7 testl %eax, %eax
8 je .L5
9 xorl %eax, %eax
10 #APP
11 # 31 "../sysdeps/unix/sysv/linux/x86/elision-unlock.c" 1
12 xchgl %eax, (%rdi)
13 # 0 "" 2
14 #NO_APP
15 cmpl $1, %eax
16 jg .L6
17 .L3:
18 xorl %eax, %eax
19 ret
20 .p2align 4,,10
21 .p2align 3
22 .L5:
23 xend
24 xorl %eax, %eax
25 ret
26 .p2align 4,,10
27 .p2align 3
28 .L6:
29 xorb $-127, %sil
30 xorl %r10d, %r10d
31 movl $1, %edx
32 movl $202, %eax
33 #APP
34 # 31 "../sysdeps/unix/sysv/linux/x86/elision-unlock.c" 1
35 syscall
37 # 0 "" 2
38 #NO_APP
39 jmp .L3
40 .size __lll_unlock_elision, .-__lll_unlock_elision