clarify the purpose of this project
[nyanglibc.git] / libio / iowpadn.shared.s
blobc0a78daa1bb2406a786fb7b044151f9ab101b4cd
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 _IO_wpadn
9 .type _IO_wpadn, @function
10 _IO_wpadn:
11 pushq %r15
12 pushq %r14
13 leaq blanks(%rip), %r14
14 pushq %r13
15 pushq %r12
16 pushq %rbp
17 pushq %rbx
18 movq %rdi, %rbp
19 subq $88, %rsp
20 cmpl $32, %esi
21 je .L2
22 cmpl $48, %esi
23 leaq zeroes(%rip), %r14
24 je .L2
25 leaq 16(%rsp), %r14
26 leaq 12(%rsp), %rcx
27 leaq 60(%r14), %rax
28 .p2align 4,,10
29 .p2align 3
30 .L3:
31 movl %esi, (%rax)
32 subq $4, %rax
33 cmpq %rcx, %rax
34 jne .L3
35 .L2:
36 cmpl $15, %edx
37 movl %edx, %r12d
38 jle .L13
39 leaq __start___libc_IO_vtables(%rip), %r13
40 leaq __stop___libc_IO_vtables(%rip), %r15
41 movl %edx, %eax
42 andl $15, %eax
43 xorl %ebx, %ebx
44 subq %r13, %r15
45 movl %eax, 4(%rsp)
46 jmp .L8
47 .p2align 4,,10
48 .p2align 3
49 .L5:
50 movl $16, %edx
51 movq %r14, %rsi
52 movq %rbp, %rdi
53 call *56(%rax)
54 addq %rax, %rbx
55 cmpq $16, %rax
56 jne .L1
57 subl $16, %r12d
58 cmpl 4(%rsp), %r12d
59 je .L4
60 .L8:
61 movq 216(%rbp), %rax
62 movq %rax, %rdx
63 subq %r13, %rdx
64 cmpq %rdx, %r15
65 ja .L5
66 movq %rax, 8(%rsp)
67 call _IO_vtable_check
68 movq 8(%rsp), %rax
69 jmp .L5
70 .p2align 4,,10
71 .p2align 3
72 .L13:
73 xorl %ebx, %ebx
74 .p2align 4,,10
75 .p2align 3
76 .L4:
77 testl %r12d, %r12d
78 jle .L1
79 movq 216(%rbp), %r13
80 leaq __start___libc_IO_vtables(%rip), %rdx
81 leaq __stop___libc_IO_vtables(%rip), %rax
82 subq %rdx, %rax
83 movq %r13, %rcx
84 subq %rdx, %rcx
85 cmpq %rcx, %rax
86 jbe .L20
87 .L10:
88 movslq %r12d, %rdx
89 movq %r14, %rsi
90 movq %rbp, %rdi
91 call *56(%r13)
92 addq %rax, %rbx
93 .L1:
94 addq $88, %rsp
95 movq %rbx, %rax
96 popq %rbx
97 popq %rbp
98 popq %r12
99 popq %r13
100 popq %r14
101 popq %r15
103 .L20:
104 call _IO_vtable_check
105 jmp .L10
106 .size _IO_wpadn, .-_IO_wpadn
107 .section .rodata
108 .align 32
109 .type zeroes, @object
110 .size zeroes, 64
111 zeroes:
112 .long 48
113 .long 48
114 .long 48
115 .long 48
116 .long 48
117 .long 48
118 .long 48
119 .long 48
120 .long 48
121 .long 48
122 .long 48
123 .long 48
124 .long 48
125 .long 48
126 .long 48
127 .long 48
128 .align 32
129 .type blanks, @object
130 .size blanks, 64
131 blanks:
132 .long 32
133 .long 32
134 .long 32
135 .long 32
136 .long 32
137 .long 32
138 .long 32
139 .long 32
140 .long 32
141 .long 32
142 .long 32
143 .long 32
144 .long 32
145 .long 32
146 .long 32
147 .long 32
148 .hidden _IO_vtable_check
149 .hidden __stop___libc_IO_vtables
150 .hidden __start___libc_IO_vtables