configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of ${srcdir}/ginclude...
authorJoseph Myers <jsm28@cam.ac.uk>
Tue, 1 Jan 2002 23:21:01 +0000 (23:21 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 1 Jan 2002 23:21:01 +0000 (23:21 +0000)
* configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
${srcdir}/ginclude/ to every entry in extra_headers.
* configure: Regenerate.
* ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
* ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
* ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
* ginclude/proto.h: Rename to config/convex/proto.h.

From-SVN: r48454

gcc/ChangeLog
gcc/config/convex/proto.h [new file with mode: 0644]
gcc/config/m68k/math-3300.h [new file with mode: 0644]
gcc/config/m68k/math-68881.h [new file with mode: 0644]
gcc/config/rs6000/ppc-asm.h [new file with mode: 0644]
gcc/configure
gcc/configure.in
gcc/ginclude/math-3300.h [deleted file]
gcc/ginclude/math-68881.h [deleted file]
gcc/ginclude/ppc-asm.h [deleted file]
gcc/ginclude/proto.h [deleted file]

index f17fa1df6eda7fcac4385c4f96df1691a398db29..1b5008b0cba7f72e45decda26203d3f3f7785135 100644 (file)
@@ -1,3 +1,13 @@
+2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
+       ${srcdir}/ginclude/ to every entry in extra_headers.
+       * configure: Regenerate.
+       * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
+       * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
+       * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
+       * ginclude/proto.h: Rename to config/convex/proto.h.
+
 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * attribs.c (handle_vector_size_attribute): Use host_integerp
diff --git a/gcc/config/convex/proto.h b/gcc/config/convex/proto.h
new file mode 100644 (file)
index 0000000..cc48915
--- /dev/null
@@ -0,0 +1,4 @@
+/* This header file is to avoid trouble with semi-ANSI header files
+   on the Convex in system version 8.0.  */
+
+#define _PROTO(list) ()
diff --git a/gcc/config/m68k/math-3300.h b/gcc/config/m68k/math-3300.h
new file mode 100644 (file)
index 0000000..5d7ba28
--- /dev/null
@@ -0,0 +1,461 @@
+/******************************************************************\
+*                                                                 *
+*  <math-68881.h>              last modified: 18 May 1989.        *
+*                                                                 *
+*  Copyright (C) 1989 by Matthew Self.                            *
+*  You may freely distribute verbatim copies of this software     *
+*  provided that this copyright notice is retained in all copies.  *
+*  You may distribute modifications to this software under the     *
+*  conditions above if you also clearly note such modifications    *
+*  with their author and date.                                    *
+*                                                                 *
+*  Note:  errno is not set to EDOM when domain errors occur for    *
+*  most of these functions.  Rather, it is assumed that the       *
+*  68881's OPERR exception will be enabled and handled            *
+*  appropriately by the        operating system.  Similarly, overflow     *
+*  and underflow do not set errno to ERANGE.                      *
+*                                                                 *
+*  Send bugs to Matthew Self (self@bayes.arc.nasa.gov).                   *
+*                                                                 *
+\******************************************************************/
+
+#include <errno.h>
+
+#undef HUGE_VAL
+#define HUGE_VAL                                                       \
+({                                                                     \
+  double huge_val;                                                     \
+                                                                       \
+  __asm ("fmove%.d %#0x7ff0000000000000,%0"    /* Infinity */          \
+        : "=f" (huge_val)                                              \
+        : /* no inputs */);                                            \
+  huge_val;                                                            \
+})
+
+__inline static const double sin (double x)
+{
+  double value;
+
+  __asm ("fsin%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double cos (double x)
+{
+  double value;
+
+  __asm ("fcos%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double tan (double x)
+{
+  double value;
+
+  __asm ("ftan%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double asin (double x)
+{
+  double value;
+
+  __asm ("fasin%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double acos (double x)
+{
+  double value;
+
+  __asm ("facos%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double atan (double x)
+{
+  double value;
+
+  __asm ("fatan%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double atan2 (double y, double x)
+{
+  double pi, pi_over_2;
+
+  __asm ("fmovecr%.x %#0,%0"           /* extended precision pi */
+        : "=f" (pi)
+        : /* no inputs */ );
+  __asm ("fscale%.b %#-1,%0"           /* no loss of accuracy */
+        : "=f" (pi_over_2)
+        : "0" (pi));
+  if (x > 0)
+    {
+      if (y > 0)
+       {
+         if (x > y)
+           return atan (y / x);
+         else
+           return pi_over_2 - atan (x / y);
+       }
+      else
+       {
+         if (x > -y)
+           return atan (y / x);
+         else
+           return - pi_over_2 - atan (x / y);
+       }
+    }
+  else
+    {
+      if (y > 0)
+       {
+         if (-x > y)
+           return pi + atan (y / x);
+         else
+           return pi_over_2 - atan (x / y);
+       }
+      else
+       {
+         if (-x > -y)
+           return - pi + atan (y / x);
+         else if (y < 0)
+           return - pi_over_2 - atan (x / y);
+         else
+           {
+             double value;
+
+             errno = EDOM;
+             __asm ("fmove%.d %#0x7fffffffffffffff,%0"         /* quiet NaN */
+                    : "=f" (value)
+                    : /* no inputs */);
+             return value;
+           }
+       }
+    }
+}
+
+__inline static const double sinh (double x)
+{
+  double value;
+
+  __asm ("fsinh%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double cosh (double x)
+{
+  double value;
+
+  __asm ("fcosh%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double tanh (double x)
+{
+  double value;
+
+  __asm ("ftanh%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double atanh (double x)
+{
+  double value;
+
+  __asm ("fatanh%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double exp (double x)
+{
+  double value;
+
+  __asm ("fetox%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double expm1 (double x)
+{
+  double value;
+
+  __asm ("fetoxm1%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double log (double x)
+{
+  double value;
+
+  __asm ("flogn%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double log1p (double x)
+{
+  double value;
+
+  __asm ("flognp1%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double log10 (double x)
+{
+  double value;
+
+  __asm ("flog10%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double sqrt (double x)
+{
+  double value;
+
+  __asm ("fsqrt%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double pow (const double x, const double y)
+{
+  if (x > 0)
+    return exp (y * log (x));
+  else if (x == 0)
+    {
+      if (y > 0)
+       return 0.0;
+      else
+       {
+         double value;
+
+         errno = EDOM;
+         __asm ("fmove%.d %#0x7fffffffffffffff,%0"             /* quiet NaN */
+                : "=f" (value)
+                : /* no inputs */);
+         return value;
+       }
+    }
+  else
+    {
+      double temp;
+
+      __asm ("fintrz%.x %1,%0"
+            : "=f" (temp)                      /* integer-valued float */
+            : "f" (y));
+      if (y == temp)
+        {
+         int i = (int) y;
+         
+         if ((i & 1) == 0)                     /* even */
+           return exp (y * log (x));
+         else
+           return - exp (y * log (x));
+        }
+      else
+        {
+         double value;
+
+         errno = EDOM;
+         __asm ("fmove%.d %#0x7fffffffffffffff,%0"             /* quiet NaN */
+                : "=f" (value)
+                : /* no inputs */);
+         return value;
+        }
+    }
+}
+
+__inline static const double fabs (double x)
+{
+  double value;
+
+  __asm ("fabs%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline static const double ceil (double x)
+{
+  int rounding_mode, round_up;
+  double value;
+
+  __asm volatile ("fmove%.l %%fpcr,%0"
+                 : "=dm" (rounding_mode)
+                 : /* no inputs */ );
+  round_up = rounding_mode | 0x30;
+  __asm volatile ("fmove%.l %0,%%fpcr"
+                 : /* no outputs */
+                 : "dmi" (round_up));
+  __asm volatile ("fint%.x %1,%0"
+                 : "=f" (value)
+                 : "f" (x));
+  __asm volatile ("fmove%.l %0,%%fpcr"
+                 : /* no outputs */
+                 : "dmi" (rounding_mode));
+  return value;
+}
+
+__inline static const double floor (double x)
+{
+  int rounding_mode, round_down;
+  double value;
+
+  __asm volatile ("fmove%.l %%fpcr,%0"
+                 : "=dm" (rounding_mode)
+                 : /* no inputs */ );
+  round_down = (rounding_mode & ~0x10)
+               | 0x20;
+  __asm volatile ("fmove%.l %0,%%fpcr"
+                 : /* no outputs */
+                 : "dmi" (round_down));
+  __asm volatile ("fint%.x %1,%0"
+                 : "=f" (value)
+                 : "f" (x));
+  __asm volatile ("fmove%.l %0,%%fpcr"
+                 : /* no outputs */
+                 : "dmi" (rounding_mode));
+  return value;
+}
+
+__inline static const double rint (double x)
+{
+  int rounding_mode, round_nearest;
+  double value;
+
+  __asm volatile ("fmove%.l %%fpcr,%0"
+                 : "=dm" (rounding_mode)
+                 : /* no inputs */ );
+  round_nearest = rounding_mode & ~0x30;
+  __asm volatile ("fmove%.l %0,%%fpcr"
+                 : /* no outputs */
+                 : "dmi" (round_nearest));
+  __asm volatile ("fint%.x %1,%0"
+                 : "=f" (value)
+                 : "f" (x));
+  __asm volatile ("fmove%.l %0,%%fpcr"
+                 : /* no outputs */
+                 : "dmi" (rounding_mode));
+  return value;
+}
+
+__inline static const double fmod (double x, double y)
+{
+  double value;
+
+  __asm ("fmod%.x %2,%0"
+        : "=f" (value)
+        : "0" (x),
+          "f" (y));
+  return value;
+}
+
+__inline static const double drem (double x, double y)
+{
+  double value;
+
+  __asm ("frem%.x %2,%0"
+        : "=f" (value)
+        : "0" (x),
+          "f" (y));
+  return value;
+}
+
+__inline static const double scalb (double x, int n)
+{
+  double value;
+
+  __asm ("fscale%.l %2,%0"
+        : "=f" (value)
+        : "0" (x),
+          "dmi" (n));
+  return value;
+}
+
+__inline static double logb (double x)
+{
+  double exponent;
+
+  __asm ("fgetexp%.x %1,%0"
+        : "=f" (exponent)
+        : "f" (x));
+  return exponent;
+}
+
+__inline static const double ldexp (double x, int n)
+{
+  double value;
+
+  __asm ("fscale%.l %2,%0"
+        : "=f" (value)
+        : "0" (x),
+          "dmi" (n));
+  return value;
+}
+
+__inline static double frexp (double x, int *exp)
+{
+  double float_exponent;
+  int int_exponent;
+  double mantissa;
+
+  __asm ("fgetexp%.x %1,%0"
+        : "=f" (float_exponent)        /* integer-valued float */
+        : "f" (x));
+  int_exponent = (int) float_exponent;
+  __asm ("fgetman%.x %1,%0"
+        : "=f" (mantissa)              /* 1.0 <= mantissa < 2.0 */
+        : "f" (x));
+  if (mantissa != 0)
+    {
+      __asm ("fscale%.b %#-1,%0"
+            : "=f" (mantissa)          /* mantissa /= 2.0 */
+            : "0" (mantissa));
+      int_exponent += 1;
+    }
+  *exp = int_exponent;
+  return mantissa;
+}
+
+__inline static double modf (double x, double *ip)
+{
+  double temp;
+
+  __asm ("fintrz%.x %1,%0"
+        : "=f" (temp)                  /* integer-valued float */
+        : "f" (x));
+  *ip = temp;
+  return x - temp;
+}
+
diff --git a/gcc/config/m68k/math-68881.h b/gcc/config/m68k/math-68881.h
new file mode 100644 (file)
index 0000000..7b91bc5
--- /dev/null
@@ -0,0 +1,529 @@
+/******************************************************************\
+*                                                                 *
+*  <math-68881.h>              last modified: 23 May 1992.        *
+*                                                                 *
+*  Copyright (C) 1989 by Matthew Self.                            *
+*  You may freely distribute verbatim copies of this software     *
+*  provided that this copyright notice is retained in all copies.  *
+*  You may distribute modifications to this software under the     *
+*  conditions above if you also clearly note such modifications    *
+*  with their author and date.                                    *
+*                                                                 *
+*  Note:  errno is not set to EDOM when domain errors occur for    *
+*  most of these functions.  Rather, it is assumed that the       *
+*  68881's OPERR exception will be enabled and handled            *
+*  appropriately by the        operating system.  Similarly, overflow     *
+*  and underflow do not set errno to ERANGE.                      *
+*                                                                 *
+*  Send bugs to Matthew Self (self@bayes.arc.nasa.gov).                   *
+*                                                                 *
+\******************************************************************/
+
+/* This file is NOT a part of GCC, just distributed with it.  */
+
+/* If you find this in GCC,
+   please send bug reports to bug-gcc@prep.ai.mit.edu.  */
+
+/* Changed by Richard Stallman:
+   May 1993, add conditional to prevent multiple inclusion.
+   % inserted before a #.
+   New function `hypot' added.
+   Nans written in hex to avoid 0rnan.
+   May 1992, use %! for fpcr register.  Break lines before function names.
+   December 1989, add parens around `&' in pow.
+   November 1990, added alternate definition of HUGE_VAL for Sun.  */
+
+/* Changed by Jim Wilson:
+   September 1993, Use #undef before HUGE_VAL instead of #ifdef/#endif.  */
+
+/* Changed by Ian Lance Taylor:
+   September 1994, use extern inline instead of static inline.  */
+
+#ifndef __math_68881
+#define __math_68881
+
+#include <errno.h>
+
+#undef HUGE_VAL
+#ifdef __sun__
+/* The Sun assembler fails to handle the hex constant in the usual defn.  */
+#define HUGE_VAL                                                       \
+({                                                                     \
+  static union { int i[2]; double d; } u = { {0x7ff00000, 0} };                \
+  u.d;                                                                 \
+})
+#else
+#define HUGE_VAL                                                       \
+({                                                                     \
+  double huge_val;                                                     \
+                                                                       \
+  __asm ("fmove%.d %#0x7ff0000000000000,%0"    /* Infinity */          \
+        : "=f" (huge_val)                                              \
+        : /* no inputs */);                                            \
+  huge_val;                                                            \
+})
+#endif
+
+__inline extern double
+sin (double x)
+{
+  double value;
+
+  __asm ("fsin%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+cos (double x)
+{
+  double value;
+
+  __asm ("fcos%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+tan (double x)
+{
+  double value;
+
+  __asm ("ftan%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+asin (double x)
+{
+  double value;
+
+  __asm ("fasin%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+acos (double x)
+{
+  double value;
+
+  __asm ("facos%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+atan (double x)
+{
+  double value;
+
+  __asm ("fatan%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+atan2 (double y, double x)
+{
+  double pi, pi_over_2;
+
+  __asm ("fmovecr%.x %#0,%0"           /* extended precision pi */
+        : "=f" (pi)
+        : /* no inputs */ );
+  __asm ("fscale%.b %#-1,%0"           /* no loss of accuracy */
+        : "=f" (pi_over_2)
+        : "0" (pi));
+  if (x > 0)
+    {
+      if (y > 0)
+       {
+         if (x > y)
+           return atan (y / x);
+         else
+           return pi_over_2 - atan (x / y);
+       }
+      else
+       {
+         if (x > -y)
+           return atan (y / x);
+         else
+           return - pi_over_2 - atan (x / y);
+       }
+    }
+  else
+    {
+      if (y < 0)
+       {
+         if (-x > -y)
+           return - pi + atan (y / x);
+         else
+           return - pi_over_2 - atan (x / y);
+       }
+      else
+       {
+         if (-x > y)
+           return pi + atan (y / x);
+         else if (y > 0)
+           return pi_over_2 - atan (x / y);
+         else
+           {
+             double value;
+
+             errno = EDOM;
+             __asm ("fmove%.d %#0x7fffffffffffffff,%0"         /* quiet NaN */
+                    : "=f" (value)
+                    : /* no inputs */);
+             return value;
+           }
+       }
+    }
+}
+
+__inline extern double
+sinh (double x)
+{
+  double value;
+
+  __asm ("fsinh%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+cosh (double x)
+{
+  double value;
+
+  __asm ("fcosh%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+tanh (double x)
+{
+  double value;
+
+  __asm ("ftanh%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+atanh (double x)
+{
+  double value;
+
+  __asm ("fatanh%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+exp (double x)
+{
+  double value;
+
+  __asm ("fetox%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+expm1 (double x)
+{
+  double value;
+
+  __asm ("fetoxm1%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+log (double x)
+{
+  double value;
+
+  __asm ("flogn%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+log1p (double x)
+{
+  double value;
+
+  __asm ("flognp1%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+log10 (double x)
+{
+  double value;
+
+  __asm ("flog10%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+sqrt (double x)
+{
+  double value;
+
+  __asm ("fsqrt%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+hypot (double x, double y)
+{
+  return sqrt (x*x + y*y);
+}
+
+__inline extern double
+pow (double x, double y)
+{
+  if (x > 0)
+    return exp (y * log (x));
+  else if (x == 0)
+    {
+      if (y > 0)
+       return 0.0;
+      else
+       {
+         double value;
+
+         errno = EDOM;
+         __asm ("fmove%.d %#0x7fffffffffffffff,%0"             /* quiet NaN */
+                : "=f" (value)
+                : /* no inputs */);
+         return value;
+       }
+    }
+  else
+    {
+      double temp;
+
+      __asm ("fintrz%.x %1,%0"
+            : "=f" (temp)                      /* integer-valued float */
+            : "f" (y));
+      if (y == temp)
+        {
+         int i = (int) y;
+         
+         if ((i & 1) == 0)                     /* even */
+           return exp (y * log (-x));
+         else
+           return - exp (y * log (-x));
+        }
+      else
+        {
+         double value;
+
+         errno = EDOM;
+         __asm ("fmove%.d %#0x7fffffffffffffff,%0"             /* quiet NaN */
+                : "=f" (value)
+                : /* no inputs */);
+         return value;
+        }
+    }
+}
+
+__inline extern double
+fabs (double x)
+{
+  double value;
+
+  __asm ("fabs%.x %1,%0"
+        : "=f" (value)
+        : "f" (x));
+  return value;
+}
+
+__inline extern double
+ceil (double x)
+{
+  int rounding_mode, round_up;
+  double value;
+
+  __asm volatile ("fmove%.l %!,%0"
+                 : "=dm" (rounding_mode)
+                 : /* no inputs */ );
+  round_up = rounding_mode | 0x30;
+  __asm volatile ("fmove%.l %0,%!"
+                 : /* no outputs */
+                 : "dmi" (round_up));
+  __asm volatile ("fint%.x %1,%0"
+                 : "=f" (value)
+                 : "f" (x));
+  __asm volatile ("fmove%.l %0,%!"
+                 : /* no outputs */
+                 : "dmi" (rounding_mode));
+  return value;
+}
+
+__inline extern double
+floor (double x)
+{
+  int rounding_mode, round_down;
+  double value;
+
+  __asm volatile ("fmove%.l %!,%0"
+                 : "=dm" (rounding_mode)
+                 : /* no inputs */ );
+  round_down = (rounding_mode & ~0x10)
+               | 0x20;
+  __asm volatile ("fmove%.l %0,%!"
+                 : /* no outputs */
+                 : "dmi" (round_down));
+  __asm volatile ("fint%.x %1,%0"
+                 : "=f" (value)
+                 : "f" (x));
+  __asm volatile ("fmove%.l %0,%!"
+                 : /* no outputs */
+                 : "dmi" (rounding_mode));
+  return value;
+}
+
+__inline extern double
+rint (double x)
+{
+  int rounding_mode, round_nearest;
+  double value;
+
+  __asm volatile ("fmove%.l %!,%0"
+                 : "=dm" (rounding_mode)
+                 : /* no inputs */ );
+  round_nearest = rounding_mode & ~0x30;
+  __asm volatile ("fmove%.l %0,%!"
+                 : /* no outputs */
+                 : "dmi" (round_nearest));
+  __asm volatile ("fint%.x %1,%0"
+                 : "=f" (value)
+                 : "f" (x));
+  __asm volatile ("fmove%.l %0,%!"
+                 : /* no outputs */
+                 : "dmi" (rounding_mode));
+  return value;
+}
+
+__inline extern double
+fmod (double x, double y)
+{
+  double value;
+
+  __asm ("fmod%.x %2,%0"
+        : "=f" (value)
+        : "0" (x),
+          "f" (y));
+  return value;
+}
+
+__inline extern double
+drem (double x, double y)
+{
+  double value;
+
+  __asm ("frem%.x %2,%0"
+        : "=f" (value)
+        : "0" (x),
+          "f" (y));
+  return value;
+}
+
+__inline extern double
+scalb (double x, int n)
+{
+  double value;
+
+  __asm ("fscale%.l %2,%0"
+        : "=f" (value)
+        : "0" (x),
+          "dmi" (n));
+  return value;
+}
+
+__inline extern double
+logb (double x)
+{
+  double exponent;
+
+  __asm ("fgetexp%.x %1,%0"
+        : "=f" (exponent)
+        : "f" (x));
+  return exponent;
+}
+
+__inline extern double
+ldexp (double x, int n)
+{
+  double value;
+
+  __asm ("fscale%.l %2,%0"
+        : "=f" (value)
+        : "0" (x),
+          "dmi" (n));
+  return value;
+}
+
+__inline extern double
+frexp (double x, int *exp)
+{
+  double float_exponent;
+  int int_exponent;
+  double mantissa;
+
+  __asm ("fgetexp%.x %1,%0"
+        : "=f" (float_exponent)        /* integer-valued float */
+        : "f" (x));
+  int_exponent = (int) float_exponent;
+  __asm ("fgetman%.x %1,%0"
+        : "=f" (mantissa)              /* 1.0 <= mantissa < 2.0 */
+        : "f" (x));
+  if (mantissa != 0)
+    {
+      __asm ("fscale%.b %#-1,%0"
+            : "=f" (mantissa)          /* mantissa /= 2.0 */
+            : "0" (mantissa));
+      int_exponent += 1;
+    }
+  *exp = int_exponent;
+  return mantissa;
+}
+
+__inline extern double
+modf (double x, double *ip)
+{
+  double temp;
+
+  __asm ("fintrz%.x %1,%0"
+        : "=f" (temp)                  /* integer-valued float */
+        : "f" (x));
+  *ip = temp;
+  return x - temp;
+}
+
+#endif /* not __math_68881 */
diff --git a/gcc/config/rs6000/ppc-asm.h b/gcc/config/rs6000/ppc-asm.h
new file mode 100644 (file)
index 0000000..3a6fb2a
--- /dev/null
@@ -0,0 +1,196 @@
+/* PowerPC asm definitions for GNU C.  */
+/* Under winnt, 1) gas supports the following as names and 2) in particular
+   defining "toc" breaks the FUNC_START macro as ".toc" becomes ".2" */
+
+#if !defined(__WINNT__)
+#define r0     0
+#define sp     1
+#define toc    2
+#define r3     3
+#define r4     4
+#define r5     5
+#define r6     6
+#define r7     7
+#define r8     8
+#define r9     9
+#define r10    10
+#define r11    11
+#define r12    12
+#define r13    13
+#define r14    14
+#define r15    15
+#define r16    16
+#define r17    17
+#define r18    18
+#define r19     19
+#define r20    20
+#define r21    21
+#define r22    22
+#define r23    23
+#define r24    24
+#define r25    25
+#define r26    26
+#define r27    27
+#define r28    28
+#define r29    29
+#define r30    30
+#define r31    31
+
+#define cr0    0
+#define cr1    1
+#define cr2    2
+#define cr3    3
+#define cr4    4
+#define cr5    5
+#define cr6    6
+#define cr7    7
+
+#define f0     0
+#define f1     1
+#define f2     2
+#define f3     3
+#define f4     4
+#define f5     5
+#define f6     6
+#define f7     7
+#define f8     8
+#define f9     9
+#define f10    10
+#define f11    11
+#define f12    12
+#define f13    13
+#define f14    14
+#define f15    15
+#define f16    16
+#define f17    17
+#define f18    18
+#define f19     19
+#define f20    20
+#define f21    21
+#define f22    22
+#define f23    23
+#define f24    24
+#define f25    25
+#define f26    26
+#define f27    27
+#define f28    28
+#define f29    29
+#define f30    30
+#define f31    31
+#endif
+
+/*
+ * Macros to glue together two tokens.
+ */
+
+#ifdef __STDC__
+#define XGLUE(a,b) a##b
+#else
+#define XGLUE(a,b) a/**/b
+#endif
+
+#define GLUE(a,b) XGLUE(a,b)
+
+/*
+ * Macros to begin and end a function written in assembler.  If -mcall-aixdesc
+ * or -mcall-nt, create a function descriptor with the given name, and create
+ * the real function with one or two leading periods respectively.
+ */
+
+#ifdef _RELOCATABLE
+#define DESC_SECTION ".got2"
+#else
+#define DESC_SECTION ".got1"
+#endif
+
+#if defined(_CALL_AIXDESC)
+#define FUNC_NAME(name) GLUE(.,name)
+#define JUMP_TARGET(name) FUNC_NAME(name)
+#define FUNC_START(name) \
+       .section DESC_SECTION,"aw"; \
+name: \
+       .long GLUE(.,name); \
+       .long _GLOBAL_OFFSET_TABLE_; \
+       .long 0; \
+       .previous; \
+       .type GLUE(.,name),@function; \
+       .globl name; \
+       .globl GLUE(.,name); \
+GLUE(.,name):
+
+#define FUNC_END(name) \
+GLUE(.L,name): \
+       .size GLUE(.,name),GLUE(.L,name)-GLUE(.,name)
+
+#elif defined(__WINNT__)
+#define FUNC_NAME(name) GLUE(..,name)
+#define JUMP_TARGET(name) FUNC_NAME(name)
+#define FUNC_START(name) \
+       .pdata; \
+       .align 2; \
+       .ualong GLUE(..,name),GLUE(name,.e),0,0,GLUE(..,name); \
+       .reldata; \
+name: \
+       .ualong GLUE(..,name),.toc; \
+       .section .text; \
+       .globl name; \
+       .globl GLUE(..,name); \
+GLUE(..,name):
+
+#define FUNC_END(name) \
+GLUE(name,.e): ; \
+GLUE(FE_MOT_RESVD..,name):
+
+#elif defined(_CALL_NT)
+#define FUNC_NAME(name) GLUE(..,name)
+#define JUMP_TARGET(name) FUNC_NAME(name)
+#define FUNC_START(name) \
+       .section DESC_SECTION,"aw"; \
+name: \
+       .long GLUE(..,name); \
+       .long _GLOBAL_OFFSET_TABLE_; \
+       .previous; \
+       .type GLUE(..,name),@function; \
+       .globl name; \
+       .globl GLUE(..,name); \
+GLUE(..,name):
+
+#define FUNC_END(name) \
+GLUE(.L,name): \
+       .size GLUE(..,name),GLUE(.L,name)-GLUE(..,name)
+
+#elif defined (__powerpc64__)
+#define FUNC_NAME(name) GLUE(.,name)
+#define FUNC_START(name) \
+       .section ".opd","aw"; \
+name: \
+       .quad GLUE(.,name); \
+       .quad .TOC.@tocbase; \
+       .quad 0; \
+       .previous; \
+       .type GLUE(.,name),@function; \
+       .globl name; \
+       .globl GLUE(.,name); \
+GLUE(.,name):
+
+#define FUNC_END(name) \
+GLUE(.L,name): \
+       .size GLUE(.,name),GLUE(.L,name)-GLUE(.,name)
+
+#else
+#define FUNC_NAME(name) GLUE(__USER_LABEL_PREFIX__,name)
+#if defined __PIC__ || defined __pic__
+#define JUMP_TARGET(name) FUNC_NAME(name@plt)
+#else
+#define JUMP_TARGET(name) FUNC_NAME(name)
+#endif
+#define FUNC_START(name) \
+       .type FUNC_NAME(name),@function; \
+       .globl FUNC_NAME(name); \
+FUNC_NAME(name):
+
+#define FUNC_END(name) \
+GLUE(.L,name): \
+       .size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
+#endif
+
index cebe4ff026971ab1fec744524c41f8eb9e2349e8..5479946e0700ec38b8acb26bcfd9ce367086441e 100755 (executable)
@@ -6786,10 +6786,10 @@ extra_headers_list=
 if test "x$extra_headers" = x
 then true
 else
-       # Prepend ${srcdir}/ginclude/ to every entry in extra_headers.
+       # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers.
        for file in $extra_headers;
        do
-               extra_headers_list="${extra_headers_list} \$(srcdir)/ginclude/${file}"
+               extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
        done
 fi
 
@@ -7439,7 +7439,7 @@ EOF
     case "$tm_file" in
     *64*)
        echo $ac_n "checking for 64 bit support in assembler ($gcc_cv_as)""... $ac_c" 1>&6
-echo "configure:7442: checking for 64 bit support in assembler ($gcc_cv_as)" >&5
+echo "configure:7443: checking for 64 bit support in assembler ($gcc_cv_as)" >&5
 if eval "test \"`echo '$''{'gcc_cv_as_flags64'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7484,7 +7484,7 @@ EOF
 
     if test "x$gcc_cv_as_flags64" != xno; then
        echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6
-echo "configure:7487: checking for assembler offsetable %lo() support" >&5
+echo "configure:7488: checking for assembler offsetable %lo() support" >&5
 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7524,7 +7524,7 @@ EOF
 
   i[34567]86-*-* | x86_64-*-*)
     echo $ac_n "checking assembler instructions""... $ac_c" 1>&6
-echo "configure:7527: checking assembler instructions" >&5
+echo "configure:7528: checking assembler instructions" >&5
     gcc_cv_as_instructions=
     if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
       if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then
@@ -7551,7 +7551,7 @@ EOF
     echo "$ac_t""$gcc_cv_as_instructions" 1>&6
 
     echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6
-echo "configure:7554: checking assembler GOTOFF in data directives" >&5
+echo "configure:7555: checking assembler GOTOFF in data directives" >&5
     gcc_cv_as_gotoff_in_data=no
     if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
     then
@@ -7581,7 +7581,7 @@ EOF
 esac
 
 echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6
-echo "configure:7584: checking assembler dwarf2 debug_line support" >&5
+echo "configure:7585: checking assembler dwarf2 debug_line support" >&5
 gcc_cv_as_dwarf2_debug_line=no
 # ??? Not all targets support dwarf2 debug_line, even within a version
 # of gas.  Moreover, we need to emit a valid instruction to trigger any
@@ -7637,7 +7637,7 @@ fi
 echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6
 
 echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6
-echo "configure:7640: checking assembler --gdwarf2 support" >&5
+echo "configure:7641: checking assembler --gdwarf2 support" >&5
 gcc_cv_as_gdwarf2_flag=no
 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
 then
@@ -7666,7 +7666,7 @@ fi
 echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6
 
 echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6
-echo "configure:7669: checking assembler --gstabs support" >&5
+echo "configure:7670: checking assembler --gstabs support" >&5
 gcc_cv_as_gstabs_flag=no
 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
 then
@@ -7694,7 +7694,7 @@ fi
 echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6
 
 echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6
-echo "configure:7697: checking linker PT_GNU_EH_FRAME support" >&5
+echo "configure:7698: checking linker PT_GNU_EH_FRAME support" >&5
 gcc_cv_ld_eh_frame_hdr=no
 if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
@@ -7857,7 +7857,7 @@ fi
 
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:7860: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:7861: checking whether to enable maintainer-specific portions of Makefiles" >&5
     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
index e4f1b9ecc7c00d6ebc5eaeb8a34d8ca16a5af0a9..11e66310f99a9d0d3e25ad67c1e723197d352835 100644 (file)
@@ -1,7 +1,7 @@
 # configure.in for GCC
 # Process this file with autoconf to generate a configuration script.
 
-# Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 #This file is part of GCC.
 
@@ -1136,10 +1136,10 @@ extra_headers_list=
 if test "x$extra_headers" = x
 then true
 else
-       # Prepend ${srcdir}/ginclude/ to every entry in extra_headers.
+       # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers.
        for file in $extra_headers;
        do
-               extra_headers_list="${extra_headers_list} \$(srcdir)/ginclude/${file}"
+               extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
        done
 fi
 
diff --git a/gcc/ginclude/math-3300.h b/gcc/ginclude/math-3300.h
deleted file mode 100644 (file)
index 5d7ba28..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-/******************************************************************\
-*                                                                 *
-*  <math-68881.h>              last modified: 18 May 1989.        *
-*                                                                 *
-*  Copyright (C) 1989 by Matthew Self.                            *
-*  You may freely distribute verbatim copies of this software     *
-*  provided that this copyright notice is retained in all copies.  *
-*  You may distribute modifications to this software under the     *
-*  conditions above if you also clearly note such modifications    *
-*  with their author and date.                                    *
-*                                                                 *
-*  Note:  errno is not set to EDOM when domain errors occur for    *
-*  most of these functions.  Rather, it is assumed that the       *
-*  68881's OPERR exception will be enabled and handled            *
-*  appropriately by the        operating system.  Similarly, overflow     *
-*  and underflow do not set errno to ERANGE.                      *
-*                                                                 *
-*  Send bugs to Matthew Self (self@bayes.arc.nasa.gov).                   *
-*                                                                 *
-\******************************************************************/
-
-#include <errno.h>
-
-#undef HUGE_VAL
-#define HUGE_VAL                                                       \
-({                                                                     \
-  double huge_val;                                                     \
-                                                                       \
-  __asm ("fmove%.d %#0x7ff0000000000000,%0"    /* Infinity */          \
-        : "=f" (huge_val)                                              \
-        : /* no inputs */);                                            \
-  huge_val;                                                            \
-})
-
-__inline static const double sin (double x)
-{
-  double value;
-
-  __asm ("fsin%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double cos (double x)
-{
-  double value;
-
-  __asm ("fcos%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double tan (double x)
-{
-  double value;
-
-  __asm ("ftan%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double asin (double x)
-{
-  double value;
-
-  __asm ("fasin%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double acos (double x)
-{
-  double value;
-
-  __asm ("facos%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double atan (double x)
-{
-  double value;
-
-  __asm ("fatan%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double atan2 (double y, double x)
-{
-  double pi, pi_over_2;
-
-  __asm ("fmovecr%.x %#0,%0"           /* extended precision pi */
-        : "=f" (pi)
-        : /* no inputs */ );
-  __asm ("fscale%.b %#-1,%0"           /* no loss of accuracy */
-        : "=f" (pi_over_2)
-        : "0" (pi));
-  if (x > 0)
-    {
-      if (y > 0)
-       {
-         if (x > y)
-           return atan (y / x);
-         else
-           return pi_over_2 - atan (x / y);
-       }
-      else
-       {
-         if (x > -y)
-           return atan (y / x);
-         else
-           return - pi_over_2 - atan (x / y);
-       }
-    }
-  else
-    {
-      if (y > 0)
-       {
-         if (-x > y)
-           return pi + atan (y / x);
-         else
-           return pi_over_2 - atan (x / y);
-       }
-      else
-       {
-         if (-x > -y)
-           return - pi + atan (y / x);
-         else if (y < 0)
-           return - pi_over_2 - atan (x / y);
-         else
-           {
-             double value;
-
-             errno = EDOM;
-             __asm ("fmove%.d %#0x7fffffffffffffff,%0"         /* quiet NaN */
-                    : "=f" (value)
-                    : /* no inputs */);
-             return value;
-           }
-       }
-    }
-}
-
-__inline static const double sinh (double x)
-{
-  double value;
-
-  __asm ("fsinh%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double cosh (double x)
-{
-  double value;
-
-  __asm ("fcosh%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double tanh (double x)
-{
-  double value;
-
-  __asm ("ftanh%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double atanh (double x)
-{
-  double value;
-
-  __asm ("fatanh%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double exp (double x)
-{
-  double value;
-
-  __asm ("fetox%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double expm1 (double x)
-{
-  double value;
-
-  __asm ("fetoxm1%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double log (double x)
-{
-  double value;
-
-  __asm ("flogn%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double log1p (double x)
-{
-  double value;
-
-  __asm ("flognp1%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double log10 (double x)
-{
-  double value;
-
-  __asm ("flog10%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double sqrt (double x)
-{
-  double value;
-
-  __asm ("fsqrt%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double pow (const double x, const double y)
-{
-  if (x > 0)
-    return exp (y * log (x));
-  else if (x == 0)
-    {
-      if (y > 0)
-       return 0.0;
-      else
-       {
-         double value;
-
-         errno = EDOM;
-         __asm ("fmove%.d %#0x7fffffffffffffff,%0"             /* quiet NaN */
-                : "=f" (value)
-                : /* no inputs */);
-         return value;
-       }
-    }
-  else
-    {
-      double temp;
-
-      __asm ("fintrz%.x %1,%0"
-            : "=f" (temp)                      /* integer-valued float */
-            : "f" (y));
-      if (y == temp)
-        {
-         int i = (int) y;
-         
-         if ((i & 1) == 0)                     /* even */
-           return exp (y * log (x));
-         else
-           return - exp (y * log (x));
-        }
-      else
-        {
-         double value;
-
-         errno = EDOM;
-         __asm ("fmove%.d %#0x7fffffffffffffff,%0"             /* quiet NaN */
-                : "=f" (value)
-                : /* no inputs */);
-         return value;
-        }
-    }
-}
-
-__inline static const double fabs (double x)
-{
-  double value;
-
-  __asm ("fabs%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline static const double ceil (double x)
-{
-  int rounding_mode, round_up;
-  double value;
-
-  __asm volatile ("fmove%.l %%fpcr,%0"
-                 : "=dm" (rounding_mode)
-                 : /* no inputs */ );
-  round_up = rounding_mode | 0x30;
-  __asm volatile ("fmove%.l %0,%%fpcr"
-                 : /* no outputs */
-                 : "dmi" (round_up));
-  __asm volatile ("fint%.x %1,%0"
-                 : "=f" (value)
-                 : "f" (x));
-  __asm volatile ("fmove%.l %0,%%fpcr"
-                 : /* no outputs */
-                 : "dmi" (rounding_mode));
-  return value;
-}
-
-__inline static const double floor (double x)
-{
-  int rounding_mode, round_down;
-  double value;
-
-  __asm volatile ("fmove%.l %%fpcr,%0"
-                 : "=dm" (rounding_mode)
-                 : /* no inputs */ );
-  round_down = (rounding_mode & ~0x10)
-               | 0x20;
-  __asm volatile ("fmove%.l %0,%%fpcr"
-                 : /* no outputs */
-                 : "dmi" (round_down));
-  __asm volatile ("fint%.x %1,%0"
-                 : "=f" (value)
-                 : "f" (x));
-  __asm volatile ("fmove%.l %0,%%fpcr"
-                 : /* no outputs */
-                 : "dmi" (rounding_mode));
-  return value;
-}
-
-__inline static const double rint (double x)
-{
-  int rounding_mode, round_nearest;
-  double value;
-
-  __asm volatile ("fmove%.l %%fpcr,%0"
-                 : "=dm" (rounding_mode)
-                 : /* no inputs */ );
-  round_nearest = rounding_mode & ~0x30;
-  __asm volatile ("fmove%.l %0,%%fpcr"
-                 : /* no outputs */
-                 : "dmi" (round_nearest));
-  __asm volatile ("fint%.x %1,%0"
-                 : "=f" (value)
-                 : "f" (x));
-  __asm volatile ("fmove%.l %0,%%fpcr"
-                 : /* no outputs */
-                 : "dmi" (rounding_mode));
-  return value;
-}
-
-__inline static const double fmod (double x, double y)
-{
-  double value;
-
-  __asm ("fmod%.x %2,%0"
-        : "=f" (value)
-        : "0" (x),
-          "f" (y));
-  return value;
-}
-
-__inline static const double drem (double x, double y)
-{
-  double value;
-
-  __asm ("frem%.x %2,%0"
-        : "=f" (value)
-        : "0" (x),
-          "f" (y));
-  return value;
-}
-
-__inline static const double scalb (double x, int n)
-{
-  double value;
-
-  __asm ("fscale%.l %2,%0"
-        : "=f" (value)
-        : "0" (x),
-          "dmi" (n));
-  return value;
-}
-
-__inline static double logb (double x)
-{
-  double exponent;
-
-  __asm ("fgetexp%.x %1,%0"
-        : "=f" (exponent)
-        : "f" (x));
-  return exponent;
-}
-
-__inline static const double ldexp (double x, int n)
-{
-  double value;
-
-  __asm ("fscale%.l %2,%0"
-        : "=f" (value)
-        : "0" (x),
-          "dmi" (n));
-  return value;
-}
-
-__inline static double frexp (double x, int *exp)
-{
-  double float_exponent;
-  int int_exponent;
-  double mantissa;
-
-  __asm ("fgetexp%.x %1,%0"
-        : "=f" (float_exponent)        /* integer-valued float */
-        : "f" (x));
-  int_exponent = (int) float_exponent;
-  __asm ("fgetman%.x %1,%0"
-        : "=f" (mantissa)              /* 1.0 <= mantissa < 2.0 */
-        : "f" (x));
-  if (mantissa != 0)
-    {
-      __asm ("fscale%.b %#-1,%0"
-            : "=f" (mantissa)          /* mantissa /= 2.0 */
-            : "0" (mantissa));
-      int_exponent += 1;
-    }
-  *exp = int_exponent;
-  return mantissa;
-}
-
-__inline static double modf (double x, double *ip)
-{
-  double temp;
-
-  __asm ("fintrz%.x %1,%0"
-        : "=f" (temp)                  /* integer-valued float */
-        : "f" (x));
-  *ip = temp;
-  return x - temp;
-}
-
diff --git a/gcc/ginclude/math-68881.h b/gcc/ginclude/math-68881.h
deleted file mode 100644 (file)
index 7b91bc5..0000000
+++ /dev/null
@@ -1,529 +0,0 @@
-/******************************************************************\
-*                                                                 *
-*  <math-68881.h>              last modified: 23 May 1992.        *
-*                                                                 *
-*  Copyright (C) 1989 by Matthew Self.                            *
-*  You may freely distribute verbatim copies of this software     *
-*  provided that this copyright notice is retained in all copies.  *
-*  You may distribute modifications to this software under the     *
-*  conditions above if you also clearly note such modifications    *
-*  with their author and date.                                    *
-*                                                                 *
-*  Note:  errno is not set to EDOM when domain errors occur for    *
-*  most of these functions.  Rather, it is assumed that the       *
-*  68881's OPERR exception will be enabled and handled            *
-*  appropriately by the        operating system.  Similarly, overflow     *
-*  and underflow do not set errno to ERANGE.                      *
-*                                                                 *
-*  Send bugs to Matthew Self (self@bayes.arc.nasa.gov).                   *
-*                                                                 *
-\******************************************************************/
-
-/* This file is NOT a part of GCC, just distributed with it.  */
-
-/* If you find this in GCC,
-   please send bug reports to bug-gcc@prep.ai.mit.edu.  */
-
-/* Changed by Richard Stallman:
-   May 1993, add conditional to prevent multiple inclusion.
-   % inserted before a #.
-   New function `hypot' added.
-   Nans written in hex to avoid 0rnan.
-   May 1992, use %! for fpcr register.  Break lines before function names.
-   December 1989, add parens around `&' in pow.
-   November 1990, added alternate definition of HUGE_VAL for Sun.  */
-
-/* Changed by Jim Wilson:
-   September 1993, Use #undef before HUGE_VAL instead of #ifdef/#endif.  */
-
-/* Changed by Ian Lance Taylor:
-   September 1994, use extern inline instead of static inline.  */
-
-#ifndef __math_68881
-#define __math_68881
-
-#include <errno.h>
-
-#undef HUGE_VAL
-#ifdef __sun__
-/* The Sun assembler fails to handle the hex constant in the usual defn.  */
-#define HUGE_VAL                                                       \
-({                                                                     \
-  static union { int i[2]; double d; } u = { {0x7ff00000, 0} };                \
-  u.d;                                                                 \
-})
-#else
-#define HUGE_VAL                                                       \
-({                                                                     \
-  double huge_val;                                                     \
-                                                                       \
-  __asm ("fmove%.d %#0x7ff0000000000000,%0"    /* Infinity */          \
-        : "=f" (huge_val)                                              \
-        : /* no inputs */);                                            \
-  huge_val;                                                            \
-})
-#endif
-
-__inline extern double
-sin (double x)
-{
-  double value;
-
-  __asm ("fsin%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-cos (double x)
-{
-  double value;
-
-  __asm ("fcos%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-tan (double x)
-{
-  double value;
-
-  __asm ("ftan%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-asin (double x)
-{
-  double value;
-
-  __asm ("fasin%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-acos (double x)
-{
-  double value;
-
-  __asm ("facos%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-atan (double x)
-{
-  double value;
-
-  __asm ("fatan%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-atan2 (double y, double x)
-{
-  double pi, pi_over_2;
-
-  __asm ("fmovecr%.x %#0,%0"           /* extended precision pi */
-        : "=f" (pi)
-        : /* no inputs */ );
-  __asm ("fscale%.b %#-1,%0"           /* no loss of accuracy */
-        : "=f" (pi_over_2)
-        : "0" (pi));
-  if (x > 0)
-    {
-      if (y > 0)
-       {
-         if (x > y)
-           return atan (y / x);
-         else
-           return pi_over_2 - atan (x / y);
-       }
-      else
-       {
-         if (x > -y)
-           return atan (y / x);
-         else
-           return - pi_over_2 - atan (x / y);
-       }
-    }
-  else
-    {
-      if (y < 0)
-       {
-         if (-x > -y)
-           return - pi + atan (y / x);
-         else
-           return - pi_over_2 - atan (x / y);
-       }
-      else
-       {
-         if (-x > y)
-           return pi + atan (y / x);
-         else if (y > 0)
-           return pi_over_2 - atan (x / y);
-         else
-           {
-             double value;
-
-             errno = EDOM;
-             __asm ("fmove%.d %#0x7fffffffffffffff,%0"         /* quiet NaN */
-                    : "=f" (value)
-                    : /* no inputs */);
-             return value;
-           }
-       }
-    }
-}
-
-__inline extern double
-sinh (double x)
-{
-  double value;
-
-  __asm ("fsinh%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-cosh (double x)
-{
-  double value;
-
-  __asm ("fcosh%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-tanh (double x)
-{
-  double value;
-
-  __asm ("ftanh%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-atanh (double x)
-{
-  double value;
-
-  __asm ("fatanh%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-exp (double x)
-{
-  double value;
-
-  __asm ("fetox%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-expm1 (double x)
-{
-  double value;
-
-  __asm ("fetoxm1%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-log (double x)
-{
-  double value;
-
-  __asm ("flogn%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-log1p (double x)
-{
-  double value;
-
-  __asm ("flognp1%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-log10 (double x)
-{
-  double value;
-
-  __asm ("flog10%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-sqrt (double x)
-{
-  double value;
-
-  __asm ("fsqrt%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-hypot (double x, double y)
-{
-  return sqrt (x*x + y*y);
-}
-
-__inline extern double
-pow (double x, double y)
-{
-  if (x > 0)
-    return exp (y * log (x));
-  else if (x == 0)
-    {
-      if (y > 0)
-       return 0.0;
-      else
-       {
-         double value;
-
-         errno = EDOM;
-         __asm ("fmove%.d %#0x7fffffffffffffff,%0"             /* quiet NaN */
-                : "=f" (value)
-                : /* no inputs */);
-         return value;
-       }
-    }
-  else
-    {
-      double temp;
-
-      __asm ("fintrz%.x %1,%0"
-            : "=f" (temp)                      /* integer-valued float */
-            : "f" (y));
-      if (y == temp)
-        {
-         int i = (int) y;
-         
-         if ((i & 1) == 0)                     /* even */
-           return exp (y * log (-x));
-         else
-           return - exp (y * log (-x));
-        }
-      else
-        {
-         double value;
-
-         errno = EDOM;
-         __asm ("fmove%.d %#0x7fffffffffffffff,%0"             /* quiet NaN */
-                : "=f" (value)
-                : /* no inputs */);
-         return value;
-        }
-    }
-}
-
-__inline extern double
-fabs (double x)
-{
-  double value;
-
-  __asm ("fabs%.x %1,%0"
-        : "=f" (value)
-        : "f" (x));
-  return value;
-}
-
-__inline extern double
-ceil (double x)
-{
-  int rounding_mode, round_up;
-  double value;
-
-  __asm volatile ("fmove%.l %!,%0"
-                 : "=dm" (rounding_mode)
-                 : /* no inputs */ );
-  round_up = rounding_mode | 0x30;
-  __asm volatile ("fmove%.l %0,%!"
-                 : /* no outputs */
-                 : "dmi" (round_up));
-  __asm volatile ("fint%.x %1,%0"
-                 : "=f" (value)
-                 : "f" (x));
-  __asm volatile ("fmove%.l %0,%!"
-                 : /* no outputs */
-                 : "dmi" (rounding_mode));
-  return value;
-}
-
-__inline extern double
-floor (double x)
-{
-  int rounding_mode, round_down;
-  double value;
-
-  __asm volatile ("fmove%.l %!,%0"
-                 : "=dm" (rounding_mode)
-                 : /* no inputs */ );
-  round_down = (rounding_mode & ~0x10)
-               | 0x20;
-  __asm volatile ("fmove%.l %0,%!"
-                 : /* no outputs */
-                 : "dmi" (round_down));
-  __asm volatile ("fint%.x %1,%0"
-                 : "=f" (value)
-                 : "f" (x));
-  __asm volatile ("fmove%.l %0,%!"
-                 : /* no outputs */
-                 : "dmi" (rounding_mode));
-  return value;
-}
-
-__inline extern double
-rint (double x)
-{
-  int rounding_mode, round_nearest;
-  double value;
-
-  __asm volatile ("fmove%.l %!,%0"
-                 : "=dm" (rounding_mode)
-                 : /* no inputs */ );
-  round_nearest = rounding_mode & ~0x30;
-  __asm volatile ("fmove%.l %0,%!"
-                 : /* no outputs */
-                 : "dmi" (round_nearest));
-  __asm volatile ("fint%.x %1,%0"
-                 : "=f" (value)
-                 : "f" (x));
-  __asm volatile ("fmove%.l %0,%!"
-                 : /* no outputs */
-                 : "dmi" (rounding_mode));
-  return value;
-}
-
-__inline extern double
-fmod (double x, double y)
-{
-  double value;
-
-  __asm ("fmod%.x %2,%0"
-        : "=f" (value)
-        : "0" (x),
-          "f" (y));
-  return value;
-}
-
-__inline extern double
-drem (double x, double y)
-{
-  double value;
-
-  __asm ("frem%.x %2,%0"
-        : "=f" (value)
-        : "0" (x),
-          "f" (y));
-  return value;
-}
-
-__inline extern double
-scalb (double x, int n)
-{
-  double value;
-
-  __asm ("fscale%.l %2,%0"
-        : "=f" (value)
-        : "0" (x),
-          "dmi" (n));
-  return value;
-}
-
-__inline extern double
-logb (double x)
-{
-  double exponent;
-
-  __asm ("fgetexp%.x %1,%0"
-        : "=f" (exponent)
-        : "f" (x));
-  return exponent;
-}
-
-__inline extern double
-ldexp (double x, int n)
-{
-  double value;
-
-  __asm ("fscale%.l %2,%0"
-        : "=f" (value)
-        : "0" (x),
-          "dmi" (n));
-  return value;
-}
-
-__inline extern double
-frexp (double x, int *exp)
-{
-  double float_exponent;
-  int int_exponent;
-  double mantissa;
-
-  __asm ("fgetexp%.x %1,%0"
-        : "=f" (float_exponent)        /* integer-valued float */
-        : "f" (x));
-  int_exponent = (int) float_exponent;
-  __asm ("fgetman%.x %1,%0"
-        : "=f" (mantissa)              /* 1.0 <= mantissa < 2.0 */
-        : "f" (x));
-  if (mantissa != 0)
-    {
-      __asm ("fscale%.b %#-1,%0"
-            : "=f" (mantissa)          /* mantissa /= 2.0 */
-            : "0" (mantissa));
-      int_exponent += 1;
-    }
-  *exp = int_exponent;
-  return mantissa;
-}
-
-__inline extern double
-modf (double x, double *ip)
-{
-  double temp;
-
-  __asm ("fintrz%.x %1,%0"
-        : "=f" (temp)                  /* integer-valued float */
-        : "f" (x));
-  *ip = temp;
-  return x - temp;
-}
-
-#endif /* not __math_68881 */
diff --git a/gcc/ginclude/ppc-asm.h b/gcc/ginclude/ppc-asm.h
deleted file mode 100644 (file)
index 3a6fb2a..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/* PowerPC asm definitions for GNU C.  */
-/* Under winnt, 1) gas supports the following as names and 2) in particular
-   defining "toc" breaks the FUNC_START macro as ".toc" becomes ".2" */
-
-#if !defined(__WINNT__)
-#define r0     0
-#define sp     1
-#define toc    2
-#define r3     3
-#define r4     4
-#define r5     5
-#define r6     6
-#define r7     7
-#define r8     8
-#define r9     9
-#define r10    10
-#define r11    11
-#define r12    12
-#define r13    13
-#define r14    14
-#define r15    15
-#define r16    16
-#define r17    17
-#define r18    18
-#define r19     19
-#define r20    20
-#define r21    21
-#define r22    22
-#define r23    23
-#define r24    24
-#define r25    25
-#define r26    26
-#define r27    27
-#define r28    28
-#define r29    29
-#define r30    30
-#define r31    31
-
-#define cr0    0
-#define cr1    1
-#define cr2    2
-#define cr3    3
-#define cr4    4
-#define cr5    5
-#define cr6    6
-#define cr7    7
-
-#define f0     0
-#define f1     1
-#define f2     2
-#define f3     3
-#define f4     4
-#define f5     5
-#define f6     6
-#define f7     7
-#define f8     8
-#define f9     9
-#define f10    10
-#define f11    11
-#define f12    12
-#define f13    13
-#define f14    14
-#define f15    15
-#define f16    16
-#define f17    17
-#define f18    18
-#define f19     19
-#define f20    20
-#define f21    21
-#define f22    22
-#define f23    23
-#define f24    24
-#define f25    25
-#define f26    26
-#define f27    27
-#define f28    28
-#define f29    29
-#define f30    30
-#define f31    31
-#endif
-
-/*
- * Macros to glue together two tokens.
- */
-
-#ifdef __STDC__
-#define XGLUE(a,b) a##b
-#else
-#define XGLUE(a,b) a/**/b
-#endif
-
-#define GLUE(a,b) XGLUE(a,b)
-
-/*
- * Macros to begin and end a function written in assembler.  If -mcall-aixdesc
- * or -mcall-nt, create a function descriptor with the given name, and create
- * the real function with one or two leading periods respectively.
- */
-
-#ifdef _RELOCATABLE
-#define DESC_SECTION ".got2"
-#else
-#define DESC_SECTION ".got1"
-#endif
-
-#if defined(_CALL_AIXDESC)
-#define FUNC_NAME(name) GLUE(.,name)
-#define JUMP_TARGET(name) FUNC_NAME(name)
-#define FUNC_START(name) \
-       .section DESC_SECTION,"aw"; \
-name: \
-       .long GLUE(.,name); \
-       .long _GLOBAL_OFFSET_TABLE_; \
-       .long 0; \
-       .previous; \
-       .type GLUE(.,name),@function; \
-       .globl name; \
-       .globl GLUE(.,name); \
-GLUE(.,name):
-
-#define FUNC_END(name) \
-GLUE(.L,name): \
-       .size GLUE(.,name),GLUE(.L,name)-GLUE(.,name)
-
-#elif defined(__WINNT__)
-#define FUNC_NAME(name) GLUE(..,name)
-#define JUMP_TARGET(name) FUNC_NAME(name)
-#define FUNC_START(name) \
-       .pdata; \
-       .align 2; \
-       .ualong GLUE(..,name),GLUE(name,.e),0,0,GLUE(..,name); \
-       .reldata; \
-name: \
-       .ualong GLUE(..,name),.toc; \
-       .section .text; \
-       .globl name; \
-       .globl GLUE(..,name); \
-GLUE(..,name):
-
-#define FUNC_END(name) \
-GLUE(name,.e): ; \
-GLUE(FE_MOT_RESVD..,name):
-
-#elif defined(_CALL_NT)
-#define FUNC_NAME(name) GLUE(..,name)
-#define JUMP_TARGET(name) FUNC_NAME(name)
-#define FUNC_START(name) \
-       .section DESC_SECTION,"aw"; \
-name: \
-       .long GLUE(..,name); \
-       .long _GLOBAL_OFFSET_TABLE_; \
-       .previous; \
-       .type GLUE(..,name),@function; \
-       .globl name; \
-       .globl GLUE(..,name); \
-GLUE(..,name):
-
-#define FUNC_END(name) \
-GLUE(.L,name): \
-       .size GLUE(..,name),GLUE(.L,name)-GLUE(..,name)
-
-#elif defined (__powerpc64__)
-#define FUNC_NAME(name) GLUE(.,name)
-#define FUNC_START(name) \
-       .section ".opd","aw"; \
-name: \
-       .quad GLUE(.,name); \
-       .quad .TOC.@tocbase; \
-       .quad 0; \
-       .previous; \
-       .type GLUE(.,name),@function; \
-       .globl name; \
-       .globl GLUE(.,name); \
-GLUE(.,name):
-
-#define FUNC_END(name) \
-GLUE(.L,name): \
-       .size GLUE(.,name),GLUE(.L,name)-GLUE(.,name)
-
-#else
-#define FUNC_NAME(name) GLUE(__USER_LABEL_PREFIX__,name)
-#if defined __PIC__ || defined __pic__
-#define JUMP_TARGET(name) FUNC_NAME(name@plt)
-#else
-#define JUMP_TARGET(name) FUNC_NAME(name)
-#endif
-#define FUNC_START(name) \
-       .type FUNC_NAME(name),@function; \
-       .globl FUNC_NAME(name); \
-FUNC_NAME(name):
-
-#define FUNC_END(name) \
-GLUE(.L,name): \
-       .size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
-#endif
-
diff --git a/gcc/ginclude/proto.h b/gcc/ginclude/proto.h
deleted file mode 100644 (file)
index cc48915..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-/* This header file is to avoid trouble with semi-ANSI header files
-   on the Convex in system version 8.0.  */
-
-#define _PROTO(list) ()