clarify the purpose of this project
[nyanglibc.git] / libio / iofgets_u.s
blob02617c56e55063738cb5995bff762cb6662808fa
1 .text
2 .p2align 4,,15
3 .globl __fgets_unlocked
4 .hidden __fgets_unlocked
5 .type __fgets_unlocked, @function
6 __fgets_unlocked:
7 testl %esi, %esi
8 jle .L7
9 cmpl $1, %esi
10 je .L16
11 pushq %r12
12 pushq %rbp
13 subl $1, %esi
14 pushq %rbx
15 movq %rdx, %rbx
16 movl (%rdx), %edx
17 movq %rdi, %r12
18 movl $1, %r8d
19 movl $10, %ecx
20 movl %edx, %ebp
21 andl $-33, %edx
22 movl %edx, (%rbx)
23 movslq %esi, %rdx
24 movq %rdi, %rsi
25 movq %rbx, %rdi
26 andl $32, %ebp
27 call _IO_getline
28 xorl %edi, %edi
29 testq %rax, %rax
30 movl (%rbx), %edx
31 je .L5
32 testb $32, %dl
33 je .L6
34 movq __libc_errno@gottpoff(%rip), %rcx
35 xorl %edi, %edi
36 cmpl $11, %fs:(%rcx)
37 je .L6
38 .L5:
39 orl %edx, %ebp
40 movq %rdi, %rax
41 movl %ebp, (%rbx)
42 popq %rbx
43 popq %rbp
44 popq %r12
45 ret
46 .p2align 4,,10
47 .p2align 3
48 .L6:
49 movb $0, (%r12,%rax)
50 movl (%rbx), %edx
51 movq %r12, %rdi
52 movq %rdi, %rax
53 orl %edx, %ebp
54 movl %ebp, (%rbx)
55 popq %rbx
56 popq %rbp
57 popq %r12
58 ret
59 .p2align 4,,10
60 .p2align 3
61 .L16:
62 movb $0, (%rdi)
63 .L13:
64 movq %rdi, %rax
65 ret
66 .p2align 4,,10
67 .p2align 3
68 .L7:
69 xorl %edi, %edi
70 jmp .L13
71 .size __fgets_unlocked, .-__fgets_unlocked
72 .weak fgets_unlocked
73 .hidden fgets_unlocked
74 .set fgets_unlocked,__fgets_unlocked
75 .hidden _IO_getline