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) |   x86_64) | ||||||
| 	machine_dir=x86_64 | 	machine_dir=x86_64 | ||||||
|  | 	libm_machine_dir=x86_64 | ||||||
| 	;; | 	;; | ||||||
|   xc16x*) |   xc16x*) | ||||||
|         machine_dir=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 | i386 | ||||||
| nds32 | nds32 | ||||||
| spu | spu | ||||||
| riscv' | riscv | ||||||
|  | x86_64' | ||||||
|  |  | ||||||
| # Initialize some variables set by options. | # Initialize some variables set by options. | ||||||
| ac_init_help= | ac_init_help= | ||||||
| @@ -11453,7 +11454,7 @@ else | |||||||
|   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | ||||||
|   lt_status=$lt_dlunknown |   lt_status=$lt_dlunknown | ||||||
|   cat > conftest.$ac_ext <<_LT_EOF |   cat > conftest.$ac_ext <<_LT_EOF | ||||||
| #line 11456 "configure" | #line 11457 "configure" | ||||||
| #include "confdefs.h" | #include "confdefs.h" | ||||||
|  |  | ||||||
| #if HAVE_DLFCN_H | #if HAVE_DLFCN_H | ||||||
| @@ -11559,7 +11560,7 @@ else | |||||||
|   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | ||||||
|   lt_status=$lt_dlunknown |   lt_status=$lt_dlunknown | ||||||
|   cat > conftest.$ac_ext <<_LT_EOF |   cat > conftest.$ac_ext <<_LT_EOF | ||||||
| #line 11562 "configure" | #line 11563 "configure" | ||||||
| #include "confdefs.h" | #include "confdefs.h" | ||||||
|  |  | ||||||
| #if HAVE_DLFCN_H | #if HAVE_DLFCN_H | ||||||
| @@ -11815,6 +11816,8 @@ subdirs="$subdirs aarch64" | |||||||
| 	spu) subdirs="$subdirs spu" | 	spu) subdirs="$subdirs spu" | ||||||
|  ;; |  ;; | ||||||
| 	riscv) subdirs="$subdirs riscv" | 	riscv) subdirs="$subdirs riscv" | ||||||
|  |  ;; | ||||||
|  | 	x86_64) subdirs="$subdirs x86_64" | ||||||
|  ;; |  ;; | ||||||
|   esac; |   esac; | ||||||
|   if test "${use_libtool}" = "yes"; then |   if test "${use_libtool}" = "yes"; then | ||||||
|   | |||||||
| @@ -31,6 +31,7 @@ if test -n "${libm_machine_dir}"; then | |||||||
| 	nds32) AC_CONFIG_SUBDIRS(nds32) ;; | 	nds32) AC_CONFIG_SUBDIRS(nds32) ;; | ||||||
| 	spu) AC_CONFIG_SUBDIRS(spu) ;; | 	spu) AC_CONFIG_SUBDIRS(spu) ;; | ||||||
| 	riscv) AC_CONFIG_SUBDIRS(riscv) ;; | 	riscv) AC_CONFIG_SUBDIRS(riscv) ;; | ||||||
|  | 	x86_64) AC_CONFIG_SUBDIRS(x86_64) ;; | ||||||
|   esac; |   esac; | ||||||
|   if test "${use_libtool}" = "yes"; then |   if test "${use_libtool}" = "yes"; then | ||||||
|     machlib=${libm_machine_dir}/lib${libm_machine_dir}.${aext} |     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_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_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_pow.c f_powf.c f_rint.c f_rintf.c f_rintl.c \ | ||||||
| 	f_tan.S f_tanf.S f_math.h \ | 	f_tan.S f_tanf.S f_math.h i386mach.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 | 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_pow.$(OBJEXT) lib_a-f_powf.$(OBJEXT) \ | ||||||
| 	lib_a-f_rint.$(OBJEXT) lib_a-f_rintf.$(OBJEXT) \ | 	lib_a-f_rint.$(OBJEXT) lib_a-f_rintf.$(OBJEXT) \ | ||||||
| 	lib_a-f_rintl.$(OBJEXT) lib_a-f_tan.$(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) | @USE_LIBTOOL_FALSE@am_lib_a_OBJECTS = $(am__objects_1) | ||||||
| lib_a_OBJECTS = $(am_lib_a_OBJECTS) | lib_a_OBJECTS = $(am_lib_a_OBJECTS) | ||||||
| LTLIBRARIES = $(noinst_LTLIBRARIES) | 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_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_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_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) | @USE_LIBTOOL_TRUE@am_libi386_la_OBJECTS = $(am__objects_2) | ||||||
| libi386_la_OBJECTS = $(am_libi386_la_OBJECTS) | libi386_la_OBJECTS = $(am_libi386_la_OBJECTS) | ||||||
| libi386_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ | 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_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_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_pow.c f_powf.c f_rint.c f_rintf.c f_rintl.c \ | ||||||
| 	f_tan.S f_tanf.S f_math.h \ | 	f_tan.S f_tanf.S f_math.h i386mach.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 | libi386_la_LDFLAGS = -Xcompiler -nostdlib | ||||||
| @USE_LIBTOOL_TRUE@noinst_LTLIBRARIES = libi386.la | @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 | 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` | 	$(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: | mostlyclean-libtool: | ||||||
| 	-rm -f *.lo | 	-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