Remove FIXME and special case for quotient.
This commit is contained in:
parent
a3baa80ed7
commit
0dab1d3494
@ -37,18 +37,9 @@ s(__remquo) (float_type x, float_type y, int *quo)
|
|||||||
float_type result;
|
float_type result;
|
||||||
int cquo, fpsr;
|
int cquo, fpsr;
|
||||||
|
|
||||||
/* FIXME: Which of frem and fmod is correct? */
|
|
||||||
#if 1
|
|
||||||
__asm ("frem%.x %2,%0\n\tfmove%.l %/fpsr,%1"
|
__asm ("frem%.x %2,%0\n\tfmove%.l %/fpsr,%1"
|
||||||
: "=f" (result), "=dm" (fpsr) : "f" (y), "0" (x));
|
: "=f" (result), "=dm" (fpsr) : "f" (y), "0" (x));
|
||||||
cquo = (fpsr >> 16) & 0x7f;
|
cquo = (fpsr >> 16) & 0x7f;
|
||||||
if ((result > 0) != (x > 0))
|
|
||||||
cquo--;
|
|
||||||
#else
|
|
||||||
__asm ("fmod%.x %2,%0\n\tfmove%.l %/fpsr,%1"
|
|
||||||
: "=f" (result), "=dm" (fpsr) : "f" (y), "0" (x));
|
|
||||||
cquo = (fpsr >> 16) & 0x7f;
|
|
||||||
#endif
|
|
||||||
if (fpsr & (1 << 23))
|
if (fpsr & (1 << 23))
|
||||||
cquo = -cquo;
|
cquo = -cquo;
|
||||||
*quo = cquo;
|
*quo = cquo;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user