|
|
1.1 root 1: /* Definitions of target machine for GNU compiler.
2: Copyright (C) 1990 Free Software Foundation, Inc.
3:
4: Written by Robert Andersson, International Systems, Oslo, Norway.
5: Please send bug reports, questions and improvements to [email protected].
6:
7: For NCR Tower 32/4x0 and 32/6x0 running System V Release 3.
8: I don't have access to 200/700/800/850 machines, so I don't know if it
9: works on those as well. It shouldn't be far from it however.
10: The hardware floating point support is completely untested, as I do
11: not have access to a machine with a 6888x FPU in it.
12: It does not work on the System V Release 2 based OS releases. Making it
13: work will not be easy, due to the silly way in which stack expansion is
14: implemented in the OS.
15:
16: This file is included in both tm-tower-as.h and tm-tower-gc.h, and contains
17: definitions common to both of them. Do *NOT* include this file directly.
18:
19:
20: This file is part of GNU CC.
21:
22: GNU CC is free software; you can redistribute it and/or modify
23: it under the terms of the GNU General Public License as published by
24: the Free Software Foundation; either version 1, or (at your option)
25: any later version.
26:
27: GNU CC is distributed in the hope that it will be useful,
28: but WITHOUT ANY WARRANTY; without even the implied warranty of
29: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30: GNU General Public License for more details.
31:
32: You should have received a copy of the GNU General Public License
33: along with GNU CC; see the file COPYING. If not, write to
34: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
35:
36:
37: #include "tm-m68k.h"
38:
39:
40: /* See tm-m68k.h. 5 means 68020 with no 68881. */
41:
42: #define TARGET_DEFAULT 5
43:
44: /* Names to predefine in the preprocessor for this target machine. */
45:
46: #ifdef tower32_200
47: #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_200"
48: #endif
49: #ifdef tower32_600
50: #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_600"
51: #endif
52: #ifdef tower32_700
53: #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_700"
54: #endif
55: #ifdef tower32_800
56: #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_800"
57: #endif
58: #ifdef tower32_850
59: #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_850"
60: #endif
61:
62: /* The startfiles and libraries depend on the -p and -m68881 options.
63: The Tower does not support the -pg option. */
64:
65: #define LINK_SPEC \
66: "%{p:%{m68881:-L/usr/lib/fp/libp} -L/usr/lib/libp} \
67: %{m68881:-L/usr/lib/fp}"
68:
69: #define LIB_SPEC "-lc %{m68881:/usr/lib/fp/crtn.o}%{!m68881:/lib/crtn.o}"
70:
71: /* Use mem* functions, recognize #ident lines. */
72:
73: #define TARGET_MEM_FUNCTIONS
74: #define IDENT_DIRECTIVE
75:
76: /* This is only used in g++, don't prepend underscore. */
77:
78: #define NO_UNDERSCORES
79:
80: /* Every structure and union's size must be a multiple of two bytes. */
81:
82: #define STRUCTURE_SIZE_BOUNDARY 16
83:
84: /* All register names should have a leading % character. */
85:
86: #undef REGISTER_NAMES
87: #define REGISTER_NAMES \
88: {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \
89: "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \
90: "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7", \
91: "%fpa0", "%fpa1", "%fpa2", "%fpa3", "%fpa4", "%fpa5", "%fpa6", "%fpa7", \
92: "%fpa8", "%fpa9", "%fpa10", "%fpa11", "%fpa12", "%fpa13", "%fpa14", "%fpa15",\
93: "%fpa16","%fpa17", "%fpa18", "%fpa19", "%fpa20", "%fpa21", "%fpa22","%fpa23",\
94: "%fpa24","%fpa25", "%fpa26", "%fpa27", "%fpa28", "%fpa29", "%fpa30","%fpa31"}
95:
96: /* We do not want leading underscores. */
97:
98: #undef ASM_OUTPUT_LABELREF
99: #define ASM_OUTPUT_LABELREF(FILE,NAME) \
100: fprintf (FILE, "%s", NAME)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.