1 ; Options for the SPARC port of the compiler
3 ; Copyright (C) 2005-2014 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(CBCOND)
78 Use UltraSPARC Compare-and-Branch extensions
81 Target Report Mask(FMAF)
82 Use UltraSPARC Fused Multiply-Add extensions
85 Target Report Mask(POPC)
86 Use UltraSPARC Population-Count instruction
89 Target Report RejectNegative Mask(PTR64)
93 Target Report RejectNegative InverseMask(PTR64)
97 Target Report RejectNegative Mask(64BIT)
101 Target Report RejectNegative InverseMask(64BIT)
105 Target Report Mask(STACK_BIAS)
109 Target Report Mask(FASTER_STRUCTS)
110 Use structs on stronger alignment for double-word copies
114 Optimize tail call instructions in assembler and linker
117 Target Report Mask(USER_MODE)
118 Do not generate code that can only run in supervisor mode
121 Target RejectNegative Joined Var(sparc_cpu_and_features) Enum(sparc_processor_type) Init(PROCESSOR_V7)
122 Use features of and schedule code for given CPU
125 Target RejectNegative Joined Var(sparc_cpu) Enum(sparc_processor_type) Init(PROCESSOR_V7)
126 Schedule code for given CPU
129 Name(sparc_processor_type) Type(enum processor_type)
132 Enum(sparc_processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
135 Enum(sparc_processor_type) String(v7) Value(PROCESSOR_V7)
138 Enum(sparc_processor_type) String(cypress) Value(PROCESSOR_CYPRESS)
141 Enum(sparc_processor_type) String(v8) Value(PROCESSOR_V8)
144 Enum(sparc_processor_type) String(supersparc) Value(PROCESSOR_SUPERSPARC)
147 Enum(sparc_processor_type) String(hypersparc) Value(PROCESSOR_HYPERSPARC)
150 Enum(sparc_processor_type) String(leon) Value(PROCESSOR_LEON)
153 Enum(sparc_processor_type) String(leon3) Value(PROCESSOR_LEON3)
156 Enum(sparc_processor_type) String(leon3v7) Value(PROCESSOR_LEON3V7)
159 Enum(sparc_processor_type) String(sparclite) Value(PROCESSOR_SPARCLITE)
162 Enum(sparc_processor_type) String(f930) Value(PROCESSOR_F930)
165 Enum(sparc_processor_type) String(f934) Value(PROCESSOR_F934)
168 Enum(sparc_processor_type) String(sparclite86x) Value(PROCESSOR_SPARCLITE86X)
171 Enum(sparc_processor_type) String(sparclet) Value(PROCESSOR_SPARCLET)
174 Enum(sparc_processor_type) String(tsc701) Value(PROCESSOR_TSC701)
177 Enum(sparc_processor_type) String(v9) Value(PROCESSOR_V9)
180 Enum(sparc_processor_type) String(ultrasparc) Value(PROCESSOR_ULTRASPARC)
183 Enum(sparc_processor_type) String(ultrasparc3) Value(PROCESSOR_ULTRASPARC3)
186 Enum(sparc_processor_type) String(niagara) Value(PROCESSOR_NIAGARA)
189 Enum(sparc_processor_type) String(niagara2) Value(PROCESSOR_NIAGARA2)
192 Enum(sparc_processor_type) String(niagara3) Value(PROCESSOR_NIAGARA3)
195 Enum(sparc_processor_type) String(niagara4) Value(PROCESSOR_NIAGARA4)
198 Target RejectNegative Joined Var(sparc_cmodel_string)
199 Use given SPARC-V9 code model
202 Target RejectNegative Joined Var(sparc_debug_string)
206 Target Report RejectNegative Var(sparc_std_struct_return)
207 Enable strict 32-bit psABI struct return checking.
210 Target Report RejectNegative Var(sparc_fix_at697f)
211 Enable workaround for single erratum of AT697F processor
212 (corresponding to erratum #13 of AT697E processor)
215 Target Report RejectNegative Var(sparc_fix_ut699)
216 Enable workarounds for the errata of the UT699 processor
218 Mask(LONG_DOUBLE_128)
219 ;; Use 128-bit long double
222 ;; Generate code for LEON
225 ;; Generate code for LEON3
228 ;; Generate code for SPARClite
231 ;; Generate code for SPARClet
234 ;; Generate code for SPARC-V8
237 ;; Generate code for SPARC-V9
239 Mask(DEPRECATED_V8_INSNS)
240 ;; Generate code that uses the V8 instructions deprecated
241 ;; in the V9 architecture.
244 Target RejectNegative Joined Var(sparc_memory_model) Enum(sparc_memory_model) Init(SMM_DEFAULT)
245 Specify the memory model in effect for the program.
248 Name(sparc_memory_model) Type(enum sparc_memory_model_type)
251 Enum(sparc_memory_model) String(default) Value(SMM_DEFAULT)
254 Enum(sparc_memory_model) String(rmo) Value(SMM_RMO)
257 Enum(sparc_memory_model) String(pso) Value(SMM_PSO)
260 Enum(sparc_memory_model) String(tso) Value(SMM_TSO)
263 Enum(sparc_memory_model) String(sc) Value(SMM_SC)