OLD | NEW |
1 /* Definitions of target machine for GNU compiler, for DEC Alpha on OSF/1. | 1 /* Definitions of target machine for GNU compiler, for DEC Alpha on OSF/1. |
2 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003, | 2 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003, |
3 2004, 2007 Free Software Foundation, Inc. | 3 2004, 2007, 2009 Free Software Foundation, Inc. |
4 Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | 4 Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) |
5 | 5 |
6 This file is part of GCC. | 6 This file is part of GCC. |
7 | 7 |
8 GCC is free software; you can redistribute it and/or modify | 8 GCC is free software; you can redistribute it and/or modify |
9 it under the terms of the GNU General Public License as published by | 9 it under the terms of the GNU General Public License as published by |
10 the Free Software Foundation; either version 3, or (at your option) | 10 the Free Software Foundation; either version 3, or (at your option) |
11 any later version. | 11 any later version. |
12 | 12 |
13 GCC is distributed in the hope that it will be useful, | 13 GCC is distributed in the hope that it will be useful, |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 \ | 155 \ |
156 /* 7 is PROT_READ | PROT_WRITE | PROT_EXEC */ \ | 156 /* 7 is PROT_READ | PROT_WRITE | PROT_EXEC */ \ |
157 if (mprotect (page, end - page, 7) < 0) \ | 157 if (mprotect (page, end - page, 7) < 0) \ |
158 perror ("mprotect of trampoline code"); \ | 158 perror ("mprotect of trampoline code"); \ |
159 } | 159 } |
160 | 160 |
161 /* Digital UNIX V4.0E (1091)/usr/include/sys/types.h 4.3.49.9 1997/08/14 */ | 161 /* Digital UNIX V4.0E (1091)/usr/include/sys/types.h 4.3.49.9 1997/08/14 */ |
162 #define SIZE_TYPE "long unsigned int" | 162 #define SIZE_TYPE "long unsigned int" |
163 #define PTRDIFF_TYPE "long int" | 163 #define PTRDIFF_TYPE "long int" |
164 | 164 |
| 165 #define SIG_ATOMIC_TYPE "int" |
| 166 |
| 167 #define INT8_TYPE "signed char" |
| 168 #define INT16_TYPE "short int" |
| 169 #define INT32_TYPE "int" |
| 170 #define INT64_TYPE "long int" |
| 171 #define UINT8_TYPE "unsigned char" |
| 172 #define UINT16_TYPE "short unsigned int" |
| 173 #define UINT32_TYPE "unsigned int" |
| 174 #define UINT64_TYPE "long unsigned int" |
| 175 |
| 176 #define INT_LEAST8_TYPE "signed char" |
| 177 #define INT_LEAST16_TYPE "short int" |
| 178 #define INT_LEAST32_TYPE "int" |
| 179 #define INT_LEAST64_TYPE "long int" |
| 180 #define UINT_LEAST8_TYPE "unsigned char" |
| 181 #define UINT_LEAST16_TYPE "short unsigned int" |
| 182 #define UINT_LEAST32_TYPE "unsigned int" |
| 183 #define UINT_LEAST64_TYPE "long unsigned int" |
| 184 |
| 185 #define INT_FAST8_TYPE "signed char" |
| 186 #define INT_FAST16_TYPE "int" |
| 187 #define INT_FAST32_TYPE "int" |
| 188 #define INT_FAST64_TYPE "long int" |
| 189 #define UINT_FAST8_TYPE "unsigned char" |
| 190 #define UINT_FAST16_TYPE "unsigned int" |
| 191 #define UINT_FAST32_TYPE "unsigned int" |
| 192 #define UINT_FAST64_TYPE "long unsigned int" |
| 193 |
| 194 #define INTPTR_TYPE "long int" |
| 195 #define UINTPTR_TYPE "long unsigned int" |
| 196 |
165 /* The linker will stick __main into the .init section. */ | 197 /* The linker will stick __main into the .init section. */ |
166 #define HAS_INIT_SECTION | 198 #define HAS_INIT_SECTION |
167 #define LD_INIT_SWITCH "-init" | 199 #define LD_INIT_SWITCH "-init" |
168 #define LD_FINI_SWITCH "-fini" | 200 #define LD_FINI_SWITCH "-fini" |
169 | 201 |
170 /* The linker needs a space after "-o". This allows -oldstyle_liblookup to | |
171 be passed to ld. */ | |
172 #define SWITCHES_NEED_SPACES "o" | |
173 | |
174 /* Select a format to encode pointers in exception handling data. CODE | 202 /* Select a format to encode pointers in exception handling data. CODE |
175 is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is | 203 is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is |
176 true if the symbol may be affected by dynamic relocations. | 204 true if the symbol may be affected by dynamic relocations. |
177 | 205 |
178 We really ought to be using the SREL32 relocations that ECOFF has, | 206 We really ought to be using the SREL32 relocations that ECOFF has, |
179 but no version of the native assembler supports creating such things, | 207 but no version of the native assembler supports creating such things, |
180 and Compaq has no plans to rectify this. Worse, the dynamic loader | 208 and Compaq has no plans to rectify this. Worse, the dynamic loader |
181 cannot handle unaligned relocations, so we have to make sure that | 209 cannot handle unaligned relocations, so we have to make sure that |
182 things get padded appropriately. */ | 210 things get padded appropriately. */ |
183 #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \ | 211 #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \ |
184 (TARGET_GAS \ | 212 (TARGET_GAS \ |
185 ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \ | 213 ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \ |
186 : DW_EH_PE_aligned) | 214 : DW_EH_PE_aligned) |
187 | 215 |
| 216 /* The Tru64 UNIX assembler warns on .lcomm with SIZE 0, so use 1 in that |
| 217 case. */ |
| 218 #undef ASM_OUTPUT_LOCAL |
| 219 #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE,ROUNDED) \ |
| 220 ( fputs ("\t.lcomm ", (FILE)), \ |
| 221 assemble_name ((FILE), (NAME)), \ |
| 222 fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED"\n", (SIZE) ? (SIZE) : 1)) |
| 223 |
188 /* This is how we tell the assembler that a symbol is weak. */ | 224 /* This is how we tell the assembler that a symbol is weak. */ |
189 | 225 |
190 #define ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, VALUE) \ | 226 #define ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, VALUE) \ |
191 do \ | 227 do \ |
192 { \ | 228 { \ |
193 (*targetm.asm_out.globalize_label) (FILE, NAME); \ | 229 (*targetm.asm_out.globalize_label) (FILE, NAME); \ |
194 fputs ("\t.weakext\t", FILE); \ | 230 fputs ("\t.weakext\t", FILE); \ |
195 assemble_name (FILE, NAME); \ | 231 assemble_name (FILE, NAME); \ |
196 if (VALUE) \ | 232 if (VALUE) \ |
197 { \ | 233 { \ |
198 fputc (' ', FILE); \ | 234 fputc (' ', FILE); \ |
199 assemble_name (FILE, VALUE); \ | 235 assemble_name (FILE, VALUE); \ |
200 } \ | 236 } \ |
201 fputc ('\n', FILE); \ | 237 fputc ('\n', FILE); \ |
202 } \ | 238 } \ |
203 while (0) | 239 while (0) |
204 | 240 |
205 #define ASM_WEAKEN_LABEL(FILE, NAME) ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, 0) | 241 #define ASM_WEAKEN_LABEL(FILE, NAME) ASM_OUTPUT_WEAK_ALIAS(FILE, NAME, 0) |
206 | 242 |
207 /* Handle #pragma weak and #pragma pack. */ | 243 /* Handle #pragma weak and #pragma pack. */ |
208 #define HANDLE_SYSV_PRAGMA 1 | 244 #define HANDLE_SYSV_PRAGMA 1 |
209 | 245 |
210 /* Handle #pragma extern_prefix. Technically only needed for Tru64 5.x, | 246 /* Handle #pragma extern_prefix. Technically only needed for Tru64 5.x, |
211 but easier to manipulate preprocessor bits from here. */ | 247 but easier to manipulate preprocessor bits from here. */ |
212 #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 1 | 248 #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 1 |
OLD | NEW |