nds32.opt revision 1.4
1; Options of Andes NDS32 cpu for GNU compiler
2; Copyright (C) 2012-2018 Free Software Foundation, Inc.
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
21HeaderInclude
22config/nds32/nds32-opts.h
23
24; ---------------------------------------------------------------
25; The following options are designed for aliasing and compatibility options.
26
27EB
28Target RejectNegative Alias(mbig-endian)
29Generate code in big-endian mode.
30
31EL
32Target RejectNegative Alias(mlittle-endian)
33Generate code in little-endian mode.
34
35
36; ---------------------------------------------------------------
37
38mabi=
39Target RejectNegative Joined Enum(abi_type) Var(nds32_abi) Init(TARGET_DEFAULT_ABI)
40Specify which ABI type to generate code for: 2, 2fp+.
41
42Enum
43Name(abi_type) Type(enum abi_type)
44Known ABIs (for use with the -mabi= option):
45
46EnumValue
47Enum(abi_type) String(2) Value(NDS32_ABI_V2)
48
49EnumValue
50Enum(abi_type) String(2fp+) Value(NDS32_ABI_V2_FP_PLUS)
51
52mfloat-abi=soft
53Target RejectNegative Alias(mabi=, 2)
54Specify use soft floating point ABI which mean alias to -mabi=2.
55
56mfloat-abi=hard
57Target RejectNegative Alias(mabi=, 2fp+)
58Specify use soft floating point ABI which mean alias to -mabi=2fp+.
59
60; ---------------------------------------------------------------
61
62mreduced-regs
63Target Report RejectNegative Negative(mfull-regs) Mask(REDUCED_REGS)
64Use reduced-set registers for register allocation.
65
66mfull-regs
67Target Report RejectNegative Negative(mreduced-regs) InverseMask(REDUCED_REGS)
68Use full-set registers for register allocation.
69
70; ---------------------------------------------------------------
71
72malways-align
73Target Mask(ALWAYS_ALIGN)
74Always align function entry, jump target and return address.
75
76malign-functions
77Target Mask(ALIGN_FUNCTION)
78Align function entry to 4 byte.
79
80mbig-endian
81Target Undocumented RejectNegative Negative(mlittle-endian) Mask(BIG_ENDIAN)
82Generate code in big-endian mode.
83
84mlittle-endian
85Target Undocumented RejectNegative Negative(mbig-endian) InverseMask(BIG_ENDIAN)
86Generate code in little-endian mode.
87
88
89mcmov
90Target Report Mask(CMOV)
91Generate conditional move instructions.
92
93mext-perf
94Target Report Mask(EXT_PERF)
95Generate performance extension instructions.
96
97mext-perf2
98Target Report Mask(EXT_PERF2)
99Generate performance extension version 2 instructions.
100
101mext-string
102Target Report Mask(EXT_STRING)
103Generate string extension instructions.
104
105mv3push
106Target Report Mask(V3PUSH)
107Generate v3 push25/pop25 instructions.
108
109m16-bit
110Target Report Mask(16_BIT)
111Generate 16-bit instructions.
112
113mrelax-hint
114Target Report Mask(RELAX_HINT)
115Insert relax hint for linker to do relaxation.
116
117mvh
118Target Report Mask(VH)
119Enable Virtual Hosting support.
120
121misr-vector-size=
122Target RejectNegative Joined UInteger Var(nds32_isr_vector_size) Init(NDS32_DEFAULT_ISR_VECTOR_SIZE)
123Specify the size of each interrupt vector, which must be 4 or 16.
124
125mcache-block-size=
126Target RejectNegative Joined UInteger Var(nds32_cache_block_size) Init(NDS32_DEFAULT_CACHE_BLOCK_SIZE)
127Specify the size of each cache block, which must be a power of 2 between 4 and 512.
128
129march=
130Target RejectNegative Joined Enum(nds32_arch_type) Var(nds32_arch_option) Init(ARCH_V3)
131Specify the name of the target architecture.
132
133Enum
134Name(nds32_arch_type) Type(enum nds32_arch_type)
135Known arch types (for use with the -march= option):
136
137EnumValue
138Enum(nds32_arch_type) String(v2) Value(ARCH_V2)
139
140EnumValue
141Enum(nds32_arch_type) String(v3) Value(ARCH_V3)
142
143EnumValue
144Enum(nds32_arch_type) String(v3m) Value(ARCH_V3M)
145
146EnumValue
147Enum(nds32_arch_type) String(v3f) Value(ARCH_V3F)
148
149EnumValue
150Enum(nds32_arch_type) String(v3s) Value(ARCH_V3S)
151
152mcmodel=
153Target RejectNegative Joined Enum(nds32_cmodel_type) Var(nds32_cmodel_option) Init(CMODEL_LARGE)
154Specify the address generation strategy for code model.
155
156Enum
157Name(nds32_cmodel_type) Type(enum nds32_cmodel_type)
158Known cmodel types (for use with the -mcmodel= option):
159
160EnumValue
161Enum(nds32_cmodel_type) String(small) Value(CMODEL_SMALL)
162
163EnumValue
164Enum(nds32_cmodel_type) String(medium) Value(CMODEL_MEDIUM)
165
166EnumValue
167Enum(nds32_cmodel_type) String(large) Value(CMODEL_LARGE)
168
169mcpu=
170Target RejectNegative Joined Enum(nds32_cpu_type) Var(nds32_cpu_option) Init(CPU_N9)
171Specify the cpu for pipeline model.
172
173Enum
174Name(nds32_cpu_type) Type(enum nds32_cpu_type)
175Known cpu types (for use with the -mcpu= option):
176
177EnumValue
178Enum(nds32_cpu_type) String(n6) Value(CPU_N6)
179
180EnumValue
181Enum(nds32_cpu_type) String(n650) Value(CPU_N6)
182
183EnumValue
184Enum(nds32_cpu_type) String(n7) Value(CPU_N7)
185
186EnumValue
187Enum(nds32_cpu_type) String(n705) Value(CPU_N7)
188
189EnumValue
190Enum(nds32_cpu_type) String(n8) Value(CPU_N8)
191
192EnumValue
193Enum(nds32_cpu_type) String(n801) Value(CPU_N8)
194
195EnumValue
196Enum(nds32_cpu_type) String(sn8) Value(CPU_N8)
197
198EnumValue
199Enum(nds32_cpu_type) String(sn801) Value(CPU_N8)
200
201EnumValue
202Enum(nds32_cpu_type) String(s8) Value(CPU_N8)
203
204EnumValue
205Enum(nds32_cpu_type) String(s801) Value(CPU_N8)
206
207EnumValue
208Enum(nds32_cpu_type) String(e8) Value(CPU_E8)
209
210EnumValue
211Enum(nds32_cpu_type) String(e801) Value(CPU_E8)
212
213EnumValue
214Enum(nds32_cpu_type) String(n820) Value(CPU_E8)
215
216EnumValue
217Enum(nds32_cpu_type) String(s830) Value(CPU_E8)
218
219EnumValue
220Enum(nds32_cpu_type) String(e830) Value(CPU_E8)
221
222EnumValue
223Enum(nds32_cpu_type) String(n9) Value(CPU_N9)
224
225EnumValue
226Enum(nds32_cpu_type) String(n903) Value(CPU_N9)
227
228EnumValue
229Enum(nds32_cpu_type) String(n903a) Value(CPU_N9)
230
231EnumValue
232Enum(nds32_cpu_type) String(n968) Value(CPU_N9)
233
234EnumValue
235Enum(nds32_cpu_type) String(n968a) Value(CPU_N9)
236
237EnumValue
238Enum(nds32_cpu_type) String(simple) Value(CPU_SIMPLE)
239
240mconfig-fpu=
241Target RejectNegative Joined Enum(float_reg_number) Var(nds32_fp_regnum) Init(TARGET_CONFIG_FPU_DEFAULT)
242Specify a fpu configuration value from 0 to 7; 0-3 is as FPU spec says, and 4-7 is corresponding to 0-3.
243
244Enum
245Name(float_reg_number) Type(enum float_reg_number)
246Known floating-point number of registers (for use with the -mconfig-fpu= option):
247
248EnumValue
249Enum(float_reg_number) String(0) Value(NDS32_CONFIG_FPU_0)
250
251EnumValue
252Enum(float_reg_number) String(1) Value(NDS32_CONFIG_FPU_1)
253
254EnumValue
255Enum(float_reg_number) String(2) Value(NDS32_CONFIG_FPU_2)
256
257EnumValue
258Enum(float_reg_number) String(3) Value(NDS32_CONFIG_FPU_3)
259
260EnumValue
261Enum(float_reg_number) String(4) Value(NDS32_CONFIG_FPU_4)
262
263EnumValue
264Enum(float_reg_number) String(5) Value(NDS32_CONFIG_FPU_5)
265
266EnumValue
267Enum(float_reg_number) String(6) Value(NDS32_CONFIG_FPU_6)
268
269EnumValue
270Enum(float_reg_number) String(7) Value(NDS32_CONFIG_FPU_7)
271
272mconfig-mul=
273Target RejectNegative Joined Enum(nds32_mul_type) Var(nds32_mul_config) Init(MUL_TYPE_FAST_1)
274Specify configuration of instruction mul: fast1, fast2 or slow. The default is fast1.
275
276Enum
277Name(nds32_mul_type) Type(enum nds32_mul_type)
278
279EnumValue
280Enum(nds32_mul_type) String(fast) Value(MUL_TYPE_FAST_1)
281
282EnumValue
283Enum(nds32_mul_type) String(fast1) Value(MUL_TYPE_FAST_1)
284
285EnumValue
286Enum(nds32_mul_type) String(fast2) Value(MUL_TYPE_FAST_2)
287
288EnumValue
289Enum(nds32_mul_type) String(slow) Value(MUL_TYPE_SLOW)
290
291mconfig-register-ports=
292Target RejectNegative Joined Enum(nds32_register_ports) Var(nds32_register_ports_config) Init(REG_PORT_3R2W)
293Specify how many read/write ports for n9/n10 cores.  The value should be 3r2w or 2r1w.
294
295Enum
296Name(nds32_register_ports) Type(enum nds32_register_ports)
297
298EnumValue
299Enum(nds32_register_ports) String(3r2w) Value(REG_PORT_3R2W)
300
301EnumValue
302Enum(nds32_register_ports) String(2r1w) Value(REG_PORT_2R1W)
303
304mctor-dtor
305Target Report
306Enable constructor/destructor feature.
307
308mrelax
309Target Report
310Guide linker to relax instructions.
311
312mext-fpu-fma
313Target Report Mask(EXT_FPU_FMA)
314Generate floating-point multiply-accumulation instructions.
315
316mext-fpu-sp
317Target Report Mask(FPU_SINGLE)
318Generate single-precision floating-point instructions.
319
320mext-fpu-dp
321Target Report Mask(FPU_DOUBLE)
322Generate double-precision floating-point instructions.
323
324malways-save-lp
325Target Var(flag_always_save_lp) Init(0)
326Always save $lp in the stack.
327
328munaligned-access
329Target Report Var(flag_unaligned_access) Init(0)
330Enable unaligned word and halfword accesses to packed data.
331