Add patch from Joel Sherrill for i386 and x86_64 fenv support
This commit is contained in:
		| @@ -341,6 +341,7 @@ case "${host_cpu}" in | ||||
| 	;; | ||||
|   x86_64) | ||||
| 	machine_dir=x86_64 | ||||
| 	libm_machine_dir=x86_64 | ||||
| 	;; | ||||
|   xc16x*) | ||||
|         machine_dir=xc16x | ||||
|   | ||||
							
								
								
									
										1
									
								
								newlib/libc/machine/i386/sys/fenv.h
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libc/machine/i386/sys/fenv.h
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../x86_64/sys/fenv.h | ||||
							
								
								
									
										170
									
								
								newlib/libc/machine/x86_64/sys/fenv.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								newlib/libc/machine/x86_64/sys/fenv.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,170 @@ | ||||
| /* | ||||
|  * SPDX-License-Identifier: BSD-2-Clause | ||||
|  * | ||||
|  * Copyright (c) 2010-2019 Red Hat, Inc. | ||||
|  * 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. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. | ||||
|  */ | ||||
|  | ||||
| #ifndef _SYS_FENV_H | ||||
| #define _SYS_FENV_H 1 | ||||
|  | ||||
| #include <sys/cdefs.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* Primary sources: | ||||
|  | ||||
|      The Open Group Base Specifications Issue 6: | ||||
|    http://www.opengroup.org/onlinepubs/000095399/basedefs/fenv.h.html | ||||
|  | ||||
|      C99 Language spec (draft n1256): | ||||
|    <url unknown> | ||||
|  | ||||
|      Intel(R) 64 and IA-32 Architectures Software Developer's Manuals: | ||||
|    http://www.intel.com/products/processor/manuals/ | ||||
|  | ||||
|      GNU C library manual pages: | ||||
|    http://www.gnu.org/software/libc/manual/html_node/Control-Functions.html | ||||
|    http://www.gnu.org/software/libc/manual/html_node/Rounding.html | ||||
|    http://www.gnu.org/software/libc/manual/html_node/FP-Exceptions.html | ||||
|    http://www.gnu.org/software/libc/manual/html_node/Status-bit-operations.html | ||||
|  | ||||
|      Linux online man page(s): | ||||
|    http://linux.die.net/man/3/fegetexcept | ||||
|  | ||||
|     The documentation quotes these sources for reference.  All definitions and | ||||
|    code have been developed solely based on the information from these specs. | ||||
|  | ||||
| */ | ||||
|  | ||||
| /*  Represents the entire floating-point environment. The floating-point | ||||
|    environment refers collectively to any floating-point status flags and | ||||
|    control modes supported by the implementation. | ||||
|     In this implementation, the struct contains the state information from | ||||
|    the fstenv/fnstenv instructions and a copy of the SSE MXCSR, since GCC | ||||
|    uses SSE for a lot of floating-point operations.  (Cygwin assumes i686 | ||||
|    or above these days, as does the compiler.)  */ | ||||
|  | ||||
| typedef struct _fenv_t | ||||
| { | ||||
|   struct _fpu_env_info { | ||||
|     unsigned int _fpu_cw;	/* low 16 bits only. */ | ||||
|     unsigned int _fpu_sw;	/* low 16 bits only. */ | ||||
|     unsigned int _fpu_tagw;	/* low 16 bits only. */ | ||||
|     unsigned int _fpu_ipoff; | ||||
|     unsigned int _fpu_ipsel; | ||||
|     unsigned int _fpu_opoff; | ||||
|     unsigned int _fpu_opsel;	/* low 16 bits only. */ | ||||
|   } _fpu; | ||||
|   unsigned int _sse_mxcsr; | ||||
| } fenv_t; | ||||
|  | ||||
| /*  Represents the floating-point status flags collectively, including | ||||
|    any status the implementation associates with the flags. A floating-point | ||||
|    status flag is a system variable whose value is set (but never cleared) | ||||
|    when a floating-point exception is raised, which occurs as a side effect | ||||
|    of exceptional floating-point arithmetic to provide auxiliary information. | ||||
|     A floating-point control mode is a system variable whose value may be | ||||
|    set by the user to affect the subsequent behavior of floating-point | ||||
|    arithmetic. */ | ||||
|  | ||||
| typedef __uint32_t fexcept_t; | ||||
|  | ||||
| /*  The <fenv.h> header shall define the following constants if and only | ||||
|    if the implementation supports the floating-point exception by means | ||||
|    of the floating-point functions feclearexcept(), fegetexceptflag(), | ||||
|    feraiseexcept(), fesetexceptflag(), and fetestexcept(). Each expands to | ||||
|    an integer constant expression with values such that bitwise-inclusive | ||||
|    ORs of all combinations of the constants result in distinct values.  */ | ||||
|  | ||||
| #define FE_DIVBYZERO	(1 << 2) | ||||
| #define FE_INEXACT	(1 << 5) | ||||
| #define FE_INVALID	(1 << 0) | ||||
| #define FE_OVERFLOW	(1 << 3) | ||||
| #define FE_UNDERFLOW	(1 << 4) | ||||
|  | ||||
| /*  The <fenv.h> header shall define the following constant, which is | ||||
|    simply the bitwise-inclusive OR of all floating-point exception | ||||
|    constants defined above:  */ | ||||
|  | ||||
| /* in agreement w/ Linux the subnormal exception will always be masked */ | ||||
| #define FE_ALL_EXCEPT \ | ||||
|   (FE_INEXACT | FE_UNDERFLOW | FE_OVERFLOW | FE_DIVBYZERO | FE_INVALID) | ||||
|  | ||||
| /*  The <fenv.h> header shall define the following constants if and only | ||||
|    if the implementation supports getting and setting the represented | ||||
|    rounding direction by means of the fegetround() and fesetround() | ||||
|    functions. Each expands to an integer constant expression whose values | ||||
|    are distinct non-negative vales.  */ | ||||
|  | ||||
| #define FE_DOWNWARD	(1) | ||||
| #define FE_TONEAREST	(0) | ||||
| #define FE_TOWARDZERO	(3) | ||||
| #define FE_UPWARD	(2) | ||||
|  | ||||
| /* Only Solaris and QNX implement fegetprec/fesetprec.  As Solaris, use the | ||||
|    values defined by http://www.open-std.org/jtc1/sc22//WG14/www/docs/n752.htm | ||||
|    QNX defines different values. */ | ||||
| #if __MISC_VISIBLE | ||||
| #define FE_FLTPREC	(0) | ||||
| #define FE_DBLPREC	(2) | ||||
| #define FE_LDBLPREC	(3) | ||||
| #endif | ||||
|  | ||||
| /*  The <fenv.h> header shall define the following constant, which | ||||
|    represents the default floating-point environment (that is, the one | ||||
|    installed at program startup) and has type pointer to const-qualified | ||||
|    fenv_t. It can be used as an argument to the functions within the | ||||
|    <fenv.h> header that manage the floating-point environment.  */ | ||||
|  | ||||
| extern const fenv_t *_fe_dfl_env; | ||||
| #define FE_DFL_ENV (_fe_dfl_env) | ||||
|  | ||||
| /*  Additional implementation-defined environments, with macro | ||||
|    definitions beginning with FE_ and an uppercase letter,and having | ||||
|    type "pointer to const-qualified fenv_t",may also be specified by | ||||
|    the implementation.  */ | ||||
|  | ||||
| #if __GNU_VISIBLE | ||||
| /*  If possible, the GNU C Library defines a macro FE_NOMASK_ENV which | ||||
|    represents an environment where every exception raised causes a trap | ||||
|    to occur. You can test for this macro using #ifdef. It is only defined | ||||
|    if _GNU_SOURCE is defined.  */ | ||||
| extern const fenv_t *_fe_nomask_env; | ||||
| #define FE_NOMASK_ENV (_fe_nomask_env) | ||||
| #endif /* __GNU_VISIBLE */ | ||||
|  | ||||
| #ifdef __INSIDE_CYGWIN__ | ||||
| /* This is Cygwin-custom, not from the standard, for use in the Cygwin CRT.  */ | ||||
| extern void _feinitialise (); | ||||
| #endif | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif /* _FENV_H */ | ||||
							
								
								
									
										23
									
								
								newlib/libm/fenv/fenv_stub.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								newlib/libm/fenv/fenv_stub.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /* | ||||
|  * SPDX-License-Identifier: BSD-2-Clause | ||||
|  *  | ||||
|  * (c) Copyright 2019 Joel Sherrill <joel@rtems.org | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * This file is intentionally empty.  | ||||
|  * | ||||
|  * Newlib's build infrastructure needs a machine specific fiel to override | ||||
|  * the generic implementation in the library.  When a target | ||||
|  * implementation of the fenv.h methods puts all methods in a single file | ||||
|  * (e.g. fenv.c) or some as inline methods in its <sys/fenv.h>, it will need | ||||
|  * to override the default implementation found in a file in this directory. | ||||
|  * | ||||
|  * For each file that the target's machine directory needs to override, | ||||
|  * this file should be symbolically linked to that specific file name | ||||
|  * in the target directory. For example, the target may use fe_dfl_env.c | ||||
|  * from the default implementation but need to override all others. | ||||
|  */ | ||||
|  | ||||
| /* deliberately empty */ | ||||
|  | ||||
							
								
								
									
										9
									
								
								newlib/libm/machine/configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								newlib/libm/machine/configure
									
									
									
									
										vendored
									
									
								
							| @@ -791,7 +791,8 @@ arm | ||||
| i386 | ||||
| nds32 | ||||
| spu | ||||
| riscv' | ||||
| riscv | ||||
| x86_64' | ||||
|  | ||||
| # Initialize some variables set by options. | ||||
| ac_init_help= | ||||
| @@ -11453,7 +11454,7 @@ else | ||||
|   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | ||||
|   lt_status=$lt_dlunknown | ||||
|   cat > conftest.$ac_ext <<_LT_EOF | ||||
| #line 11456 "configure" | ||||
| #line 11457 "configure" | ||||
| #include "confdefs.h" | ||||
|  | ||||
| #if HAVE_DLFCN_H | ||||
| @@ -11559,7 +11560,7 @@ else | ||||
|   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | ||||
|   lt_status=$lt_dlunknown | ||||
|   cat > conftest.$ac_ext <<_LT_EOF | ||||
| #line 11562 "configure" | ||||
| #line 11563 "configure" | ||||
| #include "confdefs.h" | ||||
|  | ||||
| #if HAVE_DLFCN_H | ||||
| @@ -11815,6 +11816,8 @@ subdirs="$subdirs aarch64" | ||||
| 	spu) subdirs="$subdirs spu" | ||||
|  ;; | ||||
| 	riscv) subdirs="$subdirs riscv" | ||||
|  ;; | ||||
| 	x86_64) subdirs="$subdirs x86_64" | ||||
|  ;; | ||||
|   esac; | ||||
|   if test "${use_libtool}" = "yes"; then | ||||
|   | ||||
| @@ -31,6 +31,7 @@ if test -n "${libm_machine_dir}"; then | ||||
| 	nds32) AC_CONFIG_SUBDIRS(nds32) ;; | ||||
| 	spu) AC_CONFIG_SUBDIRS(spu) ;; | ||||
| 	riscv) AC_CONFIG_SUBDIRS(riscv) ;; | ||||
| 	x86_64) AC_CONFIG_SUBDIRS(x86_64) ;; | ||||
|   esac; | ||||
|   if test "${use_libtool}" = "yes"; then | ||||
|     machlib=${libm_machine_dir}/lib${libm_machine_dir}.${aext} | ||||
|   | ||||
| @@ -12,8 +12,10 @@ LIB_SOURCES = \ | ||||
| 	f_log.S f_logf.S f_log10.S f_log10f.S \ | ||||
| 	f_ldexp.S f_ldexpf.S f_lrint.c f_lrintf.c f_lrintl.c \ | ||||
| 	f_pow.c f_powf.c f_rint.c f_rintf.c f_rintl.c \ | ||||
| 	f_tan.S f_tanf.S f_math.h \ | ||||
| 	i386mach.h  | ||||
| 	f_tan.S f_tanf.S f_math.h i386mach.h \ | ||||
| 	fenv.c feclearexcept.c fegetenv.c fegetexceptflag.c \ | ||||
| 	fegetround.c feholdexcept.c feraiseexcept.c fesetenv.c \ | ||||
| 	fesetexceptflag.c fesetround.c fetestexcept.c feupdateenv.c | ||||
|  | ||||
| libi386_la_LDFLAGS = -Xcompiler -nostdlib | ||||
|  | ||||
|   | ||||
| @@ -87,7 +87,13 @@ am__objects_1 = lib_a-f_atan2.$(OBJEXT) lib_a-f_atan2f.$(OBJEXT) \ | ||||
| 	lib_a-f_pow.$(OBJEXT) lib_a-f_powf.$(OBJEXT) \ | ||||
| 	lib_a-f_rint.$(OBJEXT) lib_a-f_rintf.$(OBJEXT) \ | ||||
| 	lib_a-f_rintl.$(OBJEXT) lib_a-f_tan.$(OBJEXT) \ | ||||
| 	lib_a-f_tanf.$(OBJEXT) | ||||
| 	lib_a-f_tanf.$(OBJEXT) lib_a-fenv.$(OBJEXT) \ | ||||
| 	lib_a-feclearexcept.$(OBJEXT) lib_a-fegetenv.$(OBJEXT) \ | ||||
| 	lib_a-fegetexceptflag.$(OBJEXT) lib_a-fegetround.$(OBJEXT) \ | ||||
| 	lib_a-feholdexcept.$(OBJEXT) lib_a-feraiseexcept.$(OBJEXT) \ | ||||
| 	lib_a-fesetenv.$(OBJEXT) lib_a-fesetexceptflag.$(OBJEXT) \ | ||||
| 	lib_a-fesetround.$(OBJEXT) lib_a-fetestexcept.$(OBJEXT) \ | ||||
| 	lib_a-feupdateenv.$(OBJEXT) | ||||
| @USE_LIBTOOL_FALSE@am_lib_a_OBJECTS = $(am__objects_1) | ||||
| lib_a_OBJECTS = $(am_lib_a_OBJECTS) | ||||
| LTLIBRARIES = $(noinst_LTLIBRARIES) | ||||
| @@ -96,7 +102,11 @@ am__objects_2 = f_atan2.lo f_atan2f.lo f_exp.lo f_expf.lo f_frexp.lo \ | ||||
| 	f_frexpf.lo f_llrint.lo f_llrintf.lo f_llrintl.lo f_log.lo \ | ||||
| 	f_logf.lo f_log10.lo f_log10f.lo f_ldexp.lo f_ldexpf.lo \ | ||||
| 	f_lrint.lo f_lrintf.lo f_lrintl.lo f_pow.lo f_powf.lo \ | ||||
| 	f_rint.lo f_rintf.lo f_rintl.lo f_tan.lo f_tanf.lo | ||||
| 	f_rint.lo f_rintf.lo f_rintl.lo f_tan.lo f_tanf.lo fenv.lo \ | ||||
| 	feclearexcept.lo fegetenv.lo fegetexceptflag.lo fegetround.lo \ | ||||
| 	feholdexcept.lo feraiseexcept.lo fesetenv.lo \ | ||||
| 	fesetexceptflag.lo fesetround.lo fetestexcept.lo \ | ||||
| 	feupdateenv.lo | ||||
| @USE_LIBTOOL_TRUE@am_libi386_la_OBJECTS = $(am__objects_2) | ||||
| libi386_la_OBJECTS = $(am_libi386_la_OBJECTS) | ||||
| libi386_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||||
| @@ -263,8 +273,10 @@ LIB_SOURCES = \ | ||||
| 	f_log.S f_logf.S f_log10.S f_log10f.S \ | ||||
| 	f_ldexp.S f_ldexpf.S f_lrint.c f_lrintf.c f_lrintl.c \ | ||||
| 	f_pow.c f_powf.c f_rint.c f_rintf.c f_rintl.c \ | ||||
| 	f_tan.S f_tanf.S f_math.h \ | ||||
| 	i386mach.h  | ||||
| 	f_tan.S f_tanf.S f_math.h i386mach.h \ | ||||
| 	fenv.c feclearexcept.c fegetenv.c fegetexceptflag.c \ | ||||
| 	fegetround.c feholdexcept.c feraiseexcept.c fesetenv.c \ | ||||
| 	fesetexceptflag.c fesetround.c fetestexcept.c feupdateenv.c | ||||
|  | ||||
| libi386_la_LDFLAGS = -Xcompiler -nostdlib | ||||
| @USE_LIBTOOL_TRUE@noinst_LTLIBRARIES = libi386.la | ||||
| @@ -519,6 +531,78 @@ lib_a-f_rintl.o: f_rintl.c | ||||
| lib_a-f_rintl.obj: f_rintl.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-f_rintl.obj `if test -f 'f_rintl.c'; then $(CYGPATH_W) 'f_rintl.c'; else $(CYGPATH_W) '$(srcdir)/f_rintl.c'; fi` | ||||
|  | ||||
| lib_a-fenv.o: fenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fenv.o `test -f 'fenv.c' || echo '$(srcdir)/'`fenv.c | ||||
|  | ||||
| lib_a-fenv.obj: fenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fenv.obj `if test -f 'fenv.c'; then $(CYGPATH_W) 'fenv.c'; else $(CYGPATH_W) '$(srcdir)/fenv.c'; fi` | ||||
|  | ||||
| lib_a-feclearexcept.o: feclearexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feclearexcept.o `test -f 'feclearexcept.c' || echo '$(srcdir)/'`feclearexcept.c | ||||
|  | ||||
| lib_a-feclearexcept.obj: feclearexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feclearexcept.obj `if test -f 'feclearexcept.c'; then $(CYGPATH_W) 'feclearexcept.c'; else $(CYGPATH_W) '$(srcdir)/feclearexcept.c'; fi` | ||||
|  | ||||
| lib_a-fegetenv.o: fegetenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetenv.o `test -f 'fegetenv.c' || echo '$(srcdir)/'`fegetenv.c | ||||
|  | ||||
| lib_a-fegetenv.obj: fegetenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetenv.obj `if test -f 'fegetenv.c'; then $(CYGPATH_W) 'fegetenv.c'; else $(CYGPATH_W) '$(srcdir)/fegetenv.c'; fi` | ||||
|  | ||||
| lib_a-fegetexceptflag.o: fegetexceptflag.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetexceptflag.o `test -f 'fegetexceptflag.c' || echo '$(srcdir)/'`fegetexceptflag.c | ||||
|  | ||||
| lib_a-fegetexceptflag.obj: fegetexceptflag.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetexceptflag.obj `if test -f 'fegetexceptflag.c'; then $(CYGPATH_W) 'fegetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/fegetexceptflag.c'; fi` | ||||
|  | ||||
| lib_a-fegetround.o: fegetround.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetround.o `test -f 'fegetround.c' || echo '$(srcdir)/'`fegetround.c | ||||
|  | ||||
| lib_a-fegetround.obj: fegetround.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetround.obj `if test -f 'fegetround.c'; then $(CYGPATH_W) 'fegetround.c'; else $(CYGPATH_W) '$(srcdir)/fegetround.c'; fi` | ||||
|  | ||||
| lib_a-feholdexcept.o: feholdexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feholdexcept.o `test -f 'feholdexcept.c' || echo '$(srcdir)/'`feholdexcept.c | ||||
|  | ||||
| lib_a-feholdexcept.obj: feholdexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feholdexcept.obj `if test -f 'feholdexcept.c'; then $(CYGPATH_W) 'feholdexcept.c'; else $(CYGPATH_W) '$(srcdir)/feholdexcept.c'; fi` | ||||
|  | ||||
| lib_a-feraiseexcept.o: feraiseexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feraiseexcept.o `test -f 'feraiseexcept.c' || echo '$(srcdir)/'`feraiseexcept.c | ||||
|  | ||||
| lib_a-feraiseexcept.obj: feraiseexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feraiseexcept.obj `if test -f 'feraiseexcept.c'; then $(CYGPATH_W) 'feraiseexcept.c'; else $(CYGPATH_W) '$(srcdir)/feraiseexcept.c'; fi` | ||||
|  | ||||
| lib_a-fesetenv.o: fesetenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetenv.o `test -f 'fesetenv.c' || echo '$(srcdir)/'`fesetenv.c | ||||
|  | ||||
| lib_a-fesetenv.obj: fesetenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetenv.obj `if test -f 'fesetenv.c'; then $(CYGPATH_W) 'fesetenv.c'; else $(CYGPATH_W) '$(srcdir)/fesetenv.c'; fi` | ||||
|  | ||||
| lib_a-fesetexceptflag.o: fesetexceptflag.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetexceptflag.o `test -f 'fesetexceptflag.c' || echo '$(srcdir)/'`fesetexceptflag.c | ||||
|  | ||||
| lib_a-fesetexceptflag.obj: fesetexceptflag.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetexceptflag.obj `if test -f 'fesetexceptflag.c'; then $(CYGPATH_W) 'fesetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/fesetexceptflag.c'; fi` | ||||
|  | ||||
| lib_a-fesetround.o: fesetround.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetround.o `test -f 'fesetround.c' || echo '$(srcdir)/'`fesetround.c | ||||
|  | ||||
| lib_a-fesetround.obj: fesetround.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetround.obj `if test -f 'fesetround.c'; then $(CYGPATH_W) 'fesetround.c'; else $(CYGPATH_W) '$(srcdir)/fesetround.c'; fi` | ||||
|  | ||||
| lib_a-fetestexcept.o: fetestexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fetestexcept.o `test -f 'fetestexcept.c' || echo '$(srcdir)/'`fetestexcept.c | ||||
|  | ||||
| lib_a-fetestexcept.obj: fetestexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fetestexcept.obj `if test -f 'fetestexcept.c'; then $(CYGPATH_W) 'fetestexcept.c'; else $(CYGPATH_W) '$(srcdir)/fetestexcept.c'; fi` | ||||
|  | ||||
| lib_a-feupdateenv.o: feupdateenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feupdateenv.o `test -f 'feupdateenv.c' || echo '$(srcdir)/'`feupdateenv.c | ||||
|  | ||||
| lib_a-feupdateenv.obj: feupdateenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feupdateenv.obj `if test -f 'feupdateenv.c'; then $(CYGPATH_W) 'feupdateenv.c'; else $(CYGPATH_W) '$(srcdir)/feupdateenv.c'; fi` | ||||
|  | ||||
| mostlyclean-libtool: | ||||
| 	-rm -f *.lo | ||||
|  | ||||
|   | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/feclearexcept.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/feclearexcept.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/fegetenv.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/fegetenv.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/fegetexceptflag.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/fegetexceptflag.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/fegetround.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/fegetround.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/feholdexcept.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/feholdexcept.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/fenv.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/fenv.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../x86_64/fenv.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/feraiseexcept.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/feraiseexcept.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/fesetenv.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/fesetenv.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/fesetexceptflag.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/fesetexceptflag.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/fesetround.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/fesetround.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/fetestexcept.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/fetestexcept.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/i386/feupdateenv.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/i386/feupdateenv.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										28
									
								
								newlib/libm/machine/x86_64/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								newlib/libm/machine/x86_64/Makefile.am
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| ## Process this file with automake to generate Makefile.in | ||||
|  | ||||
| INCLUDES = -I $(newlib_basedir)/../newlib/libm/common $(NEWLIB_CFLAGS) \ | ||||
| 	$(CROSS_CFLAGS) $(TARGET_CFLAGS) | ||||
|  | ||||
| LIB_SOURCES = \ | ||||
| 	feclearexcept.c fegetenv.c fegetexceptflag.c fegetround.c \ | ||||
| 	feholdexcept.c fenv.c feraiseexcept.c fesetenv.c fesetexceptflag.c \ | ||||
| 	fesetround.c fetestexcept.c feupdateenv.c | ||||
|  | ||||
| libx86_64_la_LDFLAGS = -Xcompiler -nostdlib | ||||
|  | ||||
| if USE_LIBTOOL | ||||
| noinst_LTLIBRARIES = libx86_64.la | ||||
| libx86_64_la_SOURCES = $(LIB_SOURCES) | ||||
| noinst_DATA = objectlist.awk.in | ||||
| else | ||||
| noinst_LIBRARIES = lib.a | ||||
| lib_a_SOURCES = $(LIB_SOURCES) | ||||
| lib_a_CFLAGS = $(AM_CFLAGS) | ||||
| lib_a_CCASFLAGS = $(AM_CCASFLAGS) | ||||
| noinst_DATA = | ||||
| endif # USE_LIBTOOL | ||||
|  | ||||
| include $(srcdir)/../../../Makefile.shared | ||||
|  | ||||
| ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. | ||||
| CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host | ||||
							
								
								
									
										633
									
								
								newlib/libm/machine/x86_64/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										633
									
								
								newlib/libm/machine/x86_64/Makefile.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,633 @@ | ||||
| # Makefile.in generated by automake 1.11.6 from Makefile.am. | ||||
| # @configure_input@ | ||||
|  | ||||
| # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||||
| # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software | ||||
| # Foundation, Inc. | ||||
| # This Makefile.in is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
|  | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
|  | ||||
| @SET_MAKE@ | ||||
|  | ||||
|  | ||||
|  | ||||
| VPATH = @srcdir@ | ||||
| am__make_dryrun = \ | ||||
|   { \ | ||||
|     am__dry=no; \ | ||||
|     case $$MAKEFLAGS in \ | ||||
|       *\\[\ \	]*) \ | ||||
|         echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \ | ||||
|           | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ | ||||
|       *) \ | ||||
|         for am__flg in $$MAKEFLAGS; do \ | ||||
|           case $$am__flg in \ | ||||
|             *=*|--*) ;; \ | ||||
|             *n*) am__dry=yes; break;; \ | ||||
|           esac; \ | ||||
|         done;; \ | ||||
|     esac; \ | ||||
|     test $$am__dry = yes; \ | ||||
|   } | ||||
| pkgdatadir = $(datadir)/@PACKAGE@ | ||||
| pkgincludedir = $(includedir)/@PACKAGE@ | ||||
| pkglibdir = $(libdir)/@PACKAGE@ | ||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| build_triplet = @build@ | ||||
| host_triplet = @host@ | ||||
| DIST_COMMON = $(srcdir)/../../../Makefile.shared $(srcdir)/Makefile.in \ | ||||
| 	$(srcdir)/Makefile.am $(top_srcdir)/configure \ | ||||
| 	$(am__configure_deps) $(srcdir)/../../../../mkinstalldirs | ||||
| subdir = . | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps =  \ | ||||
| 	$(top_srcdir)/../../../../newlib-3.1.0libtool.m4 \ | ||||
| 	$(top_srcdir)/../../../../newlib-3.1.0ltoptions.m4 \ | ||||
| 	$(top_srcdir)/../../../../newlib-3.1.0ltsugar.m4 \ | ||||
| 	$(top_srcdir)/../../../../newlib-3.1.0ltversion.m4 \ | ||||
| 	$(top_srcdir)/../../../../newlib-3.1.0lt~obsolete.m4 \ | ||||
| 	$(top_srcdir)/../../../acinclude.m4 $(top_srcdir)/configure.in | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||||
| 	$(ACLOCAL_M4) | ||||
| am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ | ||||
|  configure.lineno config.status.lineno | ||||
| mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs | ||||
| CONFIG_CLEAN_FILES = | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| LIBRARIES = $(noinst_LIBRARIES) | ||||
| ARFLAGS = cru | ||||
| lib_a_AR = $(AR) $(ARFLAGS) | ||||
| lib_a_LIBADD = | ||||
| am__objects_1 = lib_a-feclearexcept.$(OBJEXT) lib_a-fegetenv.$(OBJEXT) \ | ||||
| 	lib_a-fegetexceptflag.$(OBJEXT) lib_a-fegetround.$(OBJEXT) \ | ||||
| 	lib_a-feholdexcept.$(OBJEXT) lib_a-fenv.$(OBJEXT) \ | ||||
| 	lib_a-feraiseexcept.$(OBJEXT) lib_a-fesetenv.$(OBJEXT) \ | ||||
| 	lib_a-fesetexceptflag.$(OBJEXT) lib_a-fesetround.$(OBJEXT) \ | ||||
| 	lib_a-fetestexcept.$(OBJEXT) lib_a-feupdateenv.$(OBJEXT) | ||||
| @USE_LIBTOOL_FALSE@am_lib_a_OBJECTS = $(am__objects_1) | ||||
| lib_a_OBJECTS = $(am_lib_a_OBJECTS) | ||||
| LTLIBRARIES = $(noinst_LTLIBRARIES) | ||||
| libx86_64_la_LIBADD = | ||||
| am__objects_2 = feclearexcept.lo fegetenv.lo fegetexceptflag.lo \ | ||||
| 	fegetround.lo feholdexcept.lo fenv.lo feraiseexcept.lo \ | ||||
| 	fesetenv.lo fesetexceptflag.lo fesetround.lo fetestexcept.lo \ | ||||
| 	feupdateenv.lo | ||||
| @USE_LIBTOOL_TRUE@am_libx86_64_la_OBJECTS = $(am__objects_2) | ||||
| libx86_64_la_OBJECTS = $(am_libx86_64_la_OBJECTS) | ||||
| libx86_64_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||||
| 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ | ||||
| 	$(libx86_64_la_LDFLAGS) $(LDFLAGS) -o $@ | ||||
| @USE_LIBTOOL_TRUE@am_libx86_64_la_rpath = | ||||
| DEFAULT_INCLUDES = -I.@am__isrc@ | ||||
| depcomp = | ||||
| am__depfiles_maybe = | ||||
| COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||||
| 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||||
| LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | ||||
| 	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ | ||||
| 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||||
| CCLD = $(CC) | ||||
| LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | ||||
| 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | ||||
| 	$(LDFLAGS) -o $@ | ||||
| SOURCES = $(lib_a_SOURCES) $(libx86_64_la_SOURCES) | ||||
| am__can_run_installinfo = \ | ||||
|   case $$AM_UPDATE_INFO_DIR in \ | ||||
|     n|no|NO) false;; \ | ||||
|     *) (install-info --version) >/dev/null 2>&1;; \ | ||||
|   esac | ||||
| DATA = $(noinst_DATA) | ||||
| ETAGS = etags | ||||
| CTAGS = ctags | ||||
| ACLOCAL = @ACLOCAL@ | ||||
| AMTAR = @AMTAR@ | ||||
| AR = @AR@ | ||||
| AS = @AS@ | ||||
| AUTOCONF = @AUTOCONF@ | ||||
| AUTOHEADER = @AUTOHEADER@ | ||||
| AUTOMAKE = @AUTOMAKE@ | ||||
| AWK = @AWK@ | ||||
| CC = @CC@ | ||||
| CCAS = @CCAS@ | ||||
| CCASFLAGS = @CCASFLAGS@ | ||||
| CCDEPMODE = @CCDEPMODE@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CPP = @CPP@ | ||||
| CPPFLAGS = @CPPFLAGS@ | ||||
| CYGPATH_W = @CYGPATH_W@ | ||||
| DEFS = @DEFS@ | ||||
| DEPDIR = @DEPDIR@ | ||||
| DLLTOOL = @DLLTOOL@ | ||||
| DSYMUTIL = @DSYMUTIL@ | ||||
| DUMPBIN = @DUMPBIN@ | ||||
| ECHO_C = @ECHO_C@ | ||||
| ECHO_N = @ECHO_N@ | ||||
| ECHO_T = @ECHO_T@ | ||||
| EGREP = @EGREP@ | ||||
| EXEEXT = @EXEEXT@ | ||||
| FGREP = @FGREP@ | ||||
| GREP = @GREP@ | ||||
| INSTALL = @INSTALL@ | ||||
| INSTALL_DATA = @INSTALL_DATA@ | ||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||||
| LD = @LD@ | ||||
| LDFLAGS = @LDFLAGS@ | ||||
| LIBOBJS = @LIBOBJS@ | ||||
| LIBS = @LIBS@ | ||||
| LIBTOOL = @LIBTOOL@ | ||||
| LIPO = @LIPO@ | ||||
| LN_S = @LN_S@ | ||||
| LTLIBOBJS = @LTLIBOBJS@ | ||||
| MAINT = @MAINT@ | ||||
| MAKEINFO = @MAKEINFO@ | ||||
| MKDIR_P = @MKDIR_P@ | ||||
| NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ | ||||
| NM = @NM@ | ||||
| NMEDIT = @NMEDIT@ | ||||
| NO_INCLUDE_LIST = @NO_INCLUDE_LIST@ | ||||
| OBJDUMP = @OBJDUMP@ | ||||
| OBJEXT = @OBJEXT@ | ||||
| OTOOL = @OTOOL@ | ||||
| OTOOL64 = @OTOOL64@ | ||||
| PACKAGE = @PACKAGE@ | ||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||||
| PACKAGE_NAME = @PACKAGE_NAME@ | ||||
| PACKAGE_STRING = @PACKAGE_STRING@ | ||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||||
| PACKAGE_URL = @PACKAGE_URL@ | ||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ | ||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ | ||||
| RANLIB = @RANLIB@ | ||||
| READELF = @READELF@ | ||||
| SED = @SED@ | ||||
| SET_MAKE = @SET_MAKE@ | ||||
| SHELL = @SHELL@ | ||||
| STRIP = @STRIP@ | ||||
| VERSION = @VERSION@ | ||||
| abs_builddir = @abs_builddir@ | ||||
| abs_srcdir = @abs_srcdir@ | ||||
| abs_top_builddir = @abs_top_builddir@ | ||||
| abs_top_srcdir = @abs_top_srcdir@ | ||||
| ac_ct_CC = @ac_ct_CC@ | ||||
| ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||||
| aext = @aext@ | ||||
| am__include = @am__include@ | ||||
| am__leading_dot = @am__leading_dot@ | ||||
| am__quote = @am__quote@ | ||||
| am__tar = @am__tar@ | ||||
| am__untar = @am__untar@ | ||||
| bindir = @bindir@ | ||||
| build = @build@ | ||||
| build_alias = @build_alias@ | ||||
| build_cpu = @build_cpu@ | ||||
| build_os = @build_os@ | ||||
| build_vendor = @build_vendor@ | ||||
| builddir = @builddir@ | ||||
| datadir = @datadir@ | ||||
| datarootdir = @datarootdir@ | ||||
| docdir = @docdir@ | ||||
| dvidir = @dvidir@ | ||||
| exec_prefix = @exec_prefix@ | ||||
| host = @host@ | ||||
| host_alias = @host_alias@ | ||||
| host_cpu = @host_cpu@ | ||||
| host_os = @host_os@ | ||||
| host_vendor = @host_vendor@ | ||||
| htmldir = @htmldir@ | ||||
| includedir = @includedir@ | ||||
| infodir = @infodir@ | ||||
| install_sh = @install_sh@ | ||||
| libdir = @libdir@ | ||||
| libexecdir = @libexecdir@ | ||||
| libm_machine_dir = @libm_machine_dir@ | ||||
| localedir = @localedir@ | ||||
| localstatedir = @localstatedir@ | ||||
| lpfx = @lpfx@ | ||||
| machine_dir = @machine_dir@ | ||||
| mandir = @mandir@ | ||||
| mkdir_p = @mkdir_p@ | ||||
| newlib_basedir = @newlib_basedir@ | ||||
| oext = @oext@ | ||||
| oldincludedir = @oldincludedir@ | ||||
| pdfdir = @pdfdir@ | ||||
| prefix = @prefix@ | ||||
| program_transform_name = @program_transform_name@ | ||||
| psdir = @psdir@ | ||||
| sbindir = @sbindir@ | ||||
| sharedstatedir = @sharedstatedir@ | ||||
| srcdir = @srcdir@ | ||||
| sys_dir = @sys_dir@ | ||||
| sysconfdir = @sysconfdir@ | ||||
| target_alias = @target_alias@ | ||||
| top_build_prefix = @top_build_prefix@ | ||||
| top_builddir = @top_builddir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| INCLUDES = -I $(newlib_basedir)/../newlib/libm/common $(NEWLIB_CFLAGS) \ | ||||
| 	$(CROSS_CFLAGS) $(TARGET_CFLAGS) | ||||
|  | ||||
| LIB_SOURCES = \ | ||||
| 	feclearexcept.c fegetenv.c fegetexceptflag.c fegetround.c \ | ||||
| 	feholdexcept.c fenv.c feraiseexcept.c fesetenv.c fesetexceptflag.c \ | ||||
| 	fesetround.c fetestexcept.c feupdateenv.c | ||||
|  | ||||
| libx86_64_la_LDFLAGS = -Xcompiler -nostdlib | ||||
| @USE_LIBTOOL_TRUE@noinst_LTLIBRARIES = libx86_64.la | ||||
| @USE_LIBTOOL_TRUE@libx86_64_la_SOURCES = $(LIB_SOURCES) | ||||
| @USE_LIBTOOL_FALSE@noinst_DATA =  | ||||
| @USE_LIBTOOL_TRUE@noinst_DATA = objectlist.awk.in | ||||
| @USE_LIBTOOL_FALSE@noinst_LIBRARIES = lib.a | ||||
| @USE_LIBTOOL_FALSE@lib_a_SOURCES = $(LIB_SOURCES) | ||||
| @USE_LIBTOOL_FALSE@lib_a_CFLAGS = $(AM_CFLAGS) | ||||
| @USE_LIBTOOL_FALSE@lib_a_CCASFLAGS = $(AM_CCASFLAGS) | ||||
|  | ||||
| # | ||||
| # documentation rules | ||||
| # | ||||
| SUFFIXES = .def .xml | ||||
| CHEW = ${top_builddir}/../doc/makedoc -f $(top_srcdir)/../doc/doc.str | ||||
| DOCBOOK_CHEW = ${top_srcdir}/../doc/makedocbook.py | ||||
| DOCBOOK_OUT_FILES = $(CHEWOUT_FILES:.def=.xml) | ||||
| DOCBOOK_CHAPTERS = $(CHAPTERS:.tex=.xml) | ||||
| CLEANFILES = $(CHEWOUT_FILES) $(DOCBOOK_OUT_FILES) | ||||
| ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. | ||||
| CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host | ||||
| all: all-am | ||||
|  | ||||
| .SUFFIXES: | ||||
| .SUFFIXES: .def .xml .c .lo .o .obj | ||||
| am--refresh: Makefile | ||||
| 	@: | ||||
| $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../../Makefile.shared $(am__configure_deps) | ||||
| 	@for dep in $?; do \ | ||||
| 	  case '$(am__configure_deps)' in \ | ||||
| 	    *$$dep*) \ | ||||
| 	      echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus'; \ | ||||
| 	      $(am__cd) $(srcdir) && $(AUTOMAKE) --cygnus \ | ||||
| 		&& exit 0; \ | ||||
| 	      exit 1;; \ | ||||
| 	  esac; \ | ||||
| 	done; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \ | ||||
| 	$(am__cd) $(top_srcdir) && \ | ||||
| 	  $(AUTOMAKE) --cygnus Makefile | ||||
| .PRECIOUS: Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \ | ||||
| 	  *config.status*) \ | ||||
| 	    echo ' $(SHELL) ./config.status'; \ | ||||
| 	    $(SHELL) ./config.status;; \ | ||||
| 	  *) \ | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ | ||||
| 	esac; | ||||
| $(srcdir)/../../../Makefile.shared: | ||||
|  | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	$(SHELL) ./config.status --recheck | ||||
|  | ||||
| $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) | ||||
| 	$(am__cd) $(srcdir) && $(AUTOCONF) | ||||
| $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) | ||||
| 	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) | ||||
| $(am__aclocal_m4_deps): | ||||
|  | ||||
| clean-noinstLIBRARIES: | ||||
| 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) | ||||
| lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) $(EXTRA_lib_a_DEPENDENCIES)  | ||||
| 	-rm -f lib.a | ||||
| 	$(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) | ||||
| 	$(RANLIB) lib.a | ||||
|  | ||||
| clean-noinstLTLIBRARIES: | ||||
| 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) | ||||
| 	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ | ||||
| 	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ | ||||
| 	  test "$$dir" != "$$p" || dir=.; \ | ||||
| 	  echo "rm -f \"$${dir}/so_locations\""; \ | ||||
| 	  rm -f "$${dir}/so_locations"; \ | ||||
| 	done | ||||
| libx86_64.la: $(libx86_64_la_OBJECTS) $(libx86_64_la_DEPENDENCIES) $(EXTRA_libx86_64_la_DEPENDENCIES)  | ||||
| 	$(libx86_64_la_LINK) $(am_libx86_64_la_rpath) $(libx86_64_la_OBJECTS) $(libx86_64_la_LIBADD) $(LIBS) | ||||
|  | ||||
| mostlyclean-compile: | ||||
| 	-rm -f *.$(OBJEXT) | ||||
|  | ||||
| distclean-compile: | ||||
| 	-rm -f *.tab.c | ||||
|  | ||||
| .c.o: | ||||
| 	$(COMPILE) -c $< | ||||
|  | ||||
| .c.obj: | ||||
| 	$(COMPILE) -c `$(CYGPATH_W) '$<'` | ||||
|  | ||||
| .c.lo: | ||||
| 	$(LTCOMPILE) -c -o $@ $< | ||||
|  | ||||
| lib_a-feclearexcept.o: feclearexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feclearexcept.o `test -f 'feclearexcept.c' || echo '$(srcdir)/'`feclearexcept.c | ||||
|  | ||||
| lib_a-feclearexcept.obj: feclearexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feclearexcept.obj `if test -f 'feclearexcept.c'; then $(CYGPATH_W) 'feclearexcept.c'; else $(CYGPATH_W) '$(srcdir)/feclearexcept.c'; fi` | ||||
|  | ||||
| lib_a-fegetenv.o: fegetenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetenv.o `test -f 'fegetenv.c' || echo '$(srcdir)/'`fegetenv.c | ||||
|  | ||||
| lib_a-fegetenv.obj: fegetenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetenv.obj `if test -f 'fegetenv.c'; then $(CYGPATH_W) 'fegetenv.c'; else $(CYGPATH_W) '$(srcdir)/fegetenv.c'; fi` | ||||
|  | ||||
| lib_a-fegetexceptflag.o: fegetexceptflag.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetexceptflag.o `test -f 'fegetexceptflag.c' || echo '$(srcdir)/'`fegetexceptflag.c | ||||
|  | ||||
| lib_a-fegetexceptflag.obj: fegetexceptflag.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetexceptflag.obj `if test -f 'fegetexceptflag.c'; then $(CYGPATH_W) 'fegetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/fegetexceptflag.c'; fi` | ||||
|  | ||||
| lib_a-fegetround.o: fegetround.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetround.o `test -f 'fegetround.c' || echo '$(srcdir)/'`fegetround.c | ||||
|  | ||||
| lib_a-fegetround.obj: fegetround.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fegetround.obj `if test -f 'fegetround.c'; then $(CYGPATH_W) 'fegetround.c'; else $(CYGPATH_W) '$(srcdir)/fegetround.c'; fi` | ||||
|  | ||||
| lib_a-feholdexcept.o: feholdexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feholdexcept.o `test -f 'feholdexcept.c' || echo '$(srcdir)/'`feholdexcept.c | ||||
|  | ||||
| lib_a-feholdexcept.obj: feholdexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feholdexcept.obj `if test -f 'feholdexcept.c'; then $(CYGPATH_W) 'feholdexcept.c'; else $(CYGPATH_W) '$(srcdir)/feholdexcept.c'; fi` | ||||
|  | ||||
| lib_a-fenv.o: fenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fenv.o `test -f 'fenv.c' || echo '$(srcdir)/'`fenv.c | ||||
|  | ||||
| lib_a-fenv.obj: fenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fenv.obj `if test -f 'fenv.c'; then $(CYGPATH_W) 'fenv.c'; else $(CYGPATH_W) '$(srcdir)/fenv.c'; fi` | ||||
|  | ||||
| lib_a-feraiseexcept.o: feraiseexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feraiseexcept.o `test -f 'feraiseexcept.c' || echo '$(srcdir)/'`feraiseexcept.c | ||||
|  | ||||
| lib_a-feraiseexcept.obj: feraiseexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feraiseexcept.obj `if test -f 'feraiseexcept.c'; then $(CYGPATH_W) 'feraiseexcept.c'; else $(CYGPATH_W) '$(srcdir)/feraiseexcept.c'; fi` | ||||
|  | ||||
| lib_a-fesetenv.o: fesetenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetenv.o `test -f 'fesetenv.c' || echo '$(srcdir)/'`fesetenv.c | ||||
|  | ||||
| lib_a-fesetenv.obj: fesetenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetenv.obj `if test -f 'fesetenv.c'; then $(CYGPATH_W) 'fesetenv.c'; else $(CYGPATH_W) '$(srcdir)/fesetenv.c'; fi` | ||||
|  | ||||
| lib_a-fesetexceptflag.o: fesetexceptflag.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetexceptflag.o `test -f 'fesetexceptflag.c' || echo '$(srcdir)/'`fesetexceptflag.c | ||||
|  | ||||
| lib_a-fesetexceptflag.obj: fesetexceptflag.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetexceptflag.obj `if test -f 'fesetexceptflag.c'; then $(CYGPATH_W) 'fesetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/fesetexceptflag.c'; fi` | ||||
|  | ||||
| lib_a-fesetround.o: fesetround.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetround.o `test -f 'fesetround.c' || echo '$(srcdir)/'`fesetround.c | ||||
|  | ||||
| lib_a-fesetround.obj: fesetround.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fesetround.obj `if test -f 'fesetround.c'; then $(CYGPATH_W) 'fesetround.c'; else $(CYGPATH_W) '$(srcdir)/fesetround.c'; fi` | ||||
|  | ||||
| lib_a-fetestexcept.o: fetestexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fetestexcept.o `test -f 'fetestexcept.c' || echo '$(srcdir)/'`fetestexcept.c | ||||
|  | ||||
| lib_a-fetestexcept.obj: fetestexcept.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fetestexcept.obj `if test -f 'fetestexcept.c'; then $(CYGPATH_W) 'fetestexcept.c'; else $(CYGPATH_W) '$(srcdir)/fetestexcept.c'; fi` | ||||
|  | ||||
| lib_a-feupdateenv.o: feupdateenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feupdateenv.o `test -f 'feupdateenv.c' || echo '$(srcdir)/'`feupdateenv.c | ||||
|  | ||||
| lib_a-feupdateenv.obj: feupdateenv.c | ||||
| 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-feupdateenv.obj `if test -f 'feupdateenv.c'; then $(CYGPATH_W) 'feupdateenv.c'; else $(CYGPATH_W) '$(srcdir)/feupdateenv.c'; fi` | ||||
|  | ||||
| mostlyclean-libtool: | ||||
| 	-rm -f *.lo | ||||
|  | ||||
| clean-libtool: | ||||
| 	-rm -rf .libs _libs | ||||
|  | ||||
| distclean-libtool: | ||||
| 	-rm -f libtool config.lt | ||||
|  | ||||
| ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||||
| 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||||
| 	unique=`for i in $$list; do \ | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||||
| 	  done | \ | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||||
| 	mkid -fID $$unique | ||||
| tags: TAGS | ||||
|  | ||||
| TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \ | ||||
| 		$(TAGS_FILES) $(LISP) | ||||
| 	set x; \ | ||||
| 	here=`pwd`; \ | ||||
| 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \ | ||||
| 	unique=`for i in $$list; do \ | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||||
| 	  done | \ | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||||
| 	shift; \ | ||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||||
| 	  test -n "$$unique" || unique=$$empty_fix; \ | ||||
| 	  if test $$# -gt 0; then \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      "$$@" $$unique; \ | ||||
| 	  else \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      $$unique; \ | ||||
| 	  fi; \ | ||||
| 	fi | ||||
| ctags: CTAGS | ||||
| CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \ | ||||
| 		$(TAGS_FILES) $(LISP) | ||||
| 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \ | ||||
| 	unique=`for i in $$list; do \ | ||||
| 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||||
| 	  done | \ | ||||
| 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||||
| 	      END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||||
| 	test -z "$(CTAGS_ARGS)$$unique" \ | ||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||||
| 	     $$unique | ||||
|  | ||||
| GTAGS: | ||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \ | ||||
| 	  && $(am__cd) $(top_srcdir) \ | ||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" | ||||
|  | ||||
| distclean-tags: | ||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||||
| check-am: | ||||
| check: check-am | ||||
| all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA) | ||||
| installdirs: | ||||
| install: install-am | ||||
| install-exec: install-exec-am | ||||
| install-data: install-data-am | ||||
| uninstall: uninstall-am | ||||
|  | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
|  | ||||
| installcheck: installcheck-am | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	      install; \ | ||||
| 	else \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
|  | ||||
| clean-generic: | ||||
| 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) | ||||
|  | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
|  | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| clean: clean-am | ||||
|  | ||||
| clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ | ||||
| 	clean-noinstLTLIBRARIES mostlyclean-am | ||||
|  | ||||
| distclean: distclean-am | ||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-compile distclean-generic \ | ||||
| 	distclean-libtool distclean-tags | ||||
|  | ||||
| dvi: dvi-am | ||||
|  | ||||
| dvi-am: | ||||
|  | ||||
| html: html-am | ||||
|  | ||||
| html-am: | ||||
|  | ||||
| info: info-am | ||||
|  | ||||
| info-am: | ||||
|  | ||||
| install-data-am: | ||||
|  | ||||
| install-dvi: install-dvi-am | ||||
|  | ||||
| install-dvi-am: | ||||
|  | ||||
| install-exec-am: | ||||
|  | ||||
| install-html: install-html-am | ||||
|  | ||||
| install-html-am: | ||||
|  | ||||
| install-info: install-info-am | ||||
|  | ||||
| install-info-am: | ||||
|  | ||||
| install-man: | ||||
|  | ||||
| install-pdf: install-pdf-am | ||||
|  | ||||
| install-pdf-am: | ||||
|  | ||||
| install-ps: install-ps-am | ||||
|  | ||||
| install-ps-am: | ||||
|  | ||||
| installcheck-am: | ||||
|  | ||||
| maintainer-clean: maintainer-clean-am | ||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||||
| 	-rm -rf $(top_srcdir)/autom4te.cache | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
|  | ||||
| mostlyclean: mostlyclean-am | ||||
|  | ||||
| mostlyclean-am: mostlyclean-compile mostlyclean-generic \ | ||||
| 	mostlyclean-libtool | ||||
|  | ||||
| pdf: pdf-am | ||||
|  | ||||
| pdf-am: | ||||
|  | ||||
| ps: ps-am | ||||
|  | ||||
| ps-am: | ||||
|  | ||||
| uninstall-am: | ||||
|  | ||||
| .MAKE: install-am install-strip | ||||
|  | ||||
| .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ | ||||
| 	clean-generic clean-libtool clean-noinstLIBRARIES \ | ||||
| 	clean-noinstLTLIBRARIES ctags distclean distclean-compile \ | ||||
| 	distclean-generic distclean-libtool distclean-tags dvi dvi-am \ | ||||
| 	html html-am info info-am install install-am install-data \ | ||||
| 	install-data-am install-dvi install-dvi-am install-exec \ | ||||
| 	install-exec-am install-html install-html-am install-info \ | ||||
| 	install-info-am install-man install-pdf install-pdf-am \ | ||||
| 	install-ps install-ps-am install-strip installcheck \ | ||||
| 	installcheck-am installdirs maintainer-clean \ | ||||
| 	maintainer-clean-generic mostlyclean mostlyclean-compile \ | ||||
| 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | ||||
| 	tags uninstall uninstall-am | ||||
|  | ||||
| objectlist.awk.in: $(noinst_LTLIBRARIES) | ||||
| 	-rm -f objectlist.awk.in | ||||
| 	for i in `ls *.lo` ; \ | ||||
| 	do \ | ||||
| 	  echo $$i `pwd`/$$i >> objectlist.awk.in ; \ | ||||
| 	done | ||||
|  | ||||
| .c.def: | ||||
| 	$(CHEW) < $< > $*.def || ( rm $*.def && false ) | ||||
| 	@touch stmp-def | ||||
|  | ||||
| TARGETDOC ?= ../tmp.texi | ||||
|  | ||||
| doc: $(CHEWOUT_FILES) | ||||
| 	for chapter in $(CHAPTERS) ; \ | ||||
| 	do \ | ||||
| 	  cat $(srcdir)/$$chapter >> $(TARGETDOC) ; \ | ||||
| 	done | ||||
|  | ||||
| .c.xml: | ||||
| 	$(DOCBOOK_CHEW) < $< > $*.xml || ( rm $*.xml && false ) | ||||
| 	@touch stmp-xml | ||||
|  | ||||
| docbook: $(DOCBOOK_OUT_FILES) | ||||
| 	for chapter in $(DOCBOOK_CHAPTERS) ; \ | ||||
| 	do \ | ||||
| 	  ${top_srcdir}/../doc/chapter-texi2docbook.py <$(srcdir)/$${chapter%.xml}.tex >../$$chapter ; \ | ||||
| 	done | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
| .NOEXPORT: | ||||
							
								
								
									
										1017
									
								
								newlib/libm/machine/x86_64/aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1017
									
								
								newlib/libm/machine/x86_64/aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										14047
									
								
								newlib/libm/machine/x86_64/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										14047
									
								
								newlib/libm/machine/x86_64/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										25
									
								
								newlib/libm/machine/x86_64/configure.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								newlib/libm/machine/x86_64/configure.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| dnl This is the newlib/libc/machine/x86_64 configure.in file. | ||||
| dnl Process this file with autoconf to produce a configure script. | ||||
|  | ||||
| AC_PREREQ(2.59) | ||||
| AC_INIT([newlib],[NEWLIB_VERSION]) | ||||
| AC_CONFIG_SRCDIR([Makefile.am]) | ||||
|  | ||||
| dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.  | ||||
| AC_CONFIG_AUX_DIR(../../../..) | ||||
|  | ||||
| NEWLIB_CONFIGURE(../../..) | ||||
|  | ||||
| dnl We have to add the following lines because automake detects the | ||||
| dnl references to libtool libraries from aclocal and tries to verify that | ||||
| dnl AM_PROG_LIBTOOL is being used.  This code must occur after | ||||
| dnl NEWLIB_CONFIGURE.  | ||||
| _LT_DECL_SED | ||||
| _LT_PROG_ECHO_BACKSLASH | ||||
| if test "${use_libtool}" = "yes"; then | ||||
| AC_LIBTOOL_WIN32_DLL | ||||
| AM_PROG_LIBTOOL | ||||
| fi | ||||
|  | ||||
| AC_CONFIG_FILES([Makefile]) | ||||
| AC_OUTPUT | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/feclearexcept.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/feclearexcept.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/fegetenv.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/fegetenv.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/fegetexceptflag.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/fegetexceptflag.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/fegetround.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/fegetround.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/feholdexcept.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/feholdexcept.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										477
									
								
								newlib/libm/machine/x86_64/fenv.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										477
									
								
								newlib/libm/machine/x86_64/fenv.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,477 @@ | ||||
| /* | ||||
|  * SPDX-License-Identifier: BSD-2-Clause | ||||
|  * | ||||
|  * Copyright (c) 2010-2019 Red Hat, Inc. | ||||
|  */ | ||||
|  | ||||
| #define _GNU_SOURCE        // for FE_NOMASK_ENV | ||||
|  | ||||
| #include <fenv.h> | ||||
| #include <errno.h> | ||||
| #include <string.h>        // for memcpy  | ||||
| #include <stdbool.h> | ||||
|  | ||||
| /*  x87 supports subnormal numbers so we need it below. */ | ||||
| #define __FE_DENORM	(1 << 1) | ||||
| /* mask (= 0x3f) to disable all exceptions at initialization */ | ||||
| #define __FE_ALL_EXCEPT_X86 (FE_ALL_EXCEPT | __FE_DENORM) | ||||
|  | ||||
| /*  Mask and shift amount for rounding bits.  */ | ||||
| #define FE_CW_ROUND_MASK	(0x0c00) | ||||
| #define FE_CW_ROUND_SHIFT	(10) | ||||
| /*  Same, for SSE MXCSR.  */ | ||||
| #define FE_MXCSR_ROUND_MASK	(0x6000) | ||||
| #define FE_MXCSR_ROUND_SHIFT	(13) | ||||
|  | ||||
| /*  Mask and shift amount for precision bits.  */ | ||||
| #define FE_CW_PREC_MASK		(0x0300) | ||||
| #define FE_CW_PREC_SHIFT	(8) | ||||
|  | ||||
| /*  In x87, exception status bits and mask bits occupy | ||||
|    corresponding bit positions in the status and control | ||||
|    registers, respectively.  In SSE, they are both located | ||||
|    in the control-and-status register, with the status bits | ||||
|    corresponding to the x87 positions, and the mask bits | ||||
|    shifted by this amount to the left.  */ | ||||
| #define FE_SSE_EXCEPT_MASK_SHIFT (7) | ||||
|  | ||||
| /* These are writable so we can initialise them at startup.  */ | ||||
| static fenv_t fe_nomask_env; | ||||
|  | ||||
| /* These pointers provide the outside world with read-only access to them.  */ | ||||
| const fenv_t *_fe_nomask_env = &fe_nomask_env; | ||||
|  | ||||
| /* Assume i686 or above (hence SSE available) these days, with the | ||||
|    compiler feels free to use it (depending on compile- time flags of | ||||
|    course), but we should avoid needlessly breaking any purely integer mode | ||||
|    apps (or apps compiled with -mno-sse), so we only manage SSE state in this | ||||
|    fenv module if we detect that SSE instructions are available at runtime. | ||||
|    If we didn't do this, all applications run on older machines would bomb | ||||
|    out with an invalid instruction exception right at startup; let's not | ||||
|    be *that* WJM!  */ | ||||
| static inline bool use_sse(void) | ||||
| { | ||||
|   unsigned int edx, eax; | ||||
|  | ||||
|   /* Check for presence of SSE: invoke CPUID #1, check EDX bit 25.  */ | ||||
|   eax = 1; | ||||
|   __asm__ volatile ("cpuid" : "=d" (edx), "+a" (eax) :: "%ecx", "%ebx"); | ||||
|   /* If this flag isn't set we'll avoid trying to execute any SSE.  */ | ||||
|   if ((edx & (1 << 25)) != 0) | ||||
|     return true; | ||||
|  | ||||
|   return false; | ||||
| } | ||||
|  | ||||
| /* forward declaration */ | ||||
| static void _feinitialise (void); | ||||
|  | ||||
| /*  This function enables traps for each of the exceptions as indicated | ||||
|    by the parameter except. The individual exceptions are described in | ||||
|    [ ... glibc manual xref elided ...]. Only the specified exceptions are | ||||
|    enabled, the status of the other exceptions is not changed. | ||||
|     The function returns the previous enabled exceptions in case the | ||||
|    operation was successful, -1 otherwise.  */ | ||||
| int | ||||
| feenableexcept (int excepts) | ||||
| { | ||||
|   unsigned short cw, old_cw; | ||||
|   unsigned int mxcsr = 0; | ||||
|  | ||||
|   if (excepts & ~FE_ALL_EXCEPT) | ||||
|     return -1; | ||||
|  | ||||
|   /* Get control words.  */ | ||||
|   __asm__ volatile ("fnstcw %0" : "=m" (old_cw) : ); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr) : ); | ||||
|  | ||||
|   /* Enable exceptions by clearing mask bits.  */ | ||||
|   cw = old_cw & ~excepts; | ||||
|   mxcsr &= ~(excepts << FE_SSE_EXCEPT_MASK_SHIFT); | ||||
|  | ||||
|   /* Store updated control words.  */ | ||||
|   __asm__ volatile ("fldcw %0" :: "m" (cw)); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("ldmxcsr %0" :: "m" (mxcsr)); | ||||
|  | ||||
|   /* Return old value.  We assume SSE and x87 stay in sync.  Note that | ||||
|      we are returning a mask of enabled exceptions, which is the opposite | ||||
|      of the flags in the register, which are set to disable (mask) their | ||||
|      related exceptions.  */ | ||||
|   return (~old_cw) & FE_ALL_EXCEPT; | ||||
| } | ||||
|  | ||||
| /*  This function disables traps for each of the exceptions as indicated | ||||
|    by the parameter except. The individual exceptions are described in | ||||
|    [ ... glibc manual xref elided ...]. Only the specified exceptions are | ||||
|    disabled, the status of the other exceptions is not changed. | ||||
|     The function returns the previous enabled exceptions in case the | ||||
|    operation was successful, -1 otherwise.  */ | ||||
| int | ||||
| fedisableexcept (int excepts) | ||||
| { | ||||
|   unsigned short cw, old_cw; | ||||
|   unsigned int mxcsr = 0; | ||||
|  | ||||
|   if (excepts & ~FE_ALL_EXCEPT) | ||||
|     return -1; | ||||
|  | ||||
|   /* Get control words.  */ | ||||
|   __asm__ volatile ("fnstcw %0" : "=m" (old_cw) : ); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr) : ); | ||||
|  | ||||
|   /* Disable exceptions by setting mask bits.  */ | ||||
|   cw = old_cw | excepts; | ||||
|   mxcsr |= (excepts << FE_SSE_EXCEPT_MASK_SHIFT); | ||||
|  | ||||
|   /* Store updated control words.  */ | ||||
|   __asm__ volatile ("fldcw %0" :: "m" (cw)); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("ldmxcsr %0" :: "m" (mxcsr)); | ||||
|  | ||||
|   /* Return old value.  We assume SSE and x87 stay in sync.  Note that | ||||
|      we are returning a mask of enabled exceptions, which is the opposite | ||||
|      of the flags in the register, which are set to disable (mask) their | ||||
|      related exceptions.  */ | ||||
|   return (~old_cw) & FE_ALL_EXCEPT; | ||||
| } | ||||
|  | ||||
| /*  This function returns a bitmask of all currently enabled exceptions. It | ||||
|    returns -1 in case of failure.  */ | ||||
| int | ||||
| fegetexcept (void) | ||||
| { | ||||
|   unsigned short cw; | ||||
|  | ||||
|   /* Get control word.  We assume SSE and x87 stay in sync.  */ | ||||
|   __asm__ volatile ("fnstcw %0" : "=m" (cw) : ); | ||||
|  | ||||
|   /* Exception is *dis*abled when mask bit is set.  */ | ||||
|   return (~cw) & FE_ALL_EXCEPT; | ||||
| } | ||||
|  | ||||
| /*  Store the floating-point environment in the variable pointed to by envp. | ||||
|    The function returns zero in case the operation was successful, a non-zero | ||||
|    value otherwise.  */ | ||||
| int | ||||
| fegetenv (fenv_t *envp) | ||||
| { | ||||
|   /* fnstenv disables all exceptions in the x87 FPU; as this is not what is | ||||
|      desired here, reload the cfg saved from the x87 FPU, back to the FPU */ | ||||
|   __asm__ volatile ("fnstenv %0\n\ | ||||
|                      fldenv %0" | ||||
| 		    : "=m" (envp->_fpu) : ); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("stmxcsr %0" : "=m" (envp->_sse_mxcsr) : ); | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| /*  Store the current floating-point environment in the object pointed to | ||||
|    by envp. Then clear all exception flags, and set the FPU to trap no | ||||
|    exceptions.  Not all FPUs support trapping no exceptions; if feholdexcept | ||||
|    cannot set this mode, it returns nonzero value.  If it succeeds, it | ||||
|    returns zero.  */ | ||||
| int | ||||
| feholdexcept (fenv_t *envp) | ||||
| { | ||||
|   unsigned int mxcsr; | ||||
|   fegetenv (envp); | ||||
|   mxcsr = envp->_sse_mxcsr & ~FE_ALL_EXCEPT; | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("ldmxcsr %0" :: "m" (mxcsr)); | ||||
|   __asm__ volatile ("fnclex"); | ||||
|   fedisableexcept (FE_ALL_EXCEPT); | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| /*  Set the floating-point environment to that described by envp.  The | ||||
|    function returns zero in case the operation was successful, a non-zero | ||||
|    value otherwise.  */ | ||||
| int | ||||
| fesetenv (const fenv_t *envp) | ||||
| { | ||||
|    if ((envp == FE_DFL_ENV || envp == FE_NOMASK_ENV) && | ||||
|        envp->_fpu._fpu_cw == 0) | ||||
|      _feinitialise (); | ||||
|  | ||||
|   __asm__ volatile ("fldenv %0" :: "m" (envp->_fpu) ); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("ldmxcsr %0" :: "m" (envp->_sse_mxcsr)); | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| /*  Like fesetenv, this function sets the floating-point environment to | ||||
|    that described by envp. However, if any exceptions were flagged in the | ||||
|    status word before feupdateenv was called, they remain flagged after | ||||
|    the call.  In other words, after feupdateenv is called, the status | ||||
|    word is the bitwise OR of the previous status word and the one saved | ||||
|    in envp.  The function returns zero in case the operation was successful, | ||||
|    a non-zero value otherwise.  */ | ||||
| int | ||||
| feupdateenv (const fenv_t *envp) | ||||
| { | ||||
|   fenv_t envcopy; | ||||
|   unsigned int mxcsr = 0; | ||||
|   unsigned short sw; | ||||
|  | ||||
|   /* Don't want to modify *envp, but want to update environment atomically, | ||||
|      so take a copy and merge the existing exceptions into it.  */ | ||||
|   memcpy (&envcopy, envp, sizeof *envp); | ||||
|   __asm__ volatile ("fnstsw %0" : "=m" (sw) : ); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr) : ); | ||||
|   envcopy._fpu._fpu_sw |= (sw & FE_ALL_EXCEPT); | ||||
|   envcopy._sse_mxcsr |= (mxcsr & FE_ALL_EXCEPT); | ||||
|  | ||||
|   return fesetenv (&envcopy); | ||||
| } | ||||
|  | ||||
| /*  This function clears all of the supported exception flags indicated by | ||||
|    excepts.  The function returns zero in case the operation was successful, | ||||
|    a non-zero value otherwise.  */ | ||||
| int | ||||
| feclearexcept (int excepts) | ||||
| { | ||||
|   fenv_t fenv; | ||||
|  | ||||
|   if (excepts & ~FE_ALL_EXCEPT) | ||||
|     return EINVAL; | ||||
|  | ||||
|   /* Need to save/restore whole environment to modify status word.  */ | ||||
|   fegetenv (&fenv); | ||||
|  | ||||
|   /* Mask undesired bits out.  */ | ||||
|   fenv._fpu._fpu_sw &= ~excepts; | ||||
|   fenv._sse_mxcsr &= ~excepts; | ||||
|  | ||||
|   /* Set back into FPU state.  */ | ||||
|   return fesetenv (&fenv); | ||||
| } | ||||
|  | ||||
| /*  This function raises the supported exceptions indicated by | ||||
|    excepts.  If more than one exception bit in excepts is set the order | ||||
|    in which the exceptions are raised is undefined except that overflow | ||||
|    (FE_OVERFLOW) or underflow (FE_UNDERFLOW) are raised before inexact | ||||
|    (FE_INEXACT). Whether for overflow or underflow the inexact exception | ||||
|    is also raised is also implementation dependent.  The function returns | ||||
|    zero in case the operation was successful, a non-zero value otherwise.  */ | ||||
| int | ||||
| feraiseexcept (int excepts) | ||||
| { | ||||
|   fenv_t fenv; | ||||
|  | ||||
|   if (excepts & ~FE_ALL_EXCEPT) | ||||
|     return EINVAL; | ||||
|  | ||||
|   /* Need to save/restore whole environment to modify status word.  */ | ||||
|   __asm__ volatile ("fnstenv %0" : "=m" (fenv) : ); | ||||
|  | ||||
|   /* Set desired exception bits.  */ | ||||
|   fenv._fpu._fpu_sw |= excepts; | ||||
|  | ||||
|   /* Set back into FPU state.  */ | ||||
|   __asm__ volatile ("fldenv %0" :: "m" (fenv)); | ||||
|  | ||||
|   /* And trigger them - whichever are unmasked.  */ | ||||
|   __asm__ volatile ("fwait"); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| /*  Test whether the exception flags indicated by the parameter except | ||||
|    are currently set. If any of them are, a nonzero value is returned | ||||
|    which specifies which exceptions are set. Otherwise the result is zero.  */ | ||||
| int | ||||
| fetestexcept (int excepts) | ||||
| { | ||||
|   unsigned short sw; | ||||
|   unsigned int mxcsr = 0; | ||||
|  | ||||
|   if (excepts & ~FE_ALL_EXCEPT) | ||||
|     return EINVAL; | ||||
|  | ||||
|   /* Get status registers.  */ | ||||
|   __asm__ volatile ("fnstsw %0" : "=m" (sw) : ); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr) : ); | ||||
|  | ||||
|   /* Mask undesired bits out and return result.  */ | ||||
|   return (sw | mxcsr) & excepts; | ||||
| } | ||||
| /*  This function stores in the variable pointed to by flagp an | ||||
|    implementation-defined value representing the current setting of the | ||||
|    exception flags indicated by excepts.  The function returns zero in | ||||
|    case the operation was successful, a non-zero value otherwise.  */ | ||||
| int | ||||
| fegetexceptflag (fexcept_t *flagp, int excepts) | ||||
| { | ||||
|   unsigned short sw; | ||||
|   unsigned int mxcsr = 0; | ||||
|  | ||||
|   if (excepts & ~FE_ALL_EXCEPT) | ||||
|     return EINVAL; | ||||
|  | ||||
|   /* Get status registers.  */ | ||||
|   __asm__ volatile ("fnstsw %0" : "=m" (sw) : ); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr) : ); | ||||
|  | ||||
|   /* Mask undesired bits out and set result.  */ | ||||
|   *flagp = (sw | mxcsr) & excepts; | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| /*  This function restores the flags for the exceptions indicated by | ||||
|    excepts to the values stored in the variable pointed to by flagp.  */ | ||||
| int | ||||
| fesetexceptflag (const fexcept_t *flagp, int excepts) | ||||
| { | ||||
|   fenv_t fenv; | ||||
|  | ||||
|   if (excepts & ~FE_ALL_EXCEPT) | ||||
|     return EINVAL; | ||||
|  | ||||
|   /* Need to save/restore whole environment to modify status word.  */ | ||||
|   fegetenv (&fenv); | ||||
|  | ||||
|   /* Set/Clear desired exception bits.  */ | ||||
|   fenv._fpu._fpu_sw &= ~excepts; | ||||
|   fenv._fpu._fpu_sw |= excepts & *flagp; | ||||
|   fenv._sse_mxcsr &= ~excepts; | ||||
|   fenv._sse_mxcsr |= excepts & *flagp; | ||||
|  | ||||
|   /* Set back into FPU state.  */ | ||||
|   return fesetenv (&fenv); | ||||
| } | ||||
|  | ||||
| /*  Returns the currently selected rounding mode, represented by one of the | ||||
|    values of the defined rounding mode macros.  */ | ||||
| int | ||||
| fegetround (void) | ||||
| { | ||||
|   unsigned short cw; | ||||
|  | ||||
|   /* Get control word.  We assume SSE and x87 stay in sync.  */ | ||||
|   __asm__ volatile ("fnstcw %0" : "=m" (cw) : ); | ||||
|  | ||||
|   return (cw & FE_CW_ROUND_MASK) >> FE_CW_ROUND_SHIFT; | ||||
| } | ||||
|  | ||||
| /*  Changes the currently selected rounding mode to round. If round does | ||||
|    not correspond to one of the supported rounding modes nothing is changed. | ||||
|    fesetround returns zero if it changed the rounding mode, a nonzero value | ||||
|    if the mode is not supported.  */ | ||||
| int | ||||
| fesetround (int round) | ||||
| { | ||||
|   unsigned short cw; | ||||
|   unsigned int mxcsr = 0; | ||||
|  | ||||
|   /* Will succeed for any valid value of the input parameter.  */ | ||||
|   if (round < FE_TONEAREST || round > FE_TOWARDZERO) | ||||
|     return EINVAL; | ||||
|  | ||||
|   /* Get control words.  */ | ||||
|   __asm__ volatile ("fnstcw %0" : "=m" (cw) : ); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("stmxcsr %0" : "=m" (mxcsr) : ); | ||||
|  | ||||
|   /* Twiddle bits.  */ | ||||
|   cw &= ~FE_CW_ROUND_MASK; | ||||
|   cw |= (round << FE_CW_ROUND_SHIFT); | ||||
|   mxcsr &= ~FE_MXCSR_ROUND_MASK; | ||||
|   mxcsr |= (round << FE_MXCSR_ROUND_SHIFT); | ||||
|  | ||||
|   /* Set back into FPU state.  */ | ||||
|   __asm__ volatile ("fldcw %0" :: "m" (cw)); | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("ldmxcsr %0" :: "m" (mxcsr)); | ||||
|  | ||||
|   /* Indicate success.  */ | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| #if defined(__CYGWIN__) | ||||
| /*  Returns the currently selected precision, represented by one of the | ||||
|    values of the defined precision macros.  */ | ||||
| int | ||||
| fegetprec (void) | ||||
| { | ||||
|   unsigned short cw; | ||||
|  | ||||
|   /* Get control word.  */ | ||||
|   __asm__ volatile ("fnstcw %0" : "=m" (cw) : ); | ||||
|  | ||||
|   return (cw & FE_CW_PREC_MASK) >> FE_CW_PREC_SHIFT; | ||||
| } | ||||
|  | ||||
| /* http://www.open-std.org/jtc1/sc22//WG14/www/docs/n752.htm: | ||||
|  | ||||
|    The fesetprec function establishes the precision represented by its | ||||
|    argument prec.  If the argument does not match a precision macro, the | ||||
|    precision is not changed. | ||||
|  | ||||
|    The fesetprec function returns a nonzero value if and only if the | ||||
|    argument matches a precision macro (that is, if and only if the requested | ||||
|    precision can be established). */ | ||||
| int | ||||
| fesetprec (int prec) | ||||
| { | ||||
|   unsigned short cw; | ||||
|  | ||||
|   /* Will succeed for any valid value of the input parameter.  */ | ||||
|   switch (prec) | ||||
|     { | ||||
|     case FE_FLTPREC: | ||||
|     case FE_DBLPREC: | ||||
|     case FE_LDBLPREC: | ||||
|       break; | ||||
|     default: | ||||
|       return 0; | ||||
|     } | ||||
|  | ||||
|   /* Get control word.  */ | ||||
|   __asm__ volatile ("fnstcw %0" : "=m" (cw) : ); | ||||
|  | ||||
|   /* Twiddle bits.  */ | ||||
|   cw &= ~FE_CW_PREC_MASK; | ||||
|   cw |= (prec << FE_CW_PREC_SHIFT); | ||||
|  | ||||
|   /* Set back into FPU state.  */ | ||||
|   __asm__ volatile ("fldcw %0" :: "m" (cw)); | ||||
|  | ||||
|   /* Indicate success.  */ | ||||
|   return 1; | ||||
| } | ||||
| #endif | ||||
|  | ||||
| /*  Set up the FPU and SSE environment at the start of execution.  */ | ||||
| static void | ||||
| _feinitialise (void) | ||||
| { | ||||
|   extern fenv_t __fe_dfl_env; | ||||
|  | ||||
|   /* Reset FPU: extended prec, all exceptions cleared and masked off.  */ | ||||
|   __asm__ volatile ("fninit"); | ||||
|   /* The default cw value, 0x37f, is rounding mode zero.  The MXCSR has | ||||
|      no precision control, so the only thing to do is set the exception | ||||
|      mask bits.  */ | ||||
|  | ||||
|   /* initialize the MXCSR register: mask all exceptions */ | ||||
|   unsigned int mxcsr = __FE_ALL_EXCEPT_X86 << FE_SSE_EXCEPT_MASK_SHIFT; | ||||
|   if (use_sse()) | ||||
|     __asm__ volatile ("ldmxcsr %0" :: "m" (mxcsr)); | ||||
|  | ||||
|   /* Setup unmasked environment, but leave __FE_DENORM masked.  */ | ||||
|   feenableexcept (FE_ALL_EXCEPT); | ||||
|   fegetenv (&fe_nomask_env); | ||||
|  | ||||
|   /* Restore default exception masking (all masked).  */ | ||||
|   fedisableexcept (FE_ALL_EXCEPT); | ||||
|  | ||||
|   /* Finally cache state as default environment. */ | ||||
|   fegetenv (&__fe_dfl_env); | ||||
| } | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/feraiseexcept.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/feraiseexcept.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/fesetenv.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/fesetenv.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/fesetexceptflag.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/fesetexceptflag.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/fesetround.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/fesetround.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/fetestexcept.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/fetestexcept.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
							
								
								
									
										1
									
								
								newlib/libm/machine/x86_64/feupdateenv.c
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								newlib/libm/machine/x86_64/feupdateenv.c
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../../fenv/fenv_stub.c | ||||
		Reference in New Issue
	
	Block a user