testsuite/52641 - Fix more sloppy tests.
[official-gcc.git] / gcc / config / sh / sh.opt
blobc44cfe70cb111170500eb2f96c1c3760f0f11011
1 ; Options for the SH port of the compiler.
3 ; Copyright (C) 2005-2024 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 ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 ; 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 ;; Used for various architecture options.
22 Mask(SH_E)
24 ;; Set if the default precision of the FPU is single.
25 Mask(FPU_SINGLE)
27 ;; Set if the a double-precision FPU is present but is restricted to
28 ;; single precision usage only.
29 Mask(FPU_SINGLE_ONLY)
31 ;; Set if we should generate code using type 2A insns.
32 Mask(HARD_SH2A)
34 ;; Set if we should generate code using type 2A DF insns.
35 Mask(HARD_SH2A_DOUBLE)
37 ;; Set if compiling for SH4 hardware (to be used for insn costs etc.)
38 Mask(HARD_SH4)
41 Target RejectNegative Mask(SH1) Condition(SUPPORT_SH1)
42 Generate SH1 code.
45 Target RejectNegative Mask(SH2) Condition(SUPPORT_SH2)
46 Generate SH2 code.
48 m2a
49 Target RejectNegative Condition(SUPPORT_SH2A)
50 Generate default double-precision SH2a-FPU code.
52 m2a-nofpu
53 Target RejectNegative Condition(SUPPORT_SH2A_NOFPU)
54 Generate SH2a FPU-less code.
56 m2a-single
57 Target RejectNegative Condition(SUPPORT_SH2A_SINGLE)
58 Generate default single-precision SH2a-FPU code.
60 m2a-single-only
61 Target RejectNegative Condition(SUPPORT_SH2A_SINGLE_ONLY)
62 Generate only single-precision SH2a-FPU code.
64 m2e
65 Target RejectNegative Condition(SUPPORT_SH2E)
66 Generate SH2e code.
69 Target RejectNegative Mask(SH3) Condition(SUPPORT_SH3)
70 Generate SH3 code.
72 m3e
73 Target RejectNegative Condition(SUPPORT_SH3E)
74 Generate SH3e code.
77 Target RejectNegative Mask(SH4) Condition(SUPPORT_SH4)
78 Generate SH4 code.
80 m4-100
81 Target RejectNegative Condition(SUPPORT_SH4)
82 Generate SH4-100 code.
84 m4-200
85 Target RejectNegative Condition(SUPPORT_SH4)
86 Generate SH4-200 code.
88 ;; TARGET_SH4_300 indicates if we have the ST40-300 instruction set and
89 ;; pipeline - irrespective of ABI.
90 m4-300
91 Target RejectNegative Condition(SUPPORT_SH4) Var(TARGET_SH4_300)
92 Generate SH4-300 code.
94 m4-nofpu
95 Target RejectNegative Condition(SUPPORT_SH4_NOFPU)
96 Generate SH4 FPU-less code.
98 m4-100-nofpu
99 Target RejectNegative Condition(SUPPORT_SH4_NOFPU)
100 Generate SH4-100 FPU-less code.
102 m4-200-nofpu
103 Target RejectNegative Condition(SUPPORT_SH4_NOFPU)
104 Generate SH4-200 FPU-less code.
106 m4-300-nofpu
107 Target RejectNegative Condition(SUPPORT_SH4_NOFPU) Var(TARGET_SH4_300)
108 Generate SH4-300 FPU-less code.
110 m4-340
111 Target RejectNegative Condition(SUPPORT_SH4_NOFPU) Var(TARGET_SH4_300)
112 Generate code for SH4 340 series (MMU/FPU-less).
113 ;; passes -isa=sh4-nommu-nofpu to the assembler.
115 m4-400
116 Target RejectNegative Condition(SUPPORT_SH4_NOFPU)
117 Generate code for SH4 400 series (MMU/FPU-less).
118 ;; passes -isa=sh4-nommu-nofpu to the assembler.
120 m4-500
121 Target RejectNegative Condition(SUPPORT_SH4_NOFPU)
122 Generate code for SH4 500 series (FPU-less).
123 ;; passes -isa=sh4-nofpu to the assembler.
125 m4-single
126 Target RejectNegative Condition(SUPPORT_SH4_SINGLE)
127 Generate default single-precision SH4 code.
129 m4-100-single
130 Target RejectNegative Condition(SUPPORT_SH4_SINGLE)
131 Generate default single-precision SH4-100 code.
133 m4-200-single
134 Target RejectNegative Condition(SUPPORT_SH4_SINGLE)
135 Generate default single-precision SH4-200 code.
137 m4-300-single
138 Target RejectNegative Condition(SUPPORT_SH4_SINGLE) Var(TARGET_SH4_300)
139 Generate default single-precision SH4-300 code.
141 m4-single-only
142 Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY)
143 Generate only single-precision SH4 code.
145 m4-100-single-only
146 Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY)
147 Generate only single-precision SH4-100 code.
149 m4-200-single-only
150 Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY)
151 Generate only single-precision SH4-200 code.
153 m4-300-single-only
154 Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY) Var(TARGET_SH4_300)
155 Generate only single-precision SH4-300 code.
158 Target RejectNegative Mask(SH4A) Condition(SUPPORT_SH4A)
159 Generate SH4a code.
161 m4a-nofpu
162 Target RejectNegative Condition(SUPPORT_SH4A_NOFPU)
163 Generate SH4a FPU-less code.
165 m4a-single
166 Target RejectNegative Condition(SUPPORT_SH4A_SINGLE)
167 Generate default single-precision SH4a code.
169 m4a-single-only
170 Target RejectNegative Condition(SUPPORT_SH4A_SINGLE_ONLY)
171 Generate only single-precision SH4a code.
173 m4al
174 Target RejectNegative Condition(SUPPORT_SH4AL)
175 Generate SH4al-dsp code.
177 maccumulate-outgoing-args
178 Target Var(TARGET_ACCUMULATE_OUTGOING_ARGS) Init(1)
179 Reserve space for outgoing arguments in the function prologue.
182 Target RejectNegative InverseMask(LITTLE_ENDIAN)
183 Generate code in big endian mode.
185 mbigtable
186 Target RejectNegative Mask(BIGTABLE)
187 Generate 32-bit offsets in switch tables.
189 mbitops
190 Target RejectNegative Mask(BITOPS)
191 Generate bit instructions.
193 mbranch-cost=
194 Target RejectNegative Joined UInteger Var(sh_branch_cost) Init(-1)
195 Cost to assume for a branch insn.
197 mzdcbranch
198 Target Var(TARGET_ZDCBRANCH)
199 Assume that zero displacement conditional branches are fast.
201 mcbranch-force-delay-slot
202 Target RejectNegative Var(TARGET_CBRANCH_FORCE_DELAY_SLOT) Init(0)
203 Force the usage of delay slots for conditional branches.
205 mdalign
206 Target RejectNegative Mask(ALIGN_DOUBLE)
207 Align doubles at 64-bit boundaries.
209 mdiv=
210 Target Save RejectNegative Joined Var(sh_div_str) Init("")
211 Division strategy, one of: call-div1, call-fp, call-table.
213 mdivsi3_libfunc=
214 Target RejectNegative Joined Var(sh_divsi3_libfunc) Init("")
215 Specify name for 32 bit signed division function.
217 mfdpic
218 Target Var(TARGET_FDPIC) Init(0)
219 Generate ELF FDPIC code.
221 mfmovd
222 Target RejectNegative Mask(FMOVD)
223 Enable the use of 64-bit floating point registers in fmov instructions.  See -mdalign if 64-bit alignment is required.
225 mfixed-range=
226 Target RejectNegative Joined Var(sh_fixed_range_str)
227 Specify range of registers to make fixed.
229 mhitachi
230 Target RejectNegative Mask(HITACHI)
231 Follow Renesas (formerly Hitachi) / SuperH calling conventions.
233 mieee
234 Target Var(TARGET_IEEE)
235 Increase the IEEE compliance for floating-point comparisons.
237 minline-ic_invalidate
238 Target Var(TARGET_INLINE_IC_INVALIDATE)
239 Inline code to invalidate instruction cache entries after setting up nested function trampolines.
241 misize
242 Target RejectNegative Mask(DUMPISIZE)
243 Annotate assembler instructions with estimated addresses.
246 Target RejectNegative Mask(LITTLE_ENDIAN)
247 Generate code in little endian mode.
249 mnomacsave
250 Target RejectNegative Mask(NOMACSAVE)
251 Mark MAC register as call-clobbered.
253 ;; ??? This option is not useful, but is retained in case there are people
254 ;; who are still relying on it.  It may be deleted in the future.
255 mpadstruct
256 Target RejectNegative Mask(PADSTRUCT)
257 Make structs a multiple of 4 bytes (warning: ABI altered).
259 mprefergot
260 Target RejectNegative Mask(PREFERGOT)
261 Emit function-calls using global offset table when generating PIC.
263 mrelax
264 Target RejectNegative Mask(RELAX)
265 Shorten address references during linking.
267 mrenesas
268 Target Mask(HITACHI)
269 Follow Renesas (formerly Hitachi) / SuperH calling conventions.
271 matomic-model=
272 Target RejectNegative Joined Var(sh_atomic_model_str)
273 Specify the model for atomic operations.
275 mtas
276 Target RejectNegative Var(TARGET_ENABLE_TAS)
277 Use tas.b instruction for __atomic_test_and_set.
279 multcost=
280 Target RejectNegative Joined UInteger Var(sh_multcost) Init(-1)
281 Cost to assume for a multiply insn.
283 musermode
284 Target Var(TARGET_USERMODE)
285 Don't generate privileged-mode only code; implies -mno-inline-ic_invalidate if the inline code would not work in user mode.
287 ;; We might want to enable this by default for TARGET_HARD_SH4, because
288 ;; zero-offset branches have zero latency.  Needs some benchmarking.
289 mpretend-cmove
290 Target Var(TARGET_PRETEND_CMOVE)
291 Pretend a branch-around-a-move is a conditional move.
293 mfsca
294 Target Var(TARGET_FSCA)
295 Enable the use of the fsca instruction.
297 mfsrra
298 Target Var(TARGET_FSRRA)
299 Enable the use of the fsrra instruction.
301 mlra
302 Target Var(sh_lra_flag) Init(0) Save
303 Use LRA instead of reload (transitional).