aboutsummaryrefslogtreecommitdiff
path: root/src/math/x86_64/remainderl.c
blob: 0747a6affa897b3a5d9114adb418db8a5c58513f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <math.h>

long double remainderl(long double x, long double y)
{
	unsigned short fpsr;
	do __asm__ ("fprem1; fnstsw %%ax" : "+t"(x), "=a"(fpsr) : "u"(y));
	while (fpsr & 0x400);
	return x;
}


#ifdef TEST
int
main(void) {
	return 0;
}
#endif