]>
Commit | Line | Data |
---|---|---|
de0a398e | 1 | /* Definitions of target machine for GCC, for SPARC64, ELF. |
99dee823 | 2 | Copyright (C) 1994-2021 Free Software Foundation, Inc. |
5181669e DE |
3 | Contributed by Doug Evans, dje@cygnus.com. |
4 | ||
de0a398e | 5 | This file is part of GCC. |
5181669e | 6 | |
de0a398e | 7 | GCC is free software; you can redistribute it and/or modify |
5181669e | 8 | it under the terms of the GNU General Public License as published by |
2f83c7d6 | 9 | the Free Software Foundation; either version 3, or (at your option) |
5181669e DE |
10 | any later version. |
11 | ||
de0a398e | 12 | GCC is distributed in the hope that it will be useful, |
5181669e DE |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ | |
5181669e | 20 | |
82d6b402 | 21 | /* A 64 bit v9 compiler in a Medium/Anywhere code model environment. */ |
5181669e DE |
22 | #undef TARGET_DEFAULT |
23 | #define TARGET_DEFAULT \ | |
a0a301fc | 24 | (MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_HARD_QUAD \ |
33074e5f | 25 | + MASK_APP_REGS + MASK_FPU + MASK_STACK_BIAS + MASK_LONG_DOUBLE_128) |
5181669e | 26 | |
a0a301fc DE |
27 | #undef SPARC_DEFAULT_CMODEL |
28 | #define SPARC_DEFAULT_CMODEL CM_EMBMEDANY | |
29 | ||
ae8b85c2 DE |
30 | #undef ASM_SPEC |
31 | #define ASM_SPEC "\ | |
428b3812 | 32 | -s %{" FPIE_OR_FPIC_SPEC ":-K PIC} \ |
a0a301fc | 33 | %(asm_cpu) %(asm_arch) \ |
ae8b85c2 | 34 | " |
5181669e DE |
35 | |
36 | /* This is taken from sol2.h. */ | |
37 | #undef LINK_SPEC | |
38 | #define LINK_SPEC "\ | |
96a097c9 | 39 | %{v:-V} \ |
5181669e DE |
40 | " |
41 | ||
ae8b85c2 | 42 | #undef STARTFILE_SPEC |
8ac79835 | 43 | #define STARTFILE_SPEC "crt0.o%s crti.o%s crtbegin.o%s" |
ae8b85c2 DE |
44 | |
45 | #undef ENDFILE_SPEC | |
a261e0cc | 46 | #define ENDFILE_SPEC \ |
0691dde9 | 47 | "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ |
8ac79835 | 48 | crtend.o%s crtn.o%s" |
ae8b85c2 DE |
49 | |
50 | /* Use the default (for now). */ | |
51 | #undef LIB_SPEC | |
81b47219 EB |
52 | \f |
53 | #undef LOCAL_LABEL_PREFIX | |
54 | #define LOCAL_LABEL_PREFIX "." | |
55 | ||
56 | /* This is how to store into the string LABEL | |
57 | the symbol_ref name of an internal numbered label where | |
58 | PREFIX is the class of label and NUM is the number within the class. | |
59 | This is suitable for output with `assemble_name'. */ | |
60 | ||
61 | #undef ASM_GENERATE_INTERNAL_LABEL | |
62 | #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \ | |
63 | sprintf ((LABEL), "*.L%s%ld", (PREFIX), (long)(NUM)) | |
64 | \f | |
5181669e DE |
65 | /* ??? This should be 32 bits for v9 but what can we do? */ |
66 | #undef WCHAR_TYPE | |
67 | #define WCHAR_TYPE "short unsigned int" | |
68 | ||
69 | #undef WCHAR_TYPE_SIZE | |
70 | #define WCHAR_TYPE_SIZE 16 | |
71 | ||
a0a301fc DE |
72 | #undef LONG_DOUBLE_TYPE_SIZE |
73 | #define LONG_DOUBLE_TYPE_SIZE 128 |