]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/sparc/sparc.opt
sparc: Add scheduling information for LEON5
[thirdparty/gcc.git] / gcc / config / sparc / sparc.opt
1 ; Options for the SPARC port of the compiler
2 ;
3 ; Copyright (C) 2005-2021 Free Software Foundation, Inc.
4 ;
5 ; This file is part of GCC.
6 ;
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
11 ;
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT
13 ; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 ; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 ; 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 HeaderInclude
22 config/sparc/sparc-opts.h
23
24 ;; Debug flags
25 TargetVariable
26 unsigned int sparc_debug
27
28 mfpu
29 Target Mask(FPU)
30 Use hardware FP.
31
32 mhard-float
33 Target RejectNegative Mask(FPU)
34 Use hardware FP.
35
36 msoft-float
37 Target RejectNegative InverseMask(FPU)
38 Do not use hardware FP.
39
40 mflat
41 Target Mask(FLAT)
42 Use flat register window model.
43
44 munaligned-doubles
45 Target Mask(UNALIGNED_DOUBLES)
46 Assume possible double misalignment.
47
48 mapp-regs
49 Target Mask(APP_REGS)
50 Use ABI reserved registers.
51
52 mhard-quad-float
53 Target RejectNegative Mask(HARD_QUAD)
54 Use hardware quad FP instructions.
55
56 msoft-quad-float
57 Target RejectNegative InverseMask(HARD_QUAD)
58 Do not use hardware quad fp instructions.
59
60 mlra
61 Target Mask(LRA)
62 Enable Local Register Allocation.
63
64 mv8plus
65 Target Mask(V8PLUS)
66 Compile for V8+ ABI.
67
68 mvis
69 Target Mask(VIS)
70 Use UltraSPARC Visual Instruction Set version 1.0 extensions.
71
72 mvis2
73 Target Mask(VIS2)
74 Use UltraSPARC Visual Instruction Set version 2.0 extensions.
75
76 mvis3
77 Target Mask(VIS3)
78 Use UltraSPARC Visual Instruction Set version 3.0 extensions.
79
80 mvis4
81 Target Mask(VIS4)
82 Use UltraSPARC Visual Instruction Set version 4.0 extensions.
83
84 mvis4b
85 Target Mask(VIS4B)
86 Use additional VIS instructions introduced in OSA2017.
87
88 mcbcond
89 Target Mask(CBCOND)
90 Use UltraSPARC Compare-and-Branch extensions.
91
92 mfmaf
93 Target Mask(FMAF)
94 Use UltraSPARC Fused Multiply-Add extensions.
95
96 mfsmuld
97 Target Mask(FSMULD)
98 Use Floating-point Multiply Single to Double (FsMULd) instruction.
99
100 mpopc
101 Target Mask(POPC)
102 Use UltraSPARC Population-Count instruction.
103
104 msubxc
105 Target Mask(SUBXC)
106 Use UltraSPARC Subtract-Extended-with-Carry instruction.
107
108 mptr64
109 Target RejectNegative Mask(PTR64)
110 Pointers are 64-bit.
111
112 mptr32
113 Target RejectNegative InverseMask(PTR64)
114 Pointers are 32-bit.
115
116 m64
117 Target RejectNegative Mask(64BIT)
118 Use 64-bit ABI.
119
120 m32
121 Target RejectNegative InverseMask(64BIT)
122 Use 32-bit ABI.
123
124 mstack-bias
125 Target Mask(STACK_BIAS)
126 Use stack bias.
127
128 mfaster-structs
129 Target Mask(FASTER_STRUCTS)
130 Use structs on stronger alignment for double-word copies.
131
132 mrelax
133 Target
134 Optimize tail call instructions in assembler and linker.
135
136 muser-mode
137 Target InverseMask(SV_MODE)
138 Do not generate code that can only run in supervisor mode (default).
139
140 mcpu=
141 Target RejectNegative Joined Var(sparc_cpu_and_features) Enum(sparc_processor) Init(PROCESSOR_V7)
142 Use instructions of and schedule code for given CPU.
143
144 mtune=
145 Target RejectNegative Joined Var(sparc_cpu) Enum(sparc_processor) Init(PROCESSOR_V7)
146 Schedule code for given CPU.
147
148 Enum
149 Name(sparc_processor) Type(enum sparc_processor_type)
150
151 EnumValue
152 Enum(sparc_processor) String(native) Value(PROCESSOR_NATIVE) DriverOnly
153
154 EnumValue
155 Enum(sparc_processor) String(v7) Value(PROCESSOR_V7)
156
157 EnumValue
158 Enum(sparc_processor) String(cypress) Value(PROCESSOR_CYPRESS)
159
160 EnumValue
161 Enum(sparc_processor) String(v8) Value(PROCESSOR_V8)
162
163 EnumValue
164 Enum(sparc_processor) String(supersparc) Value(PROCESSOR_SUPERSPARC)
165
166 EnumValue
167 Enum(sparc_processor) String(hypersparc) Value(PROCESSOR_HYPERSPARC)
168
169 EnumValue
170 Enum(sparc_processor) String(leon) Value(PROCESSOR_LEON)
171
172 EnumValue
173 Enum(sparc_processor) String(leon3) Value(PROCESSOR_LEON3)
174
175 EnumValue
176 Enum(sparc_processor) String(leon3v7) Value(PROCESSOR_LEON3V7)
177
178 EnumValue
179 Enum(sparc_processor) String(leon5) Value(PROCESSOR_LEON5)
180
181 EnumValue
182 Enum(sparc_processor) String(sparclite) Value(PROCESSOR_SPARCLITE)
183
184 EnumValue
185 Enum(sparc_processor) String(f930) Value(PROCESSOR_F930)
186
187 EnumValue
188 Enum(sparc_processor) String(f934) Value(PROCESSOR_F934)
189
190 EnumValue
191 Enum(sparc_processor) String(sparclite86x) Value(PROCESSOR_SPARCLITE86X)
192
193 EnumValue
194 Enum(sparc_processor) String(sparclet) Value(PROCESSOR_SPARCLET)
195
196 EnumValue
197 Enum(sparc_processor) String(tsc701) Value(PROCESSOR_TSC701)
198
199 EnumValue
200 Enum(sparc_processor) String(v9) Value(PROCESSOR_V9)
201
202 EnumValue
203 Enum(sparc_processor) String(ultrasparc) Value(PROCESSOR_ULTRASPARC)
204
205 EnumValue
206 Enum(sparc_processor) String(ultrasparc3) Value(PROCESSOR_ULTRASPARC3)
207
208 EnumValue
209 Enum(sparc_processor) String(niagara) Value(PROCESSOR_NIAGARA)
210
211 EnumValue
212 Enum(sparc_processor) String(niagara2) Value(PROCESSOR_NIAGARA2)
213
214 EnumValue
215 Enum(sparc_processor) String(niagara3) Value(PROCESSOR_NIAGARA3)
216
217 EnumValue
218 Enum(sparc_processor) String(niagara4) Value(PROCESSOR_NIAGARA4)
219
220 EnumValue
221 Enum(sparc_processor) String(niagara7) Value(PROCESSOR_NIAGARA7)
222
223 EnumValue
224 Enum(sparc_processor) String(m8) Value(PROCESSOR_M8)
225
226 mcmodel=
227 Target RejectNegative Joined Var(sparc_code_model) Enum(sparc_code_model) Init(CM_32)
228 Use given SPARC-V9 code model.
229
230 Enum
231 Name(sparc_code_model) Type(enum sparc_code_model_type)
232
233 EnumValue
234 Enum(sparc_code_model) String(32) Value(CM_32)
235
236 EnumValue
237 Enum(sparc_code_model) String(medlow) Value(CM_MEDLOW)
238
239 EnumValue
240 Enum(sparc_code_model) String(medmid) Value(CM_MEDMID)
241
242 EnumValue
243 Enum(sparc_code_model) String(medany) Value(CM_MEDANY)
244
245 EnumValue
246 Enum(sparc_code_model) String(embmedany) Value(CM_EMBMEDANY)
247
248 mdebug=
249 Target RejectNegative Joined Undocumented Var(sparc_debug_string)
250 Enable debug output.
251
252 mstd-struct-return
253 Target Var(sparc_std_struct_return)
254 Enable strict 32-bit psABI struct return checking.
255
256 mfix-at697f
257 Target RejectNegative Var(sparc_fix_at697f)
258 Enable workaround for single erratum of AT697F processor
259 (corresponding to erratum #13 of AT697E processor).
260
261 mfix-ut699
262 Target RejectNegative Var(sparc_fix_ut699)
263 Enable workarounds for the errata of the UT699 processor.
264
265 mfix-ut700
266 Target RejectNegative Var(sparc_fix_ut700)
267 Enable workarounds for the errata of the UT699E/UT700 processor.
268
269 mfix-gr712rc
270 Target RejectNegative Var(sparc_fix_gr712rc)
271 Enable workarounds for the errata of the GR712RC processor.
272
273 ;; Enable workaround for back-to-back store errata
274 TargetVariable
275 unsigned int sparc_fix_b2bst
276
277 ;; Enable workaround for GRLIB-TN-0013 errata
278 TargetVariable
279 unsigned int sparc_fix_lost_divsqrt
280
281 Mask(LONG_DOUBLE_128)
282 ;; Use 128-bit long double
283
284 Mask(LEON)
285 ;; Generate code for LEON
286
287 Mask(LEON3)
288 ;; Generate code for LEON3
289
290 Mask(SPARCLITE)
291 ;; Generate code for SPARClite
292
293 Mask(SPARCLET)
294 ;; Generate code for SPARClet
295
296 Mask(V8)
297 ;; Generate code for SPARC-V8
298
299 Mask(V9)
300 ;; Generate code for SPARC-V9
301
302 Mask(DEPRECATED_V8_INSNS)
303 ;; Generate code that uses the V8 instructions deprecated
304 ;; in the V9 architecture.
305
306 mmemory-model=
307 Target RejectNegative Joined Var(sparc_memory_model) Enum(sparc_memory_model) Init(SMM_DEFAULT)
308 Specify the memory model in effect for the program.
309
310 Enum
311 Name(sparc_memory_model) Type(enum sparc_memory_model_type)
312
313 EnumValue
314 Enum(sparc_memory_model) String(default) Value(SMM_DEFAULT)
315
316 EnumValue
317 Enum(sparc_memory_model) String(rmo) Value(SMM_RMO)
318
319 EnumValue
320 Enum(sparc_memory_model) String(pso) Value(SMM_PSO)
321
322 EnumValue
323 Enum(sparc_memory_model) String(tso) Value(SMM_TSO)
324
325 EnumValue
326 Enum(sparc_memory_model) String(sc) Value(SMM_SC)