1 ; Options for the SPARC port of the compiler
3 ; Copyright (C) 2005-2020 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
29 Target Report Mask(FPU)
33 Target RejectNegative Mask(FPU)
37 Target RejectNegative InverseMask(FPU)
38 Do not use hardware FP.
41 Target Report Mask(FLAT)
42 Use flat register window model.
45 Target Report Mask(UNALIGNED_DOUBLES)
46 Assume possible double misalignment.
49 Target Report Mask(APP_REGS)
50 Use ABI reserved registers.
53 Target Report RejectNegative Mask(HARD_QUAD)
54 Use hardware quad FP instructions.
57 Target Report RejectNegative InverseMask(HARD_QUAD)
58 Do not use hardware quad fp instructions.
61 Target Report Mask(LRA)
62 Enable Local Register Allocation.
65 Target Report Mask(V8PLUS)
69 Target Report Mask(VIS)
70 Use UltraSPARC Visual Instruction Set version 1.0 extensions.
73 Target Report Mask(VIS2)
74 Use UltraSPARC Visual Instruction Set version 2.0 extensions.
77 Target Report Mask(VIS3)
78 Use UltraSPARC Visual Instruction Set version 3.0 extensions.
81 Target Report Mask(VIS4)
82 Use UltraSPARC Visual Instruction Set version 4.0 extensions.
85 Target Report Mask(VIS4B)
86 Use additional VIS instructions introduced in OSA2017.
89 Target Report Mask(CBCOND)
90 Use UltraSPARC Compare-and-Branch extensions.
93 Target Report Mask(FMAF)
94 Use UltraSPARC Fused Multiply-Add extensions.
97 Target Report Mask(FSMULD)
98 Use Floating-point Multiply Single to Double (FsMULd) instruction.
101 Target Report Mask(POPC)
102 Use UltraSPARC Population-Count instruction.
105 Target Report Mask(SUBXC)
106 Use UltraSPARC Subtract-Extended-with-Carry instruction.
109 Target Report RejectNegative Mask(PTR64)
113 Target Report RejectNegative InverseMask(PTR64)
117 Target Report RejectNegative Mask(64BIT)
121 Target Report RejectNegative InverseMask(64BIT)
125 Target Report Mask(STACK_BIAS)
129 Target Report Mask(FASTER_STRUCTS)
130 Use structs on stronger alignment for double-word copies.
134 Optimize tail call instructions in assembler and linker.
137 Target Report InverseMask(SV_MODE)
138 Do not generate code that can only run in supervisor mode (default).
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.
145 Target RejectNegative Joined Var(sparc_cpu) Enum(sparc_processor) Init(PROCESSOR_V7)
146 Schedule code for given CPU.
149 Name(sparc_processor) Type(enum sparc_processor_type)
152 Enum(sparc_processor) String(native) Value(PROCESSOR_NATIVE) DriverOnly
155 Enum(sparc_processor) String(v7) Value(PROCESSOR_V7)
158 Enum(sparc_processor) String(cypress) Value(PROCESSOR_CYPRESS)
161 Enum(sparc_processor) String(v8) Value(PROCESSOR_V8)
164 Enum(sparc_processor) String(supersparc) Value(PROCESSOR_SUPERSPARC)
167 Enum(sparc_processor) String(hypersparc) Value(PROCESSOR_HYPERSPARC)
170 Enum(sparc_processor) String(leon) Value(PROCESSOR_LEON)
173 Enum(sparc_processor) String(leon3) Value(PROCESSOR_LEON3)
176 Enum(sparc_processor) String(leon3v7) Value(PROCESSOR_LEON3V7)
179 Enum(sparc_processor) String(sparclite) Value(PROCESSOR_SPARCLITE)
182 Enum(sparc_processor) String(f930) Value(PROCESSOR_F930)
185 Enum(sparc_processor) String(f934) Value(PROCESSOR_F934)
188 Enum(sparc_processor) String(sparclite86x) Value(PROCESSOR_SPARCLITE86X)
191 Enum(sparc_processor) String(sparclet) Value(PROCESSOR_SPARCLET)
194 Enum(sparc_processor) String(tsc701) Value(PROCESSOR_TSC701)
197 Enum(sparc_processor) String(v9) Value(PROCESSOR_V9)
200 Enum(sparc_processor) String(ultrasparc) Value(PROCESSOR_ULTRASPARC)
203 Enum(sparc_processor) String(ultrasparc3) Value(PROCESSOR_ULTRASPARC3)
206 Enum(sparc_processor) String(niagara) Value(PROCESSOR_NIAGARA)
209 Enum(sparc_processor) String(niagara2) Value(PROCESSOR_NIAGARA2)
212 Enum(sparc_processor) String(niagara3) Value(PROCESSOR_NIAGARA3)
215 Enum(sparc_processor) String(niagara4) Value(PROCESSOR_NIAGARA4)
218 Enum(sparc_processor) String(niagara7) Value(PROCESSOR_NIAGARA7)
221 Enum(sparc_processor) String(m8) Value(PROCESSOR_M8)
224 Target RejectNegative Joined Var(sparc_code_model) Enum(sparc_code_model) Init(CM_32)
225 Use given SPARC-V9 code model.
228 Name(sparc_code_model) Type(enum sparc_code_model_type)
231 Enum(sparc_code_model) String(32) Value(CM_32)
234 Enum(sparc_code_model) String(medlow) Value(CM_MEDLOW)
237 Enum(sparc_code_model) String(medmid) Value(CM_MEDMID)
240 Enum(sparc_code_model) String(medany) Value(CM_MEDANY)
243 Enum(sparc_code_model) String(embmedany) Value(CM_EMBMEDANY)
246 Target RejectNegative Joined Undocumented Var(sparc_debug_string)
250 Target Report Var(sparc_std_struct_return)
251 Enable strict 32-bit psABI struct return checking.
254 Target Report RejectNegative Var(sparc_fix_at697f)
255 Enable workaround for single erratum of AT697F processor
256 (corresponding to erratum #13 of AT697E processor).
259 Target Report RejectNegative Var(sparc_fix_ut699)
260 Enable workarounds for the errata of the UT699 processor.
263 Target Report RejectNegative Var(sparc_fix_ut700)
264 Enable workarounds for the errata of the UT699E/UT700 processor.
267 Target Report RejectNegative Var(sparc_fix_gr712rc)
268 Enable workarounds for the errata of the GR712RC processor.
270 ;; Enable workaround for back-to-back store errata
272 unsigned int sparc_fix_b2bst
274 ;; Enable workaround for GRLIB-TN-0013 errata
276 unsigned int sparc_fix_lost_divsqrt
278 Mask(LONG_DOUBLE_128)
279 ;; Use 128-bit long double
282 ;; Generate code for LEON
285 ;; Generate code for LEON3
288 ;; Generate code for SPARClite
291 ;; Generate code for SPARClet
294 ;; Generate code for SPARC-V8
297 ;; Generate code for SPARC-V9
299 Mask(DEPRECATED_V8_INSNS)
300 ;; Generate code that uses the V8 instructions deprecated
301 ;; in the V9 architecture.
304 Target RejectNegative Joined Var(sparc_memory_model) Enum(sparc_memory_model) Init(SMM_DEFAULT)
305 Specify the memory model in effect for the program.
308 Name(sparc_memory_model) Type(enum sparc_memory_model_type)
311 Enum(sparc_memory_model) String(default) Value(SMM_DEFAULT)
314 Enum(sparc_memory_model) String(rmo) Value(SMM_RMO)
317 Enum(sparc_memory_model) String(pso) Value(SMM_PSO)
320 Enum(sparc_memory_model) String(tso) Value(SMM_TSO)
323 Enum(sparc_memory_model) String(sc) Value(SMM_SC)