]>
Commit | Line | Data |
---|---|---|
ff4b82d0 | 1 | /* Definitions of target machine for GNU compiler. Concurrent 68k version. |
3ef00709 | 2 | Copyright (C) 1987, 1988, 1995, 1996 Free Software Foundation, Inc. |
ff4b82d0 RK |
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 1, 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 | |
0e29e3c9 RK |
18 | the Free Software Foundation, 59 Temple Place - Suite 330, |
19 | Boston, MA 02111-1307, USA. */ | |
ff4b82d0 RK |
20 | |
21 | #ifndef MASSCOMP | |
22 | #define MASSCOMP | |
23 | #endif | |
24 | ||
25 | #ifndef CONCURRENT | |
26 | #define CONCURRENT | |
27 | #endif | |
28 | ||
29 | #ifndef __mc68000__ | |
30 | #define __mc68000__ | |
31 | #endif | |
32 | ||
33 | #ifndef __mc68020__ | |
34 | #define __mc68020__ | |
35 | #endif | |
36 | ||
37 | #define USE_GAS | |
38 | #define MOVE_RATIO 100 | |
39 | ||
40 | #define SPACE_AFTER_L_OPTION | |
3ef00709 | 41 | #define SWITCHES_NEED_SPACES "oL" |
ff4b82d0 | 42 | |
3aad0464 RK |
43 | /* See m68k.h. 7 means 68020 with 68881. */ |
44 | #define TARGET_DEFAULT (MASK_68040_ALSO|MASK_BITFIELD|MASK_68881|MASK_68020) | |
ff4b82d0 RK |
45 | |
46 | #include "m68k/m68k.h" | |
47 | ||
48 | #define SIZE_TYPE "int" | |
49 | ||
50 | /* for 68k machines this only needs to be TRUE for the 68000 */ | |
51 | ||
52 | #undef STRICT_ALIGNMENT | |
53 | #define STRICT_ALIGNMENT 0 | |
54 | ||
55 | /* Names to predefine in the preprocessor for this target machine. */ | |
56 | #define CPP_PREDEFINES \ | |
57 | "-Dmc68000 -Dmasscomp -DMASSCOMP -Dunix -DLANGUAGE_C -Dconcurrent -DCONCURRENT" | |
58 | ||
59 | #undef TARGET_VERSION | |
60 | #define TARGET_VERSION fprintf (stderr, " (68k, GNU GAS syntax)"); | |
61 | ||
62 | /* Discard internal local symbols beginning with 'L'. */ | |
63 | #define LINK_SPEC "-X" | |
64 | ||
65 | /* Every structure or union's size must be a multiple of 4 bytes. */ | |
66 | #define STRUCTURE_SIZE_BOUNDARY 16 | |
67 | ||
68 | /* No data type wants to be aligned rounder than this. */ | |
69 | #undef BIGGEST_ALIGNMENT | |
70 | #define BIGGEST_ALIGNMENT 32 | |
71 | ||
72 | /* Allocation boundary (in *bits*) for storing pointers in memory. */ | |
73 | #undef POINTER_BOUNDARY | |
74 | #define POINTER_BOUNDARY 32 | |
75 | ||
76 | /* Alignment of field after `int : 0' in a structure. */ | |
77 | #undef EMPTY_FIELD_BOUNDARY | |
78 | #define EMPTY_FIELD_BOUNDARY 32 | |
79 | ||
ddd5a7c1 | 80 | /* Allocation boundary in bits for the code of a function */ |
2e572bca RK |
81 | #undef FUNCTION_BOUNDARY |
82 | #define FUNCTION_BOUNDARY 32 | |
ff4b82d0 RK |
83 | |
84 | /* Make strings long-word aligned so dhrystones will run faster. */ | |
85 | #define CONSTANT_ALIGNMENT(EXP, ALIGN) \ | |
86 | (TREE_CODE (EXP) == STRING_CST \ | |
87 | && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN)) | |
88 | ||
89 | /* Make arrays of chars word-aligned for the same reasons. */ | |
90 | #define DATA_ALIGNMENT(TYPE, ALIGN) \ | |
91 | (TREE_CODE (TYPE) == ARRAY_TYPE \ | |
92 | && TYPE_MODE (TREE_TYPE (TYPE)) == QImode \ | |
93 | && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN)) | |
94 | ||
95 | /* This is BSD, so it wants DBX format. */ | |
96 | #define DBX_DEBUGGING_INFO | |
97 | ||
98 | /* Override parts of m68k.h */ | |
99 | ||
100 | #undef CALL_USED_REGISTERS | |
101 | #define CALL_USED_REGISTERS \ | |
102 | {1, 1, 0, 0, 0, 0, 0, 0, \ | |
103 | 1, 1, 0, 0, 0, 0, 0, 1, \ | |
104 | 1, 1, 0, 0, 0, 0, 1, 1 } | |
105 | ||
106 | #undef REG_ALLOC_ORDER | |
107 | #define REG_ALLOC_ORDER \ | |
108 | { 0, 1, 2, 3, 4, 5, 6, 7,\ | |
109 | 8, 9, 10, 11, 12, 13, 14, 15, \ | |
110 | 16, 17, 22, 23, 18, 19, 20, 21 } | |
111 | ||
112 | #undef ASM_FILE_START | |
113 | #define ASM_FILE_START(FILE) \ | |
114 | fprintf (FILE, "#NO_APP\n.globl fltused\n"); | |
115 | ||
116 | #undef ASM_OUTPUT_ALIGN | |
117 | #define ASM_OUTPUT_ALIGN(FILE,LOG) \ | |
118 | { int _LOG = LOG; \ | |
119 | if (_LOG == 1) \ | |
120 | fprintf (FILE, "\t.even\n"); \ | |
121 | else if (_LOG == 2) \ | |
122 | fprintf (FILE, "\t.align 4\n"); \ | |
123 | else if (_LOG != 0) \ | |
124 | fprintf (FILE, "\t.align %d\n", _LOG);\ | |
125 | } | |
126 | ||
127 | /* crt0.c should use the vax-bsd style of entry, with a dummy arg. */ | |
128 | ||
129 | #define CRT0_DUMMIES bogus_fp, |