summary refs log tree commit diff
path: root/sysdeps/alpha/fpu
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-31 23:32:56 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-31 23:32:56 +0000
commit63ae7b6309964400c6289d9030c7d336a33b304f (patch)
treeb4b63c3c08a2221de53048493b2c586a9aa79689 /sysdeps/alpha/fpu
parentb4cbd37109d882aa052e7973684774eaa887071b (diff)
downloadglibc-63ae7b6309964400c6289d9030c7d336a33b304f.tar.gz
glibc-63ae7b6309964400c6289d9030c7d336a33b304f.tar.xz
glibc-63ae7b6309964400c6289d9030c7d336a33b304f.zip
Update.
	* Versions.def (libm): Add GLIBC_2.1.3.

	ISO C99 TR1 changes various fe* functions to return an error value.
	* math/Versions [GLIBC_2.1.3]: Add feclearexcept, fegetexceptflag,
	feraiseexcept, fesetexceptflag, fegetenv, fesetenv, and feupdateenv.
	* sysdeps/alpha/fpu/fclrexcpt.c: Return value and add alias.
	* sysdeps/alpha/fpu/fegetenv.c: Likewise.
	* sysdeps/alpha/fpu/fesetenv.c: Likewise.
	* sysdeps/alpha/fpu/feupdateenv.c: Likewise.
	* sysdeps/alpha/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/alpha/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/alpha/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/arm/fpu/fclrexcpt.c: Likewise.
	* sysdeps/arm/fpu/fegetenv.c: Likewise.
	* sysdeps/arm/fpu/fesetenv.c: Likewise.
	* sysdeps/arm/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/arm/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/generic/fclrexcpt.c: Likewise.
	* sysdeps/generic/fegetenv.c: Likewise.
	* sysdeps/generic/fesetenv.c: Likewise.
	* sysdeps/generic/feupdateenv.c: Likewise.
	* sysdeps/generic/fgetexcptflg.c: Likewise.
	* sysdeps/generic/fraiseexcpt.c: Likewise.
	* sysdeps/generic/fsetexcptflg.c: Likewise.
	* sysdeps/i386/fpu/fclrexcpt.c: Likewise.
	* sysdeps/i386/fpu/fegetenv.c: Likewise.
	* sysdeps/i386/fpu/fesetenv.c: Likewise.
	* sysdeps/i386/fpu/feupdateenv.c: Likewise.
	* sysdeps/i386/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/i386/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/i386/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/m68k/fpu/fclrexcpt.c: Likewise.
	* sysdeps/m68k/fpu/fegetenv.c: Likewise.
	* sysdeps/m68k/fpu/fesetenv.c: Likewise.
	* sysdeps/m68k/fpu/feupdateenv.c: Likewise.
	* sysdeps/m68k/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/m68k/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/m68k/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/mips/fclrexcpt.c: Likewise.
	* sysdeps/mips/fegetenv.c: Likewise.
	* sysdeps/mips/fesetenv.c: Likewise.
	* sysdeps/mips/feupdateenv.c: Likewise.
	* sysdeps/mips/fgetexcptflg.c: Likewise.
	* sysdeps/powerpc/fclrexcpt.c: Likewise.
	* sysdeps/powerpc/fegetenv.c: Likewise.
	* sysdeps/powerpc/fesetenv.c: Likewise.
	* sysdeps/powerpc/feupdateenv.c: Likewise.
	* sysdeps/powerpc/fgetexcptflg.c: Likewise.
	* sysdeps/powerpc/fraiseexcpt.c: Likewise.
	* sysdeps/powerpc/fsetexcptflg.c: Likewise.
	* sysdeps/sparc/fpu/fclrexcpt.c: Likewise.
	* sysdeps/sparc/fpu/fegetenv.c: Likewise.
	* sysdeps/sparc/fpu/fesetenv.c: Likewise.
	* sysdeps/sparc/fpu/feupdateenv.c: Likewise.
	* sysdeps/sparc/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/sparc/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/sparc/fpu/fsetexcptflg.c: Likewise.
	* math/fenv.h: Adjust prototypes.: Likewise.
	* manual/arith.texi: Adjust documentation for these changes.

	* manual/arith.texi: Document feraiseexcept.

	* sysdeps/powerpc/fegetenv.c: Moved to...
	* sysdeps/powerpc/fpu/fegetenv.c: ...here.
	* sysdeps/powerpc/fegetround.c: Moved to...
	* sysdeps/powerpc/fpu/fegetround.c: ...here.
	* sysdeps/powerpc/feholdexcpt.c: Moved to...
	* sysdeps/powerpc/fpu/feholdexcpt.c: ...here.
	* sysdeps/powerpc/fesetenv.c: Moved to...
	* sysdeps/powerpc/fpu/fesetenv.c: ...here.
	* sysdeps/powerpc/fenv_libc.h: Moved to...
	* sysdeps/powerpc/fpu/fenv_libc.h: ...here.
	* sysdeps/powerpc/feupdateenv.c: Moved to...
	* sysdeps/powerpc/fpu/feupdateenv.c: ...here.
	* sysdeps/powerpc/fgetexcptflg.c: Moved to...
	* sysdeps/powerpc/fpu/fgetexcptflg.c: ...here.
	* sysdeps/powerpc/fraiseexcpt.c: Moved to...
	* sysdeps/powerpc/fpu/fraiseexcpt.c: ...here.
	* sysdeps/powerpc/fsetexcptflg.c: Moved to...
	* sysdeps/powerpc/fpu/fsetexcptflg.c: ...here.
	* sysdeps/powerpc/ftestexcept.c: Moved to...
	* sysdeps/powerpc/fpu/ftestexcept.c: ...here.
	* sysdeps/powerpc/fesetround.c: Moved to...
	* sysdeps/powerpc/fpu/fesetround.c: ...here
	* sysdeps/powerpc/fenv_const.c: Moved to...
	* sysdeps/powerpc/fpu/fenv_const.c: ...here.

1999-10-29  Jakub Jelinek  <jakub@redhat.com>

	* stdlib/longlong.h: Avoid UDIV_TIME redefinition.
	* sysdeps/sparc/sparc32/dl-machine.h: Fix loading of SPARC v8plus
	libraries from statically linked programs.
	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: POSIX 199309
	fix for sigaction on SPARC.
	Patches by David S. Miller <davem@redhat.com>.

	* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Declare
	gregset_t and other required structures and defines for SPARC 64bit
	ABI as well, not only 32bit ABI.

1999-10-31  Andreas Jaeger  <aj@suse.de>

	* sysdeps/sparc/sparc64/fpu/bits/huge_val.h: Replace __USE_ISOC9X
	by __USE_ISOC99 and update comments.

	* math/complex.h: Update comments for ISO C99.
	* math/fenv.h: Likewise.
	* math/test-fenv.c: Likewise.
	* math/tgmath.h: Likewise.
	* libio/stdio.h: Likewise.
	* posix/sys/types.h: Likewise.
	* sysdeps/generic/inttypes.h: Likewise.
	* sysdeps/generic/stdint.h: Likewise.

1999-10-31  Ulrich Drepper  <drepper@cygnus.com>
Diffstat (limited to 'sysdeps/alpha/fpu')
-rw-r--r--sysdeps/alpha/fpu/fclrexcpt.c20
-rw-r--r--sysdeps/alpha/fpu/fegetenv.c19
-rw-r--r--sysdeps/alpha/fpu/fesetenv.c24
-rw-r--r--sysdeps/alpha/fpu/feupdateenv.c20
-rw-r--r--sysdeps/alpha/fpu/fgetexcptflg.c14
-rw-r--r--sysdeps/alpha/fpu/fraiseexcpt.c47
-rw-r--r--sysdeps/alpha/fpu/fsetexcptflg.c18
7 files changed, 98 insertions, 64 deletions
diff --git a/sysdeps/alpha/fpu/fclrexcpt.c b/sysdeps/alpha/fpu/fclrexcpt.c
index 7aa79af100..2e76995f4e 100644
--- a/sysdeps/alpha/fpu/fclrexcpt.c
+++ b/sysdeps/alpha/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
 /* Clear given exceptions in current floating-point environment.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>, 1997.
 
@@ -20,17 +20,23 @@
 
 #include <fenv.h>
 
-void
-feclearexcept (int excepts)
+int
+__feclearexcept (int excepts)
 {
-  unsigned long swcr;
+  unsigned long int swcr;
 
   /* Get the current state.  */
-  swcr = __ieee_get_fp_control();
+  swcr = __ieee_get_fp_control ();
 
   /* Clear the relevant bits.  */
-  swcr &= ~((unsigned long)excepts & FE_ALL_EXCEPT);
+  swcr &= ~((unsigned long int) excepts & FE_ALL_EXCEPT);
 
   /* Put the new state in effect.  */
-  __ieee_set_fp_control(swcr);
+  __ieee_set_fp_control (swcr);
+
+  /* Success.  */
+  return 0;
 }
+strong_alias (__feclearexcept, __old_feclearexcept)
+symbol_version (__old_feclearexcept, feclearexcept, GLIBC_2.1);
+default_symbol_version (__feclearexcept, feclearexcept, GLIBC_2.1.3);
diff --git a/sysdeps/alpha/fpu/fegetenv.c b/sysdeps/alpha/fpu/fegetenv.c
index c8b705d230..63dc7ffaaf 100644
--- a/sysdeps/alpha/fpu/fegetenv.c
+++ b/sysdeps/alpha/fpu/fegetenv.c
@@ -1,5 +1,5 @@
 /* Store current floating-point environment.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>, 1997
 
@@ -20,18 +20,25 @@
 
 #include <fenv.h>
 
-void
-fegetenv (fenv_t *envp)
+int
+__fegetenv (fenv_t *envp)
 {
-  unsigned long fpcr, swcr;
+  unsigned long int fpcr;
+  unsigned long int swcr;
 
   /* Get status from software and hardware.  Note that we don't need an
      excb because the callsys is an implied trap barrier.  */
-  swcr = __ieee_get_fp_control();
-  __asm__ __volatile__("mf_fpcr %0" : "=f"(fpcr));
+  swcr = __ieee_get_fp_control ();
+  __asm__ __volatile__ ("mf_fpcr %0" : "=f" (fpcr));
 
   /* Merge the two bits of information.  The magic number at the end is
      the exception enable mask.  */
 
   *envp = (fpcr & (3UL << 58)) | (swcr & (FE_ALL_EXCEPT | 0x3e));
+
+  /* Success.  */
+  return 0;
 }
+strong_alias (__fegetenv, __old_fegetenv)
+symbol_version (__old_fegetenv, fegetenv, GLIBC_2.1);
+default_symbol_version (__fegetenv, fegetenv, GLIBC_2.1.3);
diff --git a/sysdeps/alpha/fpu/fesetenv.c b/sysdeps/alpha/fpu/fesetenv.c
index 3692967a5b..9a38778b0c 100644
--- a/sysdeps/alpha/fpu/fesetenv.c
+++ b/sysdeps/alpha/fpu/fesetenv.c
@@ -1,5 +1,5 @@
 /* Install given floating-point environment.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>, 1997
 
@@ -20,26 +20,32 @@
 
 #include <fenv.h>
 
-void
-fesetenv (const fenv_t *envp)
+int
+__fesetenv (const fenv_t *envp)
 {
-  unsigned long fpcr;
+  unsigned long int fpcr;
   fenv_t env;
 
   /* Magic encoding of default values: high bit set (never possible for a
      user-space address) is not indirect.  And we don't even have to get
      rid of it since we mask things around just below.  */
-  if ((long)envp >= 0)
+  if ((long int) envp >= 0)
     env = *envp;
   else
-    env = (unsigned long)envp;
+    env = (unsigned long int) envp;
 
   /* Reset the rounding mode with the hardware fpcr.  Note that the following
      system call is an implied trap barrier for our modification.  */
-  __asm__ __volatile__("excb; mf_fpcr %0" : "=f"(fpcr));
+  __asm__ __volatile__ ("excb; mf_fpcr %0" : "=f" (fpcr));
   fpcr = (fpcr & ~(3UL << 58)) | (env & (3UL << 58));
-  __asm__ __volatile__("mt_fpcr %0" : : "f"(fpcr));
+  __asm__ __volatile__ ("mt_fpcr %0" : : "f" (fpcr));
 
   /* Reset the exception status and mask with the kernel's FP code.  */
-  __ieee_set_fp_control(env & (FE_ALL_EXCEPT | 0x3e));
+  __ieee_set_fp_control (env & (FE_ALL_EXCEPT | 0x3e));
+
+  /* Success.  */
+  return 0;
 }
+strong_alias (__fesetenv, __old_fesetenv)
+symbol_version (__old_fesetenv, fesetenv, GLIBC_2.1);
+default_symbol_version (__fesetenv, fesetenv, GLIBC_2.1.3);
diff --git a/sysdeps/alpha/fpu/feupdateenv.c b/sysdeps/alpha/fpu/feupdateenv.c
index 816575a134..bd6a979aa7 100644
--- a/sysdeps/alpha/fpu/feupdateenv.c
+++ b/sysdeps/alpha/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
 /* Install given floating-point environment and raise exceptions.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>, 1997.
 
@@ -20,19 +20,25 @@
 
 #include <fenv.h>
 
-void
-feupdateenv (const fenv_t *envp)
+int
+__feupdateenv (const fenv_t *envp)
 {
-  unsigned long tmp;
+  unsigned long int tmp;
 
   /* Get the current exception state.  */
-  tmp = __ieee_get_fp_control();
+  tmp = __ieee_get_fp_control ();
 
   /* Install new environment.  */
-  fesetenv(envp);
+  fesetenv (envp);
 
   /* Raise the saved exception.  Incidently for us the implementation
      defined format of the values in objects of type fexcept_t is the
      same as the ones specified using the FE_* constants.  */
-  feraiseexcept((int)tmp & FE_ALL_EXCEPT);
+  feraiseexcept ((int) tmp & FE_ALL_EXCEPT);
+
+  /* Success.  */
+  return 0;
 }
+strong_alias (__feupdateenv, __old_feupdateenv)
+symbol_version (__old_feupdateenv, feupdateenv, GLIBC_2.1);
+default_symbol_version (__feupdateenv, feupdateenv, GLIBC_2.1.3);
diff --git a/sysdeps/alpha/fpu/fgetexcptflg.c b/sysdeps/alpha/fpu/fgetexcptflg.c
index 28d9e129b1..2811d02cd1 100644
--- a/sysdeps/alpha/fpu/fgetexcptflg.c
+++ b/sysdeps/alpha/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
 /* Store current representation for exceptions.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>, 1997.
 
@@ -20,14 +20,20 @@
 
 #include <fenv.h>
 
-void
-fegetexceptflag (fexcept_t *flagp, int excepts)
+int
+__fegetexceptflag (fexcept_t *flagp, int excepts)
 {
-  unsigned long tmp;
+  unsigned long int tmp;
 
   /* Get the current state.  */
   tmp = __ieee_get_fp_control();
 
   /* Return that portion that corresponds to the requested exceptions. */
   *flagp = tmp & excepts & FE_ALL_EXCEPT;
+
+  /* Success.  */
+  return 0;
 }
+strong_alias (__fegetexceptflag, __old_fegetexceptflag)
+symbol_version (__old_fegetexceptflag, fegetexceptflag, GLIBC_2.1);
+default_symbol_version (__fegetexceptflag, fegetexceptflag, GLIBC_2.1.3);
diff --git a/sysdeps/alpha/fpu/fraiseexcpt.c b/sysdeps/alpha/fpu/fraiseexcpt.c
index 9b61ddb843..bcbc06b400 100644
--- a/sysdeps/alpha/fpu/fraiseexcpt.c
+++ b/sysdeps/alpha/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
 /* Raise given exceptions.
-   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>, 1997.
 
@@ -22,9 +22,10 @@
 #include <math.h>
 
 void
-feraiseexcept (int excepts)
+__feraiseexcept (int excepts)
 {
-  double tmp, dummy;
+  double tmp;
+  double dummy;
 
   /* Raise exceptions represented by EXPECTS.  But we must raise only
      one signal at a time.  It is important the if the overflow/underflow
@@ -36,38 +37,34 @@ feraiseexcept (int excepts)
 
   /* First: invalid exception.  */
   if (FE_INVALID & excepts)
-    {
-      /* One example of a invalid operation is 0 * Infinity.  */
-      __asm__ __volatile__("mult/sui $f31,%1,%0; trapb"
-			   : "=&f"(tmp) : "f"(HUGE_VAL));
-    }
+    /* One example of a invalid operation is 0 * Infinity.  */
+    __asm__ __volatile__("mult/sui $f31,%1,%0; trapb"
+			 : "=&f" (tmp) : "f" (HUGE_VAL));
 
   /* Next: division by zero.  */
   if (FE_DIVBYZERO & excepts)
-    {
-      __asm__ __volatile__("cmpteq $f31,$f31,%1; divt/sui %1,$f31,%0; trapb"
-			   : "=&f"(tmp), "=f"(dummy));
-    }
+    __asm__ __volatile__("cmpteq $f31,$f31,%1; divt/sui %1,$f31,%0; trapb"
+			 : "=&f" (tmp), "=f" (dummy));
 
   /* Next: overflow.  */
   if (FE_OVERFLOW & excepts)
-    {
-      __asm__ __volatile__("mult/sui %1,%1,%0; trapb"
-			   : "=&f"(tmp) : "f"(DBL_MAX));
-    }
+    __asm__ __volatile__("mult/sui %1,%1,%0; trapb"
+			 : "=&f" (tmp) : "f" (DBL_MAX));
 
   /* Next: underflow.  */
   if (FE_UNDERFLOW & excepts)
-    {
-      __asm__ __volatile__("divt/sui %1,%2,%0; trapb"
-			   : "=&f"(tmp) : "f"(DBL_MIN),
-					 "f"((double) (1UL << 60)));
-    }
+    __asm__ __volatile__("divt/sui %1,%2,%0; trapb"
+			 : "=&f" (tmp) : "f" (DBL_MIN),
+			   "f" ((double) (1UL << 60)));
 
   /* Last: inexact.  */
   if (FE_INEXACT & excepts)
-    {
-      __asm__ __volatile__("divt/sui %1,%2,%0; trapb"
-			   : "=&f"(tmp) : "f"(1.0), "f"(M_PI));
-    }
+    __asm__ __volatile__("divt/sui %1,%2,%0; trapb"
+			 : "=&f" (tmp) : "f" (1.0), "f" (M_PI));
+
+  /* Success.  */
+  return 0;
 }
+strong_alias (__feraiseexcept, __old_feraiseexcept)
+symbol_version (__old_feraiseexcept, feraiseexcept, GLIBC_2.1);
+default_symbol_version (__feraiseexcept, feraiseexcept, GLIBC_2.1.3);
diff --git a/sysdeps/alpha/fpu/fsetexcptflg.c b/sysdeps/alpha/fpu/fsetexcptflg.c
index 5764a6ec7b..eeb987ede2 100644
--- a/sysdeps/alpha/fpu/fsetexcptflg.c
+++ b/sysdeps/alpha/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
 /* Set floating-point environment exception handling.
-   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>, 1997.
 
@@ -20,17 +20,23 @@
 
 #include <fenv.h>
 
-void
-fesetexceptflag (const fexcept_t *flagp, int excepts)
+int
+__fesetexceptflag (const fexcept_t *flagp, int excepts)
 {
-  unsigned long tmp;
+  unsigned long int tmp;
 
   /* Get the current exception state.  */
-  tmp = __ieee_get_fp_control();
+  tmp = __ieee_get_fp_control ();
 
   /* Set all the bits that were called for.  */
   tmp = (tmp & ~FE_ALL_EXCEPT) | (*flagp & excepts & FE_ALL_EXCEPT);
 
   /* And store it back.  */
-  __ieee_set_fp_control(tmp);
+  __ieee_set_fp_control (tmp);
+
+  /* Success.  */
+  return 0;
 }
+strong_alias (__fesetexceptflag, __old_fesetexceptflag)
+symbol_version (__old_fesetexceptflag, fesetexceptflag, GLIBC_2.1);
+default_symbol_version (__fesetexceptflag, fesetexceptflag, GLIBC_2.1.3);