clarify the purpose of this project
[nyanglibc.git] / libio / iovdprintf.shared.s
blob94d18a69336cc48d6e84d8f91b858b66519195e1
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 __vdprintf_internal
9 .hidden __vdprintf_internal
10 .type __vdprintf_internal, @function
11 __vdprintf_internal:
12 pushq %r14
13 pushq %r13
14 leaq __GI__IO_wfile_jumps(%rip), %r8
15 pushq %r12
16 pushq %rbp
17 movl %ecx, %r13d
18 pushq %rbx
19 movl %edi, %r14d
20 movq %rsi, %rbp
21 movq %rdx, %r12
22 movl $32768, %esi
23 xorl %edx, %edx
24 subq $464, %rsp
25 leaq 224(%rsp), %rcx
26 movq %rsp, %rbx
27 movq $0, 136(%rsp)
28 movq %rbx, %rdi
29 call _IO_no_init@PLT
30 leaq __GI__IO_file_jumps(%rip), %rax
31 movq %rbx, %rdi
32 movq %rax, 216(%rsp)
33 call _IO_new_file_init_internal
34 movl %r14d, %esi
35 movq %rbx, %rdi
36 call __GI__IO_file_attach
37 testq %rax, %rax
38 je .L17
39 movl (%rsp), %eax
40 movq %rbp, %rsi
41 movl %r13d, %ecx
42 movq %r12, %rdx
43 movq %rbx, %rdi
44 andl $-4109, %eax
45 orl $68, %eax
46 movl %eax, (%rsp)
47 call __vfprintf_internal
48 cmpl $-1, %eax
49 movl %eax, %ebp
50 je .L4
51 movl 192(%rsp), %eax
52 testl %eax, %eax
53 jle .L18
54 movq 160(%rsp), %rax
55 movq %rbx, %rdi
56 movq 24(%rax), %rsi
57 movq 32(%rax), %rdx
58 subq %rsi, %rdx
59 sarq $2, %rdx
60 call __GI__IO_wdo_write
61 cmpl $-1, %eax
62 sete %al
63 .L6:
64 testb %al, %al
65 je .L7
66 .L4:
67 movl $-1, %ebp
68 .L7:
69 movq 216(%rsp), %r12
70 leaq __start___libc_IO_vtables(%rip), %rdx
71 leaq __stop___libc_IO_vtables(%rip), %rax
72 subq %rdx, %rax
73 movq %r12, %rcx
74 subq %rdx, %rcx
75 cmpq %rcx, %rax
76 jbe .L19
77 .L8:
78 xorl %esi, %esi
79 movq %rbx, %rdi
80 call *16(%r12)
81 .L1:
82 addq $464, %rsp
83 movl %ebp, %eax
84 popq %rbx
85 popq %rbp
86 popq %r12
87 popq %r13
88 popq %r14
89 ret
90 .p2align 4,,10
91 .p2align 3
92 .L18:
93 movq 32(%rsp), %rsi
94 movq 40(%rsp), %rdx
95 movq %rbx, %rdi
96 subq %rsi, %rdx
97 call __GI__IO_do_write
98 cmpl $-1, %eax
99 sete %al
100 jmp .L6
101 .p2align 4,,10
102 .p2align 3
103 .L19:
104 call _IO_vtable_check
105 jmp .L8
106 .L17:
107 movq %rbx, %rdi
108 movl $-1, %ebp
109 call __GI__IO_un_link
110 jmp .L1
111 .size __vdprintf_internal, .-__vdprintf_internal
112 .p2align 4,,15
113 .globl __vdprintf
114 .type __vdprintf, @function
115 __vdprintf:
116 xorl %ecx, %ecx
117 jmp __vdprintf_internal
118 .size __vdprintf, .-__vdprintf
119 .weak vdprintf
120 .set vdprintf,__vdprintf
121 .hidden _IO_vtable_check
122 .hidden __stop___libc_IO_vtables
123 .hidden __start___libc_IO_vtables
124 .hidden __vfprintf_internal
125 .hidden _IO_new_file_init_internal