1 ; Options for the FR-V port of the compiler.
3 ; Copyright (C) 2005-2019 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 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 COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
26 frv_cpu_t frv_cpu_type = CPU_TYPE
29 Target Report RejectNegative Mask(ACC_4)
30 Use 4 media accumulators.
33 Target Report RejectNegative InverseMask(ACC_4, ACC_8)
34 Use 8 media accumulators.
37 Target Report Mask(ALIGN_LABELS)
38 Enable label alignment optimizations.
41 Target Report RejectNegative Mask(ALLOC_CC)
42 Dynamically allocate cc registers.
44 ; We used to default the branch cost to 2, but it was changed it to 1 to avoid
45 ; generating SCC instructions and or/and-ing them together, and then doing the
46 ; branch on the result, which collectively generate much worse code.
48 Target RejectNegative Joined UInteger Var(frv_branch_cost_int) Init(1)
49 Set the cost of branches.
52 Target Report Mask(COND_EXEC)
53 Enable conditional execution other than moves/scc.
56 Target RejectNegative Joined UInteger Var(frv_condexec_insns) Init(8)
57 Change the maximum length of conditionally-executed sequences.
60 Target RejectNegative Joined UInteger Var(frv_condexec_temps) Init(4)
61 Change the number of temporary registers that are available to conditionally-executed sequences.
64 Target Report Mask(COND_MOVE)
65 Enable conditional moves.
68 Target RejectNegative Joined Enum(frv_cpu) Var(frv_cpu_type)
69 Set the target CPU type.
72 Name(frv_cpu) Type(frv_cpu_t)
73 Known FR-V CPUs (for use with the -mcpu= option):
76 Enum(frv_cpu) String(simple) Value(FRV_CPU_SIMPLE)
79 Enum(frv_cpu) String(tomcat) Value(FRV_CPU_TOMCAT)
82 Enum(frv_cpu) String(fr550) Value(FRV_CPU_FR550)
85 Enum(frv_cpu) String(fr500) Value(FRV_CPU_FR500)
88 Enum(frv_cpu) String(fr450) Value(FRV_CPU_FR450)
91 Enum(frv_cpu) String(fr405) Value(FRV_CPU_FR405)
94 Enum(frv_cpu) String(fr400) Value(FRV_CPU_FR400)
97 Enum(frv_cpu) String(fr300) Value(FRV_CPU_FR300)
100 Enum(frv_cpu) String(frv) Value(FRV_CPU_GENERIC)
103 Target Undocumented Var(TARGET_DEBUG)
106 Target Undocumented Var(TARGET_DEBUG_ARG)
109 Target Undocumented Var(TARGET_DEBUG_ADDR)
112 Target Undocumented Var(TARGET_DEBUG_COND_EXEC)
115 Target Undocumented Var(TARGET_DEBUG_LOC)
118 Target Undocumented Var(TARGET_DEBUG_STACK)
121 Target Report Mask(DOUBLE)
122 Use fp double instructions.
125 Target Report Mask(DWORD)
126 Change the ABI to allow double word insns.
129 Target Report Mask(FDPIC)
130 Enable Function Descriptor PIC mode.
133 Target Report RejectNegative InverseMask(ALLOC_CC, FIXED_CC)
137 Target Report RejectNegative Mask(FPR_32)
141 Target Report RejectNegative InverseMask(FPR_32, FPR_64)
145 Target Report RejectNegative Mask(GPR_32)
149 Target Report RejectNegative InverseMask(GPR_32, GPR_64)
153 Target Report Mask(GPREL_RO)
154 Enable use of GPREL for read-only data in FDPIC.
157 Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
158 Use hardware floating point.
161 Target Report Mask(INLINE_PLT)
162 Enable inlining of PLT in function calls.
165 Target Report Mask(LIBPIC)
166 Enable PIC support for building libraries.
169 Target Report Mask(LINKED_FP)
170 Follow the EABI linkage requirements.
173 Target Report Mask(LONG_CALLS)
174 Disallow direct calls to global functions.
177 Target Report Mask(MEDIA)
178 Use media instructions.
181 Target Report Mask(MULADD)
182 Use multiply add/subtract instructions.
185 Target Report Mask(MULTI_CE)
186 Enable optimizing &&/|| in conditional execution.
189 Target Report Mask(NESTED_CE)
190 Enable nested conditional execution optimizations.
192 ; Not used by the compiler proper.
194 Target RejectNegative
195 Do not mark ABI switches in e_flags.
198 Target Report Mask(OPTIMIZE_MEMBAR)
199 Remove redundant membars.
202 Target Report Mask(PACK)
203 Pack VLIW instructions.
206 Target Report Mask(SCC)
207 Enable setting GPRs to the result of comparisons.
210 Target RejectNegative Joined UInteger Var(frv_sched_lookahead) Init(4)
211 Change the amount of scheduler lookahead.
214 Target Report RejectNegative Mask(SOFT_FLOAT)
215 Use software floating point.
218 Target Report RejectNegative Mask(BIG_TLS)
219 Assume a large TLS segment.
222 Target Report RejectNegative InverseMask(BIG_TLS)
223 Do not assume a large TLS segment.
225 ; Not used by the compiler proper.
228 Cause gas to print tomcat statistics.
230 ; Not used by the compiler proper.
232 Target RejectNegative
233 Link with the library-pic libraries.
236 Target Report Mask(VLIW_BRANCH)
237 Allow branches to be packed with other instructions.