blob: c083df904ce406b7e382a8e16726c764a4dab4de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <math.h>
double remainder(double x, double y)
{
unsigned short fpsr;
// fprem1 does not introduce excess precision into x
do __asm__ ("fprem1; fnstsw %%ax" : "+t"(x), "=a"(fpsr) : "u"(y));
while (fpsr & 0x400);
return x;
}
weak_alias(remainder, drem);
|