From 522554b15962927f372e4bf60e72ea7e0ae0b71f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 17 Aug 2000 18:43:01 +0000 Subject: [PATCH] Return currently enabled, not disabled exceptions. --- sysdeps/i386/fpu/fedisblxcpt.c | 2 +- sysdeps/i386/fpu/feenablxcpt.c | 2 +- sysdeps/i386/fpu/fegetexcept.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sysdeps/i386/fpu/fedisblxcpt.c b/sysdeps/i386/fpu/fedisblxcpt.c index 019366e1c8..00c04cba05 100644 --- a/sysdeps/i386/fpu/fedisblxcpt.c +++ b/sysdeps/i386/fpu/fedisblxcpt.c @@ -28,7 +28,7 @@ fedisableexcept (int excepts) /* Get the current control word. */ __asm__ ("fstcw %0" : "=m" (*&new_exc)); - old_exc = new_exc & FE_ALL_EXCEPT; + old_exc = (~new_exc) & FE_ALL_EXCEPT; excepts &= FE_ALL_EXCEPT; diff --git a/sysdeps/i386/fpu/feenablxcpt.c b/sysdeps/i386/fpu/feenablxcpt.c index f284306c4e..303e429884 100644 --- a/sysdeps/i386/fpu/feenablxcpt.c +++ b/sysdeps/i386/fpu/feenablxcpt.c @@ -29,7 +29,7 @@ feenableexcept (int excepts) __asm__ ("fstcw %0" : "=m" (*&new_exc)); excepts &= FE_ALL_EXCEPT; - old_exc = new_exc & FE_ALL_EXCEPT; + old_exc = (~new_exc) & FE_ALL_EXCEPT; new_exc &= ~excepts; __asm__ ("fldcw %0" : : "m" (*&new_exc)); diff --git a/sysdeps/i386/fpu/fegetexcept.c b/sysdeps/i386/fpu/fegetexcept.c index 310a717d97..615b4677ab 100644 --- a/sysdeps/i386/fpu/fegetexcept.c +++ b/sysdeps/i386/fpu/fegetexcept.c @@ -1,5 +1,5 @@ /* Get enabled floating-point exceptions. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 1999. @@ -28,5 +28,5 @@ fegetexcept (void) /* Get the current control word. */ __asm__ ("fstcw %0" : "=m" (*&exc)); - return exc & FE_ALL_EXCEPT; + return (~exc) & FE_ALL_EXCEPT; }