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