190075Sobrien/* Definitions of target machine for GNU compiler,
290075Sobrien   for IBM RS/6000 POWER running AIX version 4.1.
3169689Skan   Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004,
4169689Skan   2005
590075Sobrien   Free Software Foundation, Inc.
690075Sobrien   Contributed by David Edelsohn (edelsohn@gnu.org).
790075Sobrien
8132718Skan   This file is part of GCC.
990075Sobrien
10132718Skan   GCC is free software; you can redistribute it and/or modify it
11132718Skan   under the terms of the GNU General Public License as published
12132718Skan   by the Free Software Foundation; either version 2, or (at your
13132718Skan   option) any later version.
1490075Sobrien
15132718Skan   GCC is distributed in the hope that it will be useful, but WITHOUT
16132718Skan   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17132718Skan   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
18132718Skan   License for more details.
1990075Sobrien
20132718Skan   You should have received a copy of the GNU General Public License
21132718Skan   along with GCC; see the file COPYING.  If not, write to the
22169689Skan   Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
23169689Skan   MA 02110-1301, USA.  */
2490075Sobrien
2590075Sobrien#undef ASM_SPEC
2690075Sobrien#define ASM_SPEC "-u %(asm_cpu)"
2790075Sobrien
2890075Sobrien#undef	ASM_DEFAULT_SPEC
2990075Sobrien#define ASM_DEFAULT_SPEC "-mcom"
3090075Sobrien
31117395Skan#undef TARGET_OS_CPP_BUILTINS
32169689Skan#define TARGET_OS_CPP_BUILTINS()     \
33169689Skan  do                                 \
34169689Skan    {                                \
35169689Skan      TARGET_OS_AIX_CPP_BUILTINS (); \
36169689Skan    }                                \
37117395Skan  while (0)
3890075Sobrien
3990075Sobrien#undef CPP_SPEC
4090075Sobrien#define CPP_SPEC "%{posix: -D_POSIX_SOURCE}\
4190075Sobrien   %{ansi: -D_ANSI_C_SOURCE}\
4290075Sobrien   %{mpe: -I/usr/lpp/ppe.poe/include}\
43117395Skan   %{pthread: -D_THREAD_SAFE}"
4490075Sobrien
4590075Sobrien#undef TARGET_DEFAULT
4690075Sobrien#define TARGET_DEFAULT MASK_NEW_MNEMONICS
4790075Sobrien
4890075Sobrien#undef PROCESSOR_DEFAULT
4990075Sobrien#define PROCESSOR_DEFAULT PROCESSOR_PPC601
5090075Sobrien
5190075Sobrien/* Define this macro as a C expression for the initializer of an
5290075Sobrien   array of string to tell the driver program which options are
5390075Sobrien   defaults for this target and thus do not need to be handled
5490075Sobrien   specially when using `MULTILIB_OPTIONS'.
5590075Sobrien
5690075Sobrien   Do not define this macro if `MULTILIB_OPTIONS' is not defined in
5790075Sobrien   the target makefile fragment or if none of the options listed in
5890075Sobrien   `MULTILIB_OPTIONS' are set by default.  *Note Target Fragment::.  */
5990075Sobrien
6090075Sobrien#undef	MULTILIB_DEFAULTS
6190075Sobrien#define	MULTILIB_DEFAULTS { "mcpu=common" }
6290075Sobrien
6390075Sobrien#undef LIB_SPEC
6490075Sobrien#define LIB_SPEC "%{pg:-L/lib/profiled -L/usr/lib/profiled}\
6590075Sobrien   %{p:-L/lib/profiled -L/usr/lib/profiled} %{!shared:%{g*:-lg}}\
6690075Sobrien   %{mpe:-L/usr/lpp/ppe.poe/lib -lmpi -lvtd}\
6790075Sobrien   %{pthread: -L/usr/lib/threads -lpthreads -lc_r /usr/lib/libc.a}\
6890075Sobrien   %{!pthread: -lc}"
6990075Sobrien
7090075Sobrien#undef LINK_SPEC
7190075Sobrien#define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
7290075Sobrien   %{static:-bnso %(link_syscalls) } %{!shared: %{g*: %(link_libg) }}\
7390075Sobrien   %{shared:-bM:SRE %{!e:-bnoentry}}"
7490075Sobrien
7590075Sobrien#undef STARTFILE_SPEC
7690075Sobrien#define STARTFILE_SPEC "%{!shared:\
7790075Sobrien   %{mpe:%{pg:/usr/lpp/ppe.poe/lib/gcrt0.o}\
7890075Sobrien         %{!pg:%{p:/usr/lpp/ppe.poe/lib/mcrt0.o}\
7990075Sobrien               %{!p:/usr/lpp/ppe.poe/lib/crt0.o}}}\
8090075Sobrien   %{!mpe:\
8190075Sobrien     %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\
8290075Sobrien     %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}"
8390075Sobrien
8490075Sobrien/* AIX 4 uses PowerPC nop (ori 0,0,0) instruction as call glue for PowerPC
8590075Sobrien   and "cror 31,31,31" for POWER architecture.  */
8690075Sobrien
8790075Sobrien#undef RS6000_CALL_GLUE
8890075Sobrien#define RS6000_CALL_GLUE "{cror 31,31,31|nop}"
8990075Sobrien
90146895Skan/* The IBM AIX 4.x assembler doesn't support forward references in
91146895Skan   .set directives.  We handle this by deferring the output of .set
92146895Skan   directives to the end of the compilation unit.  */
93146895Skan#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true
94169689Skan
95169689Skan#undef TARGET_64BIT
96169689Skan#define TARGET_64BIT 0
97