111
|
1 ; Options of Andes NDS32 cpu for GNU compiler
|
131
|
2 ; Copyright (C) 2012-2018 Free Software Foundation, Inc.
|
111
|
3 ; Contributed by Andes Technology Corporation.
|
|
4 ;
|
|
5 ; This file is part of GCC.
|
|
6 ;
|
|
7 ; GCC is free software; you can redistribute it and/or modify it
|
|
8 ; under the terms of the GNU General Public License as published
|
|
9 ; by the Free Software Foundation; either version 3, or (at your
|
|
10 ; option) any later version.
|
|
11 ;
|
|
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.
|
|
16 ;
|
|
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/>.
|
|
20
|
|
21 HeaderInclude
|
|
22 config/nds32/nds32-opts.h
|
|
23
|
131
|
24 ; ---------------------------------------------------------------
|
|
25 ; The following options are designed for aliasing and compatibility options.
|
|
26
|
|
27 EB
|
|
28 Target RejectNegative Alias(mbig-endian)
|
111
|
29 Generate code in big-endian mode.
|
|
30
|
131
|
31 EL
|
|
32 Target RejectNegative Alias(mlittle-endian)
|
111
|
33 Generate code in little-endian mode.
|
|
34
|
131
|
35 mfp-as-gp
|
|
36 Target RejectNegative Alias(mforce-fp-as-gp)
|
|
37 Force performing fp-as-gp optimization.
|
|
38
|
|
39 mno-fp-as-gp
|
|
40 Target RejectNegative Alias(mforbid-fp-as-gp)
|
|
41 Forbid performing fp-as-gp optimization.
|
|
42
|
|
43 ; ---------------------------------------------------------------
|
|
44
|
|
45 mabi=
|
|
46 Target RejectNegative Joined Enum(abi_type) Var(nds32_abi) Init(TARGET_DEFAULT_ABI)
|
|
47 Specify which ABI type to generate code for: 2, 2fp+.
|
|
48
|
|
49 Enum
|
|
50 Name(abi_type) Type(enum abi_type)
|
|
51 Known ABIs (for use with the -mabi= option):
|
|
52
|
|
53 EnumValue
|
|
54 Enum(abi_type) String(2) Value(NDS32_ABI_V2)
|
|
55
|
|
56 EnumValue
|
|
57 Enum(abi_type) String(2fp+) Value(NDS32_ABI_V2_FP_PLUS)
|
|
58
|
|
59 mfloat-abi=soft
|
|
60 Target RejectNegative Alias(mabi=, 2)
|
|
61 Specify use soft floating point ABI which mean alias to -mabi=2.
|
|
62
|
|
63 mfloat-abi=hard
|
|
64 Target RejectNegative Alias(mabi=, 2fp+)
|
|
65 Specify use soft floating point ABI which mean alias to -mabi=2fp+.
|
|
66
|
|
67 ; ---------------------------------------------------------------
|
|
68
|
111
|
69 mreduced-regs
|
|
70 Target Report RejectNegative Negative(mfull-regs) Mask(REDUCED_REGS)
|
|
71 Use reduced-set registers for register allocation.
|
|
72
|
|
73 mfull-regs
|
|
74 Target Report RejectNegative Negative(mreduced-regs) InverseMask(REDUCED_REGS)
|
|
75 Use full-set registers for register allocation.
|
|
76
|
131
|
77 ; ---------------------------------------------------------------
|
|
78
|
|
79 malways-align
|
|
80 Target Mask(ALWAYS_ALIGN)
|
|
81 Always align function entry, jump target and return address.
|
|
82
|
|
83 malign-functions
|
|
84 Target Mask(ALIGN_FUNCTION)
|
|
85 Align function entry to 4 byte.
|
|
86
|
|
87 mbig-endian
|
|
88 Target Undocumented RejectNegative Negative(mlittle-endian) Mask(BIG_ENDIAN)
|
|
89 Generate code in big-endian mode.
|
|
90
|
|
91 mlittle-endian
|
|
92 Target Undocumented RejectNegative Negative(mbig-endian) InverseMask(BIG_ENDIAN)
|
|
93 Generate code in little-endian mode.
|
|
94
|
|
95 mforce-fp-as-gp
|
|
96 Target Undocumented Mask(FORCE_FP_AS_GP)
|
|
97 Prevent $fp being allocated during register allocation so that compiler is able to force performing fp-as-gp optimization.
|
|
98
|
|
99 mforbid-fp-as-gp
|
|
100 Target Undocumented Mask(FORBID_FP_AS_GP)
|
|
101 Forbid using $fp to access static and global variables. This option strictly forbids fp-as-gp optimization regardless of '-mforce-fp-as-gp'.
|
|
102
|
|
103 mict-model=
|
|
104 Target Undocumented RejectNegative Joined Enum(nds32_ict_model_type) Var(nds32_ict_model) Init(ICT_MODEL_SMALL)
|
|
105 Specify the address generation strategy for ICT call's code model.
|
|
106
|
|
107 Enum
|
|
108 Name(nds32_ict_model_type) Type(enum nds32_ict_model_type)
|
|
109 Known cmodel types (for use with the -mict-model= option):
|
|
110
|
|
111 EnumValue
|
|
112 Enum(nds32_ict_model_type) String(small) Value(ICT_MODEL_SMALL)
|
|
113
|
|
114 EnumValue
|
|
115 Enum(nds32_ict_model_type) String(large) Value(ICT_MODEL_LARGE)
|
|
116
|
111
|
117 mcmov
|
|
118 Target Report Mask(CMOV)
|
|
119 Generate conditional move instructions.
|
|
120
|
131
|
121 mhw-abs
|
|
122 Target Report Mask(HW_ABS)
|
|
123 Generate hardware abs instructions.
|
|
124
|
|
125 mext-perf
|
|
126 Target Report Mask(EXT_PERF)
|
111
|
127 Generate performance extension instructions.
|
|
128
|
131
|
129 mext-perf2
|
|
130 Target Report Mask(EXT_PERF2)
|
|
131 Generate performance extension version 2 instructions.
|
|
132
|
|
133 mext-string
|
|
134 Target Report Mask(EXT_STRING)
|
|
135 Generate string extension instructions.
|
|
136
|
|
137 mext-dsp
|
|
138 Target Report Mask(EXT_DSP)
|
|
139 Generate DSP extension instructions.
|
|
140
|
111
|
141 mv3push
|
|
142 Target Report Mask(V3PUSH)
|
|
143 Generate v3 push25/pop25 instructions.
|
|
144
|
|
145 m16-bit
|
|
146 Target Report Mask(16_BIT)
|
|
147 Generate 16-bit instructions.
|
|
148
|
131
|
149 mrelax-hint
|
|
150 Target Report Mask(RELAX_HINT)
|
|
151 Insert relax hint for linker to do relaxation.
|
|
152
|
|
153 mvh
|
|
154 Target Report Mask(VH) Condition(!TARGET_LINUX_ABI)
|
|
155 Enable Virtual Hosting support.
|
|
156
|
111
|
157 misr-vector-size=
|
|
158 Target RejectNegative Joined UInteger Var(nds32_isr_vector_size) Init(NDS32_DEFAULT_ISR_VECTOR_SIZE)
|
|
159 Specify the size of each interrupt vector, which must be 4 or 16.
|
|
160
|
131
|
161 misr-secure=
|
|
162 Target RejectNegative Joined UInteger Var(nds32_isr_secure_level) Init(0)
|
|
163 Specify the security level of c-isr for the whole file.
|
|
164
|
111
|
165 mcache-block-size=
|
|
166 Target RejectNegative Joined UInteger Var(nds32_cache_block_size) Init(NDS32_DEFAULT_CACHE_BLOCK_SIZE)
|
|
167 Specify the size of each cache block, which must be a power of 2 between 4 and 512.
|
|
168
|
|
169 march=
|
|
170 Target RejectNegative Joined Enum(nds32_arch_type) Var(nds32_arch_option) Init(ARCH_V3)
|
|
171 Specify the name of the target architecture.
|
|
172
|
|
173 Enum
|
|
174 Name(nds32_arch_type) Type(enum nds32_arch_type)
|
|
175 Known arch types (for use with the -march= option):
|
|
176
|
|
177 EnumValue
|
|
178 Enum(nds32_arch_type) String(v2) Value(ARCH_V2)
|
|
179
|
|
180 EnumValue
|
|
181 Enum(nds32_arch_type) String(v3) Value(ARCH_V3)
|
|
182
|
|
183 EnumValue
|
131
|
184 Enum(nds32_arch_type) String(v3j) Value(ARCH_V3J)
|
|
185
|
|
186 EnumValue
|
111
|
187 Enum(nds32_arch_type) String(v3m) Value(ARCH_V3M)
|
|
188
|
131
|
189 EnumValue
|
|
190 Enum(nds32_arch_type) String(v3f) Value(ARCH_V3F)
|
|
191
|
|
192 EnumValue
|
|
193 Enum(nds32_arch_type) String(v3s) Value(ARCH_V3S)
|
|
194
|
|
195 mcpu=
|
|
196 Target RejectNegative Joined Enum(nds32_cpu_type) Var(nds32_cpu_option) Init(CPU_N9)
|
|
197 Specify the cpu for pipeline model.
|
111
|
198
|
|
199 Enum
|
131
|
200 Name(nds32_cpu_type) Type(enum nds32_cpu_type)
|
|
201 Known cpu types (for use with the -mcpu= option):
|
|
202
|
|
203 EnumValue
|
|
204 Enum(nds32_cpu_type) String(n6) Value(CPU_N6)
|
|
205
|
|
206 EnumValue
|
|
207 Enum(nds32_cpu_type) String(n650) Value(CPU_N6)
|
|
208
|
|
209 EnumValue
|
|
210 Enum(nds32_cpu_type) String(n7) Value(CPU_N7)
|
|
211
|
|
212 EnumValue
|
|
213 Enum(nds32_cpu_type) String(n705) Value(CPU_N7)
|
|
214
|
|
215 EnumValue
|
|
216 Enum(nds32_cpu_type) String(n8) Value(CPU_N8)
|
|
217
|
|
218 EnumValue
|
|
219 Enum(nds32_cpu_type) String(n801) Value(CPU_N8)
|
|
220
|
|
221 EnumValue
|
|
222 Enum(nds32_cpu_type) String(sn8) Value(CPU_N8)
|
|
223
|
|
224 EnumValue
|
|
225 Enum(nds32_cpu_type) String(sn801) Value(CPU_N8)
|
|
226
|
|
227 EnumValue
|
|
228 Enum(nds32_cpu_type) String(s8) Value(CPU_N8)
|
|
229
|
|
230 EnumValue
|
|
231 Enum(nds32_cpu_type) String(s801) Value(CPU_N8)
|
|
232
|
|
233 EnumValue
|
|
234 Enum(nds32_cpu_type) String(e8) Value(CPU_E8)
|
|
235
|
|
236 EnumValue
|
|
237 Enum(nds32_cpu_type) String(e801) Value(CPU_E8)
|
|
238
|
|
239 EnumValue
|
|
240 Enum(nds32_cpu_type) String(n820) Value(CPU_E8)
|
|
241
|
|
242 EnumValue
|
|
243 Enum(nds32_cpu_type) String(s830) Value(CPU_E8)
|
|
244
|
|
245 EnumValue
|
|
246 Enum(nds32_cpu_type) String(e830) Value(CPU_E8)
|
|
247
|
|
248 EnumValue
|
|
249 Enum(nds32_cpu_type) String(n9) Value(CPU_N9)
|
|
250
|
|
251 EnumValue
|
|
252 Enum(nds32_cpu_type) String(n903) Value(CPU_N9)
|
|
253
|
|
254 EnumValue
|
|
255 Enum(nds32_cpu_type) String(n903a) Value(CPU_N9)
|
|
256
|
|
257 EnumValue
|
|
258 Enum(nds32_cpu_type) String(n968) Value(CPU_N9)
|
|
259
|
|
260 EnumValue
|
|
261 Enum(nds32_cpu_type) String(n968a) Value(CPU_N9)
|
|
262
|
|
263 EnumValue
|
|
264 Enum(nds32_cpu_type) String(n10) Value(CPU_N10)
|
|
265
|
|
266 EnumValue
|
|
267 Enum(nds32_cpu_type) String(n1033) Value(CPU_N10)
|
|
268
|
|
269 EnumValue
|
|
270 Enum(nds32_cpu_type) String(n1033a) Value(CPU_N10)
|
|
271
|
|
272 EnumValue
|
|
273 Enum(nds32_cpu_type) String(n1033-fpu) Value(CPU_N10)
|
|
274
|
|
275 EnumValue
|
|
276 Enum(nds32_cpu_type) String(n1033-spu) Value(CPU_N10)
|
|
277
|
|
278 EnumValue
|
|
279 Enum(nds32_cpu_type) String(n1068) Value(CPU_N10)
|
|
280
|
|
281 EnumValue
|
|
282 Enum(nds32_cpu_type) String(n1068a) Value(CPU_N10)
|
|
283
|
|
284 EnumValue
|
|
285 Enum(nds32_cpu_type) String(n1068-fpu) Value(CPU_N10)
|
|
286
|
|
287 EnumValue
|
|
288 Enum(nds32_cpu_type) String(n1068a-fpu) Value(CPU_N10)
|
|
289
|
|
290 EnumValue
|
|
291 Enum(nds32_cpu_type) String(n1068-spu) Value(CPU_N10)
|
|
292
|
|
293 EnumValue
|
|
294 Enum(nds32_cpu_type) String(n1068a-spu) Value(CPU_N10)
|
|
295
|
|
296 EnumValue
|
|
297 Enum(nds32_cpu_type) String(d10) Value(CPU_N10)
|
|
298
|
|
299 EnumValue
|
|
300 Enum(nds32_cpu_type) String(d1088) Value(CPU_N10)
|
|
301
|
|
302 EnumValue
|
|
303 Enum(nds32_cpu_type) String(d1088-fpu) Value(CPU_N10)
|
|
304
|
|
305 EnumValue
|
|
306 Enum(nds32_cpu_type) String(d1088-spu) Value(CPU_N10)
|
111
|
307
|
|
308 EnumValue
|
131
|
309 Enum(nds32_cpu_type) Undocumented String(graywolf) Value(CPU_GRAYWOLF)
|
|
310
|
|
311 EnumValue
|
|
312 Enum(nds32_cpu_type) String(n15) Value(CPU_GRAYWOLF)
|
|
313
|
|
314 EnumValue
|
|
315 Enum(nds32_cpu_type) String(d15) Value(CPU_GRAYWOLF)
|
|
316
|
|
317 EnumValue
|
|
318 Enum(nds32_cpu_type) String(n15s) Value(CPU_GRAYWOLF)
|
|
319
|
|
320 EnumValue
|
|
321 Enum(nds32_cpu_type) String(d15s) Value(CPU_GRAYWOLF)
|
|
322
|
|
323 EnumValue
|
|
324 Enum(nds32_cpu_type) String(n15f) Value(CPU_GRAYWOLF)
|
|
325
|
|
326 EnumValue
|
|
327 Enum(nds32_cpu_type) String(d15f) Value(CPU_GRAYWOLF)
|
|
328
|
|
329 EnumValue
|
|
330 Enum(nds32_cpu_type) String(n12) Value(CPU_N12)
|
|
331
|
|
332 EnumValue
|
|
333 Enum(nds32_cpu_type) String(n1213) Value(CPU_N12)
|
|
334
|
|
335 EnumValue
|
|
336 Enum(nds32_cpu_type) String(n1233) Value(CPU_N12)
|
|
337
|
|
338 EnumValue
|
|
339 Enum(nds32_cpu_type) String(n1233-fpu) Value(CPU_N12)
|
|
340
|
|
341 EnumValue
|
|
342 Enum(nds32_cpu_type) String(n1233-spu) Value(CPU_N12)
|
|
343
|
|
344 EnumValue
|
|
345 Enum(nds32_cpu_type) String(n13) Value(CPU_N13)
|
|
346
|
|
347 EnumValue
|
|
348 Enum(nds32_cpu_type) String(n1337) Value(CPU_N13)
|
|
349
|
|
350 EnumValue
|
|
351 Enum(nds32_cpu_type) String(n1337-fpu) Value(CPU_N13)
|
|
352
|
|
353 EnumValue
|
|
354 Enum(nds32_cpu_type) String(n1337-spu) Value(CPU_N13)
|
111
|
355
|
|
356 EnumValue
|
131
|
357 Enum(nds32_cpu_type) String(simple) Value(CPU_SIMPLE)
|
|
358
|
|
359 mconfig-fpu=
|
|
360 Target RejectNegative Joined Enum(float_reg_number) Var(nds32_fp_regnum) Init(TARGET_CONFIG_FPU_DEFAULT)
|
|
361 Specify a fpu configuration value from 0 to 7; 0-3 is as FPU spec says, and 4-7 is corresponding to 0-3.
|
|
362
|
|
363 Enum
|
|
364 Name(float_reg_number) Type(enum float_reg_number)
|
|
365 Known floating-point number of registers (for use with the -mconfig-fpu= option):
|
|
366
|
|
367 EnumValue
|
|
368 Enum(float_reg_number) String(0) Value(NDS32_CONFIG_FPU_0)
|
|
369
|
|
370 EnumValue
|
|
371 Enum(float_reg_number) String(1) Value(NDS32_CONFIG_FPU_1)
|
|
372
|
|
373 EnumValue
|
|
374 Enum(float_reg_number) String(2) Value(NDS32_CONFIG_FPU_2)
|
|
375
|
|
376 EnumValue
|
|
377 Enum(float_reg_number) String(3) Value(NDS32_CONFIG_FPU_3)
|
|
378
|
|
379 EnumValue
|
|
380 Enum(float_reg_number) String(4) Value(NDS32_CONFIG_FPU_4)
|
|
381
|
|
382 EnumValue
|
|
383 Enum(float_reg_number) String(5) Value(NDS32_CONFIG_FPU_5)
|
|
384
|
|
385 EnumValue
|
|
386 Enum(float_reg_number) String(6) Value(NDS32_CONFIG_FPU_6)
|
111
|
387
|
|
388 EnumValue
|
131
|
389 Enum(float_reg_number) String(7) Value(NDS32_CONFIG_FPU_7)
|
|
390
|
|
391 mconfig-mul=
|
|
392 Target RejectNegative Joined Enum(nds32_mul_type) Var(nds32_mul_config) Init(MUL_TYPE_FAST_1)
|
|
393 Specify configuration of instruction mul: fast1, fast2 or slow. The default is fast1.
|
|
394
|
|
395 Enum
|
|
396 Name(nds32_mul_type) Type(enum nds32_mul_type)
|
|
397
|
|
398 EnumValue
|
|
399 Enum(nds32_mul_type) String(fast) Value(MUL_TYPE_FAST_1)
|
|
400
|
|
401 EnumValue
|
|
402 Enum(nds32_mul_type) String(fast1) Value(MUL_TYPE_FAST_1)
|
|
403
|
|
404 EnumValue
|
|
405 Enum(nds32_mul_type) String(fast2) Value(MUL_TYPE_FAST_2)
|
|
406
|
|
407 EnumValue
|
|
408 Enum(nds32_mul_type) String(slow) Value(MUL_TYPE_SLOW)
|
|
409
|
|
410 mconfig-register-ports=
|
|
411 Target RejectNegative Joined Enum(nds32_register_ports) Var(nds32_register_ports_config) Init(REG_PORT_3R2W)
|
|
412 Specify how many read/write ports for n9/n10 cores. The value should be 3r2w or 2r1w.
|
|
413
|
|
414 Enum
|
|
415 Name(nds32_register_ports) Type(enum nds32_register_ports)
|
|
416
|
|
417 EnumValue
|
|
418 Enum(nds32_register_ports) String(3r2w) Value(REG_PORT_3R2W)
|
|
419
|
|
420 EnumValue
|
|
421 Enum(nds32_register_ports) String(2r1w) Value(REG_PORT_2R1W)
|
111
|
422
|
|
423 mctor-dtor
|
|
424 Target Report
|
|
425 Enable constructor/destructor feature.
|
|
426
|
|
427 mrelax
|
|
428 Target Report
|
|
429 Guide linker to relax instructions.
|
131
|
430
|
|
431 mext-fpu-fma
|
|
432 Target Report Mask(EXT_FPU_FMA)
|
|
433 Generate floating-point multiply-accumulation instructions.
|
|
434
|
|
435 mext-fpu-sp
|
|
436 Target Report Mask(FPU_SINGLE)
|
|
437 Generate single-precision floating-point instructions.
|
|
438
|
|
439 mext-fpu-dp
|
|
440 Target Report Mask(FPU_DOUBLE)
|
|
441 Generate double-precision floating-point instructions.
|
|
442
|
|
443 mforce-no-ext-dsp
|
|
444 Target Undocumented Report Mask(FORCE_NO_EXT_DSP)
|
|
445 Force disable hardware loop, even use -mext-dsp.
|
|
446
|
|
447 msched-prolog-epilog
|
|
448 Target Var(flag_sched_prolog_epilog) Init(0)
|
|
449 Permit scheduling of a function's prologue and epilogue sequence.
|
|
450
|
|
451 mret-in-naked-func
|
|
452 Target Var(flag_ret_in_naked_func) Init(1)
|
|
453 Generate return instruction in naked function.
|
|
454
|
|
455 malways-save-lp
|
|
456 Target Var(flag_always_save_lp) Init(0)
|
|
457 Always save $lp in the stack.
|
|
458
|
|
459 munaligned-access
|
|
460 Target Report Var(flag_unaligned_access) Init(0)
|
|
461 Enable unaligned word and halfword accesses to packed data.
|
|
462
|
|
463 minline-asm-r15
|
|
464 Target Report Var(flag_inline_asm_r15) Init(0)
|
|
465 Allow use r15 for inline ASM.
|