1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
; Options for the FR-V port of the compiler.
; Copyright (C) 2005, 2007, 2011 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
HeaderInclude
config/frv/frv-opts.h
; Value of -mcpu=.
Variable
frv_cpu_t frv_cpu_type = CPU_TYPE
macc-4
Target Report RejectNegative Mask(ACC_4)
Use 4 media accumulators
macc-8
Target Report RejectNegative InverseMask(ACC_4, ACC_8)
Use 8 media accumulators
malign-labels
Target Report Mask(ALIGN_LABELS)
Enable label alignment optimizations
malloc-cc
Target Report RejectNegative Mask(ALLOC_CC)
Dynamically allocate cc registers
; We used to default the branch cost to 2, but it was changed it to 1 to avoid
; generating SCC instructions and or/and-ing them together, and then doing the
; branch on the result, which collectively generate much worse code.
mbranch-cost=
Target RejectNegative Joined UInteger Var(frv_branch_cost_int) Init(1)
Set the cost of branches
mcond-exec
Target Report Mask(COND_EXEC)
Enable conditional execution other than moves/scc
mcond-exec-insns=
Target RejectNegative Joined UInteger Var(frv_condexec_insns) Init(8)
Change the maximum length of conditionally-executed sequences
mcond-exec-temps=
Target RejectNegative Joined UInteger Var(frv_condexec_temps) Init(4)
Change the number of temporary registers that are available to conditionally-executed sequences
mcond-move
Target Report Mask(COND_MOVE)
Enable conditional moves
mcpu=
Target RejectNegative Joined Enum(frv_cpu) Var(frv_cpu_type)
Set the target CPU type
Enum
Name(frv_cpu) Type(frv_cpu_t)
Known FR-V CPUs (for use with the -mcpu= option):
EnumValue
Enum(frv_cpu) String(simple) Value(FRV_CPU_SIMPLE)
EnumValue
Enum(frv_cpu) String(tomcat) Value(FRV_CPU_TOMCAT)
EnumValue
Enum(frv_cpu) String(fr550) Value(FRV_CPU_FR550)
EnumValue
Enum(frv_cpu) String(fr500) Value(FRV_CPU_FR500)
EnumValue
Enum(frv_cpu) String(fr450) Value(FRV_CPU_FR450)
EnumValue
Enum(frv_cpu) String(fr405) Value(FRV_CPU_FR405)
EnumValue
Enum(frv_cpu) String(fr400) Value(FRV_CPU_FR400)
EnumValue
Enum(frv_cpu) String(fr300) Value(FRV_CPU_FR300)
EnumValue
Enum(frv_cpu) String(frv) Value(FRV_CPU_GENERIC)
mdebug
Target Undocumented Var(TARGET_DEBUG)
mdebug-arg
Target Undocumented Var(TARGET_DEBUG_ARG)
mdebug-addr
Target Undocumented Var(TARGET_DEBUG_ADDR)
mdebug-cond-exec
Target Undocumented Var(TARGET_DEBUG_COND_EXEC)
mdebug-loc
Target Undocumented Var(TARGET_DEBUG_LOC)
mdebug-stack
Target Undocumented Var(TARGET_DEBUG_STACK)
mdouble
Target Report Mask(DOUBLE)
Use fp double instructions
mdword
Target Report Mask(DWORD)
Change the ABI to allow double word insns
mfdpic
Target Report Mask(FDPIC)
Enable Function Descriptor PIC mode
mfixed-cc
Target Report RejectNegative InverseMask(ALLOC_CC, FIXED_CC)
Just use icc0/fcc0
mfpr-32
Target Report RejectNegative Mask(FPR_32)
Only use 32 FPRs
mfpr-64
Target Report RejectNegative InverseMask(FPR_32, FPR_64)
Use 64 FPRs
mgpr-32
Target Report RejectNegative Mask(GPR_32)
Only use 32 GPRs
mgpr-64
Target Report RejectNegative InverseMask(GPR_32, GPR_64)
Use 64 GPRs
mgprel-ro
Target Report Mask(GPREL_RO)
Enable use of GPREL for read-only data in FDPIC
mhard-float
Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
Use hardware floating point
minline-plt
Target Report Mask(INLINE_PLT)
Enable inlining of PLT in function calls
mlibrary-pic
Target Report Mask(LIBPIC)
Enable PIC support for building libraries
mlinked-fp
Target Report Mask(LINKED_FP)
Follow the EABI linkage requirements
mlong-calls
Target Report Mask(LONG_CALLS)
Disallow direct calls to global functions
mmedia
Target Report Mask(MEDIA)
Use media instructions
mmuladd
Target Report Mask(MULADD)
Use multiply add/subtract instructions
mmulti-cond-exec
Target Report Mask(MULTI_CE)
Enable optimizing &&/|| in conditional execution
mnested-cond-exec
Target Report Mask(NESTED_CE)
Enable nested conditional execution optimizations
; Not used by the compiler proper.
mno-eflags
Target RejectNegative
Do not mark ABI switches in e_flags
moptimize-membar
Target Report Mask(OPTIMIZE_MEMBAR)
Remove redundant membars
mpack
Target Report Mask(PACK)
Pack VLIW instructions
mscc
Target Report Mask(SCC)
Enable setting GPRs to the result of comparisons
msched-lookahead=
Target RejectNegative Joined UInteger Var(frv_sched_lookahead) Init(4)
Change the amount of scheduler lookahead
msoft-float
Target Report RejectNegative Mask(SOFT_FLOAT)
Use software floating point
mTLS
Target Report RejectNegative Mask(BIG_TLS)
Assume a large TLS segment
mtls
Target Report RejectNegative InverseMask(BIG_TLS)
Do not assume a large TLS segment
; Not used by the compiler proper.
mtomcat-stats
Target
Cause gas to print tomcat statistics
; Not used by the compiler proper.
multilib-library-pic
Target RejectNegative
Link with the library-pic libraries
mvliw-branch
Target Report Mask(VLIW_BRANCH)
Allow branches to be packed with other instructions
|