diff options
-rw-r--r-- | ports/ChangeLog.hppa | 2 | ||||
-rw-r--r-- | ports/sysdeps/hppa/fpu/fegetround.c | 13 |
2 files changed, 5 insertions, 10 deletions
diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa index 4088793a43..3f7bd6e5e0 100644 --- a/ports/ChangeLog.hppa +++ b/ports/ChangeLog.hppa @@ -1,5 +1,7 @@ 2012-11-18 Carlos O'Donell <carlos@systemhalted.org> + * sysdeps/hppa/fpu/fesetenv.c: Reset FPU to default for FE_DFL_ENV. + * sysdeps/hppa/get-rounding-mode.h: New file. * sysdeps/hppa/fpu/fegetround.c: Use get_rounding_mode. diff --git a/ports/sysdeps/hppa/fpu/fegetround.c b/ports/sysdeps/hppa/fpu/fegetround.c index 70d2e476fe..d603e66f13 100644 --- a/ports/sysdeps/hppa/fpu/fegetround.c +++ b/ports/sysdeps/hppa/fpu/fegetround.c @@ -1,5 +1,5 @@ /* Return current rounding direction. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Huggins-Daines <dhd@debian.org>, 2000 @@ -17,17 +17,10 @@ License along with the GNU C Library. If not, see <http://www.gnu.org/licenses/>. */ -#include <fenv.h> +#include <get-rounding-mode.h> int fegetround (void) { - union { unsigned long long l; unsigned int sw[2] } s; - - /* Get the current status word. */ - __asm__ ("fstd %%fr0,0(%1) \n\t" - "fldd 0(%1),%%fr0 \n\t" - : "=m" (s.l) : "r" (&s.l)); - - return (s.sw[0] & FE_DOWNWARD); + return get_rounding_mode (); } |