1 ; Options for the SPARC port of the compiler
3 ; Copyright (C) 2005-2016 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(V8PLUS)
65 Target Report Mask(VIS)
66 Use UltraSPARC Visual Instruction Set version 1.0 extensions.
69 Target Report Mask(VIS2)
70 Use UltraSPARC Visual Instruction Set version 2.0 extensions.
73 Target Report Mask(VIS3)
74 Use UltraSPARC Visual Instruction Set version 3.0 extensions.
77 Target Report Mask(VIS4)
78 Use UltraSPARC Visual Instruction Set version 4.0 extensions.
81 Target Report Mask(CBCOND)
82 Use UltraSPARC Compare-and-Branch extensions.
85 Target Report Mask(FMAF)
86 Use UltraSPARC Fused Multiply-Add extensions.
89 Target Report Mask(POPC)
90 Use UltraSPARC Population-Count instruction.
93 Target Report RejectNegative Mask(PTR64)
97 Target Report RejectNegative InverseMask(PTR64)
101 Target Report RejectNegative Mask(64BIT)
105 Target Report RejectNegative InverseMask(64BIT)
109 Target Report Mask(STACK_BIAS)
113 Target Report Mask(FASTER_STRUCTS)
114 Use structs on stronger alignment for double-word copies.
118 Optimize tail call instructions in assembler and linker.
121 Target Report InverseMask(SV_MODE)
122 Do not generate code that can only run in supervisor mode (default).
125 Target RejectNegative Joined Var(sparc_cpu_and_features) Enum(sparc_processor_type) Init(PROCESSOR_V7)
126 Use features of and schedule code for given CPU.
129 Target RejectNegative Joined Var(sparc_cpu) Enum(sparc_processor_type) Init(PROCESSOR_V7)
130 Schedule code for given CPU.
133 Name(sparc_processor_type) Type(enum processor_type)
136 Enum(sparc_processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
139 Enum(sparc_processor_type) String(v7) Value(PROCESSOR_V7)
142 Enum(sparc_processor_type) String(cypress) Value(PROCESSOR_CYPRESS)
145 Enum(sparc_processor_type) String(v8) Value(PROCESSOR_V8)
148 Enum(sparc_processor_type) String(supersparc) Value(PROCESSOR_SUPERSPARC)
151 Enum(sparc_processor_type) String(hypersparc) Value(PROCESSOR_HYPERSPARC)
154 Enum(sparc_processor_type) String(leon) Value(PROCESSOR_LEON)
157 Enum(sparc_processor_type) String(leon3) Value(PROCESSOR_LEON3)
160 Enum(sparc_processor_type) String(leon3v7) Value(PROCESSOR_LEON3V7)
163 Enum(sparc_processor_type) String(sparclite) Value(PROCESSOR_SPARCLITE)
166 Enum(sparc_processor_type) String(f930) Value(PROCESSOR_F930)
169 Enum(sparc_processor_type) String(f934) Value(PROCESSOR_F934)
172 Enum(sparc_processor_type) String(sparclite86x) Value(PROCESSOR_SPARCLITE86X)
175 Enum(sparc_processor_type) String(sparclet) Value(PROCESSOR_SPARCLET)
178 Enum(sparc_processor_type) String(tsc701) Value(PROCESSOR_TSC701)
181 Enum(sparc_processor_type) String(v9) Value(PROCESSOR_V9)
184 Enum(sparc_processor_type) String(ultrasparc) Value(PROCESSOR_ULTRASPARC)
187 Enum(sparc_processor_type) String(ultrasparc3) Value(PROCESSOR_ULTRASPARC3)
190 Enum(sparc_processor_type) String(niagara) Value(PROCESSOR_NIAGARA)
193 Enum(sparc_processor_type) String(niagara2) Value(PROCESSOR_NIAGARA2)
196 Enum(sparc_processor_type) String(niagara3) Value(PROCESSOR_NIAGARA3)
199 Enum(sparc_processor_type) String(niagara4) Value(PROCESSOR_NIAGARA4)
202 Enum(sparc_processor_type) String(niagara7) Value(PROCESSOR_NIAGARA7)
205 Target RejectNegative Joined Var(sparc_cmodel_string)
206 Use given SPARC-V9 code model.
209 Target RejectNegative Joined Var(sparc_debug_string)
213 Target Report Var(sparc_std_struct_return)
214 Enable strict 32-bit psABI struct return checking.
217 Target Report RejectNegative Var(sparc_fix_at697f)
218 Enable workaround for single erratum of AT697F processor
219 (corresponding to erratum #13 of AT697E processor).
222 Target Report RejectNegative Var(sparc_fix_ut699)
223 Enable workarounds for the errata of the UT699 processor.
225 Mask(LONG_DOUBLE_128)
226 ;; Use 128-bit long double
229 ;; Generate code for LEON
232 ;; Generate code for LEON3
235 ;; Generate code for SPARClite
238 ;; Generate code for SPARClet
241 ;; Generate code for SPARC-V8
244 ;; Generate code for SPARC-V9
246 Mask(DEPRECATED_V8_INSNS)
247 ;; Generate code that uses the V8 instructions deprecated
248 ;; in the V9 architecture.
251 Target RejectNegative Joined Var(sparc_memory_model) Enum(sparc_memory_model) Init(SMM_DEFAULT)
252 Specify the memory model in effect for the program.
255 Name(sparc_memory_model) Type(enum sparc_memory_model_type)
258 Enum(sparc_memory_model) String(default) Value(SMM_DEFAULT)
261 Enum(sparc_memory_model) String(rmo) Value(SMM_RMO)
264 Enum(sparc_memory_model) String(pso) Value(SMM_PSO)
267 Enum(sparc_memory_model) String(tso) Value(SMM_TSO)
270 Enum(sparc_memory_model) String(sc) Value(SMM_SC)