freebsd-dev/lib/msun/amd64/e_remainderf.S
Bruce Evans 02ef796d23 Use hardware remainder on amd64 since it is 5 to 10 times faster than
software remainder and is already used for remquo().
2008-02-13 06:01:48 +00:00

24 lines
413 B
ArmAsm

/*
* Based on the i387 version written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*/
#include <machine/asm.h>
RCSID("from: $NetBSD: e_remainderf.S,v 1.2 1995/05/08 23:49:47 jtc Exp $")
__FBSDID("$FreeBSD$")
ENTRY(remainderf)
movss %xmm0,-4(%rsp)
movss %xmm1,-8(%rsp)
flds -8(%rsp)
flds -4(%rsp)
1: fprem1
fstsw %ax
testw $0x400,%ax
jne 1b
fstps -4(%rsp)
movss -4(%rsp),%xmm0
fstp %st
ret