|
|
1.1 root 1: /* Definitions of target machine for GNU compiler. Iris version.
2: Copyright (C) 1991 Free Software Foundation, Inc.
3:
4: This file is part of GNU CC.
5:
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.
10:
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.
15:
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, 675 Mass Ave, Cambridge, MA 02139, USA. */
19:
20: #define SGI_TARGET 1 /* inform other mips files this is SGI */
21:
22: /* Names to predefine in the preprocessor for this target machine. */
23:
24: #define CPP_PREDEFINES "\
25: -Dunix -Dmips -Dsgi -DSVR3 -Dhost_mips -DMIPSEB -DSYSTYPE_SYSV \
26: -Asystem(unix) -Asystem(svr3) -Acpu(mips) -Amachine(mips)"
27:
28: #define STARTFILE_SPEC "%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}"
29:
30: #define CPP_SPEC "\
31: %{!ansi:-D__EXTENSIONS__} -D_MIPSEB -D_SYSTYPE_SYSV \
32: %{.S: -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
33: %{.s: -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
34: %{.cc: -D_LANGUAGE_C_PLUS_PLUS} \
35: %{.cxx: -D_LANGUAGE_C_PLUS_PLUS} \
36: %{.C: -D_LANGUAGE_C_PLUS_PLUS} \
37: %{.m: -D_LANGUAGE_OBJECTIVE_C} \
38: %{!.S: %{!.s: %{!.cc: %{!.cxx: %{!.C: %{!.m: -D_LANGUAGE_C %{!ansi:-DLANGUAGE_C}}}}}}}"
39:
40: #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p} crtn.o%s"
41:
42: #define MACHINE_TYPE "Silicon Graphics Mips"
43:
44: /* SGI Iris doesn't support -EB/-EL like other MIPS processors. */
45:
46: #define ASM_SPEC "\
47: %{!mgas: \
48: %{!mrnames: %{!.s:-nocpp} %{.s: %{cpp} %{nocpp}}} \
49: %{pipe: %e-pipe is not supported.} \
50: %{mips1} %{mips2} %{mips3} \
51: %{noasmopt:-O0} \
52: %{!noasmopt:%{O:-O2} %{O1:-O2} %{O2:-O2} %{O3:-O3}} \
53: %{g} %{g0} %{g1} %{g2} %{g3} %{v} %{K} \
54: %{ggdb:-g} %{ggdb0:-g0} %{ggdb1:-g1} %{ggdb2:-g2} %{ggdb3:-g3} \
55: %{gstabs:-g} %{gstabs0:-g0} %{gstabs1:-g1} %{gstabs2:-g2} %{gstabs3:-g3} \
56: %{gstabs+:-g} %{gstabs+0:-g0} %{gstabs+1:-g1} %{gstabs+2:-g2} %{gstabs+3:-g3} \
57: %{gcoff:-g} %{gstabs0:-g0} %{gcoff1:-g1} %{gcoff2:-g2} %{gcoff3:-g3}} \
58: %{G*}"
59:
60: #define LINK_SPEC "\
61: %{G*} \
62: %{!mgas: %{mips1} %{mips2} %{mips3} \
63: %{bestGnum} %{shared} %{non_shared}}"
64:
65: /* Always use 1 for .file number. I [[email protected]] wonder why
66: IRIS needs this. */
67:
68: #define SET_FILE_NUMBER() num_source_filenames = 1
69:
70: /* Put out a label after a .loc. I [[email protected]] wonder why
71: IRIS needs this. */
72:
73: #define LABEL_AFTER_LOC(STREAM) fprintf (STREAM, "LM%d:\n", ++sym_lineno)
74:
75: #define STACK_ARGS_ADJUST(SIZE) \
76: { \
77: SIZE.constant += 4; \
78: if (SIZE.constant < 32) \
79: SIZE.constant = 32; \
80: }
81:
82: /* Define this macro to control use of the character `$' in
83: identifier names. The value should be 0, 1, or 2. 0 means `$'
84: is not allowed by default; 1 means it is allowed by default if
85: `-traditional' is used; 2 means it is allowed by default provided
86: `-ansi' is not used. 1 is the default; there is no need to
87: define this macro in that case. */
88:
89: #define DOLLARS_IN_IDENTIFIERS 0
90:
91: /* Tell G++ not to create constructors or destructors with $'s in them. */
92:
93: #define NO_DOLLAR_IN_LABEL 1
94:
95: /* Specify size_t, ptrdiff_t, and wchar_t types. */
96: #define SIZE_TYPE "unsigned int"
97: #define PTRDIFF_TYPE "int"
98: #define WCHAR_TYPE "unsigned char"
99: #define WCHAR_TYPE_SIZE BITS_PER_UNIT
100:
101: /* Generate calls to memcpy, etc., not bcopy, etc. */
102: #define TARGET_MEM_FUNCTIONS
103:
104: /* Plain char is unsigned in the SGI compiler. */
105: #define DEFAULT_SIGNED_CHAR 0
106:
107: #include "mips/mips.h"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.