| /* Definitions of target machine for GNU compiler. Vxworks PowerPC version. |
| Copyright (C) 1996, 2000, 2002, 2003 Free Software Foundation, Inc. |
| |
| This file is part of GCC. |
| |
| GCC is free software; you can redistribute it and/or modify it |
| under the terms of the GNU General Public License as published |
| by the Free Software Foundation; either version 2, or (at your |
| option) any later version. |
| |
| GCC is distributed in the hope that it will be useful, but WITHOUT |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public |
| License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with GCC; see the file COPYING. If not, write to the |
| Free Software Foundation, 59 Temple Place - Suite 330, Boston, |
| MA 02111-1307, USA. */ |
| |
| #undef TARGET_OS_CPP_BUILTINS |
| #define TARGET_OS_CPP_BUILTINS() \ |
| do \ |
| { \ |
| builtin_define ("__vxworks"); \ |
| builtin_define ("__vxworks__"); \ |
| } \ |
| while (0) |
| |
| /* We have to kill off the entire specs set created by rs6000/sysv4.h |
| and substitute our own set. The top level vxworks.h has done some |
| of this for us. */ |
| |
| #undef SUBTARGET_EXTRA_SPECS |
| #undef CPP_SPEC |
| #undef CC1_SPEC |
| #undef ASM_SPEC |
| |
| #define SUBTARGET_EXTRA_SPECS /* none needed */ |
| |
| #define CPP_SPEC \ |
| "-DCPU_FAMILY=PPC -D__ppc -D__EABI__ \ |
| %{t403: -DCPU=PPC403 -D_SOFT_FLOAT ; \ |
| t405: -DCPU=PPC405 -D_SOFT_FLOAT ; \ |
| t440: -DCPU=PPC440 -D_SOFT_FLOAT ; \ |
| t603: -DCPU=PPC603 ; \ |
| t604: -DCPU=PPC604 ; \ |
| t860: -DCPU=PPC860 -D_SOFT_FLOAT ; \ |
| : -DCPU=PPC604} \ |
| %{!msoft-float:-D__hardfp} \ |
| %{fpic|fpie: -D__PIC__=1 -D__pic__=1 ; \ |
| fPIC|fPIE: -D__PIC__=2 -D__pic__=2 } \ |
| %(cpp_cpu)" |
| |
| #define CC1_SPEC \ |
| "%{t403: -mcpu=403 -mstrict-align ; \ |
| t405: -mcpu=405 -mstrict-align ; \ |
| t440: -mcpu=440 -mstrict-align ; \ |
| t603: -mcpu=603 -mstrict-align ; \ |
| t604: -mcpu=604 -mstrict-align ; \ |
| t860: -mcpu=860 ; \ |
| : -mcpu=604 -mstrict-align } \ |
| %{G*} %{mno-sdata:-msdata=none} %{msdata:-msdata=default} \ |
| %{mlittle|mlittle-endian:-mstrict-align} \ |
| %{profile: -p} \ |
| %{fvec:-maltivec} %{fvec-eabi:-maltivec -mabi=altivec}" |
| |
| #define ASM_SPEC "%(asm_cpu) \ |
| %{.s: %{mregnames} %{mno-regnames}} %{.S: %{mregnames} %{mno-regnames}} \ |
| %{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \ |
| %{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} -mbig" |
| |
| #undef MULTILIB_DEFAULTS |
| #define MULTILIB_DEFAULTS { "t604" } |
| |
| /* We can't use .ctors/.dtors sections. */ |
| #undef TARGET_ASM_OUTPUT_CONSTRUCTOR |
| #undef TARGET_ASM_OUTPUT_DESTRUCTOR |
| |
| /* Nor sdata. */ |
| #undef SDATA_DEFAULT_SIZE |
| #define SDATA_DEFAULT_SIZE 0 |