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