aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float and -mlong-double-128 are incompat...
authorDavid Edelsohn <edelsohn@gnu.org>
Sat, 28 Jan 2006 19:49:43 +0000 (19:49 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Sat, 28 Jan 2006 19:49:43 +0000 (14:49 -0500)
        * 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

gcc/ChangeLog
gcc/config/rs6000/aix43.h
gcc/config/rs6000/aix52.h
gcc/config/rs6000/ppc64-fp.c
gcc/config/rs6000/t-aix43
gcc/config/rs6000/t-aix52

index 5296efb732a8bc1b87bfe1699632ecedcba97bc8..2f0fe91f0d1a0d5f41be122741b31b29ddef9b78 100644 (file)
@@ -1,3 +1,14 @@
+2006-01-28  David Edelsohn  <edelsohn@gnu.org>
+
+       * 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  <kazu@codesourcery.com>
 
        PR c/19606.
index 627e7ace9e34ef74b0dfbb92cf1e52a89e4c6b08..b99f1a8e8b5794688389c507c69d00f681fbc6c5 100644 (file)
@@ -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"); \
index 21f38f4e0f10d850ecc36f84b97d32e94c8f4d2f..723986ff5b18d191b9eb4af44fc77de66a4fc7a7 100644 (file)
@@ -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"); \
index efa99b60df68cbf55cd875bbf2d425cbc171426b..284750b3ed34d28ccd2ac15321c6e33d4ab965e7 100644 (file)
@@ -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"
 
index 18e7361d6c2d4def9a3f0bd989bc0491c1901564..95b31cda1e5e8140a0be5ab07a623e23138be543 100644 (file)
@@ -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
index 6f5d2da2c56644eefe0d4a97496634a3e538151e..b249c42fd95a0c6ad58fd96393443e4a694ec16e 100644 (file)
@@ -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