]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Sat Mar 16 20:08:22 1996 David Mosberger-Tang <davidm@azstarnet.com>
authorRoland McGrath <roland@gnu.org>
Sun, 17 Mar 1996 01:58:17 +0000 (01:58 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 17 Mar 1996 01:58:17 +0000 (01:58 +0000)
* sysdeps/alpha/memchr.S: new file.
* sysdeps/alpha/memchr.c: obsolete file removed.

Sat Mar 16 16:26:09 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

* misc/Makefile (headers): Add sysexits.h.
* misc/sysexits.h: New file.

Thu Mar 14 15:20:45 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* sysdeps/libm-ieee754/e_atan2.c (__ieee754_atan2): Change atan
call to __atan.
* sysdeps/libm-ieee754/e_atan2f.c (__ieee754_atan2f): Change atanf
  call to __atanf.

* sysdeps/m68k/fpu/e_acos.c, sysdeps/m68k/fpu/e_acosf.c,
sysdeps/m68k/fpu/e_asin.c, sysdeps/m68k/fpu/e_asinf.c,
sysdeps/m68k/fpu/e_atanh.c, sysdeps/m68k/fpu/e_atanhf.c,
sysdeps/m68k/fpu/e_cosh.c, sysdeps/m68k/fpu/e_coshf.c,
sysdeps/m68k/fpu/e_exp.c, sysdeps/m68k/fpu/e_expf.c,
sysdeps/m68k/fpu/e_fmod.c, sysdeps/m68k/fpu/e_fmodf.c,
sysdeps/m68k/fpu/e_log.c, sysdeps/m68k/fpu/e_log10.c,
sysdeps/m68k/fpu/e_log10f.c, sysdeps/m68k/fpu/e_logf.c,
sysdeps/m68k/fpu/e_pow.c, sysdeps/m68k/fpu/e_powf.c,
sysdeps/m68k/fpu/e_remainder.c, sysdeps/m68k/fpu/e_remainderf.c,
sysdeps/m68k/fpu/e_scalb.c, sysdeps/m68k/fpu/e_scalbf.c,
sysdeps/m68k/fpu/e_sinh.c, sysdeps/m68k/fpu/e_sinhf.c,
sysdeps/m68k/fpu/e_sqrt.c, sysdeps/m68k/fpu/e_sqrtf.c,
sysdeps/m68k/fpu/k_cos.c, sysdeps/m68k/fpu/k_cosf.c,
sysdeps/m68k/fpu/k_sin.c, sysdeps/m68k/fpu/k_sinf.c,
sysdeps/m68k/fpu/k_tan.c, sysdeps/m68k/fpu/k_tanf.c,
sysdeps/m68k/fpu/s_atan.c, sysdeps/m68k/fpu/s_atanf.c,
sysdeps/m68k/fpu/s_ceil.c, sysdeps/m68k/fpu/s_ceilf.c,
sysdeps/m68k/fpu/s_cos.c, sysdeps/m68k/fpu/s_cosf.c,
sysdeps/m68k/fpu/s_expm1.c, sysdeps/m68k/fpu/s_expm1f.c,
sysdeps/m68k/fpu/s_fabs.c, sysdeps/m68k/fpu/s_fabsf.c,
sysdeps/m68k/fpu/s_finite.c, sysdeps/m68k/fpu/s_finitef.c,
sysdeps/m68k/fpu/s_floor.c, sysdeps/m68k/fpu/s_floorf.c,
sysdeps/m68k/fpu/s_frexp.c, sysdeps/m68k/fpu/s_frexpf.c,
sysdeps/m68k/fpu/s_ilogb.c, sysdeps/m68k/fpu/s_ilogbf.c,
sysdeps/m68k/fpu/s_isinf.c, sysdeps/m68k/fpu/s_isinff.c,
sysdeps/m68k/fpu/s_isnan.c, sysdeps/m68k/fpu/s_isnanf.c,
sysdeps/m68k/fpu/s_ldexp.c, sysdeps/m68k/fpu/s_ldexpf.c,
sysdeps/m68k/fpu/s_log1p.c, sysdeps/m68k/fpu/s_log1pf.c,
sysdeps/m68k/fpu/s_logb.c, sysdeps/m68k/fpu/s_logbf.c,
sysdeps/m68k/fpu/s_modf.c, sysdeps/m68k/fpu/s_modff.c,
sysdeps/m68k/fpu/s_rint.c, sysdeps/m68k/fpu/s_rintf.c,
sysdeps/m68k/fpu/s_scalbn.c, sysdeps/m68k/fpu/s_scalbnf.c,
sysdeps/m68k/fpu/s_significand.c,
sysdeps/m68k/fpu/s_significandf.c, sysdeps/m68k/fpu/s_sin.c,
sysdeps/m68k/fpu/s_sinf.c, sysdeps/m68k/fpu/s_tan.c,
sysdeps/m68k/fpu/s_tanf.c, sysdeps/m68k/fpu/s_tanh.c,
sysdeps/m68k/fpu/s_tanhf.c: New files, for m68881 port of fdlibm.

* sysdeps/m68k/fpu/__math.h: Rewritten for fdlibm.

* sysdeps/m68k/fpu/isinfl.c: Rewritten to get argument type right.
* sysdeps/m68k/fpu/isnanl.c: Likewise.

Thu Mar 14 06:01:07 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

* posix/glob.c (glob): In GLOB_BRACE brace expansion, fix buffer size
calculation to include trailing invariant portion.  Don't use alloca;
instead use a dynamic auto array for GCC, malloc for non-GCC.
Handle nested braces properly.

* elf/elf.h (Elf32_auxv_t): Specify prototype (void) for `a_un.a_fcn'.

* libc-symbols.h (lint): New macro.

Fri Mar 15 01:18:00 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* libio/iosetvbuf.c: Add weak alias setvbuf.

87 files changed:
ChangeLog
elf/elf.h
libc-symbols.h
misc/Makefile
misc/sysexits.h [new file with mode: 0644]
posix/glob.c
sysdeps/alpha/memchr.S [new file with mode: 0644]
sysdeps/alpha/memchr.c [deleted file]
sysdeps/libm-ieee754/e_atan2.c
sysdeps/libm-ieee754/e_atan2f.c
sysdeps/m68k/fpu/__math.h
sysdeps/m68k/fpu/e_acos.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_acosf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_asin.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_asinf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_atanh.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_atanhf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_cosh.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_coshf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_exp.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_expf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_fmod.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_fmodf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_log.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_log10.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_log10f.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_logf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_pow.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_powf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_remainder.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_remainderf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_scalb.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_scalbf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_sinh.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_sinhf.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_sqrt.c [new file with mode: 0644]
sysdeps/m68k/fpu/e_sqrtf.c [new file with mode: 0644]
sysdeps/m68k/fpu/isinfl.c
sysdeps/m68k/fpu/isnanl.c
sysdeps/m68k/fpu/k_cos.c [new file with mode: 0644]
sysdeps/m68k/fpu/k_cosf.c [new file with mode: 0644]
sysdeps/m68k/fpu/k_sin.c [new file with mode: 0644]
sysdeps/m68k/fpu/k_sinf.c [new file with mode: 0644]
sysdeps/m68k/fpu/k_tan.c [new file with mode: 0644]
sysdeps/m68k/fpu/k_tanf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_atan.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_atanf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_ceil.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_ceilf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_cos.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_cosf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_expm1.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_expm1f.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_fabs.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_fabsf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_finite.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_finitef.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_floor.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_floorf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_frexp.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_frexpf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_ilogb.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_ilogbf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_isinf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_isinff.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_isnan.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_isnanf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_ldexp.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_ldexpf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_log1p.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_log1pf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_logb.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_logbf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_modf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_modff.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_rint.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_rintf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_scalbn.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_scalbnf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_significand.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_significandf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_sin.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_sinf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_tan.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_tanf.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_tanh.c [new file with mode: 0644]
sysdeps/m68k/fpu/s_tanhf.c [new file with mode: 0644]

index 119f89c56375856e9cc757851700a55052d01d5c..daad2eea400f90ec31a00c46e510f1dd4f049317 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,79 @@
+Sat Mar 16 20:08:22 1996  David Mosberger-Tang  <davidm@azstarnet.com>
+
+       * sysdeps/alpha/memchr.S: new file.
+       * sysdeps/alpha/memchr.c: obsolete file removed.
+
+Sat Mar 16 16:26:09 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>
+
+       * misc/Makefile (headers): Add sysexits.h.
+       * misc/sysexits.h: New file.
+
+Thu Mar 14 15:20:45 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * sysdeps/libm-ieee754/e_atan2.c (__ieee754_atan2): Change atan
+       call to __atan.
+       * sysdeps/libm-ieee754/e_atan2f.c (__ieee754_atan2f): Change atanf
+       call to __atanf.
+
+       * sysdeps/m68k/fpu/e_acos.c, sysdeps/m68k/fpu/e_acosf.c,
+       sysdeps/m68k/fpu/e_asin.c, sysdeps/m68k/fpu/e_asinf.c,
+       sysdeps/m68k/fpu/e_atanh.c, sysdeps/m68k/fpu/e_atanhf.c,
+       sysdeps/m68k/fpu/e_cosh.c, sysdeps/m68k/fpu/e_coshf.c,
+       sysdeps/m68k/fpu/e_exp.c, sysdeps/m68k/fpu/e_expf.c,
+       sysdeps/m68k/fpu/e_fmod.c, sysdeps/m68k/fpu/e_fmodf.c,
+       sysdeps/m68k/fpu/e_log.c, sysdeps/m68k/fpu/e_log10.c,
+       sysdeps/m68k/fpu/e_log10f.c, sysdeps/m68k/fpu/e_logf.c,
+       sysdeps/m68k/fpu/e_pow.c, sysdeps/m68k/fpu/e_powf.c,
+       sysdeps/m68k/fpu/e_remainder.c, sysdeps/m68k/fpu/e_remainderf.c,
+       sysdeps/m68k/fpu/e_scalb.c, sysdeps/m68k/fpu/e_scalbf.c,
+       sysdeps/m68k/fpu/e_sinh.c, sysdeps/m68k/fpu/e_sinhf.c,
+       sysdeps/m68k/fpu/e_sqrt.c, sysdeps/m68k/fpu/e_sqrtf.c,
+       sysdeps/m68k/fpu/k_cos.c, sysdeps/m68k/fpu/k_cosf.c,
+       sysdeps/m68k/fpu/k_sin.c, sysdeps/m68k/fpu/k_sinf.c,
+       sysdeps/m68k/fpu/k_tan.c, sysdeps/m68k/fpu/k_tanf.c,
+       sysdeps/m68k/fpu/s_atan.c, sysdeps/m68k/fpu/s_atanf.c,
+       sysdeps/m68k/fpu/s_ceil.c, sysdeps/m68k/fpu/s_ceilf.c,
+       sysdeps/m68k/fpu/s_cos.c, sysdeps/m68k/fpu/s_cosf.c,
+       sysdeps/m68k/fpu/s_expm1.c, sysdeps/m68k/fpu/s_expm1f.c,
+       sysdeps/m68k/fpu/s_fabs.c, sysdeps/m68k/fpu/s_fabsf.c,
+       sysdeps/m68k/fpu/s_finite.c, sysdeps/m68k/fpu/s_finitef.c,
+       sysdeps/m68k/fpu/s_floor.c, sysdeps/m68k/fpu/s_floorf.c,
+       sysdeps/m68k/fpu/s_frexp.c, sysdeps/m68k/fpu/s_frexpf.c,
+       sysdeps/m68k/fpu/s_ilogb.c, sysdeps/m68k/fpu/s_ilogbf.c,
+       sysdeps/m68k/fpu/s_isinf.c, sysdeps/m68k/fpu/s_isinff.c,
+       sysdeps/m68k/fpu/s_isnan.c, sysdeps/m68k/fpu/s_isnanf.c,
+       sysdeps/m68k/fpu/s_ldexp.c, sysdeps/m68k/fpu/s_ldexpf.c,
+       sysdeps/m68k/fpu/s_log1p.c, sysdeps/m68k/fpu/s_log1pf.c,
+       sysdeps/m68k/fpu/s_logb.c, sysdeps/m68k/fpu/s_logbf.c,
+       sysdeps/m68k/fpu/s_modf.c, sysdeps/m68k/fpu/s_modff.c,
+       sysdeps/m68k/fpu/s_rint.c, sysdeps/m68k/fpu/s_rintf.c,
+       sysdeps/m68k/fpu/s_scalbn.c, sysdeps/m68k/fpu/s_scalbnf.c,
+       sysdeps/m68k/fpu/s_significand.c,
+       sysdeps/m68k/fpu/s_significandf.c, sysdeps/m68k/fpu/s_sin.c,
+       sysdeps/m68k/fpu/s_sinf.c, sysdeps/m68k/fpu/s_tan.c,
+       sysdeps/m68k/fpu/s_tanf.c, sysdeps/m68k/fpu/s_tanh.c,
+       sysdeps/m68k/fpu/s_tanhf.c: New files, for m68881 port of fdlibm.
+
+       * sysdeps/m68k/fpu/__math.h: Rewritten for fdlibm.
+
+       * sysdeps/m68k/fpu/isinfl.c: Rewritten to get argument type right.
+       * sysdeps/m68k/fpu/isnanl.c: Likewise.
+
+Thu Mar 14 06:01:07 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>
+
+       * posix/glob.c (glob): In GLOB_BRACE brace expansion, fix buffer size
+       calculation to include trailing invariant portion.  Don't use alloca;
+       instead use a dynamic auto array for GCC, malloc for non-GCC.
+       Handle nested braces properly.
+
+       * elf/elf.h (Elf32_auxv_t): Specify prototype (void) for `a_un.a_fcn'.
+
+       * libc-symbols.h (lint): New macro.
+
+Fri Mar 15 01:18:00 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * libio/iosetvbuf.c: Add weak alias setvbuf.
+
 Thu Mar 14 06:01:07 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>
 
        * string/strnlen.c: New file.
index 207db0010a295b0a93767054c2cf23fd074a3530..a78432039f7ab706ec0ea79ee67d1848f00e7ef4 100644 (file)
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -412,12 +412,12 @@ typedef struct
 
 typedef struct
 {
-  int a_type;                          /* Entry type */
+  int a_type;                  /* Entry type */
   union
     {
-      long a_val;                      /* Integer value */
-      void *a_ptr;                     /* Pointer value */
-      void (*a_fcn) ();                        /* Function pointer value */
+      long int a_val;          /* Integer value */
+      void *a_ptr;             /* Pointer value */
+      void (*a_fcn) (void);    /* Function pointer value */
     } a_un;
 } Elf32_auxv_t;
 
index f211f48675887724d5a0f9f01a2612ad1be2d0a2..bb5f54e16c95b922aa207b60a36685d76587d693 100644 (file)
@@ -48,6 +48,9 @@ Cambridge, MA 02139, USA.  */
 #define _LIBC  1
 
 #include <config.h>
+
+/* This disables sccsid/rcsid strings in lots of code of non-GNU origin.  */
+#define lint   1
 /*
 \f
 */
index 2de6dd16174b5b45673a919d3fe0ec39bb97c338..ff633544de06c42b64f223306848ec0272a0a267 100644 (file)
@@ -26,7 +26,7 @@ headers       := sys/uio.h sys/ioctl.h sys/ptrace.h ioctls.h sys/file.h       \
           a.out.h nlist.h stab.h stab.def sgtty.h sys/dir.h sys/cdefs.h \
           ttyent.h syscall.h syslog.h sys/syslog.h paths.h sys/reboot.h \
           sys/mman.h sys/param.h fstab.h mntent.h search.h utmp.h       \
-          err.h error.h sys/queue.h
+          err.h error.h sys/queue.h sysexits.h
 
 routines := brk sbrk sstk ioctl \
            readv writev \
diff --git a/misc/sysexits.h b/misc/sysexits.h
new file mode 100644 (file)
index 0000000..464cb11
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 1987, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)sysexits.h  8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef        _SYSEXITS_H_
+#define        _SYSEXITS_H_
+
+/*
+ *  SYSEXITS.H -- Exit status codes for system programs.
+ *
+ *     This include file attempts to categorize possible error
+ *     exit statuses for system programs, notably delivermail
+ *     and the Berkeley network.
+ *
+ *     Error numbers begin at EX__BASE to reduce the possibility of
+ *     clashing with other exit statuses that random programs may
+ *     already return.  The meaning of the codes is approximately
+ *     as follows:
+ *
+ *     EX_USAGE -- The command was used incorrectly, e.g., with
+ *             the wrong number of arguments, a bad flag, a bad
+ *             syntax in a parameter, or whatever.
+ *     EX_DATAERR -- The input data was incorrect in some way.
+ *             This should only be used for user's data & not
+ *             system files.
+ *     EX_NOINPUT -- An input file (not a system file) did not
+ *             exist or was not readable.  This could also include
+ *             errors like "No message" to a mailer (if it cared
+ *             to catch it).
+ *     EX_NOUSER -- The user specified did not exist.  This might
+ *             be used for mail addresses or remote logins.
+ *     EX_NOHOST -- The host specified did not exist.  This is used
+ *             in mail addresses or network requests.
+ *     EX_UNAVAILABLE -- A service is unavailable.  This can occur
+ *             if a support program or file does not exist.  This
+ *             can also be used as a catchall message when something
+ *             you wanted to do doesn't work, but you don't know
+ *             why.
+ *     EX_SOFTWARE -- An internal software error has been detected.
+ *             This should be limited to non-operating system related
+ *             errors as possible.
+ *     EX_OSERR -- An operating system error has been detected.
+ *             This is intended to be used for such things as "cannot
+ *             fork", "cannot create pipe", or the like.  It includes
+ *             things like getuid returning a user that does not
+ *             exist in the passwd file.
+ *     EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp,
+ *             etc.) does not exist, cannot be opened, or has some
+ *             sort of error (e.g., syntax error).
+ *     EX_CANTCREAT -- A (user specified) output file cannot be
+ *             created.
+ *     EX_IOERR -- An error occurred while doing I/O on some file.
+ *     EX_TEMPFAIL -- temporary failure, indicating something that
+ *             is not really an error.  In sendmail, this means
+ *             that a mailer (e.g.) could not create a connection,
+ *             and the request should be reattempted later.
+ *     EX_PROTOCOL -- the remote system returned something that
+ *             was "not possible" during a protocol exchange.
+ *     EX_NOPERM -- You did not have sufficient permission to
+ *             perform the operation.  This is not intended for
+ *             file system problems, which should use NOINPUT or
+ *             CANTCREAT, but rather for higher level permissions.
+ */
+
+#define EX_OK          0       /* successful termination */
+
+#define EX__BASE       64      /* base value for error messages */
+
+#define EX_USAGE       64      /* command line usage error */
+#define EX_DATAERR     65      /* data format error */
+#define EX_NOINPUT     66      /* cannot open input */
+#define EX_NOUSER      67      /* addressee unknown */
+#define EX_NOHOST      68      /* host name unknown */
+#define EX_UNAVAILABLE 69      /* service unavailable */
+#define EX_SOFTWARE    70      /* internal software error */
+#define EX_OSERR       71      /* system error (e.g., can't fork) */
+#define EX_OSFILE      72      /* critical OS file missing */
+#define EX_CANTCREAT   73      /* can't create (user) output file */
+#define EX_IOERR       74      /* input/output error */
+#define EX_TEMPFAIL    75      /* temp failure; user is invited to retry */
+#define EX_PROTOCOL    76      /* remote error in protocol */
+#define EX_NOPERM      77      /* permission denied */
+#define EX_CONFIG      78      /* configuration error */
+
+#define EX__MAX        78      /* maximum listed value */
+
+#endif /* !_SYSEXITS_H_ */
index 8646bba5703af9ae0f870fff49a6a50ae13ed18c..eea126d8004093f544c1cbb27694766dbb28a6c8 100644 (file)
@@ -268,48 +268,121 @@ glob (pattern, flags, errfunc, pglob)
       const char *begin = strchr (pattern, '{');
       if (begin != NULL)
        {
-         const char *end = strchr (begin + 1, '}');
-         if (end != NULL && end != begin + 1)
+         int firstc;
+         size_t restlen;
+         const char *p, *end, *next;
+         unsigned int depth = 0;
+
+         /* Find the end of the brace expression, by counting braces.
+            While we're at it, notice the first comma at top brace level.  */
+         end = begin + 1;
+         next = NULL;
+         while (1)
            {
-             size_t restlen = strlen (end + 1) + 1;
-             const char *p, *comma;
-             char *buf;
-             size_t bufsz = 0;
-             int firstc;
-             if (!(flags & GLOB_APPEND))
+             switch (*end++)
                {
-                 pglob->gl_pathc = 0;
-                 pglob->gl_pathv = NULL;
+               case ',':
+                 if (depth == 0 && next == NULL)
+                   next = end;
+                 continue;
+               case '{':
+                 ++depth;
+                 continue;
+               case '}':
+                 if (depth-- == 0)
+                   break;
+                 continue;
+               case '\0':
+                 return glob (pattern, flags &~ GLOB_BRACE, errfunc, pglob);
                }
-             firstc = pglob->gl_pathc;
-             for (p = begin + 1;; p = comma + 1)
+             break;
+           }
+         restlen = strlen (end) + 1;
+         if (next == NULL)
+           next = end;
+
+         /* We have a brace expression.  BEGIN points to the opening {,
+            NEXT points past the terminator of the first element, and END
+            points past the final }.  We will accumulate result names from
+            recursive runs for each brace alternative in the buffer using
+            GLOB_APPEND.  */
+
+         if (!(flags & GLOB_APPEND))
+           {
+             /* This call is to set a new vector, so clear out the
+                vector so we can append to it.  */
+             pglob->gl_pathc = 0;
+             pglob->gl_pathv = NULL;
+           }
+         firstc = pglob->gl_pathc;
+
+         /* In this loop P points to the beginning of the current element
+            and NEXT points past its terminator.  */
+         p = begin + 1;
+         while (1)
+           {
+             /* Construct a whole name that is one of the brace
+                alternatives in a temporary buffer.  */
+             int result;
+             size_t bufsz = (begin - pattern) + (next - 1 - p) + restlen;
+#ifdef __GNUC__
+             char onealt[bufsz];
+#else
+             char *onealt = malloc (bufsz);
+             if (onealt == NULL)
                {
-                 int result;
-                 comma = strchr (p, ',');
-                 if (comma == NULL)
-                   comma = strchr (p, '\0');
-                 if ((begin - pattern) + (comma - p) + 1 > bufsz)
+                 if (!(flags & GLOB_APPEND))
+                   globfree (&pglob);
+                 return GLOB_NOSPACE;
+               }
+#endif
+             memcpy (onealt, pattern, begin - pattern);
+             memcpy (&onealt[begin - pattern], p, next - 1 - p);
+             memcpy (&onealt[(begin - pattern) + (next - 1 - p)],
+                     end, restlen);
+             result = glob (onealt,
+                            ((flags & ~(GLOB_NOCHECK|GLOB_NOMAGIC)) |
+                             GLOB_APPEND), errfunc, pglob);
+#ifndef __GNUC__
+             free (onealt);
+#endif
+
+             /* If we got an error, return it.  */
+             if (result && result != GLOB_NOMATCH)
+               {
+                 if (!(flags & GLOB_APPEND))
+                   globfree (pglob);
+                 return result;
+               }
+
+             /* Advance past this alternative and process the next.  */
+             p = next;
+             depth = 0;
+           scan:
+             switch (*p++)
+               {
+               case ',':
+                 if (depth == 0)
                    {
-                     if (bufsz * 2 < comma - p + 1)
-                       bufsz *= 2;
-                     else
-                       bufsz = comma - p + 1;
-                     buf = __alloca (bufsz);
+                     /* Found the next alternative.  Loop to glob it.  */
+                     next = p;
+                     continue;
                    }
-                 memcpy (buf, pattern, begin - pattern);
-                 memcpy (buf + (begin - pattern), p, comma - p);
-                 memcpy (buf + (begin - pattern) + (comma - p), end, restlen);
-                 result = glob (buf, ((flags & ~(GLOB_NOCHECK|GLOB_NOMAGIC)) |
-                                      GLOB_APPEND), errfunc, pglob);
-                 if (result && result != GLOB_NOMATCH)
-                   return result;
-                 if (*comma == '\0')
+                 goto scan;
+               case '{':
+                 ++depth;
+                 goto scan;
+               case '}':
+                 if (depth-- == 0)
+                   /* End of the brace expression.  Break out of the loop.  */
                    break;
+                 goto scan;
                }
-             if (pglob->gl_pathc == firstc &&
-                 !(flags & (GLOB_NOCHECK|GLOB_NOMAGIC)))
-               return GLOB_NOMATCH;
            }
+
+         if (pglob->gl_pathc == firstc &&
+             !(flags & (GLOB_NOCHECK|GLOB_NOMAGIC)))
+           return GLOB_NOMATCH;
        }
     }
 
diff --git a/sysdeps/alpha/memchr.S b/sysdeps/alpha/memchr.S
new file mode 100644 (file)
index 0000000..118a1f1
--- /dev/null
@@ -0,0 +1,163 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by David Mosberger (davidm@cs.arizona.edu).
+
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+/* Finds characters in a memory area.  Optimized for the Alpha
+architecture:
+
+      - memory accessed as aligned quadwords only
+      - uses cmpbge to compare 8 bytes in parallel
+      - does binary search to find 0 byte in last
+        quadword (HAKMEM needed 12 instructions to
+        do this instead of the 9 instructions that
+        binary search needs).
+
+For correctness consider that:
+
+      - only minimum number of quadwords may be accessed
+      - the third argument is an unsigned long
+*/
+
+#include <sysdep.h>
+#ifdef __linux__
+# include <alpha/regdef.h>
+#else
+#include <regdef.h>
+#endif
+
+        .set noreorder
+        .set noat
+
+ENTRY(memchr)
+       beq     a2, not_found
+        ldq_u   t0, 0(a0)       # load first quadword (a0 may be misaligned)
+       addq    a0, a2, t4
+       and     a1, 0xff, a1    # a1 = 00000000000000ch
+       ldq_u   t5, -1(t4)
+       sll     a1,  8, t1      # t1 = 000000000000ch00
+       cmpult  a2, 9, t3
+       or      t1, a1, a1      # a1 = 000000000000chch
+       sll     a1, 16, t1      # t1 = 00000000chch0000
+        lda     t2, -1(zero)
+       or      t1, a1, a1      # a1 = 00000000chchchch
+       sll     a1, 32, t1      # t1 = chchchch00000000
+       extql   t0, a0, t6
+       or      t1, a1, a1      # a1 = chchchchchchchch
+
+       beq     t3, first_quad
+
+       extqh   t5, a0, t5
+       mov     a0, v0
+       or      t6, t5, t0      # t0 = quadword starting at a0
+
+       #
+       # Deal with the case where at most 8 bytes remain to be searched
+       # in t0.  E.g.:
+       #       a2 = 6
+       #       t0 = ????c6c5c4c3c2c1
+last_quad:
+       negq    a2, t5
+       srl     t2, t5, t5      # t5 = mask of a2 bits set
+        xor    a1, t0, t0
+        cmpbge  zero, t0, t1
+       and     t1, t5, t1
+        beq     t1, not_found
+
+found_it:
+       # now, determine which byte matched:
+        negq    t1, t2
+        and     t1, t2, t1
+
+        and     t1, 0x0f, t0
+        addq    v0, 4, t2
+        cmoveq  t0, t2, v0
+
+        and     t1, 0x33, t0
+        addq    v0, 2, t2
+        cmoveq  t0, t2, v0
+
+        and     t1, 0x55, t0
+        addq    v0, 1, t2
+        cmoveq  t0, t2, v0
+
+done:  ret
+
+
+       #
+       # Deal with the case where a2 > 8 bytes remain to be
+       # searched.  a0 may not be aligned.
+       #
+first_quad:
+       andnot  a0, 0x7, v0
+        insqh   t2, a0, t1     # t1 = 0000ffffffffffff (a0<0:2> ff bytes)
+        xor    t0, a1, t0
+       or      t0, t1, t0      # t0 = ====ffffffffffff
+        cmpbge  zero, t0, t1
+        bne     t1, found_it
+
+       /* at least one byte left to process */
+
+       ldq     t0, 8(v0)
+       addq    v0, 8, v0
+       /*
+        * Make a2 point to last quad to be accessed (the
+        * last quad may or may not be partial).
+        */
+       subq    t4, 1, a2
+       andnot  a2, 0x7, a2
+       cmpult  v0, a2, t1
+       beq     t1, final
+
+       /* at least two quads remain to be accessed */
+
+       subq    a2, v0, t3      # t3 <- number of quads to be processed in loop
+       and     t3, 8, t3       # odd number of quads?
+       bne     t3, odd_quad_count
+
+       /* at least three quads remain to be accessed */
+
+       mov     t0, t3          # move prefetched value into correct register
+
+       .align  3
+unrolled_loop:
+       ldq     t0, 8(v0)       # prefetch t0
+       xor     a1, t3, t1
+       cmpbge  zero, t1, t1
+       bne     t1, found_it
+
+       addq    v0, 8, v0
+odd_quad_count:
+       xor     a1, t0, t1
+       ldq     t3, 8(v0)       # prefetch t3
+       cmpbge  zero, t1, t1
+       bne     t1, found_it
+
+       addq    v0, 8, v0
+       cmpult  v0, a2, t5
+       bne     t5, unrolled_loop
+
+       mov     t3, t0          # move prefetched value into t0
+final: subq    t4, v0, a2      # a2 <- number of bytes left to do
+       bne     a2, last_quad
+
+not_found:
+       mov     zero, v0
+       ret
+
+        .end    memchr
diff --git a/sysdeps/alpha/memchr.c b/sysdeps/alpha/memchr.c
deleted file mode 100644 (file)
index a911302..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <string.h>
-
-/* Search no more than N bytes of S for C.  */
-
-void *
-memchr (const void *s, int c, size_t n)
-{
-  const char *char_ptr;
-  const unsigned long int *longword_ptr;
-  unsigned long int charmask;
-  size_t x;
-
-  c = (unsigned char) c;
-
-  /* Handle the first few characters by reading one character at a time.
-     Do this until STR is aligned on a 8-byte border.  */
-  for (char_ptr = s; n > 0 && ((unsigned long int) char_ptr & 7) != 0;
-       --n, ++char_ptr)
-    if (*char_ptr == c)
-      return (void *) char_ptr;
-
-  if (n == (size_t)0)
-    return NULL;
-
-  x = n;
-
-  longword_ptr = (unsigned long int *) char_ptr;
-
-  /* Set up a longword, each of whose bytes is C.  */
-  charmask = c | (c << 8);
-  charmask |= charmask << 16;
-  charmask |= charmask << 32;
-
-  for (;;)
-    {
-      const unsigned long int longword = *longword_ptr++;
-      int ge, le;
-
-      if (x < 4)
-       x = (size_t) 0;
-      else
-       x -= 4;
-
-      /* Set bits in GE if bytes in CHARMASK are >= bytes in LONGWORD.  */
-      asm ("cmpbge %1, %2, %0" : "=r" (ge) : "r" (charmask), "r" (longword));
-
-      /* Set bits in LE if bytes in CHARMASK are <= bytes in LONGWORD.  */
-      asm ("cmpbge %2, %1, %0" : "=r" (le) : "r" (charmask), "r" (longword));
-
-      /* Bytes that are both <= and >= are == to C.  */
-      if (ge & le)
-       {
-         /* Which of the bytes was the C?  */
-
-         unsigned char *cp = (unsigned char *) (longword_ptr - 1);
-         int i;
-
-         for (i = 0; i < 7; i++)
-           if (cp[i] == c)
-             return &cp[i];
-         return &cp[7];
-       }
-
-      if (x == (size_t)0)
-       break;
-    }
-
-  return NULL;
-}
index 920cfaf286c15b9daa2aa5f2ab3a577cf374e00b..4bf5f570861ba38a21399b634e1bef6f9867c145 100644 (file)
@@ -74,7 +74,7 @@ pi_lo   = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
        if(((ix|((lx|-lx)>>31))>0x7ff00000)||
           ((iy|((ly|-ly)>>31))>0x7ff00000))    /* x or y is NaN */
           return x+y;
-       if((hx-0x3ff00000|lx)==0) return atan(y);   /* x=1.0 */
+       if((hx-0x3ff00000|lx)==0) return __atan(y);   /* x=1.0 */
        m = ((hy>>31)&1)|((hx>>30)&2);  /* 2*sign(x)+sign(y) */
 
     /* when y = 0 */
@@ -114,7 +114,7 @@ pi_lo   = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
        k = (iy-ix)>>20;
        if(k > 60) z=pi_o_2+0.5*pi_lo;  /* |y/x| >  2**60 */
        else if(hx<0&&k<-60) z=0.0;     /* |y|/x < -2**60 */
-       else z=atan(fabs(y/x));         /* safe to do y/x */
+       else z=__atan(fabs(y/x));       /* safe to do y/x */
        switch (m) {
            case 0: return       z  ;   /* atan(+,+) */
            case 1: {
index c1f8d224b884c65271af68a10f5af010af5b3ebb..437975f79f00eacf98fc0f8822edc791a06847be 100644 (file)
@@ -49,7 +49,7 @@ pi_lo   = 1.5099578832e-07; /* 0x34222168 */
        if((ix>0x7f800000)||
           (iy>0x7f800000))     /* x or y is NaN */
           return x+y;
-       if(hx==0x3f800000) return atanf(y);   /* x=1.0 */
+       if(hx==0x3f800000) return __atanf(y);   /* x=1.0 */
        m = ((hy>>31)&1)|((hx>>30)&2);  /* 2*sign(x)+sign(y) */
 
     /* when y = 0 */
@@ -89,7 +89,7 @@ pi_lo   = 1.5099578832e-07; /* 0x34222168 */
        k = (iy-ix)>>23;
        if(k > 60) z=pi_o_2+(float)0.5*pi_lo;   /* |y/x| >  2**60 */
        else if(hx<0&&k<-60) z=0.0;     /* |y|/x < -2**60 */
-       else z=atanf(fabsf(y/x));       /* safe to do y/x */
+       else z=__atanf(fabsf(y/x));     /* safe to do y/x */
        switch (m) {
            case 0: return       z  ;   /* atan(+,+) */
            case 1: {
index e357364fb76109840e9b9c1b9d48dd8a624bd6a1..f59c168e79dc24988bb350e9d6ee92c57ea18000 100644 (file)
@@ -19,8 +19,6 @@ Cambridge, MA 02139, USA.  */
 #ifdef __GNUC__
 
 #include <sys/cdefs.h>
-#define __need_Emath
-#include <errno.h>
 
 #ifdef __NO_MATH_INLINES
 /* This is used when defining the functions themselves.  Define them with
@@ -34,59 +32,87 @@ Cambridge, MA 02139, USA.  */
 #define        __MATH_INLINES  1
 #endif
 
-#define        __inline_mathop2(func, op)                                            \
-  __m81_inline double                                                        \
-  __m81_u(func)(double __mathop_x) __attribute__((__const__));               \
-  __m81_inline double                                                        \
-  __m81_u(func)(double __mathop_x)                                           \
+/* Define a const math function.  */
+#define __m81_defun(rettype, func, args)                                     \
+  __m81_inline rettype                                                       \
+  __m81_u(func) args __attribute__((__const__));                             \
+  __m81_inline rettype                                                       \
+  __m81_u(func) args
+
+#define        __inline_mathop(func, op)                                             \
+  __m81_defun (double, func, (double __mathop_x))                            \
   {                                                                          \
     double __result;                                                         \
     __asm("f" __STRING(op) "%.x %1, %0" : "=f" (__result) : "f" (__mathop_x));\
     return __result;                                                         \
   }
-#define        __inline_mathop(op)             __inline_mathop2(op, op)
-
-__inline_mathop(acos)
-__inline_mathop(asin)
-__inline_mathop(atan)
-__inline_mathop(cos)
-__inline_mathop(sin)
-__inline_mathop(tan)
-__inline_mathop(cosh)
-__inline_mathop(sinh)
-__inline_mathop(tanh)
-__inline_mathop2(exp, etox)
-__inline_mathop2(fabs, abs)
-__inline_mathop(log10)
-__inline_mathop2(log, logn)
-__inline_mathop(sqrt)
-
-__inline_mathop2(__rint, int)
-__inline_mathop2(__expm1, etoxm1)
-
-#ifdef __USE_MISC
-#ifndef __NO_MATH_INLINES
-__inline_mathop2(rint, int)
-__inline_mathop2(expm1, etoxm1)
-#endif
-__inline_mathop2(log1p, lognp1)
-__inline_mathop(atanh)
-#endif
 
-__m81_inline double
-__m81_u(__drem)(double __x, double __y) __attribute__ ((__const__));
-__m81_inline double
-__m81_u(__drem)(double __x, double __y)
+#define __inline_mathopf(func, op)                                           \
+  __m81_defun (float, func, (float __mathop_x))                                      \
+  {                                                                          \
+    float __result;                                                          \
+    __asm("f" __STRING(op) "%.x %1, %0" : "=f" (__result) : "f" (__mathop_x));\
+    return __result;                                                         \
+  }
+  
+/* ieee style elementary functions */
+__inline_mathop(__ieee754_acos, acos)
+__inline_mathop(__ieee754_asin, asin)
+__inline_mathop(__ieee754_cosh, cosh)
+__inline_mathop(__ieee754_sinh, sinh)
+__inline_mathop(__ieee754_exp, etox)
+__inline_mathop(__ieee754_log10, log10)
+__inline_mathop(__ieee754_log, logn)
+__inline_mathop(__ieee754_sqrt, sqrt)
+__inline_mathop(__ieee754_atanh, atanh)
+
+/* ieee style elementary float functions */
+__inline_mathopf(__ieee754_acosf, acos)
+__inline_mathopf(__ieee754_asinf, asin)
+__inline_mathopf(__ieee754_coshf, cosh)
+__inline_mathopf(__ieee754_sinhf, sinh)
+__inline_mathopf(__ieee754_expf, etox)
+__inline_mathopf(__ieee754_log10f, log10)
+__inline_mathopf(__ieee754_logf, logn)
+__inline_mathopf(__ieee754_sqrtf, sqrt)
+__inline_mathopf(__ieee754_atanhf, atan)
+
+__inline_mathop(__atan, atan)
+__inline_mathop(__cos, cos)
+__inline_mathop(__sin, sin)
+__inline_mathop(__tan, tan)
+__inline_mathop(__tanh, tanh)
+__inline_mathop(__fabs, abs)
+__inline_mathop(__sqrt, sqrt)
+
+__inline_mathop(__rint, int)
+__inline_mathop(__expm1, etoxm1)
+__inline_mathop(__log1p, lognp1)
+__inline_mathop(__logb, log2)
+__inline_mathop(__significand, getman)
+
+__inline_mathopf(__atanf, atan)
+__inline_mathopf(__cosf, cos)
+__inline_mathopf(__sinf, sin)
+__inline_mathopf(__tanf, tan)
+__inline_mathopf(__tanhf, tanh)
+__inline_mathopf(__fabsf, abs)
+__inline_mathopf(__sqrtf, sqrt)
+
+__inline_mathopf(__rintf, int)
+__inline_mathopf(__expm1f, etoxm1)
+__inline_mathopf(__log1pf, lognp1)
+__inline_mathopf(__logbf, log2)
+__inline_mathopf(__significandf, getman)
+
+__m81_defun (double, __ieee754_remainder, (double __x, double __y))
 {
   double __result;
   __asm("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
   return __result;
 }
 
-__m81_inline double
-__m81_u(ldexp)(double __x, int __e) __attribute__ ((__const__));
-__m81_inline double
-__m81_u(ldexp)(double __x, int __e)
+__m81_defun (double, __ldexp, (double __x, int __e))
 {
   double __result;
   double __double_e = (double) __e;
@@ -94,10 +120,7 @@ __m81_u(ldexp)(double __x, int __e)
   return __result;
 }
 
-__m81_inline double
-__m81_u(fmod)(double __x, double __y) __attribute__ ((__const__));
-__m81_inline double
-__m81_u(fmod)(double __x, double __y)
+__m81_defun (double, __ieee754_fmod, (double __x, double __y))
 {
   double __result;
   __asm("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
@@ -105,7 +128,7 @@ __m81_u(fmod)(double __x, double __y)
 }
 
 __m81_inline double
-__m81_u(frexp)(double __value, int *__expptr)
+__m81_u(__frexp)(double __value, int *__expptr)
 {
   double __mantissa, __exponent;
   __asm("fgetexp%.x %1, %0" : "=f" (__exponent) : "f" (__value));
@@ -114,10 +137,7 @@ __m81_u(frexp)(double __value, int *__expptr)
   return __mantissa;
 }
 
-__m81_inline double
-__m81_u(floor)(double __x) __attribute__ ((__const__));
-__m81_inline double
-__m81_u(floor)(double __x)
+__m81_defun (double, __floor, (double __x))
 {
   double __result;
   unsigned long int __ctrl_reg;
@@ -133,16 +153,13 @@ __m81_u(floor)(double __x)
   return __result;
 }
 
-__m81_inline double
-__m81_u(pow)(double __x, double __y) __attribute__ ((__const__));
-__m81_inline double
-__m81_u(pow)(double __x, double __y)
+__m81_defun (double, __ieee754_pow, (double __x, double __y))
 {
   double __result;
   if (__x == 0.0)
     {
       if (__y <= 0.0)
-       __result = __infnan (EDOM);
+       __result = 0.0 / 0.0;
       else
        __result = 0.0;
     }
@@ -162,22 +179,19 @@ __m81_u(pow)(double __x, double __y)
       if (__y == __temp)
        {
          int i = (int) __y;
-         __result = __m81_u (exp) (__y * __m81_u (log) (-__x));
+         __result = __m81_u(__ieee754_exp)(__y * __m81_u(__ieee754_log)(-__x));
          if (i & 1)
            __result = -__result;
        }
       else
-       __result = __infnan (EDOM);
+       __result = 0.0 / 0.0;
     }
   else
-    __result = __m81_u(exp)(__y * __m81_u(log)(__x));
+    __result = __m81_u(__ieee754_exp)(__y * __m81_u(__ieee754_log)(__x));
   return __result;
 }
 
-__m81_inline double
-__m81_u(ceil)(double __x) __attribute__ ((__const__));
-__m81_inline double
-__m81_u(ceil)(double __x)
+__m81_defun (double, __ceil, (double __x))
 {
   double __result;
   unsigned long int __ctrl_reg;
@@ -194,30 +208,25 @@ __m81_u(ceil)(double __x)
 }
 
 __m81_inline double
-__m81_u(modf)(double __value, double *__iptr)
+__m81_u(__modf)(double __value, double *__iptr)
 {
-  double __modf_int = __m81_u(floor)(__value);
+  double __modf_int;
+  __asm ("fintrz%.x %1, %0" : "=f" (__modf_int) : "f" (__value));
   *__iptr = __modf_int;
   return __value - __modf_int;
 }
 
-__m81_inline int
-__m81_u(__isinf)(double __value) __attribute__ ((__const__));
-__m81_inline int
-__m81_u(__isinf)(double __value)
+__m81_defun (int, __isinf, (double __value))
 {
   /* There is no branch-condition for infinity,
      so we must extract and examine the condition codes manually.  */
   unsigned long int __fpsr;
   __asm("ftst%.x %1\n"
        "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
-  return (__fpsr & (2 << (3 * 8))) ? (__value < 0 ? -1 : 1) : 0;
+  return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;
 }
 
-__m81_inline int
-__m81_u(__isnan)(double __value) __attribute__ ((__const__));
-__m81_inline int
-__m81_u(__isnan)(double __value)
+__m81_defun (int, __isnan, (double __value))
 {
   char __result;
   __asm("ftst%.x %1\n"
@@ -225,23 +234,210 @@ __m81_u(__isnan)(double __value)
   return __result;
 }
 
-__m81_inline int
-__m81_u(__isinfl)(long double __value) __attribute__ ((__const__));
-__m81_inline int
-__m81_u(__isinfl)(long double __value)
+__m81_defun (int, __finite, (double __value))
+{
+  /* There is no branch-condition for infinity, so we must extract and
+     examine the condition codes manually.  */
+  unsigned long int __fpsr;
+  __asm ("ftst%.x %1\n"
+        "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
+  return (__fpsr & (3 << 24)) == 0;
+}
+
+__m81_defun (int, __ilogb, (double __x))
+{
+  double __result;
+  __asm("fgetexp%.x %1, %0" : "=f" (__result) : "f" (__x));
+  return (int) __result;
+}
+
+__m81_defun (double, __ieee754_scalb, (double __x, double __n))
+{
+  double __result;
+  __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__n), "0" (__x));
+  return __result;
+}
+
+__m81_defun (double, __scalbn, (double __x, int __n))
+{
+  double __result;
+  double __double_n = (double) __n;
+  __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__double_n), "0" (__x));
+  return __result;
+}
+
+__m81_defun (float, __ieee754_remainderf, (float __x, float __y))
+{
+  float __result;
+  __asm("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
+  return __result;
+}
+
+__m81_defun (float, __ldexpf, (float __x, int __e))
+{
+  float __result;
+  float __float_e = (float) __e;
+  __asm("fscale%.x %1, %0" : "=f" (__result) : "f" (__float_e), "0" (__x));
+  return __result;
+}
+
+__m81_defun (float, __ieee754_fmodf, (float __x, float __y))
+{
+  float __result;
+  __asm("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
+  return __result;
+}
+
+__m81_inline float
+__m81_u(__frexpf)(float __value, int *__expptr)
+{
+  float __mantissa, __exponent;
+  __asm("fgetexp%.x %1, %0" : "=f" (__exponent) : "f" (__value));
+  __asm("fgetman%.x %1, %0" : "=f" (__mantissa) : "f" (__value));
+  *__expptr = (int) __exponent;
+  return __mantissa;
+}
+
+__m81_defun (float, __floorf, (float __x))
+{
+  float __result;
+  unsigned long int __ctrl_reg;
+  __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));
+  /* Set rounding towards negative infinity.  */
+  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */ 
+                     : "dmi" ((__ctrl_reg & ~0x10) | 0x20));
+  /* Convert X to an integer, using -Inf rounding.  */
+  __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));
+  /* Restore the previous rounding mode.  */
+  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */
+                     : "dmi" (__ctrl_reg));
+  return __result;
+}
+
+__m81_defun (float, __ieee754_powf, (float __x, float __y))
+{
+  float __result;
+  if (__x == 0.0f)
+    {
+      if (__y <= 0.0f)
+       __result = 0.0f / 0.0f;
+      else
+       __result = 0.0f;
+    }
+  else if (__y == 0.0f || __x == 1.0f)
+    __result = 1.0;
+  else if (__y == 1.0f)
+    __result = __x;
+  else if (__y == 2.0f)
+    __result = __x * __x;
+  else if (__x == 10.0f)
+    __asm("ftentox%.x %1, %0" : "=f" (__result) : "f" (__y));
+  else if (__x == 2.0f)
+    __asm("ftwotox%.x %1, %0" : "=f" (__result) : "f" (__y));
+  else if (__x < 0.0f)
+    {
+      float __temp = __m81_u(__rintf)(__y);
+      if (__y == __temp)
+       {
+         int i = (int) __y;
+         __result = __m81_u(__ieee754_expf)(__y * __m81_u(__ieee754_logf)(-__x));
+         if (i & 1)
+           __result = -__result;
+       }
+      else
+       __result = 0.0f / 0.0f;
+    }
+  else
+    __result = __m81_u(__ieee754_expf)(__y * __m81_u(__ieee754_logf)(__x));
+  return __result;
+}
+
+__m81_defun (float, __ceilf, (float __x))
+{
+  float __result;
+  unsigned long int __ctrl_reg;
+  __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));
+  /* Set rounding towards positive infinity.  */
+  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */
+                     : "dmi" (__ctrl_reg | 0x30));
+  /* Convert X to an integer, using +Inf rounding.  */
+  __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));
+  /* Restore the previous rounding mode.  */
+  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */
+                     : "dmi" (__ctrl_reg));
+  return __result;
+}
+
+__m81_inline float
+__m81_u(__modff)(float __value, float *__iptr)
+{
+  float __modf_int;
+  __asm ("fintrz%.x %1, %0" : "=f" (__modf_int) : "f" (__value));
+  *__iptr = __modf_int;
+  return __value - __modf_int;
+}
+
+__m81_defun (int, __isinff, (float __value))
+{
+  /* There is no branch-condition for infinity,
+     so we must extract and examine the condition codes manually.  */
+  unsigned long int __fpsr;
+  __asm("ftst%.x %1\n"
+       "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
+  return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;
+}
+
+__m81_defun (int, __isnanf, (float __value))
+{
+  char __result;
+  __asm("ftst%.x %1\n"
+       "fsun %0" : "=dm" (__result) : "f" (__value));
+  return __result;
+}
+
+__m81_defun (int, __finitef, (float __value))
+{
+  /* There is no branch-condition for infinity, so we must extract and
+     examine the condition codes manually.  */
+  unsigned long int __fpsr;
+  __asm ("ftst%.x %1\n"
+        "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
+  return (__fpsr & (3 << 24)) == 0;
+}
+
+__m81_defun (int, __ilogbf, (float __x))
+{
+  float __result;
+  __asm("fgetexp%.x %1, %0" : "=f" (__result) : "f" (__x));
+  return (int) __result;
+}
+
+__m81_defun (float, __ieee754_scalbf, (float __x, float __n))
+{
+  float __result;
+  __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__n), "0" (__x));
+  return __result;
+}
+
+__m81_defun (float, __scalbnf, (float __x, int __n))
+{
+  float __result;
+  float __float_n = (float) __n;
+  __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__float_n), "0" (__x));
+  return __result;
+}
+
+__m81_defun (int, __isinfl, (long double __value))
 {
   /* There is no branch-condition for infinity,
      so we must extract and examine the condition codes manually.  */
   unsigned long int __fpsr;
   __asm("ftst%.x %1\n"
        "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
-  return (__fpsr & (2 << (3 * 8))) ? (__value < 0 ? -1 : 1) : 0;
+  return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;
 }
 
-__m81_inline int
-__m81_u(__isnanl)(long double __value) __attribute__ ((__const__));
-__m81_inline int
-__m81_u(__isnanl)(long double __value)
+__m81_defun (int, __isnanl, (long double __value))
 {
   char __result;
   __asm("ftst%.x %1\n"
diff --git a/sysdeps/m68k/fpu/e_acos.c b/sysdeps/m68k/fpu/e_acos.c
new file mode 100644 (file)
index 0000000..1a29222
--- /dev/null
@@ -0,0 +1,31 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef        FUNC
+#define        FUNC    __ieee754_acos
+#endif
+
+double
+DEFUN(FUNC, (x), double x)
+{
+  return __m81_u(FUNC)(x);
+}
diff --git a/sysdeps/m68k/fpu/e_acosf.c b/sysdeps/m68k/fpu/e_acosf.c
new file mode 100644 (file)
index 0000000..5196815
--- /dev/null
@@ -0,0 +1,31 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef        FUNC
+#define        FUNC    __ieee754_acosf
+#endif
+
+float
+DEFUN(FUNC, (x), float x)
+{
+  return __m81_u(FUNC)(x);
+}
diff --git a/sysdeps/m68k/fpu/e_asin.c b/sysdeps/m68k/fpu/e_asin.c
new file mode 100644 (file)
index 0000000..b6176c7
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_asin
+#include <e_acos.c>
diff --git a/sysdeps/m68k/fpu/e_asinf.c b/sysdeps/m68k/fpu/e_asinf.c
new file mode 100644 (file)
index 0000000..05fb826
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_asinf
+#include <e_acosf.c>
diff --git a/sysdeps/m68k/fpu/e_atanh.c b/sysdeps/m68k/fpu/e_atanh.c
new file mode 100644 (file)
index 0000000..11bf430
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_atanh
+#include <e_acos.c>
diff --git a/sysdeps/m68k/fpu/e_atanhf.c b/sysdeps/m68k/fpu/e_atanhf.c
new file mode 100644 (file)
index 0000000..7a8f92e
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_atanhf
+#include <e_acosf.c>
diff --git a/sysdeps/m68k/fpu/e_cosh.c b/sysdeps/m68k/fpu/e_cosh.c
new file mode 100644 (file)
index 0000000..93d753c
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_cosh
+#include <e_acos.c>
diff --git a/sysdeps/m68k/fpu/e_coshf.c b/sysdeps/m68k/fpu/e_coshf.c
new file mode 100644 (file)
index 0000000..433faf1
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_coshf
+#include <e_acosf.c>
diff --git a/sysdeps/m68k/fpu/e_exp.c b/sysdeps/m68k/fpu/e_exp.c
new file mode 100644 (file)
index 0000000..1e95ac4
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_exp
+#include <e_acos.c>
diff --git a/sysdeps/m68k/fpu/e_expf.c b/sysdeps/m68k/fpu/e_expf.c
new file mode 100644 (file)
index 0000000..2aeaacf
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_expf
+#include <e_acosf.c>
diff --git a/sysdeps/m68k/fpu/e_fmod.c b/sysdeps/m68k/fpu/e_fmod.c
new file mode 100644 (file)
index 0000000..310b1c4
--- /dev/null
@@ -0,0 +1,31 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC __ieee754_fmod
+#endif
+
+double
+DEFUN(FUNC, (x, y), double x AND double y)
+{
+  return __m81_u(FUNC)(x, y);
+}
diff --git a/sysdeps/m68k/fpu/e_fmodf.c b/sysdeps/m68k/fpu/e_fmodf.c
new file mode 100644 (file)
index 0000000..1a74c36
--- /dev/null
@@ -0,0 +1,31 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC __ieee754_fmodf
+#endif
+
+float
+DEFUN(FUNC, (x, y), float x AND float y)
+{
+  return __m81_u(FUNC)(x, y);
+}
diff --git a/sysdeps/m68k/fpu/e_log.c b/sysdeps/m68k/fpu/e_log.c
new file mode 100644 (file)
index 0000000..146dc0c
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_log
+#include <e_acos.c>
diff --git a/sysdeps/m68k/fpu/e_log10.c b/sysdeps/m68k/fpu/e_log10.c
new file mode 100644 (file)
index 0000000..06a9b87
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_log10
+#include <e_acos.c>
diff --git a/sysdeps/m68k/fpu/e_log10f.c b/sysdeps/m68k/fpu/e_log10f.c
new file mode 100644 (file)
index 0000000..3896864
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_log10f
+#include <e_acosf.c>
diff --git a/sysdeps/m68k/fpu/e_logf.c b/sysdeps/m68k/fpu/e_logf.c
new file mode 100644 (file)
index 0000000..bc23217
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_logf
+#include <e_acosf.c>
diff --git a/sysdeps/m68k/fpu/e_pow.c b/sysdeps/m68k/fpu/e_pow.c
new file mode 100644 (file)
index 0000000..29798a1
--- /dev/null
@@ -0,0 +1,2 @@
+#define FUNC __ieee754_pow
+#include <e_fmod.c>
diff --git a/sysdeps/m68k/fpu/e_powf.c b/sysdeps/m68k/fpu/e_powf.c
new file mode 100644 (file)
index 0000000..978d32e
--- /dev/null
@@ -0,0 +1,2 @@
+#define FUNC __ieee754_powf
+#include <e_fmodf.c>
diff --git a/sysdeps/m68k/fpu/e_remainder.c b/sysdeps/m68k/fpu/e_remainder.c
new file mode 100644 (file)
index 0000000..aa31bc0
--- /dev/null
@@ -0,0 +1,2 @@
+#define FUNC __ieee754_remainder
+#include <e_fmod.c>
diff --git a/sysdeps/m68k/fpu/e_remainderf.c b/sysdeps/m68k/fpu/e_remainderf.c
new file mode 100644 (file)
index 0000000..b04f0c8
--- /dev/null
@@ -0,0 +1,2 @@
+#define FUNC __ieee754_remainderf
+#include <e_fmodf.c>
diff --git a/sysdeps/m68k/fpu/e_scalb.c b/sysdeps/m68k/fpu/e_scalb.c
new file mode 100644 (file)
index 0000000..51d9bee
--- /dev/null
@@ -0,0 +1,2 @@
+#define FUNC __ieee754_scalb
+#include <e_fmod.c>
diff --git a/sysdeps/m68k/fpu/e_scalbf.c b/sysdeps/m68k/fpu/e_scalbf.c
new file mode 100644 (file)
index 0000000..1d2beae
--- /dev/null
@@ -0,0 +1,2 @@
+#define FUNC __ieee754_scalbf
+#include <e_fmodf.c>
diff --git a/sysdeps/m68k/fpu/e_sinh.c b/sysdeps/m68k/fpu/e_sinh.c
new file mode 100644 (file)
index 0000000..c6fed7f
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_sinh
+#include <e_acos.c>
diff --git a/sysdeps/m68k/fpu/e_sinhf.c b/sysdeps/m68k/fpu/e_sinhf.c
new file mode 100644 (file)
index 0000000..b5034b7
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_sinhf
+#include <e_acosf.c>
diff --git a/sysdeps/m68k/fpu/e_sqrt.c b/sysdeps/m68k/fpu/e_sqrt.c
new file mode 100644 (file)
index 0000000..70f1971
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_sqrt
+#include <e_acos.c>
diff --git a/sysdeps/m68k/fpu/e_sqrtf.c b/sysdeps/m68k/fpu/e_sqrtf.c
new file mode 100644 (file)
index 0000000..5dc1904
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    __ieee754_sqrtf
+#include <e_acosf.c>
index f3eeaa2b3080fe02f1648e96f404948444a87f75..77fd75918280189c7c9a763c71b558041007e23a 100644 (file)
@@ -1,4 +1,29 @@
-#define        FUNC    __isinfl
-#include <isinf.c>
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+int
+DEFUN(__isinfl, (x), long double x)
+{
+  return __m81_u(__isinfl)(x);
+}
 
 weak_alias (__isinfl, isinfl)
index 0f48a73fbc33fbda8c01fc78ad8d37e376db5dce..1e58ea4ebd20cd05f833dc2a57a1737f25a45d85 100644 (file)
@@ -1,4 +1,29 @@
-#define        FUNC    __isnanl
-#include <isinf.c>
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+int
+DEFUN(__isnanl, (x), long double x)
+{
+  return __m81_u(__isnanl)(x);
+}
 
 weak_alias (__isnanl, isnanl)
diff --git a/sysdeps/m68k/fpu/k_cos.c b/sysdeps/m68k/fpu/k_cos.c
new file mode 100644 (file)
index 0000000..1f508b4
--- /dev/null
@@ -0,0 +1,26 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <math.h>
+
+double
+DEFUN(__kernel_cos, (x, y), double x AND double y)
+{
+  return __cos (x + y);
+}
diff --git a/sysdeps/m68k/fpu/k_cosf.c b/sysdeps/m68k/fpu/k_cosf.c
new file mode 100644 (file)
index 0000000..a6f0a26
--- /dev/null
@@ -0,0 +1,26 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <math.h>
+
+float
+DEFUN(__kernel_cosf, (x, y), float x AND float y)
+{
+  return __cosf (x + y);
+}
diff --git a/sysdeps/m68k/fpu/k_sin.c b/sysdeps/m68k/fpu/k_sin.c
new file mode 100644 (file)
index 0000000..10cfbb4
--- /dev/null
@@ -0,0 +1,26 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <math.h>
+
+double
+DEFUN(__kernel_sin, (x, y, iy), double x AND double y AND int iy)
+{
+  return __sin (x + y);
+}
diff --git a/sysdeps/m68k/fpu/k_sinf.c b/sysdeps/m68k/fpu/k_sinf.c
new file mode 100644 (file)
index 0000000..245e86b
--- /dev/null
@@ -0,0 +1,26 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <math.h>
+
+float
+DEFUN(__kernel_sinf, (x, y, iy), float x AND float y AND int iy)
+{
+  return __sinf (x + y);
+}
diff --git a/sysdeps/m68k/fpu/k_tan.c b/sysdeps/m68k/fpu/k_tan.c
new file mode 100644 (file)
index 0000000..b18c9af
--- /dev/null
@@ -0,0 +1,29 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <math.h>
+
+double
+DEFUN(__kernel_tan, (x, y, iy), double x AND double y AND int iy)
+{
+  if (iy == 1)
+    return __tan (x + y);
+  else
+    return -1.0 / __tan (x + y);
+}
diff --git a/sysdeps/m68k/fpu/k_tanf.c b/sysdeps/m68k/fpu/k_tanf.c
new file mode 100644 (file)
index 0000000..027a74a
--- /dev/null
@@ -0,0 +1,29 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#include <math.h>
+
+float
+DEFUN(__kernel_tanf, (x, y, iy), float x AND float y AND int iy)
+{
+  if (iy == 1)
+    return __tanf (x + y);
+  else
+    return -1.0 / __tanf (x + y);
+}
diff --git a/sysdeps/m68k/fpu/s_atan.c b/sysdeps/m68k/fpu/s_atan.c
new file mode 100644 (file)
index 0000000..f1cc975
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC atan
+#endif
+
+#define __CONCATX(a,b) __CONCAT(a,b)
+
+double
+DEFUN(__CONCATX(__,FUNC), (x), double x)
+{
+  return __m81_u(__CONCATX(__,FUNC))(x);
+}
+
+#define weak_aliasx(a,b) weak_alias(a,b)
+weak_aliasx (__CONCATX(__,FUNC), FUNC)
diff --git a/sysdeps/m68k/fpu/s_atanf.c b/sysdeps/m68k/fpu/s_atanf.c
new file mode 100644 (file)
index 0000000..5d1f337
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC atanf
+#endif
+
+#define __CONCATX(a,b) __CONCAT(a,b)
+
+float
+DEFUN(__CONCATX(__,FUNC), (x), float x)
+{
+  return __m81_u(__CONCATX(__,FUNC))(x);
+}
+
+#define weak_aliasx(a,b) weak_alias(a,b)
+weak_aliasx (__CONCATX(__,FUNC), FUNC)
diff --git a/sysdeps/m68k/fpu/s_ceil.c b/sysdeps/m68k/fpu/s_ceil.c
new file mode 100644 (file)
index 0000000..93d5ad7
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    ceil
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_ceilf.c b/sysdeps/m68k/fpu/s_ceilf.c
new file mode 100644 (file)
index 0000000..b3ba6a5
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    ceilf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_cos.c b/sysdeps/m68k/fpu/s_cos.c
new file mode 100644 (file)
index 0000000..9c96076
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    cos
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_cosf.c b/sysdeps/m68k/fpu/s_cosf.c
new file mode 100644 (file)
index 0000000..db965b8
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    cosf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_expm1.c b/sysdeps/m68k/fpu/s_expm1.c
new file mode 100644 (file)
index 0000000..1ef99e2
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    expm1
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_expm1f.c b/sysdeps/m68k/fpu/s_expm1f.c
new file mode 100644 (file)
index 0000000..84935b1
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    expm1f
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_fabs.c b/sysdeps/m68k/fpu/s_fabs.c
new file mode 100644 (file)
index 0000000..1f0631e
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    fabs
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_fabsf.c b/sysdeps/m68k/fpu/s_fabsf.c
new file mode 100644 (file)
index 0000000..8f94219
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    fabsf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_finite.c b/sysdeps/m68k/fpu/s_finite.c
new file mode 100644 (file)
index 0000000..dafbd59
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    finite
+#include <s_isinf.c>
diff --git a/sysdeps/m68k/fpu/s_finitef.c b/sysdeps/m68k/fpu/s_finitef.c
new file mode 100644 (file)
index 0000000..b81342e
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    finitef
+#include <s_isinff.c>
diff --git a/sysdeps/m68k/fpu/s_floor.c b/sysdeps/m68k/fpu/s_floor.c
new file mode 100644 (file)
index 0000000..e1219c6
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    floor
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_floorf.c b/sysdeps/m68k/fpu/s_floorf.c
new file mode 100644 (file)
index 0000000..f4f9b9a
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    floorf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_frexp.c b/sysdeps/m68k/fpu/s_frexp.c
new file mode 100644 (file)
index 0000000..b24af74
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+double
+DEFUN(__frexp, (value, expptr), double value AND int *expptr)
+{
+  return __m81_u(__frexp)(value, expptr);
+}
+weak_alias (__frexp, frexp)
diff --git a/sysdeps/m68k/fpu/s_frexpf.c b/sysdeps/m68k/fpu/s_frexpf.c
new file mode 100644 (file)
index 0000000..c7cd98a
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+float
+DEFUN(__frexpf, (value, expptr), float value AND int *expptr)
+{
+  return __m81_u(__frexpf)(value, expptr);
+}
+weak_alias (__frexpf, frexpf)
diff --git a/sysdeps/m68k/fpu/s_ilogb.c b/sysdeps/m68k/fpu/s_ilogb.c
new file mode 100644 (file)
index 0000000..2df00a6
--- /dev/null
@@ -0,0 +1,29 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+int
+DEFUN(__ilogb, (x), double x)
+{
+  return __m81_u(__ilogb)(x);
+}
+
+weak_alias (__ilogb, ilogb)
diff --git a/sysdeps/m68k/fpu/s_ilogbf.c b/sysdeps/m68k/fpu/s_ilogbf.c
new file mode 100644 (file)
index 0000000..05f1546
--- /dev/null
@@ -0,0 +1,29 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+int
+DEFUN(__ilogbf, (x), float x)
+{
+  return __m81_u(__ilogbf)(x);
+}
+
+weak_alias (__ilogbf, ilogbf)
diff --git a/sysdeps/m68k/fpu/s_isinf.c b/sysdeps/m68k/fpu/s_isinf.c
new file mode 100644 (file)
index 0000000..9674533
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC isinf
+#endif
+
+#define __CONCATX(a,b) __CONCAT(a,b)
+
+int
+DEFUN(__CONCATX(__,FUNC), (x), double x)
+{
+  return __m81_u(__CONCATX(__,FUNC))(x);
+}
+
+#define weak_aliasx(a,b) weak_alias(a,b)
+weak_aliasx (__CONCATX(__,FUNC), FUNC)
diff --git a/sysdeps/m68k/fpu/s_isinff.c b/sysdeps/m68k/fpu/s_isinff.c
new file mode 100644 (file)
index 0000000..d9101a9
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC isinff
+#endif
+
+#define __CONCATX(a,b) __CONCAT(a,b)
+
+int
+DEFUN(__CONCATX(__,FUNC), (x), float x)
+{
+  return __m81_u(__CONCATX(__,FUNC))(x);
+}
+
+#define weak_aliasx(a,b) weak_alias(a,b)
+weak_aliasx (__CONCATX(__,FUNC), FUNC)
diff --git a/sysdeps/m68k/fpu/s_isnan.c b/sysdeps/m68k/fpu/s_isnan.c
new file mode 100644 (file)
index 0000000..151d6dc
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    isnan
+#include <s_isinf.c>
diff --git a/sysdeps/m68k/fpu/s_isnanf.c b/sysdeps/m68k/fpu/s_isnanf.c
new file mode 100644 (file)
index 0000000..667bca7
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    isnanf
+#include <s_isinff.c>
diff --git a/sysdeps/m68k/fpu/s_ldexp.c b/sysdeps/m68k/fpu/s_ldexp.c
new file mode 100644 (file)
index 0000000..ee7662e
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC ldexp
+#endif
+
+#define __CONCATX(a,b) __CONCAT(a,b)
+
+double
+DEFUN(__CONCATX(__,FUNC), (x, exp), double x AND int exp)
+{
+  return __m81_u(__CONCATX(__,FUNC))(x, exp);
+}
+
+#define weak_aliasx(a,b) weak_alias(a,b)
+weak_aliasx (__CONCATX(__,FUNC), FUNC)
diff --git a/sysdeps/m68k/fpu/s_ldexpf.c b/sysdeps/m68k/fpu/s_ldexpf.c
new file mode 100644 (file)
index 0000000..a974173
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC ldexpf
+#endif
+
+#define __CONCATX(a,b) __CONCAT(a,b)
+
+float
+DEFUN(__CONCATX(__,FUNC), (x, exp), float x AND int exp)
+{
+  return __m81_u(__CONCATX(__,FUNC))(x, exp);
+}
+
+#define weak_aliasx(a,b) weak_alias(a,b)
+weak_aliasx (__CONCATX(__,FUNC), FUNC)
diff --git a/sysdeps/m68k/fpu/s_log1p.c b/sysdeps/m68k/fpu/s_log1p.c
new file mode 100644 (file)
index 0000000..1840ced
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    log1p
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_log1pf.c b/sysdeps/m68k/fpu/s_log1pf.c
new file mode 100644 (file)
index 0000000..cb7235a
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    log1pf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_logb.c b/sysdeps/m68k/fpu/s_logb.c
new file mode 100644 (file)
index 0000000..9903b30
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    logb
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_logbf.c b/sysdeps/m68k/fpu/s_logbf.c
new file mode 100644 (file)
index 0000000..6dcfee5
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    logbf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_modf.c b/sysdeps/m68k/fpu/s_modf.c
new file mode 100644 (file)
index 0000000..355df2f
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+double
+DEFUN(__modf, (x, exp), double x AND double *iptr)
+{
+  return __m81_u(__modf)(x, iptr);
+}
+weak_alias(__modf, modf)
diff --git a/sysdeps/m68k/fpu/s_modff.c b/sysdeps/m68k/fpu/s_modff.c
new file mode 100644 (file)
index 0000000..f56bcb4
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <ansidecl.h>
+#define        __NO_MATH_INLINES
+#include <math.h>
+
+float
+DEFUN(__modff, (x, exp), float x AND float *iptr)
+{
+  return __m81_u(__modff)(x, iptr);
+}
+weak_alias(__modff, modff)
diff --git a/sysdeps/m68k/fpu/s_rint.c b/sysdeps/m68k/fpu/s_rint.c
new file mode 100644 (file)
index 0000000..f0f18c7
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    rint
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_rintf.c b/sysdeps/m68k/fpu/s_rintf.c
new file mode 100644 (file)
index 0000000..4e00cab
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    rintf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_scalbn.c b/sysdeps/m68k/fpu/s_scalbn.c
new file mode 100644 (file)
index 0000000..433aa75
--- /dev/null
@@ -0,0 +1,2 @@
+#define FUNC scalbn
+#include <s_ldexp.c>
diff --git a/sysdeps/m68k/fpu/s_scalbnf.c b/sysdeps/m68k/fpu/s_scalbnf.c
new file mode 100644 (file)
index 0000000..00461dc
--- /dev/null
@@ -0,0 +1,2 @@
+#define FUNC scalbnf
+#include <s_ldexpf.c>
diff --git a/sysdeps/m68k/fpu/s_significand.c b/sysdeps/m68k/fpu/s_significand.c
new file mode 100644 (file)
index 0000000..34d4ea3
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    significand
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_significandf.c b/sysdeps/m68k/fpu/s_significandf.c
new file mode 100644 (file)
index 0000000..4e769ca
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    significandf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_sin.c b/sysdeps/m68k/fpu/s_sin.c
new file mode 100644 (file)
index 0000000..0d4abdb
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    sin
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_sinf.c b/sysdeps/m68k/fpu/s_sinf.c
new file mode 100644 (file)
index 0000000..9b23d48
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    sinf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_tan.c b/sysdeps/m68k/fpu/s_tan.c
new file mode 100644 (file)
index 0000000..ca7fb0e
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    tan
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_tanf.c b/sysdeps/m68k/fpu/s_tanf.c
new file mode 100644 (file)
index 0000000..95fe9c7
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    tanf
+#include <s_atanf.c>
diff --git a/sysdeps/m68k/fpu/s_tanh.c b/sysdeps/m68k/fpu/s_tanh.c
new file mode 100644 (file)
index 0000000..ac2e7db
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    tanh
+#include <s_atan.c>
diff --git a/sysdeps/m68k/fpu/s_tanhf.c b/sysdeps/m68k/fpu/s_tanhf.c
new file mode 100644 (file)
index 0000000..1addaae
--- /dev/null
@@ -0,0 +1,2 @@
+#define        FUNC    tanhf
+#include <s_atanf.c>