clarify the purpose of this project
[nyanglibc.git] / stdlib / nrand48_r.s
blob0b365ab306eab1ed8661dbf3c4ff07b09b245854
1 .text
2 .p2align 4,,15
3 .globl __nrand48_r
4 .hidden __nrand48_r
5 .type __nrand48_r, @function
6 __nrand48_r:
7 pushq %rbp
8 pushq %rbx
9 movq %rdi, %rbp
10 movq %rdx, %rbx
11 subq $8, %rsp
12 call __drand48_iterate
13 testl %eax, %eax
14 js .L3
15 movzwl 2(%rbp), %ecx
16 movzwl 4(%rbp), %eax
17 shrw %cx
18 sall $15, %eax
19 movzwl %cx, %ecx
20 orl %ecx, %eax
21 cltq
22 movq %rax, (%rbx)
23 xorl %eax, %eax
24 .L1:
25 addq $8, %rsp
26 popq %rbx
27 popq %rbp
28 ret
29 .p2align 4,,10
30 .p2align 3
31 .L3:
32 movl $-1, %eax
33 jmp .L1
34 .size __nrand48_r, .-__nrand48_r
35 .weak nrand48_r
36 .set nrand48_r,__nrand48_r
37 .hidden __drand48_iterate