clarify the purpose of this project
[nyanglibc.git] / stdlib / strtod_nan.s
blobc3d03b06f4851c1775b7f25c594c66cf96462b97
1 .text
2 .p2align 4,,15
3 .globl __strtod_nan
4 .hidden __strtod_nan
5 .type __strtod_nan, @function
6 __strtod_nan:
7 pushq %rbp
8 pushq %rbx
9 movq %rsi, %rbp
10 movq %rdi, %rbx
11 subq $40, %rsp
12 jmp .L2
13 .p2align 4,,10
14 .p2align 3
15 .L3:
16 addq $1, %rbx
17 .L2:
18 movzbl (%rbx), %ecx
19 movl %ecx, %eax
20 andl $-33, %eax
21 subl $65, %eax
22 cmpb $25, %al
23 jbe .L3
24 leal -48(%rcx), %eax
25 cmpb $9, %al
26 jbe .L3
27 cmpb $95, %cl
28 je .L3
29 cmpb %dl, %cl
30 je .L4
31 .L6:
32 movsd .LC0(%rip), %xmm0
33 .L5:
34 testq %rbp, %rbp
35 je .L1
36 movq %rbx, 0(%rbp)
37 .L1:
38 addq $40, %rsp
39 popq %rbx
40 popq %rbp
41 ret
42 .L4:
43 leaq 24(%rsp), %rsi
44 leaq _nl_C_locobj(%rip), %r8
45 xorl %ecx, %ecx
46 xorl %edx, %edx
47 call ____strtoull_l_internal
48 cmpq %rbx, 24(%rsp)
49 jne .L6
50 movabsq $2251795518717952, %rdx
51 movl %eax, %esi
52 andq %rax, %rdx
53 movsd .LC0(%rip), %xmm0
54 movq %rdx, %rcx
55 movabsq $9221120237041090560, %rdx
56 orq %rcx, %rdx
57 orq %rsi, %rdx
58 movq %rdx, %rcx
59 shrq $32, %rcx
60 andl $1048575, %ecx
61 orl %eax, %ecx
62 je .L5
63 movq %rdx, 8(%rsp)
64 movsd 8(%rsp), %xmm0
65 jmp .L5
66 .size __strtod_nan, .-__strtod_nan
67 .section .rodata.cst8,"aM",@progbits,8
68 .align 8
69 .LC0:
70 .long 0
71 .long 2146959360
72 .hidden ____strtoull_l_internal
73 .hidden _nl_C_locobj