| #include <math.h> | |
| float remainderf(float x, float 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(remainderf, dremf); |