mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-10 19:30:10 +00:00
* sysdeps/powerpc/nofpu/fsetexcptflg.c (__fesetexceptflag): Do not
clobber other exceptions. * sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Raise new exceptions. * sysdeps/powerpc/nofpu/fraiseexcpt.c (__feraiseexcept): Handle multiple new exceptions if some are disabled. * sysdeps/powerpc/nofpu/sim-full.c (__simulate_exceptions): Likewise.
This commit is contained in:
parent
ceb34e81f0
commit
ce7a1add4e
@ -1,3 +1,13 @@
|
|||||||
|
2007-08-29 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* sysdeps/powerpc/nofpu/fsetexcptflg.c (__fesetexceptflag): Do not
|
||||||
|
clobber other exceptions.
|
||||||
|
* sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Raise new
|
||||||
|
exceptions.
|
||||||
|
* sysdeps/powerpc/nofpu/fraiseexcpt.c (__feraiseexcept): Handle
|
||||||
|
multiple new exceptions if some are disabled.
|
||||||
|
* sysdeps/powerpc/nofpu/sim-full.c (__simulate_exceptions): Likewise.
|
||||||
|
|
||||||
2007-07-13 Steven Munroe <sjmunroe@us.ibm.com>
|
2007-07-13 Steven Munroe <sjmunroe@us.ibm.com>
|
||||||
|
|
||||||
* sysdeps/powerpc/nofpu/Makefile: Remove fe_nomask from libm-support.
|
* sysdeps/powerpc/nofpu/Makefile: Remove fe_nomask from libm-support.
|
||||||
|
@ -21,12 +21,12 @@
|
|||||||
|
|
||||||
#include "soft-fp.h"
|
#include "soft-fp.h"
|
||||||
#include "soft-supp.h"
|
#include "soft-supp.h"
|
||||||
|
#include <signal.h>
|
||||||
#include <bp-sym.h>
|
#include <bp-sym.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__feupdateenv (const fenv_t *envp)
|
__feupdateenv (const fenv_t *envp)
|
||||||
{
|
{
|
||||||
fenv_union_t u;
|
|
||||||
int saved_exceptions;
|
int saved_exceptions;
|
||||||
|
|
||||||
/* Save currently set exceptions. */
|
/* Save currently set exceptions. */
|
||||||
@ -37,6 +37,8 @@ __feupdateenv (const fenv_t *envp)
|
|||||||
|
|
||||||
/* Raise old exceptions. */
|
/* Raise old exceptions. */
|
||||||
__sim_exceptions |= saved_exceptions;
|
__sim_exceptions |= saved_exceptions;
|
||||||
|
if (saved_exceptions & ~__sim_disabled_exceptions)
|
||||||
|
raise (SIGFPE);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -28,10 +28,7 @@ int
|
|||||||
__feraiseexcept (int x)
|
__feraiseexcept (int x)
|
||||||
{
|
{
|
||||||
__sim_exceptions |= x;
|
__sim_exceptions |= x;
|
||||||
if (x == 0 || __sim_disabled_exceptions & x)
|
if (x & ~__sim_disabled_exceptions)
|
||||||
/* Ignore exception. */
|
|
||||||
;
|
|
||||||
else
|
|
||||||
raise (SIGFPE);
|
raise (SIGFPE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ int
|
|||||||
__fesetexceptflag(const fexcept_t *flagp, int excepts)
|
__fesetexceptflag(const fexcept_t *flagp, int excepts)
|
||||||
{
|
{
|
||||||
/* Ignore exceptions not listed in 'excepts'. */
|
/* Ignore exceptions not listed in 'excepts'. */
|
||||||
__sim_exceptions = *flagp & excepts;
|
__sim_exceptions = (__sim_exceptions & ~excepts) | (*flagp & excepts);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -37,9 +37,6 @@ void
|
|||||||
__simulate_exceptions (int x)
|
__simulate_exceptions (int x)
|
||||||
{
|
{
|
||||||
__sim_exceptions |= x;
|
__sim_exceptions |= x;
|
||||||
if (x == 0 || __sim_disabled_exceptions & x)
|
if (x & ~__sim_disabled_exceptions)
|
||||||
/* Ignore exception. */
|
|
||||||
;
|
|
||||||
else
|
|
||||||
raise (SIGFPE);
|
raise (SIGFPE);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user