* config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
[official-gcc.git] / gcc / config / sparc / sparc.opt
blob22267f50e906aa0877f9a07bab62d2fdc9469aa3
1 ; Options for the SPARC port of the compiler
3 ; Copyright (C) 2005-2017 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 mlra
61 Target Report Mask(LRA)
62 Enable Local Register Allocation.
64 mv8plus
65 Target Report Mask(V8PLUS)
66 Compile for V8+ ABI.
68 mvis
69 Target Report Mask(VIS)
70 Use UltraSPARC Visual Instruction Set version 1.0 extensions.
72 mvis2
73 Target Report Mask(VIS2)
74 Use UltraSPARC Visual Instruction Set version 2.0 extensions.
76 mvis3
77 Target Report Mask(VIS3)
78 Use UltraSPARC Visual Instruction Set version 3.0 extensions.
80 mvis4
81 Target Report Mask(VIS4)
82 Use UltraSPARC Visual Instruction Set version 4.0 extensions.
84 mvis4b
85 Target Report Mask(VIS4B)
86 Use additional VIS instructions introduced in OSA2017.
88 mcbcond
89 Target Report Mask(CBCOND)
90 Use UltraSPARC Compare-and-Branch extensions.
92 mfmaf
93 Target Report Mask(FMAF)
94 Use UltraSPARC Fused Multiply-Add extensions.
96 mfsmuld
97 Target Report Mask(FSMULD)
98 Use Floating-point Multiply Single to Double (FsMULd) instruction.
100 mpopc
101 Target Report Mask(POPC)
102 Use UltraSPARC Population-Count instruction.
104 msubxc
105 Target Report Mask(SUBXC)
106 Use UltraSPARC Subtract-Extended-with-Carry instruction.
108 mptr64
109 Target Report RejectNegative Mask(PTR64)
110 Pointers are 64-bit.
112 mptr32
113 Target Report RejectNegative InverseMask(PTR64)
114 Pointers are 32-bit.
117 Target Report RejectNegative Mask(64BIT)
118 Use 64-bit ABI.
121 Target Report RejectNegative InverseMask(64BIT)
122 Use 32-bit ABI.
124 mstack-bias
125 Target Report Mask(STACK_BIAS)
126 Use stack bias.
128 mfaster-structs
129 Target Report Mask(FASTER_STRUCTS)
130 Use structs on stronger alignment for double-word copies.
132 mrelax
133 Target
134 Optimize tail call instructions in assembler and linker.
136 muser-mode
137 Target Report InverseMask(SV_MODE)
138 Do not generate code that can only run in supervisor mode (default).
140 mcpu=
141 Target RejectNegative Joined Var(sparc_cpu_and_features) Enum(sparc_processor_type) Init(PROCESSOR_V7)
142 Use features of and schedule code for given CPU.
144 mtune=
145 Target RejectNegative Joined Var(sparc_cpu) Enum(sparc_processor_type) Init(PROCESSOR_V7)
146 Schedule code for given CPU.
148 Enum
149 Name(sparc_processor_type) Type(enum processor_type)
151 EnumValue
152 Enum(sparc_processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
154 EnumValue
155 Enum(sparc_processor_type) String(v7) Value(PROCESSOR_V7)
157 EnumValue
158 Enum(sparc_processor_type) String(cypress) Value(PROCESSOR_CYPRESS)
160 EnumValue
161 Enum(sparc_processor_type) String(v8) Value(PROCESSOR_V8)
163 EnumValue
164 Enum(sparc_processor_type) String(supersparc) Value(PROCESSOR_SUPERSPARC)
166 EnumValue
167 Enum(sparc_processor_type) String(hypersparc) Value(PROCESSOR_HYPERSPARC)
169 EnumValue
170 Enum(sparc_processor_type) String(leon) Value(PROCESSOR_LEON)
172 EnumValue
173 Enum(sparc_processor_type) String(leon3) Value(PROCESSOR_LEON3)
175 EnumValue
176 Enum(sparc_processor_type) String(leon3v7) Value(PROCESSOR_LEON3V7)
178 EnumValue
179 Enum(sparc_processor_type) String(sparclite) Value(PROCESSOR_SPARCLITE)
181 EnumValue
182 Enum(sparc_processor_type) String(f930) Value(PROCESSOR_F930)
184 EnumValue
185 Enum(sparc_processor_type) String(f934) Value(PROCESSOR_F934)
187 EnumValue
188 Enum(sparc_processor_type) String(sparclite86x) Value(PROCESSOR_SPARCLITE86X)
190 EnumValue
191 Enum(sparc_processor_type) String(sparclet) Value(PROCESSOR_SPARCLET)
193 EnumValue
194 Enum(sparc_processor_type) String(tsc701) Value(PROCESSOR_TSC701)
196 EnumValue
197 Enum(sparc_processor_type) String(v9) Value(PROCESSOR_V9)
199 EnumValue
200 Enum(sparc_processor_type) String(ultrasparc) Value(PROCESSOR_ULTRASPARC)
202 EnumValue
203 Enum(sparc_processor_type) String(ultrasparc3) Value(PROCESSOR_ULTRASPARC3)
205 EnumValue
206 Enum(sparc_processor_type) String(niagara) Value(PROCESSOR_NIAGARA)
208 EnumValue
209 Enum(sparc_processor_type) String(niagara2) Value(PROCESSOR_NIAGARA2)
211 EnumValue
212 Enum(sparc_processor_type) String(niagara3) Value(PROCESSOR_NIAGARA3)
214 EnumValue
215 Enum(sparc_processor_type) String(niagara4) Value(PROCESSOR_NIAGARA4)
217 EnumValue
218 Enum(sparc_processor_type) String(niagara7) Value(PROCESSOR_NIAGARA7)
220 EnumValue
221 Enum(sparc_processor_type) String(m8) Value(PROCESSOR_M8)
223 mcmodel=
224 Target RejectNegative Joined Var(sparc_cmodel_string)
225 Use given SPARC-V9 code model.
227 mdebug=
228 Target RejectNegative Joined Var(sparc_debug_string)
229 Enable debug output.
231 mstd-struct-return
232 Target Report Var(sparc_std_struct_return)
233 Enable strict 32-bit psABI struct return checking.
235 mfix-at697f
236 Target Report RejectNegative Var(sparc_fix_at697f)
237 Enable workaround for single erratum of AT697F processor
238 (corresponding to erratum #13 of AT697E processor).
240 mfix-ut699
241 Target Report RejectNegative Var(sparc_fix_ut699)
242 Enable workarounds for the errata of the UT699 processor.
244 mfix-ut700
245 Target Report RejectNegative Var(sparc_fix_ut700)
246 Enable workarounds for the errata of the UT699E/UT700 processor.
248 mfix-gr712rc
249 Target Report RejectNegative Var(sparc_fix_gr712rc)
250 Enable workarounds for the errata of the GR712RC processor.
252 ;; Enable workaround for back-to-back store errata
253 TargetVariable
254 unsigned int sparc_fix_b2bst
256 Mask(LONG_DOUBLE_128)
257 ;; Use 128-bit long double
259 Mask(LEON)
260 ;; Generate code for LEON
262 Mask(LEON3)
263 ;; Generate code for LEON3
265 Mask(SPARCLITE)
266 ;; Generate code for SPARClite
268 Mask(SPARCLET)
269 ;; Generate code for SPARClet
271 Mask(V8)
272 ;; Generate code for SPARC-V8
274 Mask(V9)
275 ;; Generate code for SPARC-V9
277 Mask(DEPRECATED_V8_INSNS)
278 ;; Generate code that uses the V8 instructions deprecated
279 ;; in the V9 architecture.
281 mmemory-model=
282 Target RejectNegative Joined Var(sparc_memory_model) Enum(sparc_memory_model) Init(SMM_DEFAULT)
283 Specify the memory model in effect for the program.
285 Enum
286 Name(sparc_memory_model) Type(enum sparc_memory_model_type)
288 EnumValue
289 Enum(sparc_memory_model) String(default) Value(SMM_DEFAULT)
291 EnumValue
292 Enum(sparc_memory_model) String(rmo) Value(SMM_RMO)
294 EnumValue
295 Enum(sparc_memory_model) String(pso) Value(SMM_PSO)
297 EnumValue
298 Enum(sparc_memory_model) String(tso) Value(SMM_TSO)
300 EnumValue
301 Enum(sparc_memory_model) String(sc) Value(SMM_SC)