master
 1#include <math.h>
 2
 3double remainder(double x, double 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
12weak_alias(remainder, drem);