clarify the purpose of this project
[nyanglibc.git] / stdlib / strtold_nan.s
blob0d7f85f5dfb66601bab3febb9c4ba1cb87358ad7
1 .text
2 .p2align 4,,15
3 .globl __strtold_nan
4 .hidden __strtold_nan
5 .type __strtold_nan, @function
6 __strtold_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 .L9:
32 flds .LC0(%rip)
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 8(%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, 8(%rsp)
49 jne .L9
50 flds .LC0(%rip)
51 movq %rax, %rdx
52 shrq $32, %rdx
53 fstpt 16(%rsp)
54 movl %edx, %ecx
55 movl %eax, 16(%rsp)
56 andl $1073741823, %ecx
57 movl 20(%rsp), %edx
58 andl $-1073741824, %edx
59 orl %ecx, %edx
60 movl %edx, 20(%rsp)
61 orl %eax, %edx
62 je .L9
63 fldt 16(%rsp)
64 jmp .L5
65 .size __strtold_nan, .-__strtold_nan
66 .section .rodata.cst4,"aM",@progbits,4
67 .align 4
68 .LC0:
69 .long 2143289344
70 .hidden ____strtoull_l_internal
71 .hidden _nl_C_locobj