aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2006-01-28 19:49:43 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2006-01-28 14:49:43 -0500
commit3d538baeb51b697b4e68b74037bae1489249ae98 (patch)
tree7bd0246cec56732b5ab07d0221505c4f2937c750
parent7ca383e6791272a9f99390b5981ae476a9b490f1 (diff)
downloadgcc-3d538baeb51b697b4e68b74037bae1489249ae98.zip
gcc-3d538baeb51b697b4e68b74037bae1489249ae98.tar.gz
gcc-3d538baeb51b697b4e68b74037bae1489249ae98.tar.bz2
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
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/rs6000/aix43.h8
-rw-r--r--gcc/config/rs6000/aix52.h8
-rw-r--r--gcc/config/rs6000/ppc64-fp.c2
-rw-r--r--gcc/config/rs6000/t-aix434
-rw-r--r--gcc/config/rs6000/t-aix524
6 files changed, 32 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5296efb..2f0fe91 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/rs6000/aix43.h b/gcc/config/rs6000/aix43.h
index 627e7ac..b99f1a8 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 21f38f4..723986f 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 efa99b6..284750b 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 18e7361..95b31cd 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 6f5d2da..b249c42 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