linuxspe.h: New file.
authorAldy Hernandez <aldyh@redhat.com>
Tue, 6 May 2003 19:49:21 +0000 (19:49 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Tue, 6 May 2003 19:49:21 +0000 (19:49 +0000)
2003-05-06  Aldy Hernandez  <aldyh@redhat.com>

        * config/rs6000/linuxspe.h: New file.

        * config.gcc: Add powerpc-*-linux-gnuspe* target.

From-SVN: r66531

gcc/ChangeLog
gcc/config.gcc
gcc/config/rs6000/linuxspe.h [new file with mode: 0644]

index 2cdf5b76f84ad5c3e7c1ffb5b8742f123f6ec4e9..05648ec877867d8416e30653270e87f2c82862fe 100644 (file)
@@ -1,3 +1,9 @@
+2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/linuxspe.h: New file.
+
+        * config.gcc: Add powerpc-*-linux-gnuspe* target.
+
 2003-05-06  Richard Henderson  <rth@redhat.com>
 
        * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if 
index ac2c80cdb596fbd5154a7bcb98ac55650b2f123e..b168c7cfd52eeaf3d8b8b1fb1bda53b234189b65 100644 (file)
@@ -2049,6 +2049,10 @@ powerpc-*-linux-gnualtivec*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h"
        tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
        ;;
+powerpc-*-linux-gnuspe*)
+       tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
+       ;;
 powerpc-*-linux*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
        tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
diff --git a/gcc/config/rs6000/linuxspe.h b/gcc/config/rs6000/linuxspe.h
new file mode 100644 (file)
index 0000000..382be0a
--- /dev/null
@@ -0,0 +1,58 @@
+/* Definitions of target machine for GNU compiler,
+   for PowerPC e500 machines running GNU/Linux.
+   Copyright (C) 2003 Free Software Foundation, Inc.
+   Contributed by Aldy Hernandez (aldy@quesejoda.com).
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 2, or (at your
+   option) any later version.
+
+   GCC is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GCC; see the file COPYING.  If not, write to the
+   Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+   MA 02111-1307, USA.  */
+
+#undef  TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (PowerPC E500 GNU/Linux)");
+
+/* Override rs6000.h and sysv4.h definition.  */
+#undef TARGET_DEFAULT
+#define        TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS)
+
+#undef  SUBSUBTARGET_OVERRIDE_OPTIONS
+#define SUBSUBTARGET_OVERRIDE_OPTIONS \
+  if (rs6000_select[1].string == NULL) \
+    rs6000_cpu = PROCESSOR_PPC8540; \
+  if (rs6000_abi_string == NULL || strstr (rs6000_abi_string, "spe") == NULL) \
+    rs6000_spe_abi = 1; \
+  if (rs6000_float_gprs_string == NULL) \
+    rs6000_float_gprs = 1; \
+  /* See note below.  */ \
+  /*if (rs6000_long_double_size_string == NULL)*/ \
+  /*  rs6000_long_double_type_size = 128;*/ \
+  if (rs6000_spe_string == NULL) \
+    rs6000_spe = 1; \
+  if (rs6000_isel_string == NULL) \
+    rs6000_isel = 1
+
+/* The e500 ABI says that either long doubles are 128 bits, or if
+   implemented in any other size, the compiler/linker should error out.
+   We have no emulation libraries for 128 bit long doubles, and I hate
+   the dozens of failures on the regression suite.  So I'm breaking ABI
+   specifications, until I properly fix the emulation.
+
+   Enable these later.
+#undef CPP_LONGDOUBLE_DEFAULT_SPEC
+#define CPP_LONGDOUBLE_DEFAULT_SPEC "-D__LONG_DOUBLE_128__=1"
+*/
+
+#undef  ASM_DEFAULT_SPEC
+#define        ASM_DEFAULT_SPEC "-mppc -mspe -me500"