ea0c58d9b422e6f821aa2953afe0fbd75822d44a
[musl] / fmod.c
1 #include <math.h>
2
3 double fmod(double x, double y)
4 {
5         unsigned short fpsr;
6         // fprem does not introduce excess precision into x
7         do __asm__ ("fprem; fnstsw %%ax" : "+t"(x), "=a"(fpsr) : "u"(y));
8         while (fpsr & 0x400);
9         return x;
10 }