1165138Syongari/* Support for GCC on MIPS using WindISS simulator.
2165138Syongari   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
3165138Syongari   Contributed by CodeSourcery, LLC.
4165138Syongari
5165138SyongariThis file is part of GCC.
6165138Syongari
7165138SyongariGCC is free software; you can redistribute it and/or modify
8165138Syongariit under the terms of the GNU General Public License as published by
9165138Syongarithe Free Software Foundation; either version 2, or (at your option)
10165138Syongariany later version.
11165138Syongari
12165138SyongariGCC is distributed in the hope that it will be useful,
13165138Syongaribut WITHOUT ANY WARRANTY; without even the implied warranty of
14165138SyongariMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15165138SyongariGNU General Public License for more details.
16165138Syongari
17165138SyongariYou should have received a copy of the GNU General Public License
18165138Syongarialong with GCC; see the file COPYING.  If not, write to
19165138Syongarithe Free Software Foundation, 51 Franklin Street, Fifth Floor,
20165138SyongariBoston, MA 02110-1301, USA.  */
21165138Syongari
22165138Syongari#undef TARGET_VERSION
23165138Syongari#define TARGET_VERSION fprintf (stderr, " (MIPS WindISS)");
24165138Syongari
25165138Syongari/* Combination of mips.h and svr4.h.  */
26165138Syongari#undef  SWITCH_TAKES_ARG
27165138Syongari#define SWITCH_TAKES_ARG(CHAR)          \
28165138Syongari  (DEFAULT_SWITCH_TAKES_ARG (CHAR)      \
29165138Syongari   || (CHAR) == 'G'                     \
30165138Syongari   || (CHAR) == 'h'                     \
31165138Syongari   || (CHAR) == 'x'                     \
32165138Syongari   || (CHAR) == 'z')
33165138Syongari
34165138Syongari#undef SUBTARGET_CPP_SPEC
35165138Syongari#define SUBTARGET_CPP_SPEC \
36165138Syongari"%{!DCPU=*: %{mips3|mips4|mips64:-DCPU=MIPS64;:-DCPU=MIPS32}} \
37165138Syongari  %{EL|mel:-DMIPSEL;:-DMIPSEB} \
38165138Syongari  %{msoft-float:-DSOFT_FLOAT} \
39165138Syongari  %{mips1:-D_WRS_R3K_EXC_SUPPORT}"
40165138Syongari
41165138Syongari#undef  ASM_SPEC
42165138Syongari#define ASM_SPEC "\
43165138Syongari%{!G:-G 0} %{G*} %(endian_spec) %{mips1} %{mips2} %{mips3} %{mips4} \
44165138Syongari%{mips32} %{mips32r2} %{mips64} \
45165138Syongari%{mips16:%{!mno-mips16:-mips16}} %{mno-mips16:-no-mips16} \
46165138Syongari%(subtarget_asm_optimizing_spec) \
47165138Syongari%(subtarget_asm_debugging_spec) \
48165138Syongari%{mabi=*} %{!mabi*: %(asm_abi_default_spec)} \
49165138Syongari%{mgp32} %{mgp64} %{march=*} %{mxgot:-xgot} \
50165138Syongari%{mtune=*} %{v} \
51165138Syongari%(subtarget_asm_spec)"
52165138Syongari
53165138Syongari#undef LINK_SPEC
54165138Syongari/* LINK_SPEC is clobbered in svr4.h. ugh!  */
55165138Syongari#define LINK_SPEC "\
56165138Syongari-m elf32mipswindiss \
57165138Syongari%{!G:-G 0} %{G*} %{mips1} %{mips2} %{mips3} %{mips4} %{mips32} %{mips64} \
58165138Syongari%{bestGnum}"
59165138Syongari
60165138Syongari/* Diab libs MIPS{,E,F,L,M,W,X,Y,Z}{,H,N,S}
61165138Syongari
62165138Syongari   .
63165138Syongari   E - Elf (small-data/const=8
64165138Syongari   F - Elf Far (small-data/const=0)
65165138Syongari   L - Little Elf
66165138Syongari   M - Little Elf Far
67165138Syongari   W - elf32 bigmips
68165138Syongari   X - elf32 bigmips (far?)
69165138Syongari   Y - elf32 littlemips
70165138Syongari   Z - elf32 littlemips (far?)
71165138Syongari
72165138Syongari   . - Integer routines
73165138Syongari   H - Hard float
74165138Syongari   N - No float
75165138Syongari   S - Soft float
76165138Syongari
77165138Syongari   Want {F,M}{,H,S}
78165138Syongari
79165138Syongari*/
80165138Syongari
81165138Syongari#undef LIB_SPEC
82165138Syongari#define LIB_SPEC "--start-group -li -lcfp -lwindiss -lram -limpl -limpfp --end-group"
83165138Syongari
84165138Syongari#undef STARTFILE_SPEC
85165138Syongari#define STARTFILE_SPEC "crt0.o%s crtbegin.o%s"
86165138Syongari
87165138Syongari#undef ENDFILE_SPEC
88165138Syongari#define ENDFILE_SPEC "crtend.o%s"
89165138Syongari
90165138Syongari/* We have no shared libraries.  These two shouldn't be necessary.  */
91165138Syongari#undef LINK_SHLIB_SPEC
92165138Syongari#define LINK_SHLIB_SPEC ""
93165138Syongari#undef LINK_EH_SPEC
94165138Syongari#define LINK_EH_SPEC ""
95165138Syongari
96165138Syongari#undef CRTSAVRES_DEFAULT_SPEC
97165138Syongari#define CRTSAVRES_DEFAULT_SPEC ""
98165138Syongari
99165138Syongari/* No sdata.  */
100165138Syongari#undef MIPS_DEFAULT_GVALUE
101165138Syongari#define MIPS_DEFAULT_GVALUE 0
102165138Syongari