libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / config / sparc / sparc.opt
blob235974c16a83361f4c18e4b49a70bfe54d2ff31e
1 ; Options for the SPARC port of the compiler
3 ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
5 ; This file is part of GCC.
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.
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.
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/>.
21 HeaderInclude
22 config/sparc/sparc-opts.h
24 ;; Debug flags
25 TargetVariable
26 unsigned int sparc_debug
28 mfpu
29 Target Mask(FPU)
30 Use hardware FP.
32 mhard-float
33 Target RejectNegative Mask(FPU)
34 Use hardware FP.
36 msoft-float
37 Target RejectNegative InverseMask(FPU)
38 Do not use hardware FP.
40 mflat
41 Target Mask(FLAT)
42 Use flat register window model.
44 munaligned-doubles
45 Target Mask(UNALIGNED_DOUBLES)
46 Assume possible double misalignment.
48 mapp-regs
49 Target Mask(APP_REGS)
50 Use ABI reserved registers.
52 mhard-quad-float
53 Target RejectNegative Mask(HARD_QUAD)
54 Use hardware quad FP instructions.
56 msoft-quad-float
57 Target RejectNegative InverseMask(HARD_QUAD)
58 Do not use hardware quad fp instructions.
60 mv8plus
61 Target Mask(V8PLUS)
62 Compile for V8+ ABI.
64 mvis
65 Target Mask(VIS)
66 Use UltraSPARC Visual Instruction Set version 1.0 extensions.
68 mvis2
69 Target Mask(VIS2)
70 Use UltraSPARC Visual Instruction Set version 2.0 extensions.
72 mvis3
73 Target Mask(VIS3)
74 Use UltraSPARC Visual Instruction Set version 3.0 extensions.
76 mvis4
77 Target Mask(VIS4)
78 Use UltraSPARC Visual Instruction Set version 4.0 extensions.
80 mvis4b
81 Target Mask(VIS4B)
82 Use additional VIS instructions introduced in OSA2017.
84 mcbcond
85 Target Mask(CBCOND)
86 Use UltraSPARC Compare-and-Branch extensions.
88 mfmaf
89 Target Mask(FMAF)
90 Use UltraSPARC Fused Multiply-Add extensions.
92 mfsmuld
93 Target Mask(FSMULD)
94 Use Floating-point Multiply Single to Double (FsMULd) instruction.
96 mpopc
97 Target Mask(POPC)
98 Use UltraSPARC Population-Count instruction.
100 msubxc
101 Target Mask(SUBXC)
102 Use UltraSPARC Subtract-Extended-with-Carry instruction.
104 mptr64
105 Target RejectNegative Mask(PTR64)
106 Pointers are 64-bit.
108 mptr32
109 Target RejectNegative InverseMask(PTR64)
110 Pointers are 32-bit.
113 Target RejectNegative Mask(64BIT)
114 Use 64-bit ABI.
117 Target RejectNegative InverseMask(64BIT)
118 Use 32-bit ABI.
120 mstack-bias
121 Target Mask(STACK_BIAS)
122 Use stack bias.
124 mfaster-structs
125 Target Mask(FASTER_STRUCTS)
126 Use structs on stronger alignment for double-word copies.
128 mrelax
129 Target
130 Optimize tail call instructions in assembler and linker.
132 muser-mode
133 Target InverseMask(SV_MODE)
134 Do not generate code that can only run in supervisor mode (default).
136 mcpu=
137 Target RejectNegative Joined Var(sparc_cpu_and_features) Enum(sparc_processor) Init(PROCESSOR_V7)
138 Use instructions of and schedule code for given CPU.
140 mtune=
141 Target RejectNegative Joined Var(sparc_cpu) Enum(sparc_processor) Init(PROCESSOR_V7)
142 Schedule code for given CPU.
144 Enum
145 Name(sparc_processor) Type(enum sparc_processor_type)
147 EnumValue
148 Enum(sparc_processor) String(native) Value(PROCESSOR_NATIVE) DriverOnly
150 EnumValue
151 Enum(sparc_processor) String(v7) Value(PROCESSOR_V7)
153 EnumValue
154 Enum(sparc_processor) String(cypress) Value(PROCESSOR_CYPRESS)
156 EnumValue
157 Enum(sparc_processor) String(v8) Value(PROCESSOR_V8)
159 EnumValue
160 Enum(sparc_processor) String(supersparc) Value(PROCESSOR_SUPERSPARC)
162 EnumValue
163 Enum(sparc_processor) String(hypersparc) Value(PROCESSOR_HYPERSPARC)
165 EnumValue
166 Enum(sparc_processor) String(leon) Value(PROCESSOR_LEON)
168 EnumValue
169 Enum(sparc_processor) String(leon3) Value(PROCESSOR_LEON3)
171 EnumValue
172 Enum(sparc_processor) String(leon3v7) Value(PROCESSOR_LEON3V7)
174 EnumValue
175 Enum(sparc_processor) String(leon5) Value(PROCESSOR_LEON5)
177 EnumValue
178 Enum(sparc_processor) String(sparclite) Value(PROCESSOR_SPARCLITE)
180 EnumValue
181 Enum(sparc_processor) String(f930) Value(PROCESSOR_F930)
183 EnumValue
184 Enum(sparc_processor) String(f934) Value(PROCESSOR_F934)
186 EnumValue
187 Enum(sparc_processor) String(sparclite86x) Value(PROCESSOR_SPARCLITE86X)
189 EnumValue
190 Enum(sparc_processor) String(sparclet) Value(PROCESSOR_SPARCLET)
192 EnumValue
193 Enum(sparc_processor) String(tsc701) Value(PROCESSOR_TSC701)
195 EnumValue
196 Enum(sparc_processor) String(v9) Value(PROCESSOR_V9)
198 EnumValue
199 Enum(sparc_processor) String(ultrasparc) Value(PROCESSOR_ULTRASPARC)
201 EnumValue
202 Enum(sparc_processor) String(ultrasparc3) Value(PROCESSOR_ULTRASPARC3)
204 EnumValue
205 Enum(sparc_processor) String(niagara) Value(PROCESSOR_NIAGARA)
207 EnumValue
208 Enum(sparc_processor) String(niagara2) Value(PROCESSOR_NIAGARA2)
210 EnumValue
211 Enum(sparc_processor) String(niagara3) Value(PROCESSOR_NIAGARA3)
213 EnumValue
214 Enum(sparc_processor) String(niagara4) Value(PROCESSOR_NIAGARA4)
216 EnumValue
217 Enum(sparc_processor) String(niagara7) Value(PROCESSOR_NIAGARA7)
219 EnumValue
220 Enum(sparc_processor) String(m8) Value(PROCESSOR_M8)
222 mcmodel=
223 Target RejectNegative Joined Var(sparc_code_model) Enum(sparc_code_model) Init(CM_32)
224 Use given SPARC-V9 code model.
226 Enum
227 Name(sparc_code_model) Type(enum sparc_code_model_type)
229 EnumValue
230 Enum(sparc_code_model) String(32) Value(CM_32)
232 EnumValue
233 Enum(sparc_code_model) String(medlow) Value(CM_MEDLOW)
235 EnumValue
236 Enum(sparc_code_model) String(medmid) Value(CM_MEDMID)
238 EnumValue
239 Enum(sparc_code_model) String(medany) Value(CM_MEDANY)
241 EnumValue
242 Enum(sparc_code_model) String(embmedany) Value(CM_EMBMEDANY)
244 mdebug=
245 Target RejectNegative Joined Undocumented Var(sparc_debug_string)
246 Enable debug output.
248 mstd-struct-return
249 Target Var(sparc_std_struct_return)
250 Enable strict 32-bit psABI struct return checking.
252 mfix-at697f
253 Target RejectNegative Var(sparc_fix_at697f)
254 Enable workaround for single erratum of AT697F processor
255 (corresponding to erratum #13 of AT697E processor).
257 mfix-ut699
258 Target RejectNegative Var(sparc_fix_ut699)
259 Enable workarounds for the errata of the UT699 processor.
261 mfix-ut700
262 Target RejectNegative Var(sparc_fix_ut700)
263 Enable workarounds for the errata of the UT699E/UT700 processor.
265 mfix-gr712rc
266 Target RejectNegative Var(sparc_fix_gr712rc)
267 Enable workarounds for the errata of the GR712RC processor.
269 ;; Enable workaround for back-to-back store errata
270 TargetVariable
271 unsigned int sparc_fix_b2bst
273 ;; Enable workaround for GRLIB-TN-0013 errata
274 TargetVariable
275 unsigned int sparc_fix_lost_divsqrt
277 Mask(LONG_DOUBLE_128)
278 ;; Use 128-bit long double
280 Mask(LEON)
281 ;; Generate code for LEON
283 Mask(LEON3)
284 ;; Generate code for LEON3
286 Mask(SPARCLITE)
287 ;; Generate code for SPARClite
289 Mask(SPARCLET)
290 ;; Generate code for SPARClet
292 Mask(V8)
293 ;; Generate code for SPARC-V8
295 Mask(V9)
296 ;; Generate code for SPARC-V9
298 Mask(DEPRECATED_V8_INSNS)
299 ;; Generate code that uses the V8 instructions deprecated
300 ;; in the V9 architecture.
302 mmemory-model=
303 Target RejectNegative Joined Var(sparc_memory_model) Enum(sparc_memory_model) Init(SMM_DEFAULT)
304 Specify the memory model in effect for the program.
306 Enum
307 Name(sparc_memory_model) Type(enum sparc_memory_model_type)
309 EnumValue
310 Enum(sparc_memory_model) String(default) Value(SMM_DEFAULT)
312 EnumValue
313 Enum(sparc_memory_model) String(rmo) Value(SMM_RMO)
315 EnumValue
316 Enum(sparc_memory_model) String(pso) Value(SMM_PSO)
318 EnumValue
319 Enum(sparc_memory_model) String(tso) Value(SMM_TSO)
321 EnumValue
322 Enum(sparc_memory_model) String(sc) Value(SMM_SC)