* sysdeps/m68k/fpu/bits/mathinline.h: Move all libm internal

definitions...
	* sysdeps/m68k/fpu/mathimpl.h: ... here.  New file.
	* sysdeps/m68k/fpu/e_acos.c: Include "mathimpl.h".
	* sysdeps/m68k/fpu/e_atan2.c: Likewise.
	* sysdeps/m68k/fpu/e_fmod.c: Likewise.
	* sysdeps/m68k/fpu/e_pow.c: Likewise.
	* sysdeps/m68k/fpu/e_scalb.c: Likewise.
	* sysdeps/m68k/fpu/s_ccos.c: Likewise.
	* sysdeps/m68k/fpu/s_ccosh.c: Likewise.
	* sysdeps/m68k/fpu/s_cexp.c: Likewise.
	* sysdeps/m68k/fpu/s_csin.c: Likewise.
	* sysdeps/m68k/fpu/s_csinh.c: Likewise.
	* sysdeps/m68k/fpu/s_ilogb.c: Likewise.
	* sysdeps/m68k/fpu/s_llrint.c: Likewise.
	* sysdeps/m68k/fpu/s_llrintf.c: Likewise.
	* sysdeps/m68k/fpu/s_llrintl.c: Likewise.
	* sysdeps/m68k/fpu/s_modf.c: Likewise.
This commit is contained in:
Andreas Schwab 1999-06-26 16:43:55 +00:00
parent ad5ec55ca3
commit 5da9d1244a
17 changed files with 125 additions and 76 deletions

View File

@ -1,5 +1,5 @@
/* Definitions of inline math functions implemented by the m68881/2.
Copyright (C) 1991, 92, 93, 94, 96, 97, 98 Free Software Foundation, Inc.
Copyright (C) 1991,92,93,94,96,97,98,99 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
@ -116,22 +116,6 @@
return __result; \
}
#ifdef __LIBC_INTERNAL_MATH_INLINES
/* ieee style elementary functions */
/* These are internal to the implementation of libm. */
__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_exp2, twotox)
__inline_mathop(__ieee754_exp10, tentox)
__inline_mathop(__ieee754_log10, log10)
__inline_mathop(__ieee754_log, logn)
__inline_mathop(__ieee754_sqrt, sqrt)
__inline_mathop(__ieee754_atanh, atanh)
#endif
__inline_mathop(__atan, atan)
__inline_mathop(__cos, cos)
__inline_mathop(__sin, sin)
@ -180,52 +164,9 @@ __inline_mathop(trunc, intrz)
#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
/* This macro contains the definition for the rest of the inline
functions, using __FLOAT_TYPE as the domain type and __S as the suffix
functions, using FLOAT_TYPE as the domain type and S as the suffix
for the function names. */
#ifdef __LIBC_INTERNAL_MATH_INLINES
/* Internally used functions. */
# define __internal_inline_functions(float_type, s) \
__m81_defun (float_type, __CONCAT(__ieee754_remainder,s), \
(float_type __x, float_type __y)) \
{ \
float_type __result; \
__asm("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x)); \
return __result; \
} \
\
__m81_defun (float_type, __CONCAT(__ieee754_fmod,s), \
(float_type __x, float_type __y)) \
{ \
float_type __result; \
__asm("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x)); \
return __result; \
}
__internal_inline_functions (double,)
__internal_inline_functions (float,f)
__internal_inline_functions (long double,l)
# undef __internal_inline_functions
/* Get the m68881 condition codes, to quickly check multiple conditions. */
static __inline__ unsigned long
__m81_test (long double __val)
{
unsigned long __fpsr;
__asm ("ftst%.x %1; fmove%.l %/fpsr,%0" : "=dm" (__fpsr) : "f" (__val));
return __fpsr;
}
/* Bit values returned by __m81_test. */
# define __M81_COND_NAN (1 << 24)
# define __M81_COND_INF (2 << 24)
# define __M81_COND_ZERO (4 << 24)
# define __M81_COND_NEG (8 << 24)
#endif /* __LIBC_INTENRAL_MATH_INLINES */
/* The rest of the functions are available to the user. */
#define __inline_functions(float_type, s) \
__m81_inline float_type \
__m81_u(__CONCAT(__frexp,s))(float_type __value, int *__expptr) \

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1999 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
@ -18,6 +18,7 @@
#include <math.h>
#include "math_private.h"
#include "mathimpl.h"
#ifndef FUNC
#define FUNC __ieee754_acos

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1999 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
@ -18,6 +18,7 @@
#include <math.h>
#include "math_private.h"
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1999 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
@ -18,6 +18,7 @@
#include <math.h>
#include "math_private.h"
#include "mathimpl.h"
#ifndef FUNC
#define FUNC __ieee754_fmod

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1999 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
@ -18,6 +18,7 @@
#include <math.h>
#include "math_private.h"
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@ -18,6 +18,7 @@
Boston, MA 02111-1307, USA. */
#include <math.h>
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -0,0 +1,93 @@
/* Definitions of libc internal inline math functions implemented
by the m68881/2.
Copyright (C) 1991,92,93,94,96,97,98,99 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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This file contains the definitions of the inline math functions that
are only used internally inside libm, not visible to the user. */
__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_exp2, twotox)
__inline_mathop (__ieee754_exp10, tentox)
__inline_mathop (__ieee754_log10, log10)
__inline_mathop (__ieee754_log, logn)
__inline_mathop (__ieee754_sqrt, sqrt)
__inline_mathop (__ieee754_atanh, atanh)
__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_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 (long double,
__ieee754_remainderl, (long double __x, long double __y))
{
long double __result;
__asm ("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
return __result;
}
__m81_defun (double, __ieee754_fmod, (double __x, double __y))
{
double __result;
__asm ("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "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_defun (long double,
__ieee754_fmodl, (long double __x, long double __y))
{
long double __result;
__asm ("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
return __result;
}
/* Get the m68881 condition codes, to quickly check multiple conditions. */
static __inline__ unsigned long
__m81_test (long double __val)
{
unsigned long __fpsr;
__asm ("ftst%.x %1; fmove%.l %/fpsr,%0" : "=dm" (__fpsr) : "f" (__val));
return __fpsr;
}
/* Bit values returned by __m81_test. */
#define __M81_COND_NAN (1 << 24)
#define __M81_COND_INF (2 << 24)
#define __M81_COND_ZERO (4 << 24)
#define __M81_COND_NEG (8 << 24)

View File

@ -1,5 +1,5 @@
/* Complex cosine function. m68k fpu version
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -1,5 +1,5 @@
/* Complex cosine hyperbole function. m68k fpu version
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -1,5 +1,5 @@
/* Complex exponential function. m68k fpu version
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -1,5 +1,5 @@
/* Complex sine function. m68k fpu version
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -1,5 +1,5 @@
/* Complex sine hyperbole function. m68k fpu version
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@ -20,6 +20,7 @@
#include <complex.h>
#include <math.h>
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1999 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
@ -17,6 +17,7 @@
Boston, MA 02111-1307, USA. */
#include <math.h>
#include "mathimpl.h"
#ifndef SUFF
#define SUFF

View File

@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@ -21,6 +21,7 @@
#include <math.h>
#include "math_private.h"
#include "mathimpl.h"
long long int
__llrint (double x)

View File

@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@ -21,6 +21,7 @@
#include <math.h>
#include "math_private.h"
#include "mathimpl.h"
long long int
__llrintf (float x)

View File

@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
Copyright (C) 1997 Free Software Foundation, Inc.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@ -21,6 +21,7 @@
#include <math.h>
#include "math_private.h"
#include "mathimpl.h"
long long int
__llrintl (long double x)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1999 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
@ -17,6 +17,7 @@
Boston, MA 02111-1307, USA. */
#include <math.h>
#include "mathimpl.h"
#ifndef SUFF
#define SUFF