From: David Edelsohn Date: Sat, 28 Jan 2006 19:49:43 +0000 (+0000) Subject: aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float and -mlong-double-128 are incompat... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3d538baeb51b697b4e68b74037bae1489249ae98;p=gcc.git aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float and -mlong-double-128 are incompatible. * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float and -mlong-double-128 are incompatible. * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c. (TARGET_LIBGCC2_CFLAGS): Define. * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same. (TARGET_LIBGCC2_CFLAGS): Same. * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX. From-SVN: r110333 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5296efb732a..2f0fe91f0d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2006-01-28 David Edelsohn + + * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float + and -mlong-double-128 are incompatible. + * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. + * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c. + (TARGET_LIBGCC2_CFLAGS): Define. + * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same. + (TARGET_LIBGCC2_CFLAGS): Same. + * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX. + 2006-01-28 Kazu Hirata PR c/19606. diff --git a/gcc/config/rs6000/aix43.h b/gcc/config/rs6000/aix43.h index 627e7ace9e3..b99f1a8e8b5 100644 --- a/gcc/config/rs6000/aix43.h +++ b/gcc/config/rs6000/aix43.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000 POWER running AIX version 4.3. - Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Contributed by David Edelsohn (edelsohn@gnu.org). @@ -43,6 +43,12 @@ do { \ target_flags |= MASK_POWERPC64; \ warning (0, "-maix64 requires PowerPC64 architecture remain enabled"); \ } \ + if (TARGET_SOFT_FLOAT && TARGET_LONG_DOUBLE_128) \ + { \ + rs6000_long_double_type_size = 64; \ + if (rs6000_explicit_options.long_double) \ + warning (0, "soft-float and long-double-128 are incompatible"); \ + } \ if (TARGET_POWERPC64 && ! TARGET_64BIT) \ { \ error ("-maix64 required: 64-bit computation with 32-bit addressing not yet supported"); \ diff --git a/gcc/config/rs6000/aix52.h b/gcc/config/rs6000/aix52.h index 21f38f4e0f1..723986ff5b1 100644 --- a/gcc/config/rs6000/aix52.h +++ b/gcc/config/rs6000/aix52.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000 POWER running AIX V5.2. - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Contributed by David Edelsohn (edelsohn@gnu.org). This file is part of GCC. @@ -42,6 +42,12 @@ do { \ target_flags |= MASK_POWERPC64; \ warning (0, "-maix64 requires PowerPC64 architecture remain enabled"); \ } \ + if (TARGET_SOFT_FLOAT && TARGET_LONG_DOUBLE_128) \ + { \ + rs6000_long_double_type_size = 64; \ + if (rs6000_explicit_options.long_double) \ + warning (0, "soft-float and long-double-128 are incompatible"); \ + } \ if (TARGET_POWERPC64 && ! TARGET_64BIT) \ { \ error ("-maix64 required: 64-bit computation with 32-bit addressing not yet supported"); \ diff --git a/gcc/config/rs6000/ppc64-fp.c b/gcc/config/rs6000/ppc64-fp.c index efa99b60df6..284750b3ed3 100644 --- a/gcc/config/rs6000/ppc64-fp.c +++ b/gcc/config/rs6000/ppc64-fp.c @@ -30,7 +30,7 @@ along with GCC; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#if defined(__powerpc64__) +#if defined(__powerpc64__) || defined (__64BIT__) #define TMODES #include "config/fp-bit.h" diff --git a/gcc/config/rs6000/t-aix43 b/gcc/config/rs6000/t-aix43 index 18e7361d6c2..95b31cda1e5 100644 --- a/gcc/config/rs6000/t-aix43 +++ b/gcc/config/rs6000/t-aix43 @@ -67,7 +67,9 @@ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.v SHLIB_NM_FLAGS = -Bpg -X32_64 # GCC 128-bit long double support routines. -LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c +LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/ppc64-fp.c \ + $(srcdir)/config/rs6000/darwin-ldouble.c +TARGET_LIBGCC2_CFLAGS = -mlong-double-128 # Either 32-bit and 64-bit objects in archives. AR_FLAGS_FOR_TARGET = -X32_64 diff --git a/gcc/config/rs6000/t-aix52 b/gcc/config/rs6000/t-aix52 index 6f5d2da2c56..b249c42fd95 100644 --- a/gcc/config/rs6000/t-aix52 +++ b/gcc/config/rs6000/t-aix52 @@ -48,7 +48,9 @@ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.v SHLIB_NM_FLAGS = -Bpg -X32_64 # GCC 128-bit long double support routines. -LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c +LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/ppc64-fp.c \ + $(srcdir)/config/rs6000/darwin-ldouble.c +TARGET_LIBGCC2_CFLAGS = -mlong-double-128 # Either 32-bit and 64-bit objects in archives. AR_FLAGS_FOR_TARGET = -X32_64