clarify the purpose of this project
[nyanglibc.git] / libio / iofputs_u.shared.s
blobcf0192c28b654170e9bfbe9f56a7f1ce936d828d
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 __GI___fputs_unlocked
9 .hidden __GI___fputs_unlocked
10 .type __GI___fputs_unlocked, @function
11 __GI___fputs_unlocked:
12 pushq %r13
13 pushq %r12
14 pushq %rbp
15 pushq %rbx
16 movq %rsi, %rbx
17 movq %rdi, %rbp
18 subq $8, %rsp
19 call __GI_strlen
20 movq %rax, %r12
21 movl 192(%rbx), %eax
22 testl %eax, %eax
23 jne .L2
24 movl $-1, 192(%rbx)
25 .L3:
26 movq 216(%rbx), %r13
27 leaq __start___libc_IO_vtables(%rip), %rdx
28 leaq __stop___libc_IO_vtables(%rip), %rax
29 subq %rdx, %rax
30 movq %r13, %rcx
31 subq %rdx, %rcx
32 cmpq %rcx, %rax
33 jbe .L12
34 .L5:
35 movq %r12, %rdx
36 movq %rbp, %rsi
37 movq %rbx, %rdi
38 call *56(%r13)
39 cmpq %r12, %rax
40 jne .L6
41 movl $1, %eax
42 .L1:
43 addq $8, %rsp
44 popq %rbx
45 popq %rbp
46 popq %r12
47 popq %r13
48 ret
49 .p2align 4,,10
50 .p2align 3
51 .L2:
52 cmpl $-1, %eax
53 je .L3
54 .L6:
55 movl $-1, %eax
56 jmp .L1
57 .p2align 4,,10
58 .p2align 3
59 .L12:
60 call _IO_vtable_check
61 jmp .L5
62 .size __GI___fputs_unlocked, .-__GI___fputs_unlocked
63 .globl __fputs_unlocked
64 .set __fputs_unlocked,__GI___fputs_unlocked
65 .weak __GI_fputs_unlocked
66 .hidden __GI_fputs_unlocked
67 .set __GI_fputs_unlocked,__fputs_unlocked
68 .weak fputs_unlocked
69 .set fputs_unlocked,__GI_fputs_unlocked
70 .hidden _IO_vtable_check
71 .hidden __stop___libc_IO_vtables
72 .hidden __start___libc_IO_vtables