clarify the purpose of this project
[nyanglibc.git] / stdlib / strfroml.shared.s
blob7f5d691d8ab06a149bcad9b59516407885c981a1
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 strfroml
9 .type strfroml, @function
10 strfroml:
11 pushq %r15
12 pushq %r14
13 pushq %r13
14 pushq %r12
15 pushq %rbp
16 pushq %rbx
17 subq $376, %rsp
18 cmpb $37, (%rdx)
19 fldt 432(%rsp)
20 leaq 16(%rsp), %rax
21 movq $0, 200(%rsp)
22 movq %rax, 8(%rsp)
23 fstpt 16(%rsp)
24 jne .L14
25 movq %rdi, %r15
26 movzbl 1(%rdx), %ebx
27 cmpb $46, %bl
28 je .L3
29 movsbl %bl, %r14d
30 movl $-1, %r13d
31 .L4:
32 leal -65(%rbx), %eax
33 cmpb $38, %al
34 ja .L14
35 movabsq $485331304561, %rdx
36 btq %rax, %rdx
37 jnc .L14
38 testq %rsi, %rsi
39 je .L24
40 leaq -1(%rsi), %r12
41 leaq 64(%rsp), %rbp
42 .L15:
43 xorl %r8d, %r8d
44 xorl %ecx, %ecx
45 movl $-1, %edx
46 movl $32768, %esi
47 movq %rbp, %rdi
48 andl $-33, %ebx
49 call _IO_no_init@PLT
50 leaq _IO_strn_jumps(%rip), %rax
51 movq %r15, %rcx
52 movq %r12, %rdx
53 movq %r15, %rsi
54 movq %rbp, %rdi
55 movq %rax, 280(%rsp)
56 call _IO_str_init_static_internal@PLT
57 pxor %xmm0, %xmm0
58 leaq 32(%rsp), %rax
59 movl %r13d, 32(%rsp)
60 movups %xmm0, 36(%rsp)
61 orb $1, 44(%rsp)
62 cmpb $65, %bl
63 movl %r14d, 40(%rsp)
64 je .L16
65 leaq 8(%rsp), %rcx
66 movq %rbp, %rdi
67 movq __libc_tsd_LOCALE@gottpoff(%rip), %rdx
68 movq %fs:(%rdx), %rsi
69 movq %rax, %rdx
70 call __GI___printf_fp_l
71 .L17:
72 addq $240, %rbp
73 cmpq %rbp, 120(%rsp)
74 je .L1
75 movq 104(%rsp), %rdx
76 movb $0, (%rdx)
77 .L1:
78 addq $376, %rsp
79 popq %rbx
80 popq %rbp
81 popq %r12
82 popq %r13
83 popq %r14
84 popq %r15
85 ret
86 .p2align 4,,10
87 .p2align 3
88 .L24:
89 leaq 64(%rsp), %rbp
90 movl $63, %r12d
91 leaq 240(%rbp), %r15
92 jmp .L15
93 .p2align 4,,10
94 .p2align 3
95 .L16:
96 leaq 8(%rsp), %rdx
97 movq %rax, %rsi
98 movq %rbp, %rdi
99 call __printf_fphex
100 jmp .L17
101 .p2align 4,,10
102 .p2align 3
103 .L3:
104 movsbl 2(%rdx), %r14d
105 leaq 2(%rdx), %rax
106 xorl %r13d, %r13d
107 leal -48(%r14), %edx
108 movl %r14d, %ebx
109 cmpl $9, %edx
110 ja .L4
111 movl %edx, %r13d
112 movl $2147483647, %edi
113 movl $-1, %r8d
114 .L5:
115 movsbl 1(%rax), %r14d
116 leaq 1(%rax), %r9
117 leal -48(%r14), %edx
118 movl %r14d, %ebx
119 cmpl $9, %edx
120 ja .L4
121 testl %r13d, %r13d
122 js .L6
123 cmpl $214748364, %r13d
124 jg .L33
125 leal 0(%r13,%r13,4), %r13d
126 movl %edi, %ecx
127 subl %edx, %ecx
128 addl %r13d, %r13d
129 cmpl %ecx, %r13d
130 jg .L33
131 addl %edx, %r13d
132 .L6:
133 movq %r9, %rax
134 jmp .L5
135 .p2align 4,,10
136 .p2align 3
137 .L33:
138 movsbl 2(%rax), %r14d
139 leal -48(%r14), %edx
140 movl %r14d, %ebx
141 cmpl $9, %edx
142 ja .L22
143 movsbl 3(%rax), %r14d
144 leal -48(%r14), %edx
145 movl %r14d, %ebx
146 cmpl $9, %edx
147 ja .L22
148 movsbl 4(%rax), %r14d
149 leal -48(%r14), %edx
150 movl %r14d, %ebx
151 cmpl $9, %edx
152 ja .L22
153 movsbl 5(%rax), %r14d
154 leaq 5(%rax), %r9
155 leal -48(%r14), %eax
156 movl %r14d, %ebx
157 cmpl $9, %eax
158 ja .L22
159 movl %r8d, %r13d
160 jmp .L6
161 .p2align 4,,10
162 .p2align 3
163 .L22:
164 movl $-1, %r13d
165 jmp .L4
166 .L14:
167 call __GI_abort
168 .size strfroml, .-strfroml
169 .weak strfromf64x
170 .set strfromf64x,strfroml
171 .hidden __printf_fphex
172 .hidden _IO_strn_jumps