annotate gcc/config/rs6000/rtems.h @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 /* Definitions for rtems targeting a PowerPC using elf.
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
2 Copyright (C) 1996-2020 Free Software Foundation, Inc.
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 Contributed by Joel Sherrill (joel@OARcorp.com).
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 This file is part of GCC.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 GCC is free software; you can redistribute it and/or modify it
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 under the terms of the GNU General Public License as published
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 by the Free Software Foundation; either version 3, or (at your
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 option) any later version.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 GCC is distributed in the hope that it will be useful, but WITHOUT
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 License for more details.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
111
kono
parents: 0
diff changeset
17 Under Section 7 of GPL version 3, you are granted additional
kono
parents: 0
diff changeset
18 permissions described in the GCC Runtime Library Exception, version
kono
parents: 0
diff changeset
19 3.1, as published by the Free Software Foundation.
kono
parents: 0
diff changeset
20
kono
parents: 0
diff changeset
21 You should have received a copy of the GNU General Public License and
kono
parents: 0
diff changeset
22 a copy of the GCC Runtime Library Exception along with this program;
kono
parents: 0
diff changeset
23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 <http://www.gnu.org/licenses/>. */
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
111
kono
parents: 0
diff changeset
26 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
27 #ifdef IN_LIBGCC2
kono
parents: 0
diff changeset
28 #undef TARGET_64BIT
kono
parents: 0
diff changeset
29 #ifdef __powerpc64__
kono
parents: 0
diff changeset
30 #define TARGET_64BIT 1
kono
parents: 0
diff changeset
31 #else
kono
parents: 0
diff changeset
32 #define TARGET_64BIT 0
kono
parents: 0
diff changeset
33 #endif
kono
parents: 0
diff changeset
34 #endif
kono
parents: 0
diff changeset
35
kono
parents: 0
diff changeset
36 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
37 #undef TARGET_AIX
kono
parents: 0
diff changeset
38 #define TARGET_AIX TARGET_64BIT
kono
parents: 0
diff changeset
39
kono
parents: 0
diff changeset
40 /* Simplified copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
41 #undef DOT_SYMBOLS
kono
parents: 0
diff changeset
42 #define DOT_SYMBOLS 0
kono
parents: 0
diff changeset
43
kono
parents: 0
diff changeset
44 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
45 #undef TARGET_CMODEL
kono
parents: 0
diff changeset
46 #define TARGET_CMODEL rs6000_current_cmodel
kono
parents: 0
diff changeset
47 #define SET_CMODEL(opt) rs6000_current_cmodel = opt
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 #undef TARGET_OS_CPP_BUILTINS
111
kono
parents: 0
diff changeset
50 #define TARGET_OS_CPP_BUILTINS() \
kono
parents: 0
diff changeset
51 do \
kono
parents: 0
diff changeset
52 { \
kono
parents: 0
diff changeset
53 builtin_define ("__rtems__"); \
kono
parents: 0
diff changeset
54 builtin_define ("__USE_INIT_FINI__"); \
kono
parents: 0
diff changeset
55 builtin_assert ("system=rtems"); \
kono
parents: 0
diff changeset
56 if (TARGET_64BIT) \
kono
parents: 0
diff changeset
57 { \
kono
parents: 0
diff changeset
58 builtin_define ("__PPC__"); \
kono
parents: 0
diff changeset
59 builtin_define ("__PPC64__"); \
kono
parents: 0
diff changeset
60 builtin_define ("__powerpc64__"); \
kono
parents: 0
diff changeset
61 builtin_assert ("cpu=powerpc64"); \
kono
parents: 0
diff changeset
62 builtin_assert ("machine=powerpc64"); \
kono
parents: 0
diff changeset
63 } \
kono
parents: 0
diff changeset
64 else \
kono
parents: 0
diff changeset
65 { \
kono
parents: 0
diff changeset
66 builtin_define_std ("PPC"); \
kono
parents: 0
diff changeset
67 builtin_define_std ("powerpc"); \
kono
parents: 0
diff changeset
68 builtin_assert ("cpu=powerpc"); \
kono
parents: 0
diff changeset
69 builtin_assert ("machine=powerpc"); \
kono
parents: 0
diff changeset
70 TARGET_OS_SYSV_CPP_BUILTINS (); \
kono
parents: 0
diff changeset
71 } \
kono
parents: 0
diff changeset
72 } \
kono
parents: 0
diff changeset
73 while (0)
kono
parents: 0
diff changeset
74
kono
parents: 0
diff changeset
75 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
76 #undef RELOCATABLE_NEEDS_FIXUP
kono
parents: 0
diff changeset
77 #define RELOCATABLE_NEEDS_FIXUP \
kono
parents: 0
diff changeset
78 (rs6000_isa_flags & rs6000_isa_flags_explicit & OPTION_MASK_RELOCATABLE)
kono
parents: 0
diff changeset
79
kono
parents: 0
diff changeset
80 /* Copy and paste from linux64.h */
kono
parents: 0
diff changeset
81 #undef RS6000_ABI_NAME
kono
parents: 0
diff changeset
82 #define RS6000_ABI_NAME "linux"
kono
parents: 0
diff changeset
83
kono
parents: 0
diff changeset
84 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
85 #define INVALID_64BIT "-m%s not supported in this configuration"
kono
parents: 0
diff changeset
86
kono
parents: 0
diff changeset
87 /* A lot of copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
88 #undef SUBSUBTARGET_OVERRIDE_OPTIONS
kono
parents: 0
diff changeset
89 #define SUBSUBTARGET_OVERRIDE_OPTIONS \
kono
parents: 0
diff changeset
90 do \
kono
parents: 0
diff changeset
91 { \
kono
parents: 0
diff changeset
92 if (rs6000_isa_flags & OPTION_MASK_64BIT) \
kono
parents: 0
diff changeset
93 { \
kono
parents: 0
diff changeset
94 rs6000_elf_abi = 2; \
kono
parents: 0
diff changeset
95 rs6000_current_abi = ABI_ELFv2; \
kono
parents: 0
diff changeset
96 if (rs6000_isa_flags & OPTION_MASK_RELOCATABLE) \
kono
parents: 0
diff changeset
97 { \
kono
parents: 0
diff changeset
98 rs6000_isa_flags &= ~OPTION_MASK_RELOCATABLE; \
kono
parents: 0
diff changeset
99 error (INVALID_64BIT, "relocatable"); \
kono
parents: 0
diff changeset
100 } \
kono
parents: 0
diff changeset
101 if (rs6000_isa_flags & OPTION_MASK_EABI) \
kono
parents: 0
diff changeset
102 { \
kono
parents: 0
diff changeset
103 rs6000_isa_flags &= ~OPTION_MASK_EABI; \
kono
parents: 0
diff changeset
104 error (INVALID_64BIT, "eabi"); \
kono
parents: 0
diff changeset
105 } \
kono
parents: 0
diff changeset
106 if (TARGET_PROTOTYPE) \
kono
parents: 0
diff changeset
107 { \
kono
parents: 0
diff changeset
108 target_prototype = 0; \
kono
parents: 0
diff changeset
109 error (INVALID_64BIT, "prototype"); \
kono
parents: 0
diff changeset
110 } \
kono
parents: 0
diff changeset
111 if ((rs6000_isa_flags & OPTION_MASK_POWERPC64) == 0) \
kono
parents: 0
diff changeset
112 { \
kono
parents: 0
diff changeset
113 rs6000_isa_flags |= OPTION_MASK_POWERPC64; \
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
114 error ("%<-m64%> requires a PowerPC64 cpu"); \
111
kono
parents: 0
diff changeset
115 } \
kono
parents: 0
diff changeset
116 if ((rs6000_isa_flags_explicit \
kono
parents: 0
diff changeset
117 & OPTION_MASK_MINIMAL_TOC) != 0) \
kono
parents: 0
diff changeset
118 { \
kono
parents: 0
diff changeset
119 if (global_options_set.x_rs6000_current_cmodel \
kono
parents: 0
diff changeset
120 && rs6000_current_cmodel != CMODEL_SMALL) \
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
121 error ("%<-mcmodel%> incompatible with other toc options"); \
111
kono
parents: 0
diff changeset
122 SET_CMODEL (CMODEL_SMALL); \
kono
parents: 0
diff changeset
123 } \
kono
parents: 0
diff changeset
124 else \
kono
parents: 0
diff changeset
125 { \
kono
parents: 0
diff changeset
126 if (!global_options_set.x_rs6000_current_cmodel) \
kono
parents: 0
diff changeset
127 SET_CMODEL (CMODEL_MEDIUM); \
kono
parents: 0
diff changeset
128 if (rs6000_current_cmodel != CMODEL_SMALL) \
kono
parents: 0
diff changeset
129 { \
kono
parents: 0
diff changeset
130 TARGET_NO_FP_IN_TOC = 0; \
kono
parents: 0
diff changeset
131 TARGET_NO_SUM_IN_TOC = 0; \
kono
parents: 0
diff changeset
132 } \
kono
parents: 0
diff changeset
133 } \
kono
parents: 0
diff changeset
134 } \
kono
parents: 0
diff changeset
135 } \
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 while (0)
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137
111
kono
parents: 0
diff changeset
138 #undef TARGET_LIBGCC_SDATA_SECTION
kono
parents: 0
diff changeset
139 #define TARGET_LIBGCC_SDATA_SECTION ".sdata"
kono
parents: 0
diff changeset
140
kono
parents: 0
diff changeset
141 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
142 #undef SIZE_TYPE
kono
parents: 0
diff changeset
143 #define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "unsigned int")
kono
parents: 0
diff changeset
144
kono
parents: 0
diff changeset
145 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
146 #undef PTRDIFF_TYPE
kono
parents: 0
diff changeset
147 #define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
kono
parents: 0
diff changeset
148
kono
parents: 0
diff changeset
149 /* Copy and paste from freebsd64.h */
kono
parents: 0
diff changeset
150 #undef WCHAR_TYPE
kono
parents: 0
diff changeset
151
kono
parents: 0
diff changeset
152 /* Copy and paste from freebsd64.h */
kono
parents: 0
diff changeset
153 #undef WCHAR_TYPE_SIZE
kono
parents: 0
diff changeset
154 #define WCHAR_TYPE_SIZE 32
kono
parents: 0
diff changeset
155
kono
parents: 0
diff changeset
156 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
157 #ifdef __powerpc64__
kono
parents: 0
diff changeset
158 #define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
kono
parents: 0
diff changeset
159 asm (SECTION_OP "\n" \
kono
parents: 0
diff changeset
160 " bl " #FUNC "\n" \
kono
parents: 0
diff changeset
161 " nop\n" \
kono
parents: 0
diff changeset
162 " .previous");
kono
parents: 0
diff changeset
163 #endif
kono
parents: 0
diff changeset
164
kono
parents: 0
diff changeset
165 /* This could be also POWERPC_FREEBSD. It is related to the save/restore
kono
parents: 0
diff changeset
166 defines below. */
kono
parents: 0
diff changeset
167 #define POWERPC_LINUX
kono
parents: 0
diff changeset
168
kono
parents: 0
diff changeset
169 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
170 #undef SAVE_FP_PREFIX
kono
parents: 0
diff changeset
171 #define SAVE_FP_PREFIX (TARGET_64BIT ? "._savef" : "_savefpr_")
kono
parents: 0
diff changeset
172 #undef SAVE_FP_SUFFIX
kono
parents: 0
diff changeset
173 #define SAVE_FP_SUFFIX ""
kono
parents: 0
diff changeset
174 #undef RESTORE_FP_PREFIX
kono
parents: 0
diff changeset
175 #define RESTORE_FP_PREFIX (TARGET_64BIT ? "._restf" : "_restfpr_")
kono
parents: 0
diff changeset
176 #undef RESTORE_FP_SUFFIX
kono
parents: 0
diff changeset
177 #define RESTORE_FP_SUFFIX ""
kono
parents: 0
diff changeset
178
kono
parents: 0
diff changeset
179 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
180 #undef ASM_PREFERRED_EH_DATA_FORMAT
kono
parents: 0
diff changeset
181 #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
kono
parents: 0
diff changeset
182 (TARGET_64BIT || flag_pic \
kono
parents: 0
diff changeset
183 ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel \
kono
parents: 0
diff changeset
184 | (TARGET_64BIT ? DW_EH_PE_udata8 : DW_EH_PE_sdata4)) \
kono
parents: 0
diff changeset
185 : DW_EH_PE_absptr)
kono
parents: 0
diff changeset
186
kono
parents: 0
diff changeset
187 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
188 #undef TOC_SECTION_ASM_OP
kono
parents: 0
diff changeset
189 #define TOC_SECTION_ASM_OP \
kono
parents: 0
diff changeset
190 (TARGET_64BIT \
kono
parents: 0
diff changeset
191 ? "\t.section\t\".toc\",\"aw\"" \
kono
parents: 0
diff changeset
192 : "\t.section\t\".got\",\"aw\"")
kono
parents: 0
diff changeset
193
kono
parents: 0
diff changeset
194 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
195 #undef MINIMAL_TOC_SECTION_ASM_OP
kono
parents: 0
diff changeset
196 #define MINIMAL_TOC_SECTION_ASM_OP \
kono
parents: 0
diff changeset
197 (TARGET_64BIT \
kono
parents: 0
diff changeset
198 ? "\t.section\t\".toc1\",\"aw\"" \
kono
parents: 0
diff changeset
199 : (flag_pic \
kono
parents: 0
diff changeset
200 ? "\t.section\t\".got2\",\"aw\"" \
kono
parents: 0
diff changeset
201 : "\t.section\t\".got1\",\"aw\""))
kono
parents: 0
diff changeset
202
kono
parents: 0
diff changeset
203 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
204 #undef ASM_DECLARE_FUNCTION_SIZE
kono
parents: 0
diff changeset
205 #define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
kono
parents: 0
diff changeset
206 do \
kono
parents: 0
diff changeset
207 { \
kono
parents: 0
diff changeset
208 if (!flag_inhibit_size_directive) \
kono
parents: 0
diff changeset
209 { \
kono
parents: 0
diff changeset
210 fputs ("\t.size\t", (FILE)); \
kono
parents: 0
diff changeset
211 if (TARGET_64BIT && DOT_SYMBOLS) \
kono
parents: 0
diff changeset
212 putc ('.', (FILE)); \
kono
parents: 0
diff changeset
213 assemble_name ((FILE), (FNAME)); \
kono
parents: 0
diff changeset
214 fputs (",.-", (FILE)); \
kono
parents: 0
diff changeset
215 rs6000_output_function_entry (FILE, FNAME); \
kono
parents: 0
diff changeset
216 putc ('\n', (FILE)); \
kono
parents: 0
diff changeset
217 } \
kono
parents: 0
diff changeset
218 } \
kono
parents: 0
diff changeset
219 while (0)
kono
parents: 0
diff changeset
220
kono
parents: 0
diff changeset
221 /* Copy and paste from linux64.h and freebsd64.h */
kono
parents: 0
diff changeset
222 #undef ASM_OUTPUT_SPECIAL_POOL_ENTRY_P
kono
parents: 0
diff changeset
223 #define ASM_OUTPUT_SPECIAL_POOL_ENTRY_P(X, MODE) \
kono
parents: 0
diff changeset
224 (TARGET_TOC \
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
225 && (SYMBOL_REF_P (X) \
111
kono
parents: 0
diff changeset
226 || (GET_CODE (X) == CONST && GET_CODE (XEXP (X, 0)) == PLUS \
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
227 && SYMBOL_REF_P (XEXP (XEXP (X, 0), 0))) \
111
kono
parents: 0
diff changeset
228 || GET_CODE (X) == LABEL_REF \
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
229 || (CONST_INT_P (X) \
111
kono
parents: 0
diff changeset
230 && GET_MODE_BITSIZE (MODE) <= GET_MODE_BITSIZE (Pmode)) \
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
231 || (CONST_DOUBLE_P (X) \
111
kono
parents: 0
diff changeset
232 && ((TARGET_64BIT \
kono
parents: 0
diff changeset
233 && (TARGET_MINIMAL_TOC \
kono
parents: 0
diff changeset
234 || (SCALAR_FLOAT_MODE_P (GET_MODE (X)) \
kono
parents: 0
diff changeset
235 && ! TARGET_NO_FP_IN_TOC))) \
kono
parents: 0
diff changeset
236 || (!TARGET_64BIT \
kono
parents: 0
diff changeset
237 && !TARGET_NO_FP_IN_TOC \
kono
parents: 0
diff changeset
238 && SCALAR_FLOAT_MODE_P (GET_MODE (X)) \
kono
parents: 0
diff changeset
239 && BITS_PER_WORD == HOST_BITS_PER_INT)))))
kono
parents: 0
diff changeset
240
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 #undef CPP_OS_DEFAULT_SPEC
111
kono
parents: 0
diff changeset
242 #define CPP_OS_DEFAULT_SPEC "\
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 %{!mcpu*: %{!Dppc*: %{!Dmpc*: -Dmpc750} } }\
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
244 %{mcpu=403: %{!Dppc*: %{!Dmpc*: -Dppc403} } } \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
245 %{mcpu=505: %{!Dppc*: %{!Dmpc*: -Dmpc505} } } \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 %{mcpu=601: %{!Dppc*: %{!Dmpc*: -Dppc601} } } \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 %{mcpu=602: %{!Dppc*: %{!Dmpc*: -Dppc602} } } \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
248 %{mcpu=603: %{!Dppc*: %{!Dmpc*: -Dppc603} } } \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 %{mcpu=603e: %{!Dppc*: %{!Dmpc*: -Dppc603e} } } \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
250 %{mcpu=604: %{!Dppc*: %{!Dmpc*: -Dmpc604} } } \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
251 %{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 %{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \
111
kono
parents: 0
diff changeset
253 %{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } } \
kono
parents: 0
diff changeset
254 %{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540} } } \
kono
parents: 0
diff changeset
255 %{mcpu=e6500: -D__PPC_CPU_E6500__}"
kono
parents: 0
diff changeset
256
kono
parents: 0
diff changeset
257 #undef ASM_SPEC
kono
parents: 0
diff changeset
258 #define ASM_SPEC "%{!m64:%(asm_spec32)}%{m64:%(asm_spec64)} %(asm_spec_common)"
kono
parents: 0
diff changeset
259
kono
parents: 0
diff changeset
260 #define ASM_SPEC32 "-a32 \
kono
parents: 0
diff changeset
261 %{mrelocatable} %{mrelocatable-lib} %{" FPIE_OR_FPIC_SPEC ":-K PIC} \
kono
parents: 0
diff changeset
262 %{memb|msdata=eabi: -memb}"
kono
parents: 0
diff changeset
263
kono
parents: 0
diff changeset
264 #define ASM_SPEC64 "-a64"
kono
parents: 0
diff changeset
265
kono
parents: 0
diff changeset
266 #define ASM_SPEC_COMMON "%(asm_cpu) \
kono
parents: 0
diff changeset
267 %{,assembler|,assembler-with-cpp: %{mregnames} %{mno-regnames}}" \
kono
parents: 0
diff changeset
268 ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
kono
parents: 0
diff changeset
269
kono
parents: 0
diff changeset
270 #undef LINK_OS_DEFAULT_SPEC
kono
parents: 0
diff changeset
271 #define LINK_OS_DEFAULT_SPEC \
kono
parents: 0
diff changeset
272 "%{!m64:%(link_os_spec32)}%{m64:%(link_os_spec64)}"
kono
parents: 0
diff changeset
273
kono
parents: 0
diff changeset
274 #define LINK_OS_SPEC32 ENDIAN_SELECT(" -m elf32ppc", \
kono
parents: 0
diff changeset
275 " -m elf32lppc", \
kono
parents: 0
diff changeset
276 " -m elf32ppc")
kono
parents: 0
diff changeset
277 #define LINK_OS_SPEC64 ENDIAN_SELECT(" -m elf64ppc", \
kono
parents: 0
diff changeset
278 " -m elf64lppc", \
kono
parents: 0
diff changeset
279 " -m elf64ppc")
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
280
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
281 #undef SUBSUBTARGET_EXTRA_SPECS
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
282 #define SUBSUBTARGET_EXTRA_SPECS \
111
kono
parents: 0
diff changeset
283 { "asm_spec_common", ASM_SPEC_COMMON }, \
kono
parents: 0
diff changeset
284 { "asm_spec32", ASM_SPEC32 }, \
kono
parents: 0
diff changeset
285 { "asm_spec64", ASM_SPEC64 }, \
kono
parents: 0
diff changeset
286 { "link_os_spec32", LINK_OS_SPEC32 }, \
kono
parents: 0
diff changeset
287 { "link_os_spec64", LINK_OS_SPEC64 },
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
288
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
289 /* Use gnu-user.h LINK_GCC_SEQUENCE_SPEC for rtems. */
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
290 #undef LINK_GCC_C_SEQUENCE_SPEC
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
291 #define LINK_GCC_C_SEQUENCE_SPEC \
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
292 "%{mads|myellowknife|mmvme|msim:%G %L %G;" \
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
293 "!mcall-*|mcall-linux:" GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC ";" \
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
294 ":%G %L %G}"