glibc/sysdeps/i386/fpu/e_fmodl.c
Ulrich Drepper 2484468be1 [BZ #3325]
* sysdeps/i386/fpu/e_fmodf.S: Use fprem1 instead of fprem.
	* sysdeps/i386/fpu/e_fmodl.c: Likewise.
	* sysdeps/i386/fpu/e_fmod.S: Likewise.
	Patch by Jared Casper <jaredcasper@gmail.com>.
2007-02-19 05:48:54 +00:00

23 lines
433 B
C

/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*
* Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
*/
#include <math_private.h>
long double
__ieee754_fmodl (long double x, long double y)
{
long double res;
asm ("1:\tfprem1\n"
"fstsw %%ax\n"
"sahf\n"
"jp 1b\n"
"fstp %%st(1)"
: "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
return res;
}