gcc/
[official-gcc.git] / gcc / config / sparc / sparc.opt
blob13d41515f0072cf336611fc83e1a2f27e67cc9cb
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
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 Report 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 Report Mask(FLAT)
42 Use flat register window model.
44 munaligned-doubles
45 Target Report Mask(UNALIGNED_DOUBLES)
46 Assume possible double misalignment.
48 mapp-regs
49 Target Report Mask(APP_REGS)
50 Use ABI reserved registers.
52 mhard-quad-float
53 Target Report RejectNegative Mask(HARD_QUAD)
54 Use hardware quad FP instructions.
56 msoft-quad-float
57 Target Report RejectNegative InverseMask(HARD_QUAD)
58 Do not use hardware quad fp instructions.
60 mv8plus
61 Target Report Mask(V8PLUS)
62 Compile for V8+ ABI.
64 mvis
65 Target Report Mask(VIS)
66 Use UltraSPARC Visual Instruction Set version 1.0 extensions.
68 mvis2
69 Target Report Mask(VIS2)
70 Use UltraSPARC Visual Instruction Set version 2.0 extensions.
72 mvis3
73 Target Report Mask(VIS3)
74 Use UltraSPARC Visual Instruction Set version 3.0 extensions.
76 mvis4
77 Target Report Mask(VIS4)
78 Use UltraSPARC Visual Instruction Set version 4.0 extensions.
80 mcbcond
81 Target Report Mask(CBCOND)
82 Use UltraSPARC Compare-and-Branch extensions.
84 mfmaf
85 Target Report Mask(FMAF)
86 Use UltraSPARC Fused Multiply-Add extensions.
88 mpopc
89 Target Report Mask(POPC)
90 Use UltraSPARC Population-Count instruction.
92 mptr64
93 Target Report RejectNegative Mask(PTR64)
94 Pointers are 64-bit.
96 mptr32
97 Target Report RejectNegative InverseMask(PTR64)
98 Pointers are 32-bit.
101 Target Report RejectNegative Mask(64BIT)
102 Use 64-bit ABI.
105 Target Report RejectNegative InverseMask(64BIT)
106 Use 32-bit ABI.
108 mstack-bias
109 Target Report Mask(STACK_BIAS)
110 Use stack bias.
112 mfaster-structs
113 Target Report Mask(FASTER_STRUCTS)
114 Use structs on stronger alignment for double-word copies.
116 mrelax
117 Target
118 Optimize tail call instructions in assembler and linker.
120 muser-mode
121 Target Report InverseMask(SV_MODE)
122 Do not generate code that can only run in supervisor mode (default).
124 mcpu=
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.
128 mtune=
129 Target RejectNegative Joined Var(sparc_cpu) Enum(sparc_processor_type) Init(PROCESSOR_V7)
130 Schedule code for given CPU.
132 Enum
133 Name(sparc_processor_type) Type(enum processor_type)
135 EnumValue
136 Enum(sparc_processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
138 EnumValue
139 Enum(sparc_processor_type) String(v7) Value(PROCESSOR_V7)
141 EnumValue
142 Enum(sparc_processor_type) String(cypress) Value(PROCESSOR_CYPRESS)
144 EnumValue
145 Enum(sparc_processor_type) String(v8) Value(PROCESSOR_V8)
147 EnumValue
148 Enum(sparc_processor_type) String(supersparc) Value(PROCESSOR_SUPERSPARC)
150 EnumValue
151 Enum(sparc_processor_type) String(hypersparc) Value(PROCESSOR_HYPERSPARC)
153 EnumValue
154 Enum(sparc_processor_type) String(leon) Value(PROCESSOR_LEON)
156 EnumValue
157 Enum(sparc_processor_type) String(leon3) Value(PROCESSOR_LEON3)
159 EnumValue
160 Enum(sparc_processor_type) String(leon3v7) Value(PROCESSOR_LEON3V7)
162 EnumValue
163 Enum(sparc_processor_type) String(sparclite) Value(PROCESSOR_SPARCLITE)
165 EnumValue
166 Enum(sparc_processor_type) String(f930) Value(PROCESSOR_F930)
168 EnumValue
169 Enum(sparc_processor_type) String(f934) Value(PROCESSOR_F934)
171 EnumValue
172 Enum(sparc_processor_type) String(sparclite86x) Value(PROCESSOR_SPARCLITE86X)
174 EnumValue
175 Enum(sparc_processor_type) String(sparclet) Value(PROCESSOR_SPARCLET)
177 EnumValue
178 Enum(sparc_processor_type) String(tsc701) Value(PROCESSOR_TSC701)
180 EnumValue
181 Enum(sparc_processor_type) String(v9) Value(PROCESSOR_V9)
183 EnumValue
184 Enum(sparc_processor_type) String(ultrasparc) Value(PROCESSOR_ULTRASPARC)
186 EnumValue
187 Enum(sparc_processor_type) String(ultrasparc3) Value(PROCESSOR_ULTRASPARC3)
189 EnumValue
190 Enum(sparc_processor_type) String(niagara) Value(PROCESSOR_NIAGARA)
192 EnumValue
193 Enum(sparc_processor_type) String(niagara2) Value(PROCESSOR_NIAGARA2)
195 EnumValue
196 Enum(sparc_processor_type) String(niagara3) Value(PROCESSOR_NIAGARA3)
198 EnumValue
199 Enum(sparc_processor_type) String(niagara4) Value(PROCESSOR_NIAGARA4)
201 EnumValue
202 Enum(sparc_processor_type) String(niagara7) Value(PROCESSOR_NIAGARA7)
204 mcmodel=
205 Target RejectNegative Joined Var(sparc_cmodel_string)
206 Use given SPARC-V9 code model.
208 mdebug=
209 Target RejectNegative Joined Var(sparc_debug_string)
210 Enable debug output.
212 mstd-struct-return
213 Target Report Var(sparc_std_struct_return)
214 Enable strict 32-bit psABI struct return checking.
216 mfix-at697f
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).
221 mfix-ut699
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
228 Mask(LEON)
229 ;; Generate code for LEON
231 Mask(LEON3)
232 ;; Generate code for LEON3
234 Mask(SPARCLITE)
235 ;; Generate code for SPARClite
237 Mask(SPARCLET)
238 ;; Generate code for SPARClet
240 Mask(V8)
241 ;; Generate code for SPARC-V8
243 Mask(V9)
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.
250 mmemory-model=
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.
254 Enum
255 Name(sparc_memory_model) Type(enum sparc_memory_model_type)
257 EnumValue
258 Enum(sparc_memory_model) String(default) Value(SMM_DEFAULT)
260 EnumValue
261 Enum(sparc_memory_model) String(rmo) Value(SMM_RMO)
263 EnumValue
264 Enum(sparc_memory_model) String(pso) Value(SMM_PSO)
266 EnumValue
267 Enum(sparc_memory_model) String(tso) Value(SMM_TSO)
269 EnumValue
270 Enum(sparc_memory_model) String(sc) Value(SMM_SC)