diff --git a/gcc/config/float-m68k.h b/gcc/config/float-m68k.h new file mode 100644 index 00000000000..b36d447cb87 --- /dev/null +++ b/gcc/config/float-m68k.h @@ -0,0 +1,97 @@ +/* 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 + +#endif /* _FLOAT_H_ */ diff --git a/gcc/configure.in b/gcc/configure.in index 3d97e053d8d..d79c4dd0f82 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -1304,12 +1304,14 @@ for machine in $build $host $target; do tm_file="${tm_file} m68k/auxas.h" fi tm_file="${tm_file} m68k/a-ux.h" + float_format=m68k ;; m68k-apollo-*) tm_file=m68k/apollo68.h xmake_file=m68k/x-apollo68 use_collect2=yes extra_headers=math-68881.h + float_format=m68k ;; m68k-altos-sysv*) # Altos 3068 if [[ x$gas = xyes ]] @@ -1347,6 +1349,7 @@ for machine in $build $host $target; do tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h + float_format=m68k ;; m68k-motorola-sysv*) tm_file=m68k/mot3300.h @@ -1375,6 +1378,7 @@ for machine in $build $host $target; do gdb_needs_out_file_path=yes extra_parts="crt0.o mcrt0.o" extra_headers=math-68881.h + float_format=m68k ;; m68k-ncr-sysv*) # NCR Tower 32 SVR3 tm_file=m68k/tower-as.h @@ -1412,23 +1416,27 @@ for machine in $build $host $target; do tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h + float_format=m68k ;; m68k-ccur-rtu) tm_file=m68k/ccur-GAS.h xmake_file=m68k/x-ccur extra_headers=math-68881.h use_collect2=yes + float_format=m68k ;; m68k-hp-bsd4.4*) # HP 9000/3xx running 4.4bsd tm_file=m68k/hp3bsd44.h xmake_file=m68k/x-hp3bsd44 use_collect2=yes extra_headers=math-68881.h + float_format=m68k ;; m68k-hp-bsd*) # HP 9000/3xx running Berkeley Unix tm_file=m68k/hp3bsd.h use_collect2=yes extra_headers=math-68881.h + float_format=m68k ;; m68k-isi-bsd*) if [[ x$with_fp = xno ]] @@ -1436,6 +1444,7 @@ for machine in $build $host $target; do tm_file=m68k/isi-nfp.h else tm_file=m68k/isi.h + float_format=m68k fi use_collect2=yes extra_headers=math-68881.h @@ -1454,6 +1463,7 @@ for machine in $build $host $target; do install_headers_dir=install-headers-cpio use_collect2=yes extra_headers=math-68881.h + float_format=m68k ;; m68k-hp-hpux*) # HP 9000 series 300 xm_file="xm_alloca.h ${xm_file}" @@ -1469,11 +1479,13 @@ for machine in $build $host $target; do install_headers_dir=install-headers-cpio use_collect2=yes extra_headers=math-68881.h + float_format=m68k ;; m68k-sun-mach*) tm_file=m68k/sun3mach.h use_collect2=yes extra_headers=math-68881.h + float_format=m68k ;; m68k-sony-newsos3*) if [[ x$gas = xyes ]] @@ -1484,6 +1496,7 @@ for machine in $build $host $target; do fi use_collect2=yes extra_headers=math-68881.h + float_format=m68k ;; m68k-sony-bsd* | m68k-sony-newsos*) if [[ x$gas = xyes ]] @@ -1494,6 +1507,7 @@ for machine in $build $host $target; do fi use_collect2=yes extra_headers=math-68881.h + float_format=m68k ;; m68k-next-nextstep2*) tm_file=m68k/next21.h @@ -1503,6 +1517,7 @@ for machine in $build $host $target; do extra_objs=nextstep.o extra_headers=math-68881.h use_collect2=yes + float_format=m68k ;; m68k-next-nextstep3*) tm_file=m68k/next.h @@ -1511,6 +1526,7 @@ for machine in $build $host $target; do xmake_file=m68k/x-next extra_objs=nextstep.o extra_headers=math-68881.h + float_format=m68k if [[ x$enable_threads = xyes ]]; then thread_file='mach' fi @@ -1521,6 +1537,7 @@ for machine in $build $host $target; do tm_file=m68k/sun3n3.h else tm_file=m68k/sun3o3.h + float_format=m68k fi use_collect2=yes extra_headers=math-68881.h @@ -1531,6 +1548,7 @@ for machine in $build $host $target; do tm_file=m68k/sun3n.h else tm_file=m68k/sun3.h + float_format=m68k fi use_collect2=yes extra_headers=math-68881.h @@ -1540,16 +1558,19 @@ for machine in $build $host $target; do tmake_file=m68k/t-vxworks68 extra_headers=math-68881.h thread_file='vxworks' + float_format=m68k ;; m68k-*-aout*) tmake_file=m68k/t-m68kbare tm_file="m68k/m68k-aout.h libgloss.h" extra_headers=math-68881.h + float_format=m68k ;; m68k-*-coff*) tmake_file=m68k/t-m68kbare tm_file="m68k/m68k-coff.h dbx.h libgloss.h" extra_headers=math-68881.h + float_format=m68k ;; m68k-*-lynxos*) if [[ x$gas = xyes ]] @@ -1562,12 +1583,14 @@ for machine in $build $host $target; do xmake_file=x-lynx tmake_file=m68k/t-lynx extra_headers=math-68881.h + float_format=m68k ;; m68k-*-netbsd*) tm_file=m68k/netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.wrap tmake_file=t-netbsd + float_format=m68k ;; m68k-*-sysv3*) # Motorola m68k's running system V.3 xm_file="xm-alloca.h ${xm_file}" @@ -1575,6 +1598,7 @@ for machine in $build $host $target; do xmake_file=m68k/x-m68kv extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h + float_format=m68k ;; m68k-*-sysv4*) # Motorola m68k's running system V.4 tm_file=m68k/m68kv4.h @@ -1583,6 +1607,7 @@ for machine in $build $host $target; do tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h + float_format=m68k ;; m68k-*-linux-gnuaout*) # Motorola m68k's running GNU/Linux # with a.out format @@ -1591,6 +1616,7 @@ for machine in $build $host $target; do tmake_file="t-linux-aout m68k/t-linux-aout" fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h + float_format=m68k gnu_ld=yes ;; m68k-*-linux-gnulibc1) # Motorola m68k's running GNU/Linux @@ -1602,6 +1628,7 @@ for machine in $build $host $target; do extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h + float_format=m68k gnu_ld=yes ;; m68k-*-linux-gnu*) # Motorola m68k's running GNU/Linux @@ -1613,6 +1640,7 @@ for machine in $build $host $target; do extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h + float_format=m68k gnu_ld=yes if [[ x$enable_threads = xyes ]]; then thread_file='posix' @@ -1622,11 +1650,13 @@ for machine in $build $host $target; do tmake_file=m68k/t-m68kbare tm_file=m68k/m68k-psos.h extra_headers=math-68881.h + float_format=m68k ;; m68k-*-rtems*) tmake_file="m68k/t-m68kbare t-rtems" tm_file=m68k/rtems.h extra_headers=math-68881.h + float_format=m68k ;; m88k-dg-dgux*)