1 | /* Default initializers for a generic GCC target. |
2 | Copyright (C) 2001-2023 Free Software Foundation, Inc. |
3 | |
4 | This program is free software; you can redistribute it and/or modify it |
5 | under the terms of the GNU General Public License as published by the |
6 | Free Software Foundation; either version 3, or (at your option) any |
7 | later version. |
8 | |
9 | This program is distributed in the hope that it will be useful, |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | GNU General Public License for more details. |
13 | |
14 | You should have received a copy of the GNU General Public License |
15 | along with this program; see the file COPYING3. If not see |
16 | <http://www.gnu.org/licenses/>. |
17 | |
18 | In other words, you are welcome to use, share and improve this program. |
19 | You are forbidden to forbid anyone else to use, share and improve |
20 | what you give them. Help stamp out software-hoarding! */ |
21 | |
22 | /* See target.def for a description of what this file contains and how to |
23 | use it. |
24 | |
25 | We want to have non-NULL default definitions of all hook functions, |
26 | even if they do nothing. */ |
27 | |
28 | /* Note that if one of these macros must be defined in an OS .h file |
29 | rather than the .c file, then we need to wrap the default |
30 | definition in a #ifndef, since files include tm.h before this one. */ |
31 | |
32 | #define TARGET_ASM_ALIGNED_HI_OP "\t.short\t" |
33 | #define TARGET_ASM_ALIGNED_SI_OP "\t.long\t" |
34 | #define TARGET_ASM_ALIGNED_DI_OP NULL |
35 | #define TARGET_ASM_ALIGNED_TI_OP NULL |
36 | |
37 | /* GAS and SYSV4 assemblers accept these. */ |
38 | #if defined (OBJECT_FORMAT_ELF) |
39 | #define TARGET_ASM_UNALIGNED_HI_OP "\t.2byte\t" |
40 | #define TARGET_ASM_UNALIGNED_SI_OP "\t.4byte\t" |
41 | #define TARGET_ASM_UNALIGNED_DI_OP "\t.8byte\t" |
42 | #define TARGET_ASM_UNALIGNED_TI_OP NULL |
43 | #else |
44 | #define TARGET_ASM_UNALIGNED_HI_OP NULL |
45 | #define TARGET_ASM_UNALIGNED_SI_OP NULL |
46 | #define TARGET_ASM_UNALIGNED_DI_OP NULL |
47 | #define TARGET_ASM_UNALIGNED_TI_OP NULL |
48 | #endif /* OBJECT_FORMAT_ELF */ |
49 | |
50 | /* There is no standard way to handle P{S,D,T}Imode, targets must implement them |
51 | if required. */ |
52 | #define TARGET_ASM_ALIGNED_PSI_OP NULL |
53 | #define TARGET_ASM_UNALIGNED_PSI_OP NULL |
54 | #define TARGET_ASM_ALIGNED_PDI_OP NULL |
55 | #define TARGET_ASM_UNALIGNED_PDI_OP NULL |
56 | #define TARGET_ASM_ALIGNED_PTI_OP NULL |
57 | #define TARGET_ASM_UNALIGNED_PTI_OP NULL |
58 | |
59 | #if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2) |
60 | # ifdef CTORS_SECTION_ASM_OP |
61 | # define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor |
62 | # else |
63 | # ifdef TARGET_ASM_NAMED_SECTION |
64 | # define TARGET_ASM_CONSTRUCTOR default_named_section_asm_out_constructor |
65 | # else |
66 | # define TARGET_ASM_CONSTRUCTOR default_asm_out_constructor |
67 | # endif |
68 | # endif |
69 | #endif |
70 | |
71 | #if !defined(TARGET_ASM_DESTRUCTOR) && !defined(USE_COLLECT2) |
72 | # ifdef DTORS_SECTION_ASM_OP |
73 | # define TARGET_ASM_DESTRUCTOR default_dtor_section_asm_out_destructor |
74 | # else |
75 | # ifdef TARGET_ASM_NAMED_SECTION |
76 | # define TARGET_ASM_DESTRUCTOR default_named_section_asm_out_destructor |
77 | # else |
78 | # define TARGET_ASM_DESTRUCTOR default_asm_out_destructor |
79 | # endif |
80 | # endif |
81 | #endif |
82 | |
83 | #if !defined(TARGET_HAVE_CTORS_DTORS) |
84 | # if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR) |
85 | # define TARGET_HAVE_CTORS_DTORS true |
86 | # endif |
87 | #endif |
88 | |
89 | #ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO |
90 | #ifdef EH_FRAME_SECTION_NAME |
91 | #define TARGET_TERMINATE_DW2_EH_FRAME_INFO false |
92 | #endif |
93 | #endif |
94 | |
95 | #if !defined(TARGET_ASM_OUTPUT_ANCHOR) && !defined(ASM_OUTPUT_DEF) |
96 | #define TARGET_ASM_OUTPUT_ANCHOR NULL |
97 | #endif |
98 | |
99 | #define TARGET_ASM_ALIGNED_INT_OP \ |
100 | {TARGET_ASM_ALIGNED_HI_OP, \ |
101 | TARGET_ASM_ALIGNED_PSI_OP, \ |
102 | TARGET_ASM_ALIGNED_SI_OP, \ |
103 | TARGET_ASM_ALIGNED_PDI_OP, \ |
104 | TARGET_ASM_ALIGNED_DI_OP, \ |
105 | TARGET_ASM_ALIGNED_PTI_OP, \ |
106 | TARGET_ASM_ALIGNED_TI_OP} |
107 | |
108 | #define TARGET_ASM_UNALIGNED_INT_OP \ |
109 | {TARGET_ASM_UNALIGNED_HI_OP, \ |
110 | TARGET_ASM_UNALIGNED_PSI_OP, \ |
111 | TARGET_ASM_UNALIGNED_SI_OP, \ |
112 | TARGET_ASM_UNALIGNED_PDI_OP, \ |
113 | TARGET_ASM_UNALIGNED_DI_OP, \ |
114 | TARGET_ASM_UNALIGNED_PTI_OP, \ |
115 | TARGET_ASM_UNALIGNED_TI_OP} |
116 | |
117 | #if !defined (TARGET_FUNCTION_INCOMING_ARG) |
118 | #define TARGET_FUNCTION_INCOMING_ARG TARGET_FUNCTION_ARG |
119 | #endif |
120 | |
121 | #include "target-hooks-def.h" |
122 | |
123 | #include "hooks.h" |
124 | #include "targhooks.h" |
125 | #include "insn-target-def.h" |
126 | |