]>
Commit | Line | Data |
---|---|---|
fad92291 CZ |
1 | /* Target macros for arc*-elf targets. |
2 | ||
7adcbafe | 3 | Copyright (C) 2017-2022 Free Software Foundation, Inc. |
fad92291 CZ |
4 | |
5 | This file is part of GCC. | |
6 | ||
7 | GCC is free software; you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License as published by | |
9 | the Free Software Foundation; either version 3, or (at your option) | |
10 | any later version. | |
11 | ||
12 | GCC is distributed in the hope that it will be useful, | |
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 | |
18 | along with GCC; see the file COPYING3. If not see | |
19 | <http://www.gnu.org/licenses/>. */ | |
20 | ||
21 | #undef DWARF2_UNWIND_INFO | |
22 | #define DWARF2_UNWIND_INFO 0 | |
23 | ||
24 | #undef LINK_SPEC | |
25 | #define LINK_SPEC "%{mbig-endian:-EB} %{EB} %{EL}" | |
26 | ||
27 | #define ARC_TLS_EXTRA_START_SPEC "crttls.o%s" | |
28 | ||
0dee55fe CZ |
29 | #undef SUBTARGET_EXTRA_SPECS |
30 | #define SUBTARGET_EXTRA_SPECS \ | |
fad92291 CZ |
31 | { "arc_tls_extra_start_spec", ARC_TLS_EXTRA_START_SPEC }, \ |
32 | ||
33 | #undef STARTFILE_SPEC | |
34 | #define STARTFILE_SPEC "%{pg|p:gcrt0.o%s}%{!pg:%{!p:crt0.o%s}} crti%O%s " \ | |
35 | "%(arc_tls_extra_start_spec) crtbegin.o%s" | |
36 | ||
37 | #undef ENDFILE_SPEC | |
38 | #define ENDFILE_SPEC "crtend.o%s crtn%O%s" | |
39 | ||
40 | /* Leave the linker script to choose the appropriate libraries. */ | |
41 | #undef LIB_SPEC | |
42 | #define LIB_SPEC "" | |
43 | ||
44 | /* SDATA default for elf. */ | |
45 | #undef TARGET_SDATA_DEFAULT | |
46 | #define TARGET_SDATA_DEFAULT 1 | |
47 | ||
48 | /* We no medium calls. */ | |
49 | #undef TARGET_MMEDIUM_CALLS_DEFAULT | |
50 | #define TARGET_MMEDIUM_CALLS_DEFAULT 0 | |
51 | ||
52 | #ifdef ARC_MULTILIB_CPU_DEFAULT | |
53 | # ifndef MULTILIB_DEFAULTS | |
54 | # define MULTILIB_DEFAULTS { "mcpu=" ARC_MULTILIB_CPU_DEFAULT } | |
55 | # endif | |
56 | #endif | |
81b98ef7 CZ |
57 | |
58 | /* Bare-metal toolchains do not need a thread pointer register. */ | |
59 | #undef TARGET_ARC_TP_REGNO_DEFAULT | |
60 | #define TARGET_ARC_TP_REGNO_DEFAULT -1 | |
f26322a6 CZ |
61 | |
62 | /* Indexed loads are default. */ | |
63 | #undef TARGET_INDEXED_LOADS_DEFAULT | |
64 | #define TARGET_INDEXED_LOADS_DEFAULT 1 | |
65 | ||
66 | /* Pre/post modify with register displacement are default. */ | |
67 | #undef TARGET_AUTO_MODIFY_REG_DEFAULT | |
68 | #define TARGET_AUTO_MODIFY_REG_DEFAULT 1 | |
6b55f8c9 | 69 | |
048c6a9a CZ |
70 | /* Build attribute: procedure call standard. */ |
71 | #undef ATTRIBUTE_PCS | |
72 | #define ATTRIBUTE_PCS 2 | |
73 | ||
6b55f8c9 CZ |
74 | #undef TARGET_ASM_FILE_END |
75 | #define TARGET_ASM_FILE_END arc_file_end | |
60a3f659 CZ |
76 | |
77 | /* If no specs file is enforced, default to nosys libarary. */ | |
78 | #undef LINK_GCC_C_SEQUENCE_SPEC | |
79 | #define LINK_GCC_C_SEQUENCE_SPEC \ | |
f37866e8 | 80 | "--start-group %G %{!specs=*:%{!nolibc:-lc -lnosys}} --end-group" |
9de6af45 CZ |
81 | |
82 | /* Emit rtl for profiling. Output assembler code to FILE | |
83 | to call "_mcount" for profiling a function entry. */ | |
84 | #define PROFILE_HOOK(LABEL) \ | |
85 | { \ | |
86 | rtx fun; \ | |
87 | fun = gen_rtx_SYMBOL_REF (Pmode, "__mcount"); \ | |
88 | emit_library_call (fun, LCT_NORMAL, VOIDmode); \ | |
89 | } | |
f5d56cf9 CZ |
90 | |
91 | /* Enter/Leave default value. */ | |
92 | #undef TARGET_CODE_DENSITY_FRAME_DEFAULT | |
93 | #define TARGET_CODE_DENSITY_FRAME_DEFAULT 0 |