diff options
-rw-r--r-- | gcc/ChangeLog | 27 | ||||
-rw-r--r-- | gcc/Makefile.in | 31 | ||||
-rw-r--r-- | gcc/c-common.c | 304 | ||||
-rw-r--r-- | gcc/config.gcc | 91 | ||||
-rw-r--r-- | gcc/config/float-c4x.h | 96 | ||||
-rw-r--r-- | gcc/config/float-i128.h | 123 | ||||
-rw-r--r-- | gcc/config/float-i32.h | 123 | ||||
-rw-r--r-- | gcc/config/float-i386.h | 124 | ||||
-rw-r--r-- | gcc/config/float-i64.h | 123 | ||||
-rw-r--r-- | gcc/config/float-m68k.h | 127 | ||||
-rw-r--r-- | gcc/config/float-sh.h | 160 | ||||
-rw-r--r-- | gcc/config/float-sparc.h | 153 | ||||
-rw-r--r-- | gcc/config/float-vax.h | 159 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 7 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.h | 5 | ||||
-rwxr-xr-x | gcc/configure | 218 | ||||
-rw-r--r-- | gcc/configure.in | 10 | ||||
-rw-r--r-- | gcc/defaults.h | 4 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 10 | ||||
-rw-r--r-- | gcc/ginclude/float.h | 162 |
20 files changed, 631 insertions, 1426 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 470d381e264..b4ab38587d5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,30 @@ +2002-09-03 Richard Henderson <rth@redhat.com> + + * Makefile.in (USER_H): Add ginclude/float.h. + (FLOAT_H): Remove. + (stmp-int-hdrs, install-mkheaders): Don't handle FLOAT_H. + (mostlyclean): Don't remove float.h intermediate files. + (distclean): Don't remove float.h. + * config.gcc: Remove all float_format references. + * configure.in (float_format, float_h_file): Remove. + + * c-common.c: Include tree-inline.h. + (builtin_define_with_int_value): New. + (builtin_define_type_precision): Use it. + (builtin_define_float_constants): New. + (cb_register_builtins): Use it. Define __FLT_RADIX__ and + __FLT_EVAL_METHOD__. + * defaults.h (TARGET_FLT_EVAL_METHOD): New. + * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): New. + * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): New. + * doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Mention moto 96-bit format. + (TARGET_FLT_EVAL_METHOD): New. + + * config/float-c4x.h, config/float-i128.h, config/float-i32.h, + config/float-i386.h, config/float-i64.h, config/float-m68k.h, + config/float-sh.h, config/float-sparc.h, config/float-vax.h: Remove. + * ginclude/float.h: New. + 2002-09-03 Stan Shebs <shebs@apple.com> * config/darwin.h (WARN_FOUR_CHAR_CONSTANTS): Remove, never used. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index a02fdc9db27..5a7709a1f19 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -171,10 +171,13 @@ INSTALL_HEADERS_DIR = @build_install_headers_dir@ # Header files that are made available under the same name # to programs compiled with GCC. -USER_H = $(srcdir)/ginclude/stdarg.h $(srcdir)/ginclude/stddef.h \ - $(srcdir)/ginclude/varargs.h \ - $(srcdir)/ginclude/stdbool.h $(srcdir)/ginclude/iso646.h \ - $(EXTRA_HEADERS) +USER_H = $(srcdir)/ginclude/float.h \ + $(srcdir)/ginclude/iso646.h \ + $(srcdir)/ginclude/stdarg.h \ + $(srcdir)/ginclude/stdbool.h \ + $(srcdir)/ginclude/stddef.h \ + $(srcdir)/ginclude/varargs.h \ + $(EXTRA_HEADERS) # The GCC to use for compiling libgcc.a and crt*.o. # Usually the one we just built. @@ -434,10 +437,6 @@ LIB2FUNCS_EXTRA = # Assembler files should have names ending in `.asm'. LIB2FUNCS_STATIC_EXTRA = -# We do not try to build float.h anymore. Let configure select the -# appropriate pre-built float.h file for the target. -FLOAT_H=@float_h_file@ - # Program to convert libraries. LIBCONVERT = @@ -2305,7 +2304,7 @@ gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS) # s-* so that mostlyclean does not force the include directory to # be rebuilt. -# Build the include directory including float.h +# Build the include directory stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) xlimits.h # Copy in the headers provided with gcc. # The sed command gets just the last file name component; @@ -2325,11 +2324,6 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) xlimits.h rm -f include/limits.h cp xlimits.h include/limits.h chmod a+r include/limits.h - rm -f include/float.h - if [ x$(FLOAT_H) != xMakefile.in ]; then \ - cp $(srcdir)/config/$(FLOAT_H) include/float.h && \ - chmod a+r include/float.h; \ - else :; fi # Install the README rm -f include/README cp $(srcdir)/README-fixinc include/README @@ -2623,7 +2617,7 @@ mostlyclean: $(INTL_MOSTLYCLEAN) lang.mostlyclean # Delete the temp files made in the course of building libgcc.a. -rm -f xlimits.h # Delete other built files. - -rm -f t-float.h-cross xsys-protos.hT + -rm -f xsys-protos.hT -rm -f specs.h options.h gencheck.h # Delete the stamp and temporary files. -rm -f s-* tmp-* stamp-* stmp-* @@ -2631,7 +2625,7 @@ mostlyclean: $(INTL_MOSTLYCLEAN) lang.mostlyclean # Delete debugging dump files. -rm -f *.[0-9][0-9].* */*.[0-9][0-9].* # Delete some files made during installation. - -rm -f specs float.h-* SYSCALLS.c.X SYSCALLS.c + -rm -f specs SYSCALLS.c.X SYSCALLS.c -rm -f collect collect2 mips-tfile mips-tdump # Delete files generated for fixproto -rm -rf fix-header$(build_exeext) xsys-protos.h deduced.h tmp-deduced.h \ @@ -2690,7 +2684,6 @@ distclean: clean $(INTL_DISTCLEAN) lang.distclean -rm -f */stage1 */stage2 */stage3 */stage4 */include -rm -f c-parse.output -rm -f *.asm - -rm -f float.h -rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak -rm -f testsuite/*.log testsuite/*.sum -cd testsuite && rm -f x *.x *.x? *.exe *.rpo *.o *.s *.S *.c @@ -3029,10 +3022,6 @@ install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir \ $(INSTALL_DATA) $$file \ $(itoolsdir)/include/$$realfile ; \ done - if [ x$(FLOAT_H) != xMakefile.in ]; then \ - $(INSTALL_DATA) $(srcdir)/config/$(FLOAT_H) \ - $(itoolsdir)/include/float.h ; \ - else :; fi $(INSTALL_DATA) xlimits.h $(itoolsdir)/include/limits.h if [ x$(STMP_FIXINC) != x ] ; then \ $(INSTALL_DATA) $(srcdir)/README-fixinc \ diff --git a/gcc/c-common.c b/gcc/c-common.c index 45879917c1c..2cdc4357d2e 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -38,6 +38,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "target.h" #include "langhooks.h" #include "except.h" /* For USING_SJLJ_EXCEPTIONS. */ +#include "tree-inline.h" cpp_reader *parse_in; /* Declared in c-pragma.h. */ @@ -761,9 +762,13 @@ static bool get_nonnull_operand PARAMS ((tree, void builtin_define_std PARAMS ((const char *)); static void builtin_define_with_value PARAMS ((const char *, const char *, int)); +static void builtin_define_with_int_value PARAMS ((const char *, + HOST_WIDE_INT)); static void builtin_define_type_max PARAMS ((const char *, tree, int)); static void cpp_define_data_format PARAMS ((cpp_reader *)); static void builtin_define_type_precision PARAMS ((const char *, tree)); +static void builtin_define_float_constants PARAMS ((const char *, + const char *, tree)); /* Table of machine-independent attributes common to all C-like languages. */ const struct attribute_spec c_common_attribute_table[] = @@ -4682,6 +4687,7 @@ cpp_define_data_format (pfile) cpp_reader *pfile; { const char *format; + /* Define endianness enumeration values. */ cpp_define (pfile, "__GCC_LITTLE_ENDIAN__=0"); cpp_define (pfile, "__GCC_BIG_ENDIAN__=1"); @@ -4772,9 +4778,270 @@ builtin_define_type_precision (name, type) const char *name; tree type; { - char buf[8]; - sprintf (buf, "%d", (int) TYPE_PRECISION (type)); + builtin_define_with_int_value (name, TYPE_PRECISION (type)); +} + +/* Define the float.h constants for TYPE using NAME_PREFIX and FP_SUFFIX. */ +static void +builtin_define_float_constants (name_prefix, fp_suffix, type) + const char *name_prefix; + const char *fp_suffix; + tree type; +{ + /* Used to convert radix-based values to base 10 values in several cases. + + In the max_exp -> max_10_exp conversion for 128-bit IEEE, we need at + least 6 significant digits for correct results. Using the fraction + formed by (log(2)*1e6)/(log(10)*1e6) overflows a 32-bit integer as an + intermediate; perhaps someone can find a better approximation, in the + mean time, I suspect using doubles won't harm the bootstrap here. */ + + const double log10_2 = .30102999566398119521; + const double log10_16 = 1.20411998265592478085; + const double log10_b + = TARGET_FLOAT_FORMAT == IBM_FLOAT_FORMAT ? log10_16 : log10_2; + + const int log2_b = TARGET_FLOAT_FORMAT == IBM_FLOAT_FORMAT ? 4 : 1; + + char name[64], buf[128]; + int mant_dig, max_exp, min_exp; + int dig, min_10_exp, max_10_exp; + + /* ??? This information should be shared with real.c. */ + +#ifndef INTEL_EXTENDED_IEEE_FORMAT +#define INTEL_EXTENDED_IEEE_FORMAT 0 +#endif +#ifndef TARGET_G_FLOAT +#define TARGET_G_FLOAT 0 +#endif + + switch (TARGET_FLOAT_FORMAT) + { + case IEEE_FLOAT_FORMAT: + switch (TYPE_PRECISION (type)) + { + case 32: + /* ??? Handle MIPS r5900, which doesn't implement Inf or NaN, + but rather reuses the largest exponent as a normal number. */ + mant_dig = 24; + min_exp = -125; + max_exp = 128; + break; + case 64: + mant_dig = 53; + min_exp = -1021; + max_exp = 1024; + break; + case 128: + if (!INTEL_EXTENDED_IEEE_FORMAT) + { + mant_dig = 113; + min_exp = -16381; + max_exp = 16384; + break; + } + /* FALLTHRU */ + case 96: + mant_dig = 64; + max_exp = 16384; + if (INTEL_EXTENDED_IEEE_FORMAT) + min_exp = -16381; + else + /* ??? Otherwise assume m68k. */ + min_exp = -16382; + break; + default: + abort (); + } + break; + + case VAX_FLOAT_FORMAT: + switch (TYPE_PRECISION (type)) + { + case 32: /* F_FLOAT */ + mant_dig = 24; + min_exp = -127; + max_exp = 127; + break; + case 64: /* G_FLOAT or D_FLOAT */ + if (TARGET_G_FLOAT) + { + mant_dig = 53; + min_exp = -1023; + max_exp = 1023; + } + else + { + mant_dig = 56; + min_exp = -127; + max_exp = 127; + } + break; + case 128: /* H_FLOAT */ + mant_dig = 114; + min_exp = -16383; + max_exp = 16383; + break; + default: + abort (); + } + break; + + case IBM_FLOAT_FORMAT: + switch (TYPE_PRECISION (type)) + { + case 32: + mant_dig = 6; + min_exp = -64; + max_exp = 63; + break; + case 64: + mant_dig = 14; + min_exp = -64; + max_exp = 63; + break; + default: + abort (); + } + break; + + case C4X_FLOAT_FORMAT: + switch (TYPE_PRECISION (type)) + { + case 32: + mant_dig = 24; + min_exp = -126; + max_exp = 128; + break; + case 64: + mant_dig = 32; + min_exp = -126; + max_exp = 128; + break; + default: + abort (); + } + break; + + default: + abort (); + } + + /* The number of radix digits, p, in the floating-point significand. */ + sprintf (name, "__%s_MANT_DIG__", name_prefix); + builtin_define_with_int_value (name, mant_dig); + + /* The number of decimal digits, q, such that any floating-point number + with q decimal digits can be rounded into a floating-point number with + p radix b digits and back again without change to the q decimal digits, + + p log10 b if b is a power of 10 + floor((p - 1) log10 b) otherwise + */ + dig = (mant_dig - 1) * log10_b; + sprintf (name, "__%s_DIG__", name_prefix); + builtin_define_with_int_value (name, dig); + + /* The minimum negative int x such that b**(x-1) is a normalised float. */ + sprintf (name, "__%s_MIN_EXP__", name_prefix); + sprintf (buf, "(%d)", min_exp); + builtin_define_with_value (name, buf, 0); + + /* The minimum negative int x such that 10**x is a normalized float, + + ceil (log10 (b ** (min_exp - 1))) + = ceil (log10 (b) * (min_exp - 1)) + + Recall that min_exp is negative, so the integer truncation calculates + the ceiling, not the floor, in this case. */ + min_10_exp = (min_exp - 1) * log10_b; + sprintf (name, "__%s_MIN_10_EXP__", name_prefix); + sprintf (buf, "(%d)", min_10_exp); builtin_define_with_value (name, buf, 0); + + /* The maximum int x such that b**(x-1) is a representable float. */ + sprintf (name, "__%s_MAX_EXP__", name_prefix); + builtin_define_with_int_value (name, max_exp); + + /* The maximum int x such that 10**x is in the range of representable + finite floating-point numbers, + + floor (log10((1 - b**-p) * b**max_exp)) + = floor (log10(1 - b**-p) + log10(b**max_exp)) + = floor (log10(1 - b**-p) + log10(b)*max_exp) + + The safest thing to do here is to just compute this number. But since + we don't link cc1 with libm, we cannot. We could implement log10 here + a series expansion, but that seems too much effort because: + + Note that the first term, for all extant p, is a number exceedingly close + to zero, but slightly negative. Note that the second term is an integer + scaling an irrational number, and that because of the floor we are only + interested in its integral portion. + + In order for the first term to have any effect on the integral portion + of the second term, the second term has to be exceedingly close to an + integer itself (e.g. 123.000000000001 or something). Getting a result + that close to an integer requires that the irrational multiplicand have + a long series of zeros in its expansion, which doesn't occur in the + first 20 digits or so of log10(b). + + Hand-waving aside, crunching all of the sets of constants above by hand + does not yield a case for which the first term is significant, which + in the end is all that matters. */ + max_10_exp = max_exp * log10_b; + sprintf (name, "__%s_MAX_10_EXP__", name_prefix); + builtin_define_with_int_value (name, max_10_exp); + + /* Since, for the supported formats, B is always a power of 2, we + construct the following numbers directly as a hexadecimal constants. */ + + /* The maximum representable finite floating-point number, + (1 - b**-p) * b**max_exp */ + { + int i, n; + char *p; + sprintf (name, "__%s_MAX__", name_prefix); + + strcpy (buf, "0x0."); + + n = mant_dig * log2_b; + for (i = 0, p = buf + 4; i + 3 < n; i += 4) + *p++ = 'f'; + if (i < n) + *p++ = "08ce"[n - i]; + sprintf (p, "p%d%s", max_exp * log2_b, fp_suffix); + builtin_define_with_value (name, buf, 0); + } + + /* The minimum normalized positive floating-point number, b**(min_exp-1). */ + sprintf (name, "__%s_MIN__", name_prefix); + sprintf (buf, "0x1p%d%s", (min_exp - 1) * log2_b, fp_suffix); + builtin_define_with_value (name, buf, 0); + + /* The difference between 1 and the least value greater than 1 that is + representable in the given floating point type, b**(1-p). */ + sprintf (name, "__%s_EPSILON__", name_prefix); + sprintf (buf, "0x1p%d%s", (1 - mant_dig) * log2_b, fp_suffix); + builtin_define_with_value (name, buf, 0); + + if (type == long_double_type_node) + { + /* The number of decimal digits, n, such that any floating-point number + in the widest supported floating type with pmax radix b digits can be + rounded to a floating-point number with n decimal digits and back + again without change to the value, + + pmax log10(b) if b is a power of 10 + ceil(1 + pmax * log10(b)) otherwise + */ + double d_decimal_dig = 1 + mant_dig * log10_b; + int decimal_dig = d_decimal_dig; + if (decimal_dig < d_decimal_dig) + decimal_dig++; + builtin_define_with_int_value ("__DECIMAL_DIG__", decimal_dig); + } } /* Hook that registers front end and target-specific built-ins. */ @@ -4830,6 +5097,20 @@ cb_register_builtins (pfile) builtin_define_type_precision ("__DOUBLE_BIT__", double_type_node); builtin_define_type_precision ("__LONG_DOUBLE_BIT__", long_double_type_node); + /* float.h needs to know these. */ + + /* The radix of the exponent representation. */ + builtin_define_with_int_value ("__FLT_RADIX__", + (TARGET_FLOAT_FORMAT == IBM_FLOAT_FORMAT + ? 16 : 2)); + + builtin_define_with_int_value ("__FLT_EVAL_METHOD__", + TARGET_FLT_EVAL_METHOD); + + builtin_define_float_constants ("FLT", "F", float_type_node); + builtin_define_float_constants ("DBL", "", double_type_node); + builtin_define_float_constants ("LDBL", "L", long_double_type_node); + /* For use in assembly language. */ builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0); builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0); @@ -4956,6 +5237,25 @@ builtin_define_with_value (macro, expansion, is_str) cpp_define (parse_in, buf); } +/* Pass an object-like macro and an integer value to define it to. */ +static void +builtin_define_with_int_value (macro, value) + const char *macro; + HOST_WIDE_INT value; +{ + char *buf; + size_t mlen = strlen (macro); + size_t vlen = 18; + size_t extra = 2; /* space for = and NUL. */ + + buf = alloca (mlen + vlen + extra); + memcpy (buf, macro, mlen); + buf[mlen] = '='; + sprintf (buf + mlen + 1, HOST_WIDE_INT_PRINT_DEC, value); + + cpp_define (parse_in, buf); +} + /* Define MAX for TYPE based on the precision of the type, which is assumed to be signed. IS_LONG is 1 for type "long" and 2 for "long long". */ diff --git a/gcc/config.gcc b/gcc/config.gcc index 87eaa6225eb..8e9498f0f6e 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -75,12 +75,6 @@ # machine modes, if necessary and different from # "$cpu_type/$cpu_type-modes.def". # -# float_format Set to the symbolic name for the floating-point -# formats used for this machine, if different from -# "i64". Used to derive a header file name to -# include, like "vax" for "float-vax.h". If no such -# file is wanted, set to "none". -# # extra_objs List of extra objects that should be linked into # the compiler proper (cc1, cc1obj, cc1plus) # depending on target. @@ -194,7 +188,6 @@ c_target_objs= cxx_target_objs= tm_defines= xm_defines= -float_format= # Set this to force installation and use of collect2. use_collect2= # Set this to override the default target model. @@ -542,7 +535,6 @@ alpha*-dec-osf[45]*) *-*-osf5*) tm_file="${tm_file} alpha/osf5.h" target_cpu_default=MASK_SUPPORT_ARCH - float_format=i128 ;; esac ;; @@ -687,7 +679,6 @@ c4x-*-rtems*) cxx_target_objs="c4x-c.o" ;; c4x-*) - float_format=c4x tmake_file=c4x/t-c4x c_target_objs="c4x-c.o" cxx_target_objs="c4x-c.o" @@ -708,7 +699,6 @@ cris-*-linux*) ;; d30v-*) tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" - float_format=i64 ;; dsp16xx-*) ;; @@ -728,15 +718,12 @@ h8300-*-rtems*) if test x$enable_threads = xyes; then thread_file='rtems' fi - float_format=i32 ;; h8300-*-elf*) tmake_file="h8300/t-h8300 h8300/t-elf" tm_file="h8300/h8300.h h8300/elf.h" - float_format=i32 ;; h8300-*-*) - float_format=i32 ;; hppa*64*-*-linux* | parisc*64*-*-linux*) target_cpu_default="(MASK_PA_11 | MASK_PA_20)" @@ -842,7 +829,6 @@ hppa1.0-*-hpux8*) hppa1.1-*-hpux10* | hppa2*-*-hpux10*) target_cpu_default="MASK_PA_11" tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h" - float_format=i128 xm_defines=POSIX tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" xmake_file="pa/x-ada" @@ -859,7 +845,6 @@ hppa1.1-*-hpux10* | hppa2*-*-hpux10*) ;; hppa1.0-*-hpux10*) tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h" - float_format=i128 xm_defines=POSIX tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" xmake_file="pa/x-ada" @@ -877,7 +862,6 @@ hppa1.0-*-hpux10*) hppa*64*-*-hpux11*) xm_defines=POSIX tm_file="pa/pa64-start.h ${tm_file} pa/pa64-regs.h pa/long_double.h pa/elf.h pa/pa-hpux.h pa/pa-hpux11.h pa/pa-64.h pa/pa64-hpux.h" - float_format=i128 tmake_file="pa/t-pa64 pa/t-pa-hpux" xmake_file="pa/x-ada" target_cpu_default="(MASK_PA_11|MASK_PA_20|MASK_GAS)" @@ -895,7 +879,6 @@ hppa*64*-*-hpux11*) hppa1.1-*-hpux11* | hppa2*-*-hpux11*) target_cpu_default="MASK_PA_11" tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h" - float_format=i128 xm_defines=POSIX tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" xmake_file="pa/x-ada" @@ -911,7 +894,6 @@ hppa1.1-*-hpux11* | hppa2*-*-hpux11*) ;; hppa1.0-*-hpux11*) tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h" - float_format=i128 xm_defines=POSIX tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" xmake_file="pa/x-ada" @@ -1000,7 +982,6 @@ i[34567]86-*-darwin*) cxx_target_objs="darwin-c.o" # Darwin linker does collect2 functionality use_collect2=no - float_format=i386 ;; i[34567]86-*-elf*) xm_defines=POSIX @@ -1062,7 +1043,6 @@ x86_64-*-freebsd*) ;; i[34567]86-*-netbsdelf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" - float_format=i386 ;; i[34567]86-*-netbsd*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h" @@ -1071,7 +1051,6 @@ i[34567]86-*-netbsd*) ;; x86_64-*-netbsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h" - float_format=i386 ;; i[34567]86-*-openbsd*) tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h ${tm_file}" @@ -1092,7 +1071,6 @@ i[34567]86-*-linux*aout*) # Intel 80386's running GNU/Linux tmake_file="t-linux-aout i386/t-crtstuff" tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h linux-aout.h i386/linux-aout.h" gnu_ld=yes - float_format=i386 ;; i[34567]86-*-linux*libc1) # Intel 80386's running GNU/Linux # with ELF format using the @@ -1101,7 +1079,6 @@ i[34567]86-*-linux*libc1) # Intel 80386's running GNU/Linux tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 i386/t-crtstuff" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" gnu_ld=yes - float_format=i386 if test x$enable_threads = xyes; then thread_file='single' fi @@ -1111,16 +1088,13 @@ i[34567]86-*-linux*) # Intel 80386's running GNU/Linux # aka GNU/Linux C library 6 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h" tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff" - float_format=i386 ;; x86_64-*-linux*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \ i386/x86-64.h i386/linux64.h" tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff i386/t-linux64" - float_format=i386 ;; i[34567]86-*-gnu*) - float_format=i386 ;; i[34567]86-go32-msdos | i[34567]86-*-go32*) echo "GO32/DJGPP V1.X is no longer supported. Use *-pc-msdosdjgpp for DJGPP V2.X instead." @@ -1133,7 +1107,6 @@ i[34567]86-pc-msdosdjgpp*) gnu_ld=yes gas=yes exeext=.exe - float_format=none case $host in *pc-msdosdjgpp*) target_alias=djgpp ;; @@ -1267,7 +1240,6 @@ i386-*-vsta) # Intel 80386's running VSTa kernel i[34567]86-*-win32) xm_defines=POSIX xm_file=i386/xm-cygwin.h - float_format=i386 tmake_file=i386/t-cygwin tm_file="${tm_file} i386/win32.h" extra_objs=winnt.o @@ -1279,7 +1251,6 @@ i[34567]86-*-win32) i[34567]86-*-pe | i[34567]86-*-cygwin*) xm_defines=POSIX xm_file=i386/xm-cygwin.h - float_format=i386 tmake_file=i386/t-cygwin tm_file=i386/cygwin.h extra_objs=winnt.o @@ -1290,7 +1261,6 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*) ;; i[34567]86-*-mingw32*) tm_file=i386/mingw32.h - float_format=i386 xm_defines=POSIX xm_file=i386/xm-mingw32.h tmake_file="i386/t-cygwin i386/t-mingw32" @@ -1406,19 +1376,16 @@ ia64*-*-elf*) then target_cpu_default="${target_cpu_default}|MASK_GNU_LD" fi - float_format=i386 ;; ia64*-*-freebsd*) tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h" target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" tmake_file="${tmake_file} ia64/t-ia64" - float_format=i386 ;; ia64*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h ia64/sysv4.h ia64/linux.h" tmake_file="t-slibgcc-elf-ver t-linux ia64/t-ia64 ia64/t-glibc" target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" - float_format=i386 ;; ia64*-*-hpux*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h ia64/sysv4.h ia64/hpux.h ia64/hpux_longdouble.h" @@ -1428,7 +1395,6 @@ ia64*-*-hpux*) thread_file='posix' fi use_collect2=no - float_format=i128 c_target_objs="ia64-c.o" cxx_target_objs="ia64-c.o" ;; @@ -1492,7 +1458,6 @@ m68k-atari-sysv4*) # Atari variant of V.4. xm_defines=POSIX tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" - float_format=m68k ;; m68k-apollo-sysv* | m68k-bull-sysv*) # can otherwise be caught by m68k-*-sysv4* @@ -1522,7 +1487,6 @@ m68k-motorola-sysv*) fi gdb_needs_out_file_path=yes extra_parts="crt0.o mcrt0.o" - float_format=m68k ;; m68k-ncr-sysv*) # NCR Tower 32 SVR3 tm_file=m68k/tower-as.h @@ -1548,22 +1512,18 @@ m68k-cbm-sysv4*) # Commodore variant of V.4. xm_defines=POSIX tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" - float_format=m68k ;; m68k-ccur-rtu) tm_file=m68k/ccur-GAS.h use_collect2=yes - float_format=m68k ;; m68k-hp-bsd4.4*) # HP 9000/3xx running 4.4bsd tm_file=m68k/hp3bsd44.h use_collect2=yes - float_format=m68k ;; m68k-hp-bsd*) # HP 9000/3xx running Berkeley Unix tm_file=m68k/hp3bsd.h use_collect2=yes - float_format=m68k ;; m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7. xm_defines=POSIX @@ -1577,7 +1537,6 @@ m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7. fi install_headers_dir=install-headers-cpio use_collect2=yes - float_format=m68k ;; m68k-hp-hpux*) # HP 9000 series 300 xm_defines=POSIX @@ -1591,12 +1550,10 @@ m68k-hp-hpux*) # HP 9000 series 300 fi install_headers_dir=install-headers-cpio use_collect2=yes - float_format=m68k ;; m68k-sun-mach*) tm_file=m68k/sun3mach.h use_collect2=yes - float_format=m68k ;; m68k-sun-sunos3*) if test x$with_fp = xno @@ -1604,7 +1561,6 @@ m68k-sun-sunos3*) tm_file=m68k/sun3n3.h else tm_file=m68k/sun3o3.h - float_format=m68k fi use_collect2=yes ;; @@ -1614,7 +1570,6 @@ m68k-sun-sunos*) # For SunOS 4 (the default). tm_file=m68k/sun3n.h else tm_file=m68k/sun3.h - float_format=m68k fi use_collect2=yes ;; @@ -1622,17 +1577,14 @@ m68k-wrs-vxworks*) tm_file=m68k/vxm68k.h tmake_file=m68k/t-vxworks68 thread_file='vxworks' - float_format=m68k ;; m68k-*-aout*) tmake_file=m68k/t-m68kbare tm_file="m68k/m68k-aout.h libgloss.h" - float_format=m68k ;; m68k-*-coff*) tmake_file=m68k/t-m68kbare tm_file="m68k/m68k-coff.h dbx.h" - float_format=m68k ;; m68020-*-elf* | m68k-*-elf*) tm_file="m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h" @@ -1650,18 +1602,15 @@ m68010-*-netbsdelf* | m68k*-*-netbsdelf*) target_cpu_default="MASK_68020|MASK_68881|MASK_BITFIELD" ;; esac - float_format=m68k ;; m68k*-*-netbsd*) tm_file=m68k/netbsd.h tmake_file=t-netbsd - float_format=m68k use_collect2=yes ;; m68k*-*-openbsd*) # needed to unconfuse gdb tmake_file="t-libc-ok t-openbsd m68k/t-openbsd" - float_format=m68k # we need collect2 until our bug is fixed... use_collect2=yes ;; @@ -1670,13 +1619,11 @@ m68k-*-sysv4*) # Motorola m68k's running system V.4 xm_defines=POSIX tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" - float_format=m68k ;; m68k-*-linux*aout*) # Motorola m68k's running GNU/Linux # with a.out format tm_file=m68k/linux-aout.h tmake_file="t-linux-aout m68k/t-linux-aout" - float_format=m68k gnu_ld=yes ;; m68k-*-linux*libc1) # Motorola m68k's running GNU/Linux @@ -1685,7 +1632,6 @@ m68k-*-linux*libc1) # Motorola m68k's running GNU/Linux tm_file=m68k/linux.h tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 m68k/t-linux" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - float_format=m68k gnu_ld=yes ;; m68k-*-linux*) # Motorola m68k's running GNU/Linux @@ -1694,13 +1640,11 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux tm_file=m68k/linux.h tmake_file="t-slibgcc-elf-ver t-linux m68k/t-linux" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - float_format=m68k gnu_ld=yes ;; m68k-*-psos*) tmake_file=m68k/t-m68kbare tm_file=m68k/m68k-psos.h - float_format=m68k ;; m68k-*-rtemscoff*) # would otherwise be caught by m68k-*-rtems* echo "*** Configuration $machine not supported" 1>&2 @@ -1710,7 +1654,6 @@ m68k-*-rtems*) xm_defines=POSIX tmake_file="m68k/t-m68kbare t-rtems m68k/t-crtstuff" tm_file="m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h" - float_format=m68k extra_parts="crtbegin.o crtend.o" if test x$enable_threads = xyes; then thread_file='rtems' @@ -1938,7 +1881,6 @@ mipstx39-*-elf* | mipstx39el-*-elf*) mmix-knuth-mmixware) ;; mn10200-*-*) - float_format=i32 tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" if test x$stabs = xyes then @@ -2151,14 +2093,12 @@ powerpcle-*-eabi*) rs6000-ibm-aix3.[01]*) xm_defines=POSIX tm_file="${tm_file} rs6000/aix.h rs6000/aix31.h rs6000/xcoff.h" - float_format=none use_collect2=yes ;; rs6000-ibm-aix3.2.[456789]* | powerpc-ibm-aix3.2.[456789]*) xm_defines=POSIX tm_file="${tm_file} rs6000/aix.h rs6000/aix3newas.h rs6000/xcoff.h" tmake_file=rs6000/t-newas - float_format=none use_collect2=yes extra_headers= ;; @@ -2166,7 +2106,6 @@ rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*) xm_defines=POSIX tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h" tmake_file=rs6000/t-newas - float_format=none use_collect2=yes extra_headers= ;; @@ -2174,7 +2113,6 @@ rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*) xm_defines=POSIX tm_file="${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h" tmake_file=rs6000/t-aix43 - float_format=none use_collect2=yes thread_file='aix' extra_headers= @@ -2183,7 +2121,6 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) xm_defines=POSIX tm_file="${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h" tmake_file=rs6000/t-aix43 - float_format=none use_collect2=yes thread_file='aix' extra_headers= @@ -2191,13 +2128,11 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) rs6000-ibm-aix*) xm_defines=POSIX tm_file="${tm_file} rs6000/aix.h rs6000/xcoff.h" - float_format=none use_collect2=yes ;; rs6000-bull-bosx) xm_defines=POSIX tm_file="${tm_file} rs6000/aix.h rs6000/xcoff.h" - float_format=none use_collect2=yes ;; rs6000-*-mach*) @@ -2231,7 +2166,6 @@ sh-*-elf* | sh[2346l]*-*-elf*) ;; esac tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/embed-elf.h" - float_format=sh case $machine in sh64*) tmake_file="${tmake_file} sh/t-sh64" @@ -2252,7 +2186,6 @@ sh-*-rtemself*) xm_defines=POSIX tmake_file="sh/t-sh sh/t-elf t-rtems" tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/embed-elf.h sh/rtemself.h rtems.h" - float_format=sh if test x$enable_threads = xyes; then thread_file='rtems' fi @@ -2261,7 +2194,6 @@ sh-*-rtems*) xm_defines=POSIX tmake_file="sh/t-sh t-rtems" tm_file="${tm_file} sh/coff.h sh/rtems.h rtems.h" - float_format=sh if test x$enable_threads = xyes; then thread_file='rtems' fi @@ -2277,7 +2209,6 @@ sh-*-linux* | sh[2346lbe]*-*-linux*) esac tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h" gas=yes gnu_ld=yes - float_format=sh case $machine in sh64*) tmake_file="${tmake_file} sh/t-sh64" @@ -2326,11 +2257,9 @@ sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ tmake_file="${tmake_file} sh/t-netbsd" ;; esac - float_format=sh ;; sh-*-*) tm_file="${tm_file} sh/coff.h" - float_format=sh ;; sparc-tti-*) tm_file="${tm_file} sparc/pbd.h" @@ -2371,7 +2300,6 @@ sparc64-*-openbsd*) xm_file=sparc/xm-sp64.h gas=yes gnu_ld=yes with_cpu=ultrasparc - float_format=i128 ;; sparc-*-bsd*) tm_file="${tm_file} sparc/bsd.h" @@ -2380,7 +2308,6 @@ sparc-*-chorusos*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h chorus.h" tmake_file="sparc/t-chorus-elf sparc/t-crtfm" extra_parts="crti.o crtn.o crtbegin.o crtend.o" - float_format=i64 case x${enable_threads} in xyes | xpthreads | xposix) thread_file='posix' @@ -2391,8 +2318,6 @@ sparc-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h" tmake_file="sparc/t-elf sparc/t-crtfm" extra_parts="crti.o crtn.o crtbegin.o crtend.o" - #float_format=i128 - float_format=i64 ;; sparc-*-linux*aout*) # Sparc's running GNU/Linux, a.out tm_file="aoutos.h sparc/sparc.h sparc/aout.h sparc/linux-aout.h" @@ -2403,12 +2328,10 @@ sparc-*-linux*libc1*) # Sparc's running GNU/Linux, libc5 tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 sparc/t-crtfm" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" gnu_ld=yes - float_format=sparc ;; sparc-*-linux*) # Sparc's running GNU/Linux, libc6 tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h" tmake_file="t-slibgcc-elf-ver t-linux sparc/t-crtfm" - float_format=sparc ;; sparc-*-lynxos*) if test x$gas = xyes @@ -2428,8 +2351,6 @@ sparc-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/rtemself.h rtems.h" tmake_file="sparc/t-elf sparc/t-crtfm t-rtems" extra_parts="crti.o crtn.o crtbegin.o crtend.o" - #float_format=i128 - float_format=i64 if test x$enable_threads = xyes; then thread_file='rtems' fi @@ -2450,7 +2371,6 @@ sparc64-*-solaris2* | sparcv9-*-solaris2*) tmake_file="$tmake_file t-slibgcc-sld" fi extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o" - float_format=i128 if test x${enable_threads} = x ; then enable_threads=$have_pthread_h if test x${enable_threads} = x ; then @@ -2476,7 +2396,6 @@ sparc-hal-solaris2*) tmake_file="$tmake_file t-slibgcc-sld" fi extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o" - float_format=i128 thread_file='solaris' ;; sparc-*-solaris2*) @@ -2509,7 +2428,6 @@ sparc-*-solaris2*) esac xm_defines=POSIX extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" - float_format=i128 if test x${enable_threads} = x; then enable_threads=$have_pthread_h if test x${enable_threads} = x; then @@ -2598,13 +2516,11 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*) sparc64-*-linux*) # 64-bit Sparc's running GNU/Linux tmake_file="t-slibgcc-elf-ver t-linux sparc/t-linux64 sparc/t-crtfm" tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h" - float_format=sparc ;; sparc64-*-netbsd*) tmake_file="${tmake_file} sparc/t-netbsd64" tm_file="sparc/biarch64.h ${tm_file}" tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" - float_format=sparc ;; strongarm-*-elf*) tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" @@ -2676,12 +2592,10 @@ v850-*-*) vax-*-bsd*) # VAXen running BSD tm_file="${tm_file} vax/bsd.h" use_collect2=yes - float_format=vax ;; vax-*-sysv*) # VAXen running system V tm_file="${tm_file} vax/vaxv.h" xm_defines=POSIX - float_format=vax ;; vax-*-netbsdelf*) echo "GCC does not yet support the ${machine} target"; exit 1 @@ -2689,25 +2603,20 @@ vax-*-netbsdelf*) vax-*-netbsd*) tm_file="${tm_file} netbsd.h netbsd-aout.h vax/netbsd.h" tmake_file=t-netbsd - float_format=vax use_collect2=yes ;; vax-*-openbsd*) tm_file="vax/vax.h vax/openbsd1.h openbsd.h ${tm_file}" - float_format=vax use_collect2=yes ;; vax-*-ultrix*) # VAXen running ultrix tm_file="${tm_file} vax/ultrix.h" - float_format=vax ;; vax-*-vms*) # VAXen running VMS xm_file=vax/xm-vms.h tm_file=vax/vms.h - float_format=vax ;; vax-*-*) # VAX default entry - float_format=vax ;; xscale-*-elf) tm_file="arm/xscale-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" diff --git a/gcc/config/float-c4x.h b/gcc/config/float-c4x.h deleted file mode 100644 index ba621766a69..00000000000 --- a/gcc/config/float-c4x.h +++ /dev/null @@ -1,96 +0,0 @@ -/* float.h for target with TMS320C3x/C4x floating point format */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-126) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 5.8774718E-39F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-39) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 128 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 3.4028235e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 24 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 6 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 1.1920929e-07 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-126) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 5.8774718E-39 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP -39 - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 128 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 3.4028235E+38 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 32 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 8 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 1.19209287e-07L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-126) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 5.8774717535e-39L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-39) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 128 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX .4028236688e+38L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 38 - -#endif /* _FLOAT_H_ */ diff --git a/gcc/config/float-i128.h b/gcc/config/float-i128.h deleted file mode 100644 index c61c82f18ac..00000000000 --- a/gcc/config/float-i128.h +++ /dev/null @@ -1,123 +0,0 @@ -/* float.h for target with IEEE 32, 64 and 128 bit floating point formats */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-125) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 128 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 53 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 15 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-16 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-1021) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 2.2250738585072014e-308 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-307) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 1024 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 1.7976931348623157e+308 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 308 - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 113 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 33 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 1.925929944387235853055977942584927319E-34L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-16381) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 3.362103143112093506262677817321752603E-4932L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-4931) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 16384 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 1.189731495357231765085759326628007016E+4932L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 4932 - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - /* The floating-point expression evaluation method. - -1 indeterminate - 0 evaluate all operations and constants just to the range and - precision of the type - 1 evaluate operations and constants of type float and double - to the range and precision of the double type, evaluate - long double operations and constants to the range and - precision of the long double type - 2 evaluate all operations and constants to the range and - precision of the long double type - */ -# undef FLT_EVAL_METHOD -# define FLT_EVAL_METHOD 0 - - /* Number of decimal digits to enable rounding to the given number of - decimal digits without loss of precision. - if FLT_RADIX == 10^n: #mantissa * log10 (FLT_RADIX) - else : ceil (1 + #mantissa * log10 (FLT_RADIX)) - where #mantissa is the number of bits in the mantissa of the widest - supported floating-point type. - */ -# undef DECIMAL_DIG -# define DECIMAL_DIG 36 - -#endif /* C99 */ - -#endif /* _FLOAT_H_ */ diff --git a/gcc/config/float-i32.h b/gcc/config/float-i32.h deleted file mode 100644 index 3e633d8f38d..00000000000 --- a/gcc/config/float-i32.h +++ /dev/null @@ -1,123 +0,0 @@ -/* float.h for target with only IEEE 32 bit floating point format */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-125) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 128 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 24 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 6 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-125) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 128 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 24 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 6 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-125) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 128 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 38 - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - /* The floating-point expression evaluation method. - -1 indeterminate - 0 evaluate all operations and constants just to the range and - precision of the type - 1 evaluate operations and constants of type float and double - to the range and precision of the double type, evaluate - long double operations and constants to the range and - precision of the long double type - 2 evaluate all operations and constants to the range and - precision of the long double type - */ -# undef FLT_EVAL_METHOD -# define FLT_EVAL_METHOD 0 - - /* Number of decimal digits to enable rounding to the given number of - decimal digits without loss of precision. - if FLT_RADIX == 10^n: #mantissa * log10 (FLT_RADIX) - else : ceil (1 + #mantissa * log10 (FLT_RADIX)) - where #mantissa is the number of bits in the mantissa of the widest - supported floating-point type. - */ -# undef DECIMAL_DIG -# define DECIMAL_DIG 9 - -#endif /* C99 */ - -#endif /* _FLOAT_H_ */ diff --git a/gcc/config/float-i386.h b/gcc/config/float-i386.h deleted file mode 100644 index 6abb4f2b7b2..00000000000 --- a/gcc/config/float-i386.h +++ /dev/null @@ -1,124 +0,0 @@ -/* float.h for target with IEEE 32/64 bit and Intel 386 style 80 bit - floating point formats */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-125) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 128 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 53 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 15 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-16 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-1021) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 2.2250738585072014e-308 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-307) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 1024 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 1.7976931348623157e+308 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 308 - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 64 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 18 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 1.08420217248550443401e-19L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-16381) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 3.36210314311209350626e-4932L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-4931) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 16384 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 1.18973149535723176502e+4932L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 4932 - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - /* The floating-point expression evaluation method. - -1 indeterminate - 0 evaluate all operations and constants just to the range and - precision of the type - 1 evaluate operations and constants of type float and double - to the range and precision of the double type, evaluate - long double operations and constants to the range and - precision of the long double type - 2 evaluate all operations and constants to the range and - precision of the long double type - */ -# undef FLT_EVAL_METHOD -# define FLT_EVAL_METHOD 2 - - /* Number of decimal digits to enable rounding to the given number of - decimal digits without loss of precision. - if FLT_RADIX == 10^n: #mantissa * log10 (FLT_RADIX) - else : ceil (1 + #mantissa * log10 (FLT_RADIX)) - where #mantissa is the number of bits in the mantissa of the widest - supported floating-point type. - */ -# undef DECIMAL_DIG -# define DECIMAL_DIG 21 - -#endif /* C99 */ - -#endif /* _FLOAT_H___ */ diff --git a/gcc/config/float-i64.h b/gcc/config/float-i64.h deleted file mode 100644 index 735f7423635..00000000000 --- a/gcc/config/float-i64.h +++ /dev/null @@ -1,123 +0,0 @@ -/* float.h for target with IEEE 32 bit and 64 bit floating point formats */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-125) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 128 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 53 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 15 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-16 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-1021) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 2.2250738585072014e-308 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-307) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 1024 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 1.7976931348623157e+308 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 308 - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 53 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 15 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 2.2204460492503131e-16L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-1021) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 2.2250738585072014e-308L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-307) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 1024 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 1.7976931348623157e+308L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 308 - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - /* The floating-point expression evaluation method. - -1 indeterminate - 0 evaluate all operations and constants just to the range and - precision of the type - 1 evaluate operations and constants of type float and double - to the range and precision of the double type, evaluate - long double operations and constants to the range and - precision of the long double type - 2 evaluate all operations and constants to the range and - precision of the long double type - */ -# undef FLT_EVAL_METHOD -# define FLT_EVAL_METHOD 0 - - /* Number of decimal digits to enable rounding to the given number of - decimal digits without loss of precision. - if FLT_RADIX == 10^n: #mantissa * log10 (FLT_RADIX) - else : ceil (1 + #mantissa * log10 (FLT_RADIX)) - where #mantissa is the number of bits in the mantissa of the widest - supported floating-point type. - */ -# undef DECIMAL_DIG -# define DECIMAL_DIG 17 - -#endif /* C99 */ - -#endif /* _FLOAT_H_ */ diff --git a/gcc/config/float-m68k.h b/gcc/config/float-m68k.h deleted file mode 100644 index 837126b7de5..00000000000 --- a/gcc/config/float-m68k.h +++ /dev/null @@ -1,127 +0,0 @@ -/* float.h for target with IEEE 32 bit and 64 bit and Motorola style 96 bit - floating point formats */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-125) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 128 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 53 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 15 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-16 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-1021) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 2.2250738585072014e-308 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-307) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 1024 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 1.7976931348623157e+308 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 308 - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 64 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 18 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 1.08420217248550443401e-19L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-16382) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 1.68105157155604675313e-4932L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-4931) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 16384 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 1.18973149535723176502e+4932L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 4932 - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - /* The floating-point expression evaluation method. - -1 indeterminate - 0 evaluate all operations and constants just to the range and - precision of the type - 1 evaluate operations and constants of type float and double - to the range and precision of the double type, evaluate - long double operations and constants to the range and - precision of the long double type - 2 evaluate all operations and constants to the range and - precision of the long double type - */ - -/* ??? FLT_EVAL_METHOD depends on TARGET_68040_ONLY. We do not currently - have a preprocessor token that we can use to tell that this is on. */ -# undef FLT_EVAL_METHOD -# define FLT_EVAL_METHOD -1 - - /* Number of decimal digits to enable rounding to the given number of - decimal digits without loss of precision. - if FLT_RADIX == 10^n: #mantissa * log10 (FLT_RADIX) - else : ceil (1 + #mantissa * log10 (FLT_RADIX)) - where #mantissa is the number of bits in the mantissa of the widest - supported floating-point type. - */ -# undef DECIMAL_DIG -# define DECIMAL_DIG 21 - -#endif /* C99 */ - -#endif /* _FLOAT_H_ */ diff --git a/gcc/config/float-sh.h b/gcc/config/float-sh.h deleted file mode 100644 index 598994b5376..00000000000 --- a/gcc/config/float-sh.h +++ /dev/null @@ -1,160 +0,0 @@ -/* float.h for target sh3e with optional IEEE 32 bit double format */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-125) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 128 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - -#if defined (__SH3E__) || defined (__SH4_SINGLE_ONLY__) - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 24 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 6 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-125) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 128 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 38 - -#else - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 53 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 15 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-16 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-1021) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 2.2250738585072014e-308 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-307) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 1024 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 1.7976931348623157e+308 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 308 - -#endif - -/* Because -m3e and -m4-single-only have 32-bit doubles, we append L - to the doubles below, so that they're not truncated. */ - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 53 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 15 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 2.2204460492503131e-16L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-1021) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 2.2250738585072014e-308L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-307) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 1024 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 1.7976931348623157e+308L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 308 - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - /* The floating-point expression evaluation method. - -1 indeterminate - 0 evaluate all operations and constants just to the range and - precision of the type - 1 evaluate operations and constants of type float and double - to the range and precision of the double type, evaluate - long double operations and constants to the range and - precision of the long double type - 2 evaluate all operations and constants to the range and - precision of the long double type - */ -# undef FLT_EVAL_METHOD -# define FLT_EVAL_METHOD 0 - - /* Number of decimal digits to enable rounding to the given number of - decimal digits without loss of precision. - if FLT_RADIX == 10^n: #mantissa * log10 (FLT_RADIX) - else : ceil (1 + #mantissa * log10 (FLT_RADIX)) - where #mantissa is the number of bits in the mantissa of the widest - supported floating-point type. - */ -# undef DECIMAL_DIG -# define DECIMAL_DIG 17 - -#endif /* C99 */ - -#endif /* _FLOAT_H_ */ diff --git a/gcc/config/float-sparc.h b/gcc/config/float-sparc.h deleted file mode 100644 index 84250e520a6..00000000000 --- a/gcc/config/float-sparc.h +++ /dev/null @@ -1,153 +0,0 @@ -/* float.h for target with IEEE 32, 64 and 128 bit SPARC floating point formats - (on sparc-linux long double is 64 bit, while on sparc64-linux 128 bit) */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-125) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 1.17549435e-38F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-37) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 128 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 3.40282347e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 53 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 15 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-16 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-1021) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 2.2250738585072014e-308 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-307) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 1024 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 1.7976931348623157e+308 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 308 - -#if defined(__sparcv9) || defined(__arch64__) || defined(__LONG_DOUBLE_128__) - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 113 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 33 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 1.925929944387235853055977942584927319E-34L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-16381) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 3.362103143112093506262677817321752603E-4932L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-4931) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 16384 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 1.189731495357231765085759326628007016E+4932L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 4932 - -#else /* sparc32 */ - -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG DBL_MANT_DIG -#undef LDBL_DIG -#define LDBL_DIG DBL_DIG -#undef LDBL_EPSILON -#define LDBL_EPSILON DBL_EPSILON -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP DBL_MIN_EXP -#undef LDBL_MIN -#define LDBL_MIN DBL_MIN -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP DBL_MIN_10_EXP -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP DBL_MAX_EXP -#undef LDBL_MAX -#define LDBL_MAX DBL_MAX -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP DBL_MAX_10_EXP - -#endif /* sparc32 */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - /* The floating-point expression evaluation method. - -1 indeterminate - 0 evaluate all operations and constants just to the range and - precision of the type - 1 evaluate operations and constants of type float and double - to the range and precision of the double type, evaluate - long double operations and constants to the range and - precision of the long double type - 2 evaluate all operations and constants to the range and - precision of the long double type - */ -# undef FLT_EVAL_METHOD -# define FLT_EVAL_METHOD 0 - - /* Number of decimal digits to enable rounding to the given number of - decimal digits without loss of precision. - if FLT_RADIX == 10^n: #mantissa * log10 (FLT_RADIX) - else : ceil (1 + #mantissa * log10 (FLT_RADIX)) - where #mantissa is the number of bits in the mantissa of the widest - supported floating-point type. - */ -# undef DECIMAL_DIG -# if LDBL_MANT_DIG == 53 -# define DECIMAL_DIG 17 -# else -# define DECIMAL_DIG 36 -# endif - -#endif /* C99 */ - -#endif /* _FLOAT_H_ */ diff --git a/gcc/config/float-vax.h b/gcc/config/float-vax.h deleted file mode 100644 index fff577f4fd8..00000000000 --- a/gcc/config/float-vax.h +++ /dev/null @@ -1,159 +0,0 @@ -/* float.h for target with VAX floating point formats */ -#ifndef _FLOAT_H_ -#define _FLOAT_H_ -/* Produced by enquire version 4.3, CWI, Amsterdam */ - - /* Radix of exponent representation */ -#undef FLT_RADIX -#define FLT_RADIX 2 - /* Number of base-FLT_RADIX digits in the significand of a float */ -#undef FLT_MANT_DIG -#define FLT_MANT_DIG 24 - /* Number of decimal digits of precision in a float */ -#undef FLT_DIG -#define FLT_DIG 6 - /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */ -#undef FLT_ROUNDS -#define FLT_ROUNDS 1 - /* Difference between 1.0 and the minimum float greater than 1.0 */ -#undef FLT_EPSILON -#define FLT_EPSILON 1.19209290e-07F - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */ -#undef FLT_MIN_EXP -#define FLT_MIN_EXP (-127) - /* Minimum normalised float */ -#undef FLT_MIN -#define FLT_MIN 2.93873588e-39F - /* Minimum int x such that 10**x is a normalised float */ -#undef FLT_MIN_10_EXP -#define FLT_MIN_10_EXP (-38) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */ -#undef FLT_MAX_EXP -#define FLT_MAX_EXP 127 - /* Maximum float */ -#undef FLT_MAX -#define FLT_MAX 1.70141173e+38F - /* Maximum int x such that 10**x is a representable float */ -#undef FLT_MAX_10_EXP -#define FLT_MAX_10_EXP 38 - -#ifdef __GFLOAT - - /* The GFLOAT numbers may be problematic since gcc uses DFLOAT */ - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 53 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 15 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-016 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-1023) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 5.5626846462680035e-309 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-308) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 1023 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 8.9884656743115775e+307 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 307 - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 53 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 15 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 2.2204460492503131e-016L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-1023) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 5.5626846462680035e-309L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-308) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 1023 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 8.9884656743115775e+307L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 307 - -#else /* !__GFLOAT */ - - /* Number of base-FLT_RADIX digits in the significand of a double */ -#undef DBL_MANT_DIG -#define DBL_MANT_DIG 56 - /* Number of decimal digits of precision in a double */ -#undef DBL_DIG -#define DBL_DIG 16 - /* Difference between 1.0 and the minimum double greater than 1.0 */ -#undef DBL_EPSILON -#define DBL_EPSILON 2.77555756156289135e-17 - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */ -#undef DBL_MIN_EXP -#define DBL_MIN_EXP (-127) - /* Minimum normalised double */ -#undef DBL_MIN -#define DBL_MIN 2.93873587705571877e-39 - /* Minimum int x such that 10**x is a normalised double */ -#undef DBL_MIN_10_EXP -#define DBL_MIN_10_EXP (-38) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */ -#undef DBL_MAX_EXP -#define DBL_MAX_EXP 127 - /* Maximum double */ -#undef DBL_MAX -#define DBL_MAX 1.70141183460469227e+38 - /* Maximum int x such that 10**x is a representable double */ -#undef DBL_MAX_10_EXP -#define DBL_MAX_10_EXP 38 - - /* Number of base-FLT_RADIX digits in the significand of a long double */ -#undef LDBL_MANT_DIG -#define LDBL_MANT_DIG 56 - /* Number of decimal digits of precision in a long double */ -#undef LDBL_DIG -#define LDBL_DIG 16 - /* Difference between 1.0 and the minimum long double greater than 1.0 */ -#undef LDBL_EPSILON -#define LDBL_EPSILON 2.77555756156289135e-17L - /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */ -#undef LDBL_MIN_EXP -#define LDBL_MIN_EXP (-127) - /* Minimum normalised long double */ -#undef LDBL_MIN -#define LDBL_MIN 2.93873587705571877e-39L - /* Minimum int x such that 10**x is a normalised long double */ -#undef LDBL_MIN_10_EXP -#define LDBL_MIN_10_EXP (-38) - /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */ -#undef LDBL_MAX_EXP -#define LDBL_MAX_EXP 127 - /* Maximum long double */ -#undef LDBL_MAX -#define LDBL_MAX 1.70141183460469227e+38L - /* Maximum int x such that 10**x is a representable long double */ -#undef LDBL_MAX_10_EXP -#define LDBL_MAX_10_EXP 38 - -#endif /* __GFLOAT */ -#endif /* _FLOAT_H_ */ diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 0daf4e2f3a2..d6c779dffcf 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -644,6 +644,13 @@ extern int x86_prefetch_sse; packaged in a 128-bit or 96bit entity. */ #define INTEL_EXTENDED_IEEE_FORMAT 1 +/* Set the value of FLT_EVAL_METHOD in float.h. When using only the + FPU, assume that the fpcw is set to extended precision; when using + only SSE, rounding is correct; when using both SSE and the FPU, + the rounding precision is indeterminate, since either may be chosen + apparently at random. */ +#define TARGET_FLT_EVAL_METHOD \ + (TARGET_MIX_SSE_I387 ? -1 : TARGET_SSE_MATH ? 1 : 2) #define SHORT_TYPE_SIZE 16 #define INT_TYPE_SIZE 32 diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index feb27a2da4a..d04b1add533 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -297,6 +297,11 @@ extern int target_flags; /* Define for XFmode extended real floating point support. */ #define LONG_DOUBLE_TYPE_SIZE 96 +/* Set the value of FLT_EVAL_METHOD in float.h. When using 68040 fp + instructions, we get proper intermediate rounding, otherwise we + get extended precision results. */ +#define TARGET_FLT_EVAL_METHOD (TARGET_68040_ONLY ? 0 : 2) + /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. This is true for 68020 insns such as bfins and bfexts. diff --git a/gcc/configure b/gcc/configure index dfe5dd8b95c..37be676fa58 100755 --- a/gcc/configure +++ b/gcc/configure @@ -5014,15 +5014,6 @@ if test x"$dwarf2" = xyes then tm_file="$tm_file tm-dwarf2.h" fi -if test x$float_format = x -then float_format=i64 -fi - -if test $float_format = none -then float_h_file=Makefile.in -else float_h_file=float-$float_format.h -fi - # Say what files are being used for the output code and MD file. echo "Using \`$srcdir/config/$out_file' for machine-specific logic." echo "Using \`$srcdir/config/$md_file' as machine description file." @@ -5222,14 +5213,14 @@ fi echo $ac_n "checking for library containing strerror""... $ac_c" 1>&6 -echo "configure:5226: checking for library containing strerror" >&5 +echo "configure:5217: checking for library containing strerror" >&5 if eval "test \"`echo '$''{'ac_cv_search_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_strerror="no" cat > conftest.$ac_ext <<EOF -#line 5233 "configure" +#line 5224 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5240,7 +5231,7 @@ int main() { strerror() ; return 0; } EOF -if { (eval echo configure:5244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="none required" else @@ -5251,7 +5242,7 @@ rm -f conftest* test "$ac_cv_search_strerror" = "no" && for i in cposix; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 5255 "configure" +#line 5246 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5262,7 +5253,7 @@ int main() { strerror() ; return 0; } EOF -if { (eval echo configure:5266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="-l$i" break @@ -5285,12 +5276,12 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:5289: checking for working const" >&5 +echo "configure:5280: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5294 "configure" +#line 5285 "configure" #include "confdefs.h" int main() { @@ -5339,7 +5330,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:5343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5334: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -5360,12 +5351,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:5364: checking for off_t" >&5 +echo "configure:5355: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5369 "configure" +#line 5360 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -5393,12 +5384,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:5397: checking for size_t" >&5 +echo "configure:5388: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5402 "configure" +#line 5393 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -5428,19 +5419,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:5432: checking for working alloca.h" >&5 +echo "configure:5423: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5437 "configure" +#line 5428 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:5444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -5461,12 +5452,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:5465: checking for alloca" >&5 +echo "configure:5456: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5470 "configure" +#line 5461 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -5494,7 +5485,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:5498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -5526,12 +5517,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:5530: checking whether alloca needs Cray hooks" >&5 +echo "configure:5521: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5535 "configure" +#line 5526 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -5556,12 +5547,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5560: checking for $ac_func" >&5 +echo "configure:5551: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5565 "configure" +#line 5556 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5584,7 +5575,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5611,7 +5602,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:5615: checking stack direction for C alloca" >&5 +echo "configure:5606: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5619,7 +5610,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 5623 "configure" +#line 5614 "configure" #include "confdefs.h" find_stack_direction () { @@ -5638,7 +5629,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:5642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -5661,12 +5652,12 @@ fi echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6 -echo "configure:5665: checking whether we are using the GNU C Library 2.1 or newer" >&5 +echo "configure:5656: checking whether we are using the GNU C Library 2.1 or newer" >&5 if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5670 "configure" +#line 5661 "configure" #include "confdefs.h" #include <features.h> @@ -5702,17 +5693,17 @@ stdlib.h string.h unistd.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5706: checking for $ac_hdr" >&5 +echo "configure:5697: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5711 "configure" +#line 5702 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5716: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5707: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5743,12 +5734,12 @@ getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ strdup strtoul tsearch __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5747: checking for $ac_func" >&5 +echo "configure:5738: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5752 "configure" +#line 5743 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5771,7 +5762,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5812,7 +5803,7 @@ fi echo $ac_n "checking for iconv""... $ac_c" 1>&6 -echo "configure:5816: checking for iconv" >&5 +echo "configure:5807: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5820,7 +5811,7 @@ else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext <<EOF -#line 5824 "configure" +#line 5815 "configure" #include "confdefs.h" #include <stdlib.h> #include <iconv.h> @@ -5830,7 +5821,7 @@ iconv_t cd = iconv_open("",""); iconv_close(cd); ; return 0; } EOF -if { (eval echo configure:5834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else @@ -5842,7 +5833,7 @@ rm -f conftest* am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext <<EOF -#line 5846 "configure" +#line 5837 "configure" #include "confdefs.h" #include <stdlib.h> #include <iconv.h> @@ -5852,7 +5843,7 @@ iconv_t cd = iconv_open("",""); iconv_close(cd); ; return 0; } EOF -if { (eval echo configure:5856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes @@ -5873,13 +5864,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6 EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 -echo "configure:5877: checking for iconv declaration" >&5 +echo "configure:5868: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5883 "configure" +#line 5874 "configure" #include "confdefs.h" #include <stdlib.h> @@ -5898,7 +5889,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:5902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else @@ -5927,19 +5918,19 @@ EOF echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 -echo "configure:5931: checking for nl_langinfo and CODESET" >&5 +echo "configure:5922: checking for nl_langinfo and CODESET" >&5 if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5936 "configure" +#line 5927 "configure" #include "confdefs.h" #include <langinfo.h> int main() { char* cs = nl_langinfo(CODESET); ; return 0; } EOF -if { (eval echo configure:5943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_langinfo_codeset=yes else @@ -5962,19 +5953,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:5966: checking for LC_MESSAGES" >&5 +echo "configure:5957: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5971 "configure" +#line 5962 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:5978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -5995,7 +5986,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:5999: checking whether NLS is requested" >&5 +echo "configure:5990: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -6018,7 +6009,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:6022: checking whether included gettext is requested" >&5 +echo "configure:6013: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -6038,17 +6029,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:6042: checking for libintl.h" >&5 +echo "configure:6033: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6047 "configure" +#line 6038 "configure" #include "confdefs.h" #include <libintl.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6052: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6069,12 +6060,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then EOF echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 -echo "configure:6073: checking for GNU gettext in libc" >&5 +echo "configure:6064: checking for GNU gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6078 "configure" +#line 6069 "configure" #include "confdefs.h" #include <libintl.h> extern int _nl_msg_cat_cntr; @@ -6083,7 +6074,7 @@ bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:6087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libc=yes else @@ -6099,14 +6090,14 @@ echo "$ac_t""$gt_cv_func_gnugettext1_libc" 1>&6 if test "$gt_cv_func_gnugettext1_libc" != "yes"; then echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 -echo "configure:6103: checking for GNU gettext in libintl" >&5 +echo "configure:6094: checking for GNU gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" cat > conftest.$ac_ext <<EOF -#line 6110 "configure" +#line 6101 "configure" #include "confdefs.h" #include <libintl.h> extern int _nl_msg_cat_cntr; @@ -6115,7 +6106,7 @@ bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:6119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libintl=yes else @@ -6148,12 +6139,12 @@ EOF for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6152: checking for $ac_func" >&5 +echo "configure:6143: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6157 "configure" +#line 6148 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6176,7 +6167,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6205,7 +6196,7 @@ done # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6209: checking for $ac_word" >&5 +echo "configure:6200: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6239,7 +6230,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6243: checking for $ac_word" >&5 +echo "configure:6234: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6276,7 +6267,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6280: checking for $ac_word" >&5 +echo "configure:6271: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6326,7 +6317,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6330: checking for $ac_word" >&5 +echo "configure:6321: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6360,7 +6351,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6364: checking for $ac_word" >&5 +echo "configure:6355: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6396,7 +6387,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6400: checking for $ac_word" >&5 +echo "configure:6391: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6468,7 +6459,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6472: checking for $ac_word" >&5 +echo "configure:6463: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6501,7 +6492,7 @@ done ac_verc_fail=yes else echo $ac_n "checking version of bison""... $ac_c" 1>&6 -echo "configure:6505: checking version of bison" >&5 +echo "configure:6496: checking version of bison" >&5 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -6546,7 +6537,7 @@ EOF if test "x$CATOBJEXT" != x; then echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:6550: checking for catalogs to be installed" >&5 +echo "configure:6541: checking for catalogs to be installed" >&5 # Look for .po and .gmo files in the source directory. CATALOGS= XLINGUAS= @@ -6604,7 +6595,7 @@ fi case $host_os in win32 | pe | cygwin* | mingw32* | uwin*) echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6 -echo "configure:6608: checking whether windows registry support is requested" >&5 +echo "configure:6599: checking whether windows registry support is requested" >&5 if test "x$enable_win32_registry" != xno; then cat >> confdefs.h <<\EOF #define ENABLE_WIN32_REGISTRY 1 @@ -6613,14 +6604,14 @@ EOF echo "$ac_t""yes" 1>&6 echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6 -echo "configure:6617: checking for library containing RegOpenKeyExA" >&5 +echo "configure:6608: checking for library containing RegOpenKeyExA" >&5 if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_RegOpenKeyExA="no" cat > conftest.$ac_ext <<EOF -#line 6624 "configure" +#line 6615 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6631,7 +6622,7 @@ int main() { RegOpenKeyExA() ; return 0; } EOF -if { (eval echo configure:6635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="none required" else @@ -6642,7 +6633,7 @@ rm -f conftest* test "$ac_cv_search_RegOpenKeyExA" = "no" && for i in advapi32; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <<EOF -#line 6646 "configure" +#line 6637 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6653,7 +6644,7 @@ int main() { RegOpenKeyExA() ; return 0; } EOF -if { (eval echo configure:6657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="-l$i" break @@ -6695,7 +6686,7 @@ esac if test "x$enable_win32_registry" != xno; then echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6 -echo "configure:6699: checking registry key on windows hosts" >&5 +echo "configure:6690: checking registry key on windows hosts" >&5 cat >> confdefs.h <<EOF #define WIN32_REGISTRY_KEY "$gcc_cv_win32_registry_key" EOF @@ -6909,7 +6900,7 @@ fi # Figure out what assembler we will be using. echo $ac_n "checking what assembler to use""... $ac_c" 1>&6 -echo "configure:6913: checking what assembler to use" >&5 +echo "configure:6904: checking what assembler to use" >&5 gcc_cv_as= gcc_cv_gas_major_version= gcc_cv_gas_minor_version= @@ -7003,7 +6994,7 @@ fi # Figure out what linker we will be using. echo $ac_n "checking what linker to use""... $ac_c" 1>&6 -echo "configure:7007: checking what linker to use" >&5 +echo "configure:6998: checking what linker to use" >&5 gcc_cv_ld= gcc_cv_gld_major_version= gcc_cv_gld_minor_version= @@ -7096,7 +7087,7 @@ fi # Figure out what nm we will be using. echo $ac_n "checking what nm to use""... $ac_c" 1>&6 -echo "configure:7100: checking what nm to use" >&5 +echo "configure:7091: checking what nm to use" >&5 if test -x nm$host_exeext; then gcc_cv_nm=./nm$host_exeext elif test "x$program_prefix" != xNONE; then @@ -7108,7 +7099,7 @@ echo "$ac_t""$gcc_cv_nm" 1>&6 # Figure out what objdump we will be using. echo $ac_n "checking what objdump to use""... $ac_c" 1>&6 -echo "configure:7112: checking what objdump to use" >&5 +echo "configure:7103: checking what objdump to use" >&5 if test -x objdump$host_exeext; then gcc_cv_objdump=./objdump$host_exeext elif test "x$program_prefix" != xNONE; then @@ -7120,7 +7111,7 @@ echo "$ac_t""$gcc_cv_objdump" 1>&6 # Figure out what assembler alignment features are present. echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6 -echo "configure:7124: checking assembler alignment features" >&5 +echo "configure:7115: checking assembler alignment features" >&5 gcc_cv_as_alignment_features=none if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then # Gas version 2.6 and later support for .balign and .p2align. @@ -7168,7 +7159,7 @@ fi echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6 echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6 -echo "configure:7172: checking assembler subsection support" >&5 +echo "configure:7163: checking assembler subsection support" >&5 gcc_cv_as_subsections=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then @@ -7208,7 +7199,7 @@ fi echo "$ac_t""$gcc_cv_as_subsections" 1>&6 echo $ac_n "checking assembler weak support""... $ac_c" 1>&6 -echo "configure:7212: checking assembler weak support" >&5 +echo "configure:7203: checking assembler weak support" >&5 gcc_cv_as_weak=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then @@ -7231,7 +7222,7 @@ fi echo "$ac_t""$gcc_cv_as_weak" 1>&6 echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6 -echo "configure:7235: checking assembler hidden support" >&5 +echo "configure:7226: checking assembler hidden support" >&5 gcc_cv_as_hidden=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 \ @@ -7303,7 +7294,7 @@ esac echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6 -echo "configure:7307: checking assembler leb128 support" >&5 +echo "configure:7298: checking assembler leb128 support" >&5 gcc_cv_as_leb128=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then @@ -7348,7 +7339,7 @@ fi echo "$ac_t""$gcc_cv_as_leb128" 1>&6 echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6 -echo "configure:7352: checking assembler eh_frame optimization" >&5 +echo "configure:7343: checking assembler eh_frame optimization" >&5 gcc_cv_as_eh_frame=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then @@ -7429,7 +7420,7 @@ fi echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6 echo $ac_n "checking assembler section merging support""... $ac_c" 1>&6 -echo "configure:7433: checking assembler section merging support" >&5 +echo "configure:7424: checking assembler section merging support" >&5 gcc_cv_as_shf_merge=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then @@ -7452,7 +7443,7 @@ fi echo "$ac_t""$gcc_cv_as_shf_merge" 1>&6 echo $ac_n "checking assembler thread-local storage support""... $ac_c" 1>&6 -echo "configure:7456: checking assembler thread-local storage support" >&5 +echo "configure:7447: checking assembler thread-local storage support" >&5 gcc_cv_as_tls=no conftest_s= tls_first_major= @@ -7544,7 +7535,7 @@ case "$target" in # All TARGET_ABI_OSF targets. alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*) echo $ac_n "checking assembler supports explicit relocations""... $ac_c" 1>&6 -echo "configure:7548: checking assembler supports explicit relocations" >&5 +echo "configure:7539: checking assembler supports explicit relocations" >&5 if eval "test \"`echo '$''{'gcc_cv_as_explicit_relocs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7594,7 +7585,7 @@ EOF ;; sparc*-*-*) echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6 -echo "configure:7598: checking assembler .register pseudo-op support" >&5 +echo "configure:7589: checking assembler .register pseudo-op support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7622,7 +7613,7 @@ EOF fi echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6 -echo "configure:7626: checking assembler supports -relax" >&5 +echo "configure:7617: checking assembler supports -relax" >&5 if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7650,7 +7641,7 @@ EOF fi echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6 -echo "configure:7654: checking assembler and linker support unaligned pc related relocs" >&5 +echo "configure:7645: checking assembler and linker support unaligned pc related relocs" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7677,7 +7668,7 @@ EOF fi echo $ac_n "checking assembler and linker support unaligned pc related relocs against hidden symbols""... $ac_c" 1>&6 -echo "configure:7681: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5 +echo "configure:7672: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7718,7 +7709,7 @@ EOF if test "x$gcc_cv_as_flags64" != xno; then echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6 -echo "configure:7722: checking for assembler offsetable %lo() support" >&5 +echo "configure:7713: checking for assembler offsetable %lo() support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7758,7 +7749,7 @@ EOF i[34567]86-*-* | x86_64-*-*) echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 -echo "configure:7762: checking assembler instructions" >&5 +echo "configure:7753: checking assembler instructions" >&5 gcc_cv_as_instructions= if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then @@ -7785,7 +7776,7 @@ EOF echo "$ac_t""$gcc_cv_as_instructions" 1>&6 echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6 -echo "configure:7789: checking assembler GOTOFF in data directives" >&5 +echo "configure:7780: checking assembler GOTOFF in data directives" >&5 gcc_cv_as_gotoff_in_data=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x then @@ -7815,7 +7806,7 @@ EOF esac echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6 -echo "configure:7819: checking assembler dwarf2 debug_line support" >&5 +echo "configure:7810: checking assembler dwarf2 debug_line support" >&5 gcc_cv_as_dwarf2_debug_line=no # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any @@ -7871,7 +7862,7 @@ fi echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6 echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6 -echo "configure:7875: checking assembler --gdwarf2 support" >&5 +echo "configure:7866: checking assembler --gdwarf2 support" >&5 gcc_cv_as_gdwarf2_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then @@ -7900,7 +7891,7 @@ fi echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6 echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6 -echo "configure:7904: checking assembler --gstabs support" >&5 +echo "configure:7895: checking assembler --gstabs support" >&5 gcc_cv_as_gstabs_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then @@ -7928,7 +7919,7 @@ fi echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6 echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6 -echo "configure:7932: checking linker PT_GNU_EH_FRAME support" >&5 +echo "configure:7923: checking linker PT_GNU_EH_FRAME support" >&5 gcc_cv_ld_eh_frame_hdr=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then @@ -7952,7 +7943,7 @@ echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6 case "$target" in mips*-*-*) echo $ac_n "checking whether libgloss uses STARTUP directives consistently""... $ac_c" 1>&6 -echo "configure:7956: checking whether libgloss uses STARTUP directives consistently" >&5 +echo "configure:7947: checking whether libgloss uses STARTUP directives consistently" >&5 gcc_cv_mips_libgloss_startup=no gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss if test "x$exec_prefix" = xNONE; then @@ -8156,7 +8147,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:8160: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:8151: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -8422,7 +8413,6 @@ fi -# Nothing to do for FLOAT_H, float_format already handled. objdir=`${PWDCMD-pwd}` diff --git a/gcc/configure.in b/gcc/configure.in index 8316af5ca26..0d29bc07b8a 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -798,15 +798,6 @@ if test x"$dwarf2" = xyes then tm_file="$tm_file tm-dwarf2.h" fi -if test x$float_format = x -then float_format=i64 -fi - -if test $float_format = none -then float_h_file=Makefile.in -else float_h_file=float-$float_format.h -fi - # Say what files are being used for the output code and MD file. echo "Using \`$srcdir/config/$out_file' for machine-specific logic." echo "Using \`$srcdir/config/$md_file' as machine description file." @@ -2649,7 +2640,6 @@ else fi) AC_SUBST(slibdir) -# Nothing to do for FLOAT_H, float_format already handled. objdir=`${PWDCMD-pwd}` AC_SUBST(objdir) diff --git a/gcc/defaults.h b/gcc/defaults.h index 157aa015cf2..760241d1a24 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -559,6 +559,10 @@ You Lose! You must define PREFERRED_DEBUGGING_TYPE! && !ROUND_TOWARDS_ZERO) #endif +#ifndef TARGET_FLT_EVAL_METHOD +#define TARGET_FLT_EVAL_METHOD 0 +#endif + #ifndef HOT_TEXT_SECTION_NAME #define HOT_TEXT_SECTION_NAME "text.hot" #endif diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index be3f9b475b7..770faefbacc 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -1540,8 +1540,18 @@ the largest value that @code{LONG_DOUBLE_TYPE_SIZE} can have at run-time. This is used in @code{cpp}. @findex INTEL_EXTENDED_IEEE_FORMAT +@item INTEL_EXTENDED_IEEE_FORMAT Define this macro to be 1 if the target machine uses 80-bit floating-point values with 128-bit size and alignment. This is used in @file{real.c}. +This also distinguishes the Intel 80-bit floating-point format from the +Motorola 96-bit floating-point format. + +@findex TARGET_FLT_EVAL_METHOD +@item TARGET_FLT_EVAL_METHOD +A C expression for the value for @code{FLT_EVAL_METHOD} in @file{float.h}, +assuming, if applicable, that the floating-point control word is in its +default state. If you do not define this macro the value of +@code{FLT_EVAL_METHOD} will be zero. @findex WIDEST_HARDWARE_FP_SIZE @item WIDEST_HARDWARE_FP_SIZE diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h new file mode 100644 index 00000000000..2f517f1d79a --- /dev/null +++ b/gcc/ginclude/float.h @@ -0,0 +1,162 @@ +/* Copyright (C) 2002 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* As a special exception, if you include this header file into source + files compiled by GCC, this header file does not by itself cause + the resulting executable to be covered by the GNU General Public + License. This exception does not however invalidate any other + reasons why the executable file might be covered by the GNU General + Public License. */ + +/* + * ISO C Standard: 5.2.4.2.2 Characteristics of floating types <float.h> + */ + +#ifndef _FLOAT_H___ +#define _FLOAT_H___ + +/* Radix of exponent representation, b. */ +#undef FLT_RADIX +#define FLT_RADIX __FLT_RADIX__ + +/* Number of base-FLT_RADIX digits in the significand, p. */ +#undef FLT_MANT_DIG +#undef DBL_MANT_DIG +#undef LDBL_MANT_DIG +#define FLT_MANT_DIG __FLT_MANT_DIG__ +#define DBL_MANT_DIG __DBL_MANT_DIG__ +#define LDBL_MANT_DIG __LDBL_MANT_DIG__ + +/* Number of decimal digits, q, such that any floating-point number with q + decimal digits can be rounded into a floating-point number with p radix b + digits and back again without change to the q decimal digits, + + p * log10(b) if b is a power of 10 + floor((p - 1) * log10(b)) otherwise +*/ +#undef FLT_DIG +#undef DBL_DIG +#undef LDBL_DIG +#define FLT_DIG __FLT_DIG__ +#define DBL_DIG __DBL_DIG__ +#define LDBL_DIG __LDBL_DIG__ + +/* Minimum int x such that FLT_RADIX**(x-1) is a normalised float, emin */ +#undef FLT_MIN_EXP +#undef DBL_MIN_EXP +#undef LDBL_MIN_EXP +#define FLT_MIN_EXP __FLT_MIN_EXP__ +#define DBL_MIN_EXP __DBL_MIN_EXP__ +#define LDBL_MIN_EXP __LDBL_MIN_EXP__ + +/* Minimum negative integer such that 10 raised to that power is in the + range of normalized floating-point numbers, + + ceil(log10(b) * (emin - 1)) +*/ +#undef FLT_MIN_10_EXP +#undef DBL_MIN_10_EXP +#undef LDBL_MIN_10_EXP +#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ +#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ +#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ + +/* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax. */ +#undef FLT_MAX_EXP +#undef DBL_MAX_EXP +#undef LDBL_MAX_EXP +#define FLT_MAX_EXP __FLT_MAX_EXP__ +#define DBL_MAX_EXP __DBL_MAX_EXP__ +#define LDBL_MAX_EXP __LDBL_MAX_EXP__ + +/* Maximum integer such that 10 raised to that power is in the range of + representable finite floating-point numbers, + + floor(log10((1 - b**-p) * b**emax)) +*/ +#undef FLT_MAX_10_EXP +#undef DBL_MAX_10_EXP +#undef LDBL_MAX_10_EXP +#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ +#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ +#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ + +/* Maximum representable finite floating-point number, + + (1 - b**-p) * b**emax +*/ +#undef FLT_MAX +#undef DBL_MAX +#undef LDBL_MAX +#define FLT_MAX __FLT_MAX__ +#define DBL_MAX __DBL_MAX__ +#define LDBL_MAX __LDBL_MAX__ + +/* The difference between 1 and the least value greater than 1 that is + representable in the given floating point type, b**1-p. */ +#undef FLT_EPSILON +#undef DBL_EPSILON +#undef LDBL_EPSILON +#define FLT_EPSILON __FLT_EPSILON__ +#define DBL_EPSILON __DBL_EPSILON__ +#define LDBL_EPSILON __LDBL_EPSILON__ + +/* Minimum normalized positive floating-point number, b**(emin - 1). */ +#undef FLT_MIN +#undef DBL_MIN +#undef LDBL_MIN +#define FLT_MIN __FLT_MIN__ +#define DBL_MIN __DBL_MIN__ +#define LDBL_MIN __LDBL_MIN__ + +/* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown. */ +/* ??? This is supposed to change with calls to fesetround in <fenv.h>. */ +#undef FLT_ROUNDS +#define FLT_ROUNDS 1 + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +/* The floating-point expression evaluation method. + -1 indeterminate + 0 evaluate all operations and constants just to the range and + precision of the type + 1 evaluate operations and constants of type float and double + to the range and precision of the double type, evaluate + long double operations and constants to the range and + precision of the long double type + 2 evaluate all operations and constants to the range and + precision of the long double type + + ??? This ought to change with the setting of the fp control word; + the value provided by the compiler assumes the widest setting. */ +#undef FLT_EVAL_METHOD +#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ + +/* Number of decimal digits, n, such that any floating-point number in the + widest supported floating type with pmax radix b digits can be rounded + to a floating-point number with n decimal digits and back again without + change to the value, + + pmax * log10(b) if b is a power of 10 + ceil(1 + pmax * log10(b)) otherwise +*/ +#undef DECIMAL_DIG +#define DECIMAL_DIG __DECIMAL_DIG__ + +#endif /* C99 */ +#endif /* _FLOAT_H___ */ |