remainderf.c raw

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