fmodf.c raw

   1  #include <math.h>
   2  
   3  float fmodf(float x, float 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  }
  11