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