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