clarify the purpose of this project
[nyanglibc.git] / debug / fgets_u_chk.shared.s
blob91df6e5c43962535e3f3290e849175c596955f39
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 #NO_APP
7 .p2align 4,,15
8 .globl __fgets_unlocked_chk
9 .type __fgets_unlocked_chk, @function
10 __fgets_unlocked_chk:
11 .LFB68:
12 testl %edx, %edx
13 jle .L7
14 pushq %r13
15 pushq %r12
16 movslq %edx, %rdx
17 pushq %rbp
18 pushq %rbx
19 subq $1, %rdx
20 movq %rcx, %rbx
21 movq %rsi, %r12
22 movq %rdi, %r13
23 subq $8, %rsp
24 movl (%rcx), %eax
25 movl $1, %r8d
26 movl %eax, %ebp
27 andl $-33, %eax
28 andl $32, %ebp
29 cmpq %rsi, %rdx
30 movl %eax, (%rcx)
31 cmova %rsi, %rdx
32 movl $10, %ecx
33 movq %rdi, %rsi
34 movq %rbx, %rdi
35 call __GI__IO_getline
36 movq %rax, %rcx
37 xorl %eax, %eax
38 movl (%rbx), %edx
39 testq %rcx, %rcx
40 je .L4
41 testb $32, %dl
42 je .L5
43 movq __libc_errno@gottpoff(%rip), %rsi
44 xorl %eax, %eax
45 cmpl $11, %fs:(%rsi)
46 je .L5
47 .L4:
48 orl %edx, %ebp
49 movl %ebp, (%rbx)
50 addq $8, %rsp
51 popq %rbx
52 popq %rbp
53 popq %r12
54 popq %r13
55 ret
56 .p2align 4,,10
57 .p2align 3
58 .L5:
59 cmpq %rcx, %r12
60 jbe .L17
61 movb $0, 0(%r13,%rcx)
62 movl (%rbx), %edx
63 movq %r13, %rax
64 orl %edx, %ebp
65 movl %ebp, (%rbx)
66 addq $8, %rsp
67 popq %rbx
68 popq %rbp
69 popq %r12
70 popq %r13
71 ret
72 .p2align 4,,10
73 .p2align 3
74 .L7:
75 xorl %eax, %eax
76 ret
77 .L17:
78 call __GI___chk_fail
79 .LFE68:
80 .size __fgets_unlocked_chk, .-__fgets_unlocked_chk