/* Clear all exception status bits and exception enable bits. */
__ieee_set_fp_control(0);
- return 1;
+ return 0;
}
unsigned long fpcr;
if (round & ~3)
- return 0;
+ return 1;
/* Get the current state. */
__asm__ __volatile__("excb; mf_fpcr %0" : "=f"(fpcr));
/* Put the new state in effect. */
__asm__ __volatile__("mt_fpcr %0; excb" : : "f"(fpcr));
- return 1;
+ return 0;
}
temp &= ~(FE_ALL_EXCEPT << FE_EXCEPT_SHIFT);
_FPU_SETCW(temp);
- return 1;
+ return 0;
}
fesetround (int round)
{
/* We only support FE_TONEAREST, so there is no need for any work. */
- return (round == FE_TONEAREST)?1:0;
+ return (round == FE_TONEAREST)?0:1;
}
int
feholdexcept (fenv_t *envp)
{
- return 0; /* Signal failure. */
+ return 1; /* Signal failure. */
}
stub_warning (feholdexcept)
#include <stub-tag.h>
int
fesetround (int round)
{
- return 0; /* Signal we are unable to set the direction. */
+ return 1; /* Signal we are unable to set the direction. */
}
stub_warning (fesetround)
#include <stub-tag.h>
work = envp->__control_word | 0x3f;
__asm__ ("fldcw %0" : : "m" (*&work));
- return 1;
+ return 0;
}
if ((round & ~0xc00) != 0)
/* ROUND is no valid rounding mode. */
- return 0;
+ return 1;
__asm__ ("fnstcw %0" : "=m" (*&cw));
cw &= ~0xc00;
cw |= round;
__asm__ ("fldcw %0" : : "m" (*&cw));
- return 1;
+ return 0;
}
fpcr = envp->__control_register & ~(FE_ALL_EXCEPT << 6);
__asm__ __volatile__ ("fmove%.l %0,%!" : : "dm" (fpcr));
- return 1;
+ return 0;
}
if (round & ~FE_UPWARD)
/* ROUND is no valid rounding mode. */
- return 0;
+ return 1;
__asm__ ("fmove%.l %!,%0" : "=dm" (fpcr));
fpcr &= ~FE_UPWARD;
fpcr |= round;
__asm__ __volatile__ ("fmove%.l %0,%!" : : "dm" (fpcr));
- return 1;
+ return 0;
}
if ((round & ~0x3) != 0)
/* ROUND is no valid rounding mode. */
- return 0;
+ return 1;
/* Get current state. */
_FPU_GETCW (cw);
/* Set new state. */
_FPU_SETCW (cw);
- return 1;
+ return 0;
}
/* Put the new state in effect. */
fesetenv_register (u.fenv);
- return 1;
+ return 0;
}
fenv_union_t u;
if ((unsigned int) round > 3)
- return 0;
+ return 1;
/* Get the current state. */
u.fenv = fegetenv_register ();
/* Put the new state in effect. */
fesetenv_register (u.fenv);
- return 1;
+ return 0;
}
__fenv_ldfsr (tmp);
- return 1;
+ return 0;
}
if ((round & ~__FE_ROUND_MASK) != 0)
/* ROUND is no valid rounding mode. */
- return 0;
+ return 1;
__fenv_stfsr (tmp);
tmp &= ~__FE_ROUND_MASK;
tmp |= round;
__fenv_ldfsr (tmp);
- return 1;
+ return 0;
}