clarify the purpose of this project
[nyanglibc.git] / math / s_modff128.shared.s
blob4ebf85ae27d3d9ce0acefedada977a9991040fd3
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .globl __subtf3
7 .globl __multf3
8 #NO_APP
9 .p2align 4,,15
10 .globl __modff128
11 .type __modff128, @function
12 __modff128:
13 pushq %r12
14 pushq %rbp
15 pushq %rbx
16 subq $32, %rsp
17 movaps %xmm0, (%rsp)
18 movq 8(%rsp), %rbp
19 movq (%rsp), %r12
20 movq %rbp, %rbx
21 sarq $48, %rbx
22 andl $32767, %ebx
23 subq $16383, %rbx
24 cmpq $47, %rbx
25 jg .L2
26 testq %rbx, %rbx
27 js .L12
28 movabsq $281474976710655, %rax
29 movl %ebx, %ecx
30 movq %rbp, %rdx
31 sarq %cl, %rax
32 andq %rax, %rdx
33 orq %r12, %rdx
34 jne .L5
35 movdqa (%rsp), %xmm2
36 movaps %xmm2, (%rdi)
37 .L10:
38 movabsq $-9223372036854775808, %rax
39 movq $0, (%rsp)
40 andq %rax, %rbp
41 movq %rbp, 8(%rsp)
42 movdqa (%rsp), %xmm0
43 .L1:
44 addq $32, %rsp
45 popq %rbx
46 popq %rbp
47 popq %r12
48 ret
49 .p2align 4,,10
50 .p2align 3
51 .L2:
52 cmpq $111, %rbx
53 jle .L6
54 movdqa .LC0(%rip), %xmm1
55 movq %rdi, 16(%rsp)
56 movdqa (%rsp), %xmm0
57 call __multf3@PLT
58 movq 16(%rsp), %rdi
59 cmpq $16384, %rbx
60 movaps %xmm0, (%rdi)
61 jne .L10
62 movabsq $281474976710655, %rax
63 andq %rbp, %rax
64 orq %r12, %rax
65 jne .L1
66 jmp .L10
67 .p2align 4,,10
68 .p2align 3
69 .L6:
70 leal -48(%rbx), %ecx
71 movq $-1, %rax
72 shrq %cl, %rax
73 testq %rax, %r12
74 je .L13
75 notq %rax
76 movq %rbp, 24(%rsp)
77 andq %r12, %rax
78 movdqa (%rsp), %xmm0
79 movq %rax, 16(%rsp)
80 movdqa 16(%rsp), %xmm5
81 movaps %xmm5, (%rdi)
82 movdqa %xmm5, %xmm1
83 call __subtf3@PLT
84 addq $32, %rsp
85 popq %rbx
86 popq %rbp
87 popq %r12
88 ret
89 .p2align 4,,10
90 .p2align 3
91 .L5:
92 notq %rax
93 movq $0, 16(%rsp)
94 andq %rbp, %rax
95 movdqa (%rsp), %xmm0
96 movq %rax, 24(%rsp)
97 movdqa 16(%rsp), %xmm3
98 movaps %xmm3, (%rdi)
99 movdqa %xmm3, %xmm1
100 call __subtf3@PLT
101 addq $32, %rsp
102 popq %rbx
103 popq %rbp
104 popq %r12
106 .p2align 4,,10
107 .p2align 3
108 .L12:
109 movabsq $-9223372036854775808, %rax
110 movq $0, 16(%rsp)
111 andq %rax, %rbp
112 movq %rbp, 24(%rsp)
113 movdqa 16(%rsp), %xmm4
114 movaps %xmm4, (%rdi)
115 addq $32, %rsp
116 popq %rbx
117 popq %rbp
118 popq %r12
120 .p2align 4,,10
121 .p2align 3
122 .L13:
123 movdqa (%rsp), %xmm6
124 movaps %xmm6, (%rdi)
125 jmp .L10
126 .size __modff128, .-__modff128
127 .weak modff128
128 .set modff128,__modff128
129 .section .rodata.cst16,"aM",@progbits,16
130 .align 16
131 .LC0:
132 .long 0
133 .long 0
134 .long 0
135 .long 1073676288