1*c9945492SAndroid Build Coastguard Worker #include <math.h> 2*c9945492SAndroid Build Coastguard Worker fmodf(float x,float y)3*c9945492SAndroid Build Coastguard Workerfloat fmodf(float x, float y) 4*c9945492SAndroid Build Coastguard Worker { 5*c9945492SAndroid Build Coastguard Worker unsigned short fpsr; 6*c9945492SAndroid Build Coastguard Worker // fprem does not introduce excess precision into x 7*c9945492SAndroid Build Coastguard Worker do __asm__ ("fprem; fnstsw %%ax" : "+t"(x), "=a"(fpsr) : "u"(y)); 8*c9945492SAndroid Build Coastguard Worker while (fpsr & 0x400); 9*c9945492SAndroid Build Coastguard Worker return x; 10*c9945492SAndroid Build Coastguard Worker } 11