Sign in
cobalt
/
cobalt
/
788710a0d7b1b8d8e2340dd5fad5e8783a239862
/
.
/
third_party
/
musl
/
src
/
math
/
i386
/
fmod.c
blob: ea0c58d9b422e6f821aa2953afe0fbd75822d44a [
file
] [
log
] [
blame
]
#include
<math.h>
double
fmod
(
double
x
,
double
y
)
{
unsigned
short
fpsr
;
// fprem does not introduce excess precision into x
do
__asm__
(
"fprem; fnstsw %%ax"
:
"+t"
(
x
),
"=a"
(
fpsr
)
:
"u"
(
y
));
while
(
fpsr
&
0x400
);
return
x
;
}