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
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/>.
22 config/sparc/sparc-opts.h
26 unsigned int sparc_debug
33 Target RejectNegative Mask(FPU)
37 Target RejectNegative InverseMask(FPU)
38 Do not use hardware FP.
42 Use flat register window model.
45 Target Mask(UNALIGNED_DOUBLES)
46 Assume possible double misalignment.
50 Use ABI reserved registers.
53 Target RejectNegative Mask(HARD_QUAD)
54 Use hardware quad FP instructions.
57 Target RejectNegative InverseMask(HARD_QUAD)
58 Do not use hardware quad fp instructions.
66 Use UltraSPARC Visual Instruction Set version 1.0 extensions.
70 Use UltraSPARC Visual Instruction Set version 2.0 extensions.
74 Use UltraSPARC Visual Instruction Set version 3.0 extensions.
78 Use UltraSPARC Visual Instruction Set version 4.0 extensions.
82 Use additional VIS instructions introduced in OSA2017.
86 Use UltraSPARC Compare-and-Branch extensions.
90 Use UltraSPARC Fused Multiply-Add extensions.
94 Use Floating-point Multiply Single to Double (FsMULd) instruction.
98 Use UltraSPARC Population-Count instruction.
102 Use UltraSPARC Subtract-Extended-with-Carry instruction.
105 Target RejectNegative Mask(PTR64)
109 Target RejectNegative InverseMask(PTR64)
113 Target RejectNegative Mask(64BIT)
117 Target RejectNegative InverseMask(64BIT)
121 Target Mask(STACK_BIAS)
125 Target Mask(FASTER_STRUCTS)
126 Use structs on stronger alignment for double-word copies.
130 Optimize tail call instructions in assembler and linker.
133 Target InverseMask(SV_MODE)
134 Do not generate code that can only run in supervisor mode (default).
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.
141 Target RejectNegative Joined Var(sparc_cpu) Enum(sparc_processor) Init(PROCESSOR_V7)
142 Schedule code for given CPU.
145 Name(sparc_processor) Type(enum sparc_processor_type)
148 Enum(sparc_processor) String(native) Value(PROCESSOR_NATIVE) DriverOnly
151 Enum(sparc_processor) String(v7) Value(PROCESSOR_V7)
154 Enum(sparc_processor) String(cypress) Value(PROCESSOR_CYPRESS)
157 Enum(sparc_processor) String(v8) Value(PROCESSOR_V8)
160 Enum(sparc_processor) String(supersparc) Value(PROCESSOR_SUPERSPARC)
163 Enum(sparc_processor) String(hypersparc) Value(PROCESSOR_HYPERSPARC)
166 Enum(sparc_processor) String(leon) Value(PROCESSOR_LEON)
169 Enum(sparc_processor) String(leon3) Value(PROCESSOR_LEON3)
172 Enum(sparc_processor) String(leon3v7) Value(PROCESSOR_LEON3V7)
175 Enum(sparc_processor) String(leon5) Value(PROCESSOR_LEON5)
178 Enum(sparc_processor) String(sparclite) Value(PROCESSOR_SPARCLITE)
181 Enum(sparc_processor) String(f930) Value(PROCESSOR_F930)
184 Enum(sparc_processor) String(f934) Value(PROCESSOR_F934)
187 Enum(sparc_processor) String(sparclite86x) Value(PROCESSOR_SPARCLITE86X)
190 Enum(sparc_processor) String(sparclet) Value(PROCESSOR_SPARCLET)
193 Enum(sparc_processor) String(tsc701) Value(PROCESSOR_TSC701)
196 Enum(sparc_processor) String(v9) Value(PROCESSOR_V9)
199 Enum(sparc_processor) String(ultrasparc) Value(PROCESSOR_ULTRASPARC)
202 Enum(sparc_processor) String(ultrasparc3) Value(PROCESSOR_ULTRASPARC3)
205 Enum(sparc_processor) String(niagara) Value(PROCESSOR_NIAGARA)
208 Enum(sparc_processor) String(niagara2) Value(PROCESSOR_NIAGARA2)
211 Enum(sparc_processor) String(niagara3) Value(PROCESSOR_NIAGARA3)
214 Enum(sparc_processor) String(niagara4) Value(PROCESSOR_NIAGARA4)
217 Enum(sparc_processor) String(niagara7) Value(PROCESSOR_NIAGARA7)
220 Enum(sparc_processor) String(m8) Value(PROCESSOR_M8)
223 Target RejectNegative Joined Var(sparc_code_model) Enum(sparc_code_model) Init(CM_32)
224 Use given SPARC-V9 code model.
227 Name(sparc_code_model) Type(enum sparc_code_model_type)
230 Enum(sparc_code_model) String(32) Value(CM_32)
233 Enum(sparc_code_model) String(medlow) Value(CM_MEDLOW)
236 Enum(sparc_code_model) String(medmid) Value(CM_MEDMID)
239 Enum(sparc_code_model) String(medany) Value(CM_MEDANY)
242 Enum(sparc_code_model) String(embmedany) Value(CM_EMBMEDANY)
245 Target RejectNegative Joined Undocumented Var(sparc_debug_string)
249 Target Var(sparc_std_struct_return)
250 Enable strict 32-bit psABI struct return checking.
253 Target RejectNegative Var(sparc_fix_at697f)
254 Enable workaround for single erratum of AT697F processor
255 (corresponding to erratum #13 of AT697E processor).
258 Target RejectNegative Var(sparc_fix_ut699)
259 Enable workarounds for the errata of the UT699 processor.
262 Target RejectNegative Var(sparc_fix_ut700)
263 Enable workarounds for the errata of the UT699E/UT700 processor.
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
271 unsigned int sparc_fix_b2bst
273 ;; Enable workaround for GRLIB-TN-0013 errata
275 unsigned int sparc_fix_lost_divsqrt
277 Mask(LONG_DOUBLE_128)
278 ;; Use 128-bit long double
281 ;; Generate code for LEON
284 ;; Generate code for LEON3
287 ;; Generate code for SPARClite
290 ;; Generate code for SPARClet
293 ;; Generate code for SPARC-V8
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.
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.
307 Name(sparc_memory_model) Type(enum sparc_memory_model_type)
310 Enum(sparc_memory_model) String(default) Value(SMM_DEFAULT)
313 Enum(sparc_memory_model) String(rmo) Value(SMM_RMO)
316 Enum(sparc_memory_model) String(pso) Value(SMM_PSO)
319 Enum(sparc_memory_model) String(tso) Value(SMM_TSO)
322 Enum(sparc_memory_model) String(sc) Value(SMM_SC)