eabispe.h revision 169689
1221420Sdes/* Core target definitions for GNU compiler
276259Sgreen   for PowerPC embedded targeted systems with SPE support.
365668Skris   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
492555Sdes   Contributed by Aldy Hernandez (aldyh@redhat.com).
565668Skris
665668Skris   This file is part of GCC.
765668Skris
865668Skris   GCC is free software; you can redistribute it and/or modify it
965668Skris   under the terms of the GNU General Public License as published
1065668Skris   by the Free Software Foundation; either version 2, or (at your
1165668Skris   option) any later version.
1265668Skris
1365668Skris   GCC is distributed in the hope that it will be useful, but WITHOUT
1465668Skris   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
1565668Skris   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
1665668Skris   License for more details.
1765668Skris
1865668Skris   You should have received a copy of the GNU General Public License
1965668Skris   along with GCC; see the file COPYING.  If not, write to the
2065668Skris   Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
2165668Skris   MA 02110-1301, USA.  */
2265668Skris
2365668Skris#undef  TARGET_DEFAULT
2465668Skris#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_EABI	\
2565668Skris  | MASK_STRICT_ALIGN)
2665668Skris
27126274Sdes#undef  TARGET_VERSION
2892555Sdes#define TARGET_VERSION fprintf (stderr, " (PowerPC Embedded SPE)");
29221420Sdes
30#undef  SUBSUBTARGET_OVERRIDE_OPTIONS
31#define SUBSUBTARGET_OVERRIDE_OPTIONS \
32  if (rs6000_select[1].string == NULL) \
33    rs6000_cpu = PROCESSOR_PPC8540; \
34  if (!rs6000_explicit_options.abi) \
35    rs6000_spe_abi = 1; \
36  if (!rs6000_explicit_options.float_gprs) \
37    rs6000_float_gprs = 1; \
38  /* See note below.  */ \
39  /*if (!rs6000_explicit_options.long_double)*/ \
40  /*  rs6000_long_double_type_size = 128;*/ \
41  if (!rs6000_explicit_options.spe) \
42    rs6000_spe = 1; \
43  if (!rs6000_explicit_options.isel) \
44    rs6000_isel = 1; \
45  if (target_flags & MASK_64BIT) \
46    error ("-m64 not supported in this configuration")
47
48/* The e500 ABI says that either long doubles are 128 bits, or if
49   implemented in any other size, the compiler/linker should error out.
50   We have no emulation libraries for 128 bit long doubles, and I hate
51   the dozens of failures on the regression suite.  So I'm breaking ABI
52   specifications, until I properly fix the emulation.
53
54   Enable these later.
55#undef CPP_LONGDOUBLE_DEFAULT_SPEC
56#define CPP_LONGDOUBLE_DEFAULT_SPEC "-D__LONG_DOUBLE_128__=1"
57*/
58
59#undef  ASM_DEFAULT_SPEC
60#define	ASM_DEFAULT_SPEC "-mppc -mspe -me500"
61