|
#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);
|