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