From 45dcc026e55601992454c81ff5c171a58a5ac4b9 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 1 Apr 2004 18:05:22 +0200 Subject: [PATCH] sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0. * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0. * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS. * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS. * config.gcc (sparc-*-linux*): Revert 2004-03-23 change. * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise. * config/sparc/t-linux: Removed. From-SVN: r80295 --- gcc/ChangeLog | 13 +++++++++++++ gcc/config.gcc | 2 +- gcc/config/sparc/linux.h | 3 +++ gcc/config/sparc/linux64.h | 3 +++ gcc/config/sparc/sol2.h | 7 +++++-- gcc/config/sparc/sparc.c | 7 +++++++ gcc/config/sparc/sparc.h | 5 +++-- gcc/config/sparc/t-linux | 2 -- gcc/config/sparc/t-linux64 | 4 ---- 9 files changed, 35 insertions(+), 11 deletions(-) delete mode 100644 gcc/config/sparc/t-linux diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d49190d..fc6662c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,18 @@ 2004-04-01 Jakub Jelinek + * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0. + * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. + * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. + * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. + (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS. + * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs + with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS. + * config.gcc (sparc-*-linux*): Revert 2004-03-23 change. + * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise. + * config/sparc/t-linux: Removed. + +2004-04-01 Jakub Jelinek + PR c++/14755 * fold-const.c (fold) : Properly compute newconst in "bitfld++ == const" to "++bitfld == const + incr" transformations. diff --git a/gcc/config.gcc b/gcc/config.gcc index 9be962c..2bf15f5 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1808,7 +1808,7 @@ sparc-*-elf*) ;; 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="${tmake_file} sparc/t-linux sparc/t-crtfm" + tmake_file="${tmake_file} sparc/t-crtfm" ;; 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" diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h index 187dff6..ecb4731 100644 --- a/gcc/config/sparc/linux.h +++ b/gcc/config/sparc/linux.h @@ -227,6 +227,9 @@ do { \ #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64 #endif +#undef DITF_CONVERSION_LIBFUNCS +#define DITF_CONVERSION_LIBFUNCS 1 + #if !defined(USE_GNULIBC_1) && defined(HAVE_LD_EH_FRAME_HDR) #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " #endif diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h index 5cb84e5..9820156 100644 --- a/gcc/config/sparc/linux64.h +++ b/gcc/config/sparc/linux64.h @@ -305,6 +305,9 @@ do { \ /* #define DWARF_OFFSET_SIZE PTR_SIZE */ +#undef DITF_CONVERSION_LIBFUNCS +#define DITF_CONVERSION_LIBFUNCS 1 + #if defined(HAVE_LD_EH_FRAME_HDR) #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " #endif diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h index fcfc759..483e89c 100644 --- a/gcc/config/sparc/sol2.h +++ b/gcc/config/sparc/sol2.h @@ -143,8 +143,11 @@ Boston, MA 02111-1307, USA. */ #undef TARGET_BUGGY_QP_LIB #define TARGET_BUGGY_QP_LIB 1 -#undef SOLARIS_CONVERSION_LIBFUNCS -#define SOLARIS_CONVERSION_LIBFUNCS 1 +#undef SUN_CONVERSION_LIBFUNCS +#define SUN_CONVERSION_LIBFUNCS 1 + +#undef DITF_CONVERSION_LIBFUNCS +#define DITF_CONVERSION_LIBFUNCS 1 #undef SUN_INTEGER_MULTIPLY_64 #define SUN_INTEGER_MULTIPLY_64 1 diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index bdb9ed4..30b789b 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -8082,6 +8082,13 @@ sparc_init_libfuncs (void) set_conv_libfunc (ufix_optab, SImode, TFmode, "_Q_qtou"); set_conv_libfunc (sfloat_optab, TFmode, SImode, "_Q_itoq"); + if (DITF_CONVERSION_LIBFUNCS) + { + set_conv_libfunc (sfix_optab, DImode, TFmode, "_Q_qtoll"); + set_conv_libfunc (ufix_optab, DImode, TFmode, "_Q_qtoull"); + set_conv_libfunc (sfloat_optab, TFmode, DImode, "_Q_lltoq"); + } + if (SUN_CONVERSION_LIBFUNCS) { set_conv_libfunc (sfix_optab, DImode, SFmode, "__ftoll"); diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 768525b..58eb4c8 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -2255,8 +2255,9 @@ do { \ /* Assume by default that we do not have the Solaris-specific conversion routines nor 64-bit integer multiply and divide routines. */ -#define SUN_CONVERSION_LIBFUNCS 0 -#define SUN_INTEGER_MULTIPLY_64 0 +#define SUN_CONVERSION_LIBFUNCS 0 +#define DITF_CONVERSION_LIBFUNCS 0 +#define SUN_INTEGER_MULTIPLY_64 0 /* Compute extra cost of moving data between one register class and another. */ diff --git a/gcc/config/sparc/t-linux b/gcc/config/sparc/t-linux deleted file mode 100644 index 30a3cca..0000000 --- a/gcc/config/sparc/t-linux +++ /dev/null @@ -1,2 +0,0 @@ -# Compile libgcc2.a with pic and IEEE quad long double. -TARGET_LIBGCC2_CFLAGS = -fPIC -mlong-double-128 diff --git a/gcc/config/sparc/t-linux64 b/gcc/config/sparc/t-linux64 index d21e149..3e3fa4c 100644 --- a/gcc/config/sparc/t-linux64 +++ b/gcc/config/sparc/t-linux64 @@ -17,7 +17,3 @@ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \ CRTSTUFF_T_CFLAGS = `if test x$$($(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) \ -print-multi-os-directory) \ = x../lib64; then echo -mcmodel=medany; fi` - -# Compile libgcc2.a with pic and for -m32 also IEEE quad long double. -# -m64 implies -mlong-double-128, so this is no change for 64-bit. -TARGET_LIBGCC2_CFLAGS = -fPIC -mlong-double-128 -- 2.7.4