clarify the purpose of this project
[nyanglibc.git] / math / s_frexpf128.shared.s
bloba06ecc5c6b8a5d40c0cc1bd8231bbfc94cdfbbf7
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .globl __addtf3
7 .globl __multf3
8 #NO_APP
9 .p2align 4,,15
10 .globl __frexpf128
11 .type __frexpf128, @function
12 __frexpf128:
13 pushq %rbx
14 movabsq $9223372036854775807, %rbx
15 movabsq $9223090561878065151, %rcx
16 subq $32, %rsp
17 movl $0, (%rdi)
18 movaps %xmm0, (%rsp)
19 movq 8(%rsp), %rdx
20 movq %rdx, %rax
21 andq %rbx, %rax
22 cmpq %rcx, %rax
23 ja .L2
24 movq (%rsp), %rcx
25 orq %rax, %rcx
26 je .L2
27 movabsq $281474976710655, %rsi
28 movl $-16382, %ecx
29 cmpq %rsi, %rax
30 ja .L5
31 movdqa (%rsp), %xmm0
32 movq %rdi, 24(%rsp)
33 movdqa .LC0(%rip), %xmm1
34 call __multf3@PLT
35 movaps %xmm0, (%rsp)
36 movq 8(%rsp), %rdx
37 movq 24(%rsp), %rdi
38 movq %rbx, %rax
39 movl $-16496, %ecx
40 andq %rdx, %rax
41 .L5:
42 shrq $48, %rax
43 addl %ecx, %eax
44 movl %eax, (%rdi)
45 movabsq $-9223090561878065153, %rax
46 andq %rax, %rdx
47 movabsq $4611123068473966592, %rax
48 orq %rax, %rdx
49 movq %rdx, 8(%rsp)
50 movdqa (%rsp), %xmm0
51 addq $32, %rsp
52 popq %rbx
53 ret
54 .p2align 4,,10
55 .p2align 3
56 .L2:
57 movdqa (%rsp), %xmm1
58 movdqa %xmm1, %xmm0
59 call __addtf3@PLT
60 addq $32, %rsp
61 popq %rbx
62 ret
63 .size __frexpf128, .-__frexpf128
64 .weak frexpf128
65 .set frexpf128,__frexpf128
66 .section .rodata.cst16,"aM",@progbits,16
67 .align 16
68 .LC0:
69 .long 0
70 .long 0
71 .long 0
72 .long 1081147392