clarify the purpose of this project
[nyanglibc.git] / stdlib / mpn2float128.s
blob5ec95446f50874851c25d47aede771355ed59e81
1 .text
2 .p2align 4,,15
3 .globl __mpn_construct_float128
4 .hidden __mpn_construct_float128
5 .type __mpn_construct_float128, @function
6 __mpn_construct_float128:
7 movq $0, -16(%rsp)
8 movq %rdx, %rax
9 movq -16(%rsp), %rdx
10 movabsq $9223372036854775807, %rcx
11 salq $63, %rax
12 addw $16383, %si
13 andl $32767, %esi
14 movq $0, -24(%rsp)
15 andq %rcx, %rdx
16 salq $48, %rsi
17 movabsq $-4294967296, %rcx
18 orq %rax, %rdx
19 movabsq $-9223090561878065153, %rax
20 andq %rax, %rdx
21 movq -24(%rsp), %rax
22 orq %rsi, %rdx
23 movq %rdx, -16(%rsp)
24 movq (%rdi), %rdx
25 andq %rcx, %rax
26 movl %edx, %esi
27 shrq $32, %rdx
28 orq %rsi, %rax
29 salq $32, %rdx
30 movl %eax, %eax
31 orq %rdx, %rax
32 movq -16(%rsp), %rdx
33 movq %rax, -24(%rsp)
34 movq 8(%rdi), %rax
35 andq %rcx, %rdx
36 movl %eax, %esi
37 shrq $32, %rax
38 orq %rsi, %rdx
39 movq %rdx, -16(%rsp)
40 movdqa -24(%rsp), %xmm0
41 pinsrw $6, %eax, %xmm0
42 ret
43 .size __mpn_construct_float128, .-__mpn_construct_float128