FSF GCC merge 02/23/03
[official-gcc.git] / gcc / config / rs6000 / vxworks.h
blobdddd26d8d5e4bead1c7b5af6c3e4ce754c2f89ac
1 /* Definitions of target machine for GNU compiler. Vxworks PowerPC version.
2 Copyright (C) 1996, 2000, 2002 Free Software Foundation, Inc.
4 This file is part of GNU CC.
6 GNU CC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
11 GNU CC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU CC; see the file COPYING. If not, write to
18 the Free Software Foundation, 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
21 /* N.B. Only big endian PPC is supported by VxWorks. */
23 #undef CPP_PREDEFINES
24 #define CPP_PREDEFINES \
25 "-D__vxworks -D__vxworks__ -D_BIG_ENDIAN -D__BIG_ENDIAN__"
27 /* We have to kill off the entire specs set created by rs6000/sysv4.h
28 and substitute our own set. The top level vxworks.h has done some
29 of this for us. */
31 #undef SUBTARGET_EXTRA_SPECS
32 #undef CPP_SPEC
33 #undef CC1_SPEC
34 #undef ASM_SPEC
36 #define SUBTARGET_EXTRA_SPECS /* none needed */
38 #define CPP_SPEC \
39 "-DCPU_FAMILY=PPC -D__ppc -D__EABI__ -D__ELF__ \
40 %{t403: -DCPU=PPC403 -D_SOFT_FLOAT ; \
41 t405: -DCPU=PPC405 -D_SOFT_FLOAT ; \
42 t440: -DCPU=PPC440 -D_SOFT_FLOAT ; \
43 t603: -DCPU=PPC603 ; \
44 t604: -DCPU=PPC604 ; \
45 t860: -DCPU=PPC860 -D_SOFT_FLOAT ; \
46 : -DCPU=PPC604} \
47 %{!msoft-float:-D__hardfp} \
48 %{fpic: -D__PIC__=1 -D__pic__=1 ; \
49 fPIC: -D__PIC__=2 -D__pic__=2 } \
50 %(cpp_cpu)"
52 /* N.B. GCC does not currently support the 440 processor as distinct
53 from the 405 series. */
54 #define CC1_SPEC \
55 "%{t403: -mcpu=403 -mstrict-align ; \
56 t405: -mcpu=405 -mstrict-align ; \
57 t440: -mcpu=405 -mstrict-align ; \
58 t603: -mcpu=603 -mstrict-align ; \
59 t604: -mcpu=604 -mstrict-align ; \
60 t860: -mcpu=860 ; \
61 : -mcpu=604 -mstrict-align } \
62 %{G*} %{mno-sdata:-msdata=none} %{msdata:-msdata=default} \
63 %{mlittle|mlittle-endian:-mstrict-align} \
64 %{profile: -p} \
65 %{fvec:-maltivec} %{fvec-eabi:-maltivec -mabi=altivec}"
67 #define ASM_SPEC "%(asm_cpu) \
68 %{.s: %{mregnames} %{mno-regnames}} %{.S: %{mregnames} %{mno-regnames}} \
69 %{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \
70 %{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} -mbig"
72 #undef MULTILIB_DEFAULTS
73 #define MULTILIB_DEFAULTS { "t604" }
75 /* We can't use .ctors/.dtors sections. */
76 #undef TARGET_ASM_OUTPUT_CONSTRUCTOR
77 #undef TARGET_ASM_OUTPUT_DESTRUCTOR
79 /* Nor sdata. */
80 #undef SDATA_DEFAULT_SIZE
81 #define SDATA_DEFAULT_SIZE 0