forked from KolibriOS/kolibrios
2336060a0c
git-svn-id: svn://kolibrios.org@1906 a494cfbc-eb01-0410-851d-a64ba20cac60
38 lines
686 B
C
38 lines
686 B
C
/*
|
|
* Written by J.T. Conklin <jtc@netbsd.org>.
|
|
* Public domain.
|
|
*
|
|
* Adapted for float type by Danny Smith
|
|
* <dannysmith@users.sourceforge.net>.
|
|
*/
|
|
|
|
#include <math.h>
|
|
|
|
float
|
|
fmodf (float x, float y)
|
|
{
|
|
float res;
|
|
|
|
asm ("1:\tfprem\n\t"
|
|
"fstsw %%ax\n\t"
|
|
"sahf\n\t"
|
|
"jp 1b\n\t"
|
|
"fstp %%st(1)"
|
|
: "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
|
|
return res;
|
|
}
|
|
|
|
double
|
|
fmod (double x, double y)
|
|
{
|
|
float res;
|
|
|
|
asm ("1:\tfprem\n\t"
|
|
"fstsw %%ax\n\t"
|
|
"sahf\n\t"
|
|
"jp 1b\n\t"
|
|
"fstp %%st(1)"
|
|
: "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
|
|
return res;
|
|
}
|