]>
Commit | Line | Data |
---|---|---|
9304f876 | 1 | ; Options of Andes NDS32 cpu for GNU compiler |
8d9254fc | 2 | ; Copyright (C) 2012-2020 Free Software Foundation, Inc. |
9304f876 CJW |
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 | ||
aa4b851c CJW |
24 | ; --------------------------------------------------------------- |
25 | ; The following options are designed for aliasing and compatibility options. | |
26 | ||
27 | EB | |
28 | Target RejectNegative Alias(mbig-endian) | |
9304f876 CJW |
29 | Generate code in big-endian mode. |
30 | ||
aa4b851c CJW |
31 | EL |
32 | Target RejectNegative Alias(mlittle-endian) | |
9304f876 CJW |
33 | Generate code in little-endian mode. |
34 | ||
2140297c CJW |
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. | |
e2286268 MC |
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 | ||
aa4b851c CJW |
67 | ; --------------------------------------------------------------- |
68 | ||
9304f876 CJW |
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 | ||
aa4b851c CJW |
77 | ; --------------------------------------------------------------- |
78 | ||
43fa41c1 CJW |
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 | ||
aa4b851c CJW |
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 | ||
2140297c CJW |
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 | ||
85a98076 KLC |
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) | |
aa4b851c | 116 | |
9304f876 CJW |
117 | mcmov |
118 | Target Report Mask(CMOV) | |
119 | Generate conditional move instructions. | |
120 | ||
7c32ef41 MC |
121 | mhw-abs |
122 | Target Report Mask(HW_ABS) | |
123 | Generate hardware abs instructions. | |
124 | ||
aa4b851c CJW |
125 | mext-perf |
126 | Target Report Mask(EXT_PERF) | |
9304f876 CJW |
127 | Generate performance extension instructions. |
128 | ||
aa4b851c CJW |
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 | ||
7c32ef41 MC |
137 | mext-dsp |
138 | Target Report Mask(EXT_DSP) | |
139 | Generate DSP extension instructions. | |
140 | ||
9304f876 CJW |
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 | ||
c4d8d050 CJW |
149 | mrelax-hint |
150 | Target Report Mask(RELAX_HINT) | |
151 | Insert relax hint for linker to do relaxation. | |
152 | ||
ff77f6e8 | 153 | mvh |
cf3cd43d | 154 | Target Report Mask(VH) Condition(!TARGET_LINUX_ABI) |
ff77f6e8 KC |
155 | Enable Virtual Hosting support. |
156 | ||
9304f876 CJW |
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 | ||
a4931745 CJW |
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 | ||
9304f876 CJW |
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) | |
667a055a | 175 | Known arch types (for use with the -march= option): |
9304f876 CJW |
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 | ||
37d8f611 CJW |
183 | EnumValue |
184 | Enum(nds32_arch_type) String(v3j) Value(ARCH_V3J) | |
185 | ||
9304f876 CJW |
186 | EnumValue |
187 | Enum(nds32_arch_type) String(v3m) Value(ARCH_V3M) | |
188 | ||
e2286268 MC |
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 | ||
7f3101c0 KC |
195 | mcpu= |
196 | Target RejectNegative Joined Enum(nds32_cpu_type) Var(nds32_cpu_option) Init(CPU_N9) | |
197 | Specify the cpu for pipeline model. | |
198 | ||
199 | Enum | |
200 | Name(nds32_cpu_type) Type(enum nds32_cpu_type) | |
201 | Known cpu types (for use with the -mcpu= option): | |
202 | ||
8fd52141 KC |
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 | ||
63ab910d KC |
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 | ||
8fd52141 KC |
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 | ||
7c1583bd KC |
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 | ||
7f3101c0 KC |
248 | EnumValue |
249 | Enum(nds32_cpu_type) String(n9) Value(CPU_N9) | |
250 | ||
b99353a2 KC |
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 | ||
2f2ebf95 KC |
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) | |
307 | ||
628332f8 KC |
308 | EnumValue |
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 | ||
96b07b10 KC |
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) | |
355 | ||
b99353a2 KC |
356 | EnumValue |
357 | Enum(nds32_cpu_type) String(simple) Value(CPU_SIMPLE) | |
358 | ||
e2286268 MC |
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) | |
387 | ||
388 | EnumValue | |
389 | Enum(float_reg_number) String(7) Value(NDS32_CONFIG_FPU_7) | |
390 | ||
b99353a2 KC |
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) | |
422 | ||
9304f876 CJW |
423 | mctor-dtor |
424 | Target Report | |
425 | Enable constructor/destructor feature. | |
426 | ||
427 | mrelax | |
428 | Target Report | |
429 | Guide linker to relax instructions. | |
e2286268 MC |
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. | |
bc8a8810 | 442 | |
7c32ef41 MC |
443 | mforce-no-ext-dsp |
444 | Target Undocumented Report Mask(FORCE_NO_EXT_DSP) | |
445 | Force disable hardware loop, even use -mext-dsp. | |
446 | ||
d057a470 CJW |
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 | ||
54c537e6 CJW |
451 | mret-in-naked-func |
452 | Target Var(flag_ret_in_naked_func) Init(1) | |
453 | Generate return instruction in naked function. | |
454 | ||
13116651 CJW |
455 | malways-save-lp |
456 | Target Var(flag_always_save_lp) Init(0) | |
457 | Always save $lp in the stack. | |
458 | ||
bc8a8810 MC |
459 | munaligned-access |
460 | Target Report Var(flag_unaligned_access) Init(0) | |
461 | Enable unaligned word and halfword accesses to packed data. | |
b28c01ab CJW |
462 | |
463 | minline-asm-r15 | |
464 | Target Report Var(flag_inline_asm_r15) Init(0) | |
465 | Allow use r15 for inline ASM. |