mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 22:10:13 +00:00
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.
This commit is contained in:
parent
d3b7d2ac93
commit
6025c399e9
76
ChangeLog
76
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.
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
/*
|
||||
|
||||
*/
|
||||
|
@ -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 \
|
||||
|
118
misc/sysexits.h
Normal file
118
misc/sysexits.h
Normal file
@ -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_ */
|
147
posix/glob.c
147
posix/glob.c
@ -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;
|
||||
}
|
||||
firstc = pglob->gl_pathc;
|
||||
for (p = begin + 1;; p = comma + 1)
|
||||
{
|
||||
int result;
|
||||
comma = strchr (p, ',');
|
||||
if (comma == NULL)
|
||||
comma = strchr (p, '\0');
|
||||
if ((begin - pattern) + (comma - p) + 1 > bufsz)
|
||||
{
|
||||
if (bufsz * 2 < comma - p + 1)
|
||||
bufsz *= 2;
|
||||
else
|
||||
bufsz = comma - p + 1;
|
||||
buf = __alloca (bufsz);
|
||||
}
|
||||
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')
|
||||
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);
|
||||
}
|
||||
if (pglob->gl_pathc == firstc &&
|
||||
!(flags & (GLOB_NOCHECK|GLOB_NOMAGIC)))
|
||||
return GLOB_NOMATCH;
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
/* Found the next alternative. Loop to glob it. */
|
||||
next = p;
|
||||
continue;
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
163
sysdeps/alpha/memchr.S
Normal file
163
sysdeps/alpha/memchr.S
Normal file
@ -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
|
@ -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;
|
||||
}
|
@ -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: {
|
||||
|
@ -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: {
|
||||
|
@ -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)
|
||||
#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)
|
||||
|
||||
__inline_mathop2(__rint, int)
|
||||
__inline_mathop2(__expm1, etoxm1)
|
||||
/* 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)
|
||||
|
||||
#ifdef __USE_MISC
|
||||
#ifndef __NO_MATH_INLINES
|
||||
__inline_mathop2(rint, int)
|
||||
__inline_mathop2(expm1, etoxm1)
|
||||
#endif
|
||||
__inline_mathop2(log1p, lognp1)
|
||||
__inline_mathop(atanh)
|
||||
#endif
|
||||
__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)
|
||||
|
||||
__m81_inline double
|
||||
__m81_u(__drem)(double __x, double __y) __attribute__ ((__const__));
|
||||
__m81_inline double
|
||||
__m81_u(__drem)(double __x, double __y)
|
||||
__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 << (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, __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 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;
|
||||
}
|
||||
|
||||
__m81_defun (int, __isnanl, (long double __value))
|
||||
{
|
||||
char __result;
|
||||
__asm("ftst%.x %1\n"
|
||||
|
31
sysdeps/m68k/fpu/e_acos.c
Normal file
31
sysdeps/m68k/fpu/e_acos.c
Normal file
@ -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);
|
||||
}
|
31
sysdeps/m68k/fpu/e_acosf.c
Normal file
31
sysdeps/m68k/fpu/e_acosf.c
Normal file
@ -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);
|
||||
}
|
2
sysdeps/m68k/fpu/e_asin.c
Normal file
2
sysdeps/m68k/fpu/e_asin.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_asin
|
||||
#include <e_acos.c>
|
2
sysdeps/m68k/fpu/e_asinf.c
Normal file
2
sysdeps/m68k/fpu/e_asinf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_asinf
|
||||
#include <e_acosf.c>
|
2
sysdeps/m68k/fpu/e_atanh.c
Normal file
2
sysdeps/m68k/fpu/e_atanh.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_atanh
|
||||
#include <e_acos.c>
|
2
sysdeps/m68k/fpu/e_atanhf.c
Normal file
2
sysdeps/m68k/fpu/e_atanhf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_atanhf
|
||||
#include <e_acosf.c>
|
2
sysdeps/m68k/fpu/e_cosh.c
Normal file
2
sysdeps/m68k/fpu/e_cosh.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_cosh
|
||||
#include <e_acos.c>
|
2
sysdeps/m68k/fpu/e_coshf.c
Normal file
2
sysdeps/m68k/fpu/e_coshf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_coshf
|
||||
#include <e_acosf.c>
|
2
sysdeps/m68k/fpu/e_exp.c
Normal file
2
sysdeps/m68k/fpu/e_exp.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_exp
|
||||
#include <e_acos.c>
|
2
sysdeps/m68k/fpu/e_expf.c
Normal file
2
sysdeps/m68k/fpu/e_expf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_expf
|
||||
#include <e_acosf.c>
|
31
sysdeps/m68k/fpu/e_fmod.c
Normal file
31
sysdeps/m68k/fpu/e_fmod.c
Normal file
@ -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);
|
||||
}
|
31
sysdeps/m68k/fpu/e_fmodf.c
Normal file
31
sysdeps/m68k/fpu/e_fmodf.c
Normal file
@ -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);
|
||||
}
|
2
sysdeps/m68k/fpu/e_log.c
Normal file
2
sysdeps/m68k/fpu/e_log.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_log
|
||||
#include <e_acos.c>
|
2
sysdeps/m68k/fpu/e_log10.c
Normal file
2
sysdeps/m68k/fpu/e_log10.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_log10
|
||||
#include <e_acos.c>
|
2
sysdeps/m68k/fpu/e_log10f.c
Normal file
2
sysdeps/m68k/fpu/e_log10f.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_log10f
|
||||
#include <e_acosf.c>
|
2
sysdeps/m68k/fpu/e_logf.c
Normal file
2
sysdeps/m68k/fpu/e_logf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_logf
|
||||
#include <e_acosf.c>
|
2
sysdeps/m68k/fpu/e_pow.c
Normal file
2
sysdeps/m68k/fpu/e_pow.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_pow
|
||||
#include <e_fmod.c>
|
2
sysdeps/m68k/fpu/e_powf.c
Normal file
2
sysdeps/m68k/fpu/e_powf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_powf
|
||||
#include <e_fmodf.c>
|
2
sysdeps/m68k/fpu/e_remainder.c
Normal file
2
sysdeps/m68k/fpu/e_remainder.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_remainder
|
||||
#include <e_fmod.c>
|
2
sysdeps/m68k/fpu/e_remainderf.c
Normal file
2
sysdeps/m68k/fpu/e_remainderf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_remainderf
|
||||
#include <e_fmodf.c>
|
2
sysdeps/m68k/fpu/e_scalb.c
Normal file
2
sysdeps/m68k/fpu/e_scalb.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_scalb
|
||||
#include <e_fmod.c>
|
2
sysdeps/m68k/fpu/e_scalbf.c
Normal file
2
sysdeps/m68k/fpu/e_scalbf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_scalbf
|
||||
#include <e_fmodf.c>
|
2
sysdeps/m68k/fpu/e_sinh.c
Normal file
2
sysdeps/m68k/fpu/e_sinh.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_sinh
|
||||
#include <e_acos.c>
|
2
sysdeps/m68k/fpu/e_sinhf.c
Normal file
2
sysdeps/m68k/fpu/e_sinhf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_sinhf
|
||||
#include <e_acosf.c>
|
2
sysdeps/m68k/fpu/e_sqrt.c
Normal file
2
sysdeps/m68k/fpu/e_sqrt.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_sqrt
|
||||
#include <e_acos.c>
|
2
sysdeps/m68k/fpu/e_sqrtf.c
Normal file
2
sysdeps/m68k/fpu/e_sqrtf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC __ieee754_sqrtf
|
||||
#include <e_acosf.c>
|
@ -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)
|
||||
|
@ -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)
|
||||
|
26
sysdeps/m68k/fpu/k_cos.c
Normal file
26
sysdeps/m68k/fpu/k_cos.c
Normal file
@ -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);
|
||||
}
|
26
sysdeps/m68k/fpu/k_cosf.c
Normal file
26
sysdeps/m68k/fpu/k_cosf.c
Normal file
@ -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);
|
||||
}
|
26
sysdeps/m68k/fpu/k_sin.c
Normal file
26
sysdeps/m68k/fpu/k_sin.c
Normal file
@ -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);
|
||||
}
|
26
sysdeps/m68k/fpu/k_sinf.c
Normal file
26
sysdeps/m68k/fpu/k_sinf.c
Normal file
@ -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);
|
||||
}
|
29
sysdeps/m68k/fpu/k_tan.c
Normal file
29
sysdeps/m68k/fpu/k_tan.c
Normal file
@ -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);
|
||||
}
|
29
sysdeps/m68k/fpu/k_tanf.c
Normal file
29
sysdeps/m68k/fpu/k_tanf.c
Normal file
@ -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);
|
||||
}
|
36
sysdeps/m68k/fpu/s_atan.c
Normal file
36
sysdeps/m68k/fpu/s_atan.c
Normal file
@ -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)
|
36
sysdeps/m68k/fpu/s_atanf.c
Normal file
36
sysdeps/m68k/fpu/s_atanf.c
Normal file
@ -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)
|
2
sysdeps/m68k/fpu/s_ceil.c
Normal file
2
sysdeps/m68k/fpu/s_ceil.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC ceil
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_ceilf.c
Normal file
2
sysdeps/m68k/fpu/s_ceilf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC ceilf
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_cos.c
Normal file
2
sysdeps/m68k/fpu/s_cos.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC cos
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_cosf.c
Normal file
2
sysdeps/m68k/fpu/s_cosf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC cosf
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_expm1.c
Normal file
2
sysdeps/m68k/fpu/s_expm1.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC expm1
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_expm1f.c
Normal file
2
sysdeps/m68k/fpu/s_expm1f.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC expm1f
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_fabs.c
Normal file
2
sysdeps/m68k/fpu/s_fabs.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC fabs
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_fabsf.c
Normal file
2
sysdeps/m68k/fpu/s_fabsf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC fabsf
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_finite.c
Normal file
2
sysdeps/m68k/fpu/s_finite.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC finite
|
||||
#include <s_isinf.c>
|
2
sysdeps/m68k/fpu/s_finitef.c
Normal file
2
sysdeps/m68k/fpu/s_finitef.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC finitef
|
||||
#include <s_isinff.c>
|
2
sysdeps/m68k/fpu/s_floor.c
Normal file
2
sysdeps/m68k/fpu/s_floor.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC floor
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_floorf.c
Normal file
2
sysdeps/m68k/fpu/s_floorf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC floorf
|
||||
#include <s_atanf.c>
|
28
sysdeps/m68k/fpu/s_frexp.c
Normal file
28
sysdeps/m68k/fpu/s_frexp.c
Normal file
@ -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)
|
28
sysdeps/m68k/fpu/s_frexpf.c
Normal file
28
sysdeps/m68k/fpu/s_frexpf.c
Normal file
@ -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)
|
29
sysdeps/m68k/fpu/s_ilogb.c
Normal file
29
sysdeps/m68k/fpu/s_ilogb.c
Normal file
@ -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)
|
29
sysdeps/m68k/fpu/s_ilogbf.c
Normal file
29
sysdeps/m68k/fpu/s_ilogbf.c
Normal file
@ -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)
|
36
sysdeps/m68k/fpu/s_isinf.c
Normal file
36
sysdeps/m68k/fpu/s_isinf.c
Normal file
@ -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)
|
36
sysdeps/m68k/fpu/s_isinff.c
Normal file
36
sysdeps/m68k/fpu/s_isinff.c
Normal file
@ -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)
|
2
sysdeps/m68k/fpu/s_isnan.c
Normal file
2
sysdeps/m68k/fpu/s_isnan.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC isnan
|
||||
#include <s_isinf.c>
|
2
sysdeps/m68k/fpu/s_isnanf.c
Normal file
2
sysdeps/m68k/fpu/s_isnanf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC isnanf
|
||||
#include <s_isinff.c>
|
36
sysdeps/m68k/fpu/s_ldexp.c
Normal file
36
sysdeps/m68k/fpu/s_ldexp.c
Normal file
@ -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)
|
36
sysdeps/m68k/fpu/s_ldexpf.c
Normal file
36
sysdeps/m68k/fpu/s_ldexpf.c
Normal file
@ -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)
|
2
sysdeps/m68k/fpu/s_log1p.c
Normal file
2
sysdeps/m68k/fpu/s_log1p.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC log1p
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_log1pf.c
Normal file
2
sysdeps/m68k/fpu/s_log1pf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC log1pf
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_logb.c
Normal file
2
sysdeps/m68k/fpu/s_logb.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC logb
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_logbf.c
Normal file
2
sysdeps/m68k/fpu/s_logbf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC logbf
|
||||
#include <s_atanf.c>
|
28
sysdeps/m68k/fpu/s_modf.c
Normal file
28
sysdeps/m68k/fpu/s_modf.c
Normal file
@ -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)
|
28
sysdeps/m68k/fpu/s_modff.c
Normal file
28
sysdeps/m68k/fpu/s_modff.c
Normal file
@ -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)
|
2
sysdeps/m68k/fpu/s_rint.c
Normal file
2
sysdeps/m68k/fpu/s_rint.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC rint
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_rintf.c
Normal file
2
sysdeps/m68k/fpu/s_rintf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC rintf
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_scalbn.c
Normal file
2
sysdeps/m68k/fpu/s_scalbn.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC scalbn
|
||||
#include <s_ldexp.c>
|
2
sysdeps/m68k/fpu/s_scalbnf.c
Normal file
2
sysdeps/m68k/fpu/s_scalbnf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC scalbnf
|
||||
#include <s_ldexpf.c>
|
2
sysdeps/m68k/fpu/s_significand.c
Normal file
2
sysdeps/m68k/fpu/s_significand.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC significand
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_significandf.c
Normal file
2
sysdeps/m68k/fpu/s_significandf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC significandf
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_sin.c
Normal file
2
sysdeps/m68k/fpu/s_sin.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC sin
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_sinf.c
Normal file
2
sysdeps/m68k/fpu/s_sinf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC sinf
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_tan.c
Normal file
2
sysdeps/m68k/fpu/s_tan.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC tan
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_tanf.c
Normal file
2
sysdeps/m68k/fpu/s_tanf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC tanf
|
||||
#include <s_atanf.c>
|
2
sysdeps/m68k/fpu/s_tanh.c
Normal file
2
sysdeps/m68k/fpu/s_tanh.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC tanh
|
||||
#include <s_atan.c>
|
2
sysdeps/m68k/fpu/s_tanhf.c
Normal file
2
sysdeps/m68k/fpu/s_tanhf.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define FUNC tanhf
|
||||
#include <s_atanf.c>
|
Loading…
Reference in New Issue
Block a user