190075Sobrien/* Core target definitions for GNU compiler 290075Sobrien for IBM RS/6000 PowerPC targeted to embedded ELF systems. 3169689Skan Copyright (C) 1995, 1996, 2000, 2003, 2004 Free Software Foundation, Inc. 490075Sobrien Contributed by Cygnus Support. 590075Sobrien 6132718Skan This file is part of GCC. 790075Sobrien 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. 1290075Sobrien 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. 1790075Sobrien 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. */ 2290075Sobrien 23132718Skan/* Add -meabi to target flags. */ 2490075Sobrien#undef TARGET_DEFAULT 2590075Sobrien#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_EABI) 2690075Sobrien 27132718Skan/* Invoke an initializer function to set up the GOT. */ 2890075Sobrien#define NAME__MAIN "__eabi" 2990075Sobrien#define INVOKE__main 3090075Sobrien 3190075Sobrien#undef TARGET_VERSION 3290075Sobrien#define TARGET_VERSION fprintf (stderr, " (PowerPC Embedded)"); 3390075Sobrien 34117395Skan#undef TARGET_OS_CPP_BUILTINS 35117395Skan#define TARGET_OS_CPP_BUILTINS() \ 36117395Skan do \ 37117395Skan { \ 38117395Skan builtin_define_std ("PPC"); \ 39117395Skan builtin_define ("__embedded__"); \ 40117395Skan builtin_assert ("system=embedded"); \ 41117395Skan builtin_assert ("cpu=powerpc"); \ 42117395Skan builtin_assert ("machine=powerpc"); \ 43132718Skan TARGET_OS_SYSV_CPP_BUILTINS (); \ 44117395Skan } \ 45117395Skan while (0) 46117395Skan 47117395Skan#undef TARGET_SPE_ABI 48117395Skan#undef TARGET_SPE 49132718Skan#undef TARGET_E500 50117395Skan#undef TARGET_ISEL 51117395Skan#undef TARGET_FPRS 52169689Skan#undef TARGET_E500_SINGLE 53169689Skan#undef TARGET_E500_DOUBLE 54117395Skan 55117395Skan#define TARGET_SPE_ABI rs6000_spe_abi 56132718Skan#define TARGET_SPE rs6000_spe 57132718Skan#define TARGET_E500 (rs6000_cpu == PROCESSOR_PPC8540) 58117395Skan#define TARGET_ISEL rs6000_isel 59169689Skan#define TARGET_FPRS (rs6000_float_gprs == 0) 60169689Skan#define TARGET_E500_SINGLE (TARGET_HARD_FLOAT && rs6000_float_gprs == 1) 61169689Skan#define TARGET_E500_DOUBLE (TARGET_HARD_FLOAT && rs6000_float_gprs == 2) 62