1 ; Options for the SH port of the compiler.
3 ; Copyright (C) 2005, 2006 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 2, or (at your option) any later
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
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING. If not, write to the Free
19 ; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
22 ;; Used for various architecture options.
25 ;; Set if the default precision of th FPU is single.
28 ;; Set if we should generate code using type 2A insns.
31 ;; Set if we should generate code using type 2A DF insns.
32 Mask(HARD_SH2A_DOUBLE)
34 ;; Set if compiling for SH4 hardware (to be used for insn costs etc.)
37 ;; Set if we should generate code for a SH5 CPU (either ISA).
40 ;; Set if we should save all target registers.
41 Mask(SAVE_ALL_TARGET_REGS)
44 Target RejectNegative Mask(SH1) Condition(SUPPORT_SH1)
48 Target RejectNegative Mask(SH2) Condition(SUPPORT_SH2)
52 Target RejectNegative Condition(SUPPORT_SH2A)
56 Target RejectNegative Condition(SUPPORT_SH2A_NOFPU)
57 Generate SH2a FPU-less code
60 Target RejectNegative Condition (SUPPORT_SH2A_SINGLE)
61 Generate default single-precision SH2a code
64 Target RejectNegative Condition (SUPPORT_SH2A_SINGLE_ONLY)
65 Generate only single-precision SH2a code
68 Target RejectNegative Condition(SUPPORT_SH2E)
72 Target RejectNegative Mask(SH3) Condition(SUPPORT_SH3)
76 Target RejectNegative Condition(SUPPORT_SH3E)
80 Target RejectNegative Mask(SH4) Condition(SUPPORT_SH4)
84 Target RejectNegative Condition(SUPPORT_SH4_NOFPU)
85 Generate SH4 FPU-less code
88 Target RejectNegative Condition(SUPPORT_SH4_SINGLE)
89 Generate default single-precision SH4 code
92 Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY)
93 Generate only single-precision SH4 code
96 Target RejectNegative Mask(SH4A) Condition(SUPPORT_SH4A)
100 Target RejectNegative Condition(SUPPORT_SH4A_NOFPU)
101 Generate SH4a FPU-less code
104 Target RejectNegative Condition(SUPPORT_SH4A_SINGLE)
105 Generate default single-precision SH4a code
108 Target RejectNegative Condition(SUPPORT_SH4A_SINGLE_ONLY)
109 Generate only single-precision SH4a code
112 Target RejectNegative Condition(SUPPORT_SH4AL)
113 Generate SH4al-dsp code
116 Target RejectNegative Condition(SUPPORT_SH5_32MEDIA)
117 Generate 32-bit SHmedia code
120 Target RejectNegative Condition(SUPPORT_SH5_32MEDIA_NOFPU)
121 Generate 32-bit FPU-less SHmedia code
124 Target RejectNegative Condition(SUPPORT_SH5_64MEDIA)
125 Generate 64-bit SHmedia code
128 Target RejectNegative Condition(SUPPORT_SH5_64MEDIA_NOFPU)
129 Generate 64-bit FPU-less SHmedia code
132 Target RejectNegative Condition(SUPPORT_SH5_32MEDIA)
133 Generate SHcompact code
136 Target RejectNegative Condition(SUPPORT_SH5_32MEDIA_NOFPU)
137 Generate FPU-less SHcompact code
140 Target Report Mask(ADJUST_UNROLL) Condition(SUPPORT_ANY_SH5)
141 Throttle unrolling to avoid thrashing target registers unless the unroll benefit outweighs this
144 Target Report RejectNegative InverseMask(LITTLE_ENDIAN)
145 Generate code in big endian mode
148 Target Report RejectNegative Mask(BIGTABLE)
149 Generate 32-bit offsets in switch tables
152 Target RejectNegative Var(TARGET_SH5_CUT2_WORKAROUND)
153 Enable SH5 cut2 workaround
156 Target Report RejectNegative Mask(ALIGN_DOUBLE)
157 Align doubles at 64-bit boundaries
160 Target RejectNegative Joined Var(sh_div_str) Init("")
161 Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp call-div1 call-fp call-table
164 Target RejectNegative Joined Var(sh_divsi3_libfunc) Init("")
165 Specify name for 32 bit signed division function
168 Target RejectNegative Mask(FMOVD) Undocumented
171 Target RejectNegative Joined UInteger Var(sh_gettrcost) Init(-1)
172 Cost to assume for gettr insn
175 Target Report RejectNegative Mask(HITACHI)
176 Follow Renesas (formerly Hitachi) / SuperH calling conventions
179 Target Report Mask(IEEE)
180 Increase the IEEE compliance for floating-point code
183 Target Report Mask(ALLOW_INDEXED_ADDRESS) Condition(SUPPORT_ANY_SH5_32MEDIA)
184 Enable the use of the indexed addressing mode for SHmedia32/SHcompact
187 Target Report Mask(INVALID_SYMBOLS) Condition(SUPPORT_ANY_SH5)
188 Assume symbols might be invalid
191 Target Report RejectNegative Mask(DUMPISIZE)
192 Annotate assembler instructions with estimated addresses
195 Target Report RejectNegative Mask(LITTLE_ENDIAN)
196 Generate code in little endian mode
199 Target Report RejectNegative Mask(NOMACSAVE)
200 Mark MAC register as call-clobbered
202 ;; ??? This option is not useful, but is retained in case there are people
203 ;; who are still relying on it. It may be deleted in the future.
205 Target Report RejectNegative Mask(PADSTRUCT)
206 Make structs a multiple of 4 bytes (warning: ABI altered)
209 Target Report RejectNegative Mask(PREFERGOT)
210 Emit function-calls using global offset table when generating PIC
213 Target Report Mask(PT_FIXED) Condition(SUPPORT_ANY_SH5)
214 Assume pt* instructions won't trap
217 Target Report RejectNegative Mask(RELAX)
218 Shorten address references during linking
221 Target Mask(HITACHI) MaskExists
222 Follow Renesas (formerly Hitachi) / SuperH calling conventions
225 Target Report RejectNegative Mask(SMALLCODE)
226 Deprecated. Use -Os instead
229 Target RejectNegative Joined UInteger Var(sh_multcost) Init(-1)
230 Cost to assume for a multiply insn
233 Target Report RejectNegative Mask(USERMODE)
234 Generate library function call to invalidate instruction cache entries after fixing trampoline