clarify the purpose of this project
[nyanglibc.git] / stdlib / drand48-iter.s
bloba72bd586c938c00151d3d9e875ab0097bdadbc70
1 .text
2 .p2align 4,,15
3 .globl __drand48_iterate
4 .hidden __drand48_iterate
5 .type __drand48_iterate, @function
6 __drand48_iterate:
7 cmpw $0, 14(%rsi)
8 je .L2
9 movzwl 12(%rsi), %ecx
10 movq 16(%rsi), %r8
11 .L3:
12 movzwl 4(%rdi), %eax
13 movzwl (%rdi), %edx
14 salq $32, %rax
15 orq %rdx, %rax
16 movzwl 2(%rdi), %edx
17 sall $16, %edx
18 orq %rdx, %rax
19 imulq %r8, %rax
20 addq %rcx, %rax
21 movq %rax, %rdx
22 movw %ax, (%rdi)
23 shrq $32, %rax
24 shrq $16, %rdx
25 movw %ax, 4(%rdi)
26 xorl %eax, %eax
27 movw %dx, 2(%rdi)
28 ret
29 .p2align 4,,10
30 .p2align 3
31 .L2:
32 movabsq $-2383276746959945717, %rax
33 movl $5, 20(%rsi)
34 movl $11, %ecx
35 movq %rax, 12(%rsi)
36 movabsq $25214903917, %r8
37 jmp .L3
38 .size __drand48_iterate, .-__drand48_iterate
39 .hidden __libc_drand48_data
40 .comm __libc_drand48_data,24,16