1117395Skan/* Core target definitions for GNU compiler
2117395Skan   for PowerPC embedded targeted systems with SPE support.
3169689Skan   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4117395Skan   Contributed by Aldy Hernandez (aldyh@redhat.com).
5117395Skan
6132718Skan   This file is part of GCC.
7117395Skan
8132718Skan   GCC is free software; you can redistribute it and/or modify it
9132718Skan   under the terms of the GNU General Public License as published
10132718Skan   by the Free Software Foundation; either version 2, or (at your
11132718Skan   option) any later version.
12117395Skan
13132718Skan   GCC is distributed in the hope that it will be useful, but WITHOUT
14132718Skan   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15132718Skan   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
16132718Skan   License for more details.
17117395Skan
18132718Skan   You should have received a copy of the GNU General Public License
19132718Skan   along with GCC; see the file COPYING.  If not, write to the
20169689Skan   Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
21169689Skan   MA 02110-1301, USA.  */
22117395Skan
23132718Skan#undef  TARGET_DEFAULT
24169689Skan#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_EABI	\
25169689Skan  | MASK_STRICT_ALIGN)
26117395Skan
27132718Skan#undef  TARGET_VERSION
28117395Skan#define TARGET_VERSION fprintf (stderr, " (PowerPC Embedded SPE)");
29117395Skan
30132718Skan#undef  SUBSUBTARGET_OVERRIDE_OPTIONS
31117395Skan#define SUBSUBTARGET_OVERRIDE_OPTIONS \
32132718Skan  if (rs6000_select[1].string == NULL) \
33132718Skan    rs6000_cpu = PROCESSOR_PPC8540; \
34169689Skan  if (!rs6000_explicit_options.abi) \
35132718Skan    rs6000_spe_abi = 1; \
36169689Skan  if (!rs6000_explicit_options.float_gprs) \
37132718Skan    rs6000_float_gprs = 1; \
38117395Skan  /* See note below.  */ \
39169689Skan  /*if (!rs6000_explicit_options.long_double)*/ \
40132718Skan  /*  rs6000_long_double_type_size = 128;*/ \
41169689Skan  if (!rs6000_explicit_options.spe) \
42132718Skan    rs6000_spe = 1; \
43169689Skan  if (!rs6000_explicit_options.isel) \
44169689Skan    rs6000_isel = 1; \
45169689Skan  if (target_flags & MASK_64BIT) \
46169689Skan    error ("-m64 not supported in this configuration")
47117395Skan
48132718Skan/* The e500 ABI says that either long doubles are 128 bits, or if
49132718Skan   implemented in any other size, the compiler/linker should error out.
50132718Skan   We have no emulation libraries for 128 bit long doubles, and I hate
51132718Skan   the dozens of failures on the regression suite.  So I'm breaking ABI
52132718Skan   specifications, until I properly fix the emulation.
53117395Skan
54132718Skan   Enable these later.
55117395Skan#undef CPP_LONGDOUBLE_DEFAULT_SPEC
56117395Skan#define CPP_LONGDOUBLE_DEFAULT_SPEC "-D__LONG_DOUBLE_128__=1"
57117395Skan*/
58117395Skan
59132718Skan#undef  ASM_DEFAULT_SPEC
60117395Skan#define	ASM_DEFAULT_SPEC "-mppc -mspe -me500"
61