Bring in FreeBSD's msun code for our libm.
[dragonfly.git] / lib / libm / x86_64 / e_remainderf.S
1 /*
2  * Based on the i387 version written by J.T. Conklin <jtc@netbsd.org>.
3  * Public domain.
4  *
5  * $NetBSD: e_remainderf.S,v 1.2 1995/05/08 23:49:47 jtc Exp $
6  * $FreeBSD: head/lib/msun/amd64/e_remainderf.S 217108 2011-01-07 16:13:12Z kib $
7  */
8
9 #include <machine/asm.h>
10
11 ENTRY(remainderf)
12         movss   %xmm0,-4(%rsp)
13         movss   %xmm1,-8(%rsp)
14         flds    -8(%rsp)
15         flds    -4(%rsp)
16 1:      fprem1
17         fstsw   %ax
18         testw   $0x400,%ax
19         jne     1b
20         fstps   -4(%rsp)
21         movss   -4(%rsp),%xmm0
22         fstp    %st
23         ret
24 END(remainderf)
25
26         .section .note.GNU-stack,"",%progbits