]>
Commit | Line | Data |
---|---|---|
a3170dc6 AH |
1 | /* Core target definitions for GNU compiler |
2 | for PowerPC embedded targeted systems with SPE support. | |
5de601cf | 3 | Copyright (C) 2002, 2003 Free Software Foundation, Inc. |
a3170dc6 AH |
4 | Contributed by Aldy Hernandez (aldyh@redhat.com). |
5 | ||
5de601cf | 6 | This file is part of GCC. |
a3170dc6 | 7 | |
5de601cf NC |
8 | GCC is free software; you can redistribute it and/or modify it |
9 | under the terms of the GNU General Public License as published | |
10 | by the Free Software Foundation; either version 2, or (at your | |
11 | option) any later version. | |
a3170dc6 | 12 | |
5de601cf NC |
13 | GCC is distributed in the hope that it will be useful, but WITHOUT |
14 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
15 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public | |
16 | License for more details. | |
a3170dc6 | 17 | |
5de601cf NC |
18 | You should have received a copy of the GNU General Public License |
19 | along with GCC; see the file COPYING. If not, write to the | |
20 | Free Software Foundation, 59 Temple Place - Suite 330, Boston, | |
21 | MA 02111-1307, USA. */ | |
a3170dc6 | 22 | |
5de601cf | 23 | #undef TARGET_DEFAULT |
a3170dc6 AH |
24 | #define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_EABI) |
25 | ||
5de601cf | 26 | #undef TARGET_VERSION |
a3170dc6 AH |
27 | #define TARGET_VERSION fprintf (stderr, " (PowerPC Embedded SPE)"); |
28 | ||
5de601cf | 29 | #undef SUBSUBTARGET_OVERRIDE_OPTIONS |
a3170dc6 | 30 | #define SUBSUBTARGET_OVERRIDE_OPTIONS \ |
2948ade7 NC |
31 | if (rs6000_select[1].string == NULL) \ |
32 | rs6000_cpu = PROCESSOR_PPC8540; \ | |
33 | if (rs6000_abi_string == NULL || strstr (rs6000_abi_string, "spe") == NULL) \ | |
34 | rs6000_spe_abi = 1; \ | |
5da702b1 AH |
35 | if (rs6000_float_gprs_string == NULL) \ |
36 | rs6000_float_gprs = 1; \ | |
a3170dc6 | 37 | /* See note below. */ \ |
2948ade7 NC |
38 | /*if (rs6000_long_double_size_string == NULL)*/ \ |
39 | /* rs6000_long_double_type_size = 128;*/ \ | |
993f19a8 AH |
40 | if (rs6000_spe_string == NULL) \ |
41 | rs6000_spe = 1; \ | |
2948ade7 NC |
42 | if (rs6000_isel_string == NULL) \ |
43 | rs6000_isel = 1 | |
a3170dc6 | 44 | |
5de601cf NC |
45 | /* The e500 ABI says that either long doubles are 128 bits, or if |
46 | implemented in any other size, the compiler/linker should error out. | |
47 | We have no emulation libraries for 128 bit long doubles, and I hate | |
48 | the dozens of failures on the regression suite. So I'm breaking ABI | |
49 | specifications, until I properly fix the emulation. | |
a3170dc6 | 50 | |
5de601cf | 51 | Enable these later. |
a3170dc6 AH |
52 | #undef CPP_LONGDOUBLE_DEFAULT_SPEC |
53 | #define CPP_LONGDOUBLE_DEFAULT_SPEC "-D__LONG_DOUBLE_128__=1" | |
54 | */ | |
55 | ||
5de601cf | 56 | #undef ASM_DEFAULT_SPEC |
a3170dc6 | 57 | #define ASM_DEFAULT_SPEC "-mppc -mspe -me500" |