1;; Command-line options for the C-SKY back end.
2;; Copyright (C) 2018-2020 Free Software Foundation, Inc.
3;; Contributed by C-SKY Microsystems and Mentor Graphics.
4;;
5;; This file is part of GCC.
6;;
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
10;; version.
11;;
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
15;; 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
22HeaderInclude
23config/csky/csky_opts.h
24
25;; Architecture/CPU options.
26;; Normal CPU and arch enums are loaded from csky_tables.opt.
27
28; For backward compatibility only.
29march=ck803s
30Target Report Var(flag_arch_ck803s) Undocumented
31
32march=
33Target RejectNegative ToLower Joined Enum(csky_arch) Var(csky_arch_option) Save
34Specify the target architecture.
35
36mcpu=
37Target RejectNegative ToLower Joined Enum(csky_processor_type) Var(csky_cpu_option) Init(TARGET_CPU_csky_none) Save
38Specify the target processor.
39
40;; Endianness options.
41
42mbig-endian
43Target RejectNegative Report Mask(BIG_ENDIAN)
44Generate big-endian code.
45
46EB
47Target RejectNegative Report Alias(mbig-endian) Undocumented
48
49mlittle-endian
50Target RejectNegative Report InverseMask(BIG_ENDIAN)
51Generate little-endian code.
52
53EL
54Target RejectNegative Report Alias(mlittle-endian) Undocumented
55
56;; Floating point options.  These affect code generation but not
57;; assembly.
58
59mhard-float
60Target Report RejectNegative Mask(HARD_FLOAT)
61Enable hardware floating-point instructions.
62
63msoft-float
64Target Report RejectNegative InverseMask(HARD_FLOAT)
65Use library calls to perform floating-point operations (default).
66
67mfpu=
68Target RejectNegative Joined Enum(csky_fpu) Var(csky_fpu_index) Init(TARGET_FPU_auto) Save
69Specify the target floating-point hardware/format.
70
71mdouble-float
72Target Report Var(TARGET_DOUBLE_FLOAT) Init(-1)
73Generate C-SKY FPU double float instructions (default for hard float).
74
75mfdivdu
76Target Report Var(TARGET_FDIVDU) Init(-1)
77Generate frecipd/fsqrtd/fdivd instructions (default for hard float).
78
79;; Instruction set extensions.  Most of these don't affect code
80;; generation, and are passed through to the assembler.
81;; There are builtin preprocessor defines for each of these.
82
83melrw
84Target Report Var(TARGET_ELRW) Init(-1)
85Enable the extended LRW instruction (default for CK801).
86
87mistack
88Target Report Mask(ISTACK)
89Enable interrupt stack instructions.
90
91mmp
92Target Report RejectNegative Mask(MP)
93Enable multiprocessor instructions.
94
95mcp
96Target Report RejectNegative Mask(CP)
97Enable coprocessor instructions.
98
99mcache
100Target Report RejectNegative Mask(CACHE)
101Enable cache prefetch instructions.
102
103msecurity
104Target Report RejectNegative Mask(SECURITY)
105Enable C-SKY SECURE instructions.
106
107mmac
108Target Report RejectNegative Alias(msecurity) Undocumented
109
110mtrust
111Target Report RejectNegative Mask(TRUST)
112Enable C-SKY TRUST instructions.
113
114mdsp
115Target Report RejectNegative Var(TARGET_DSP)
116Enable C-SKY DSP instructions.
117
118medsp
119Target Report RejectNegative Mask(EDSP)
120Enable C-SKY Enhanced DSP instructions.
121
122mvdsp
123Target Report RejectNegative Mask(VDSP)
124Enable C-SKY Vector DSP instructions.
125
126;; Code generation options not passed to the assembler.
127
128mdiv
129Target Report Var(TARGET_DIV) Init(-1)
130Generate divide instructions.
131
132msmart
133Target Report Var(TARGET_MINI_REGISTERS) Init(-1)
134Generate code for Smart Mode.
135
136mhigh-registers
137Target Report Var(TARGET_HIGH_REGISTERS) Init(-1)
138Enable use of R16-R31 (default).
139
140manchor
141Target Report Var(TARGET_ANCHOR)
142Generate code using global anchor symbol addresses.
143
144mpushpop
145Target Report Var(TARGET_PUSHPOP) Init(1)
146Generate push/pop instructions (default).
147
148mmultiple-stld
149Target Report Var(TARGET_MULTIPLE_STLD) Init(-1)
150Generate stm/ldm instructions (default).
151
152mstm
153Target Report Alias(mmultiple-stld) Undocumented
154
155mconstpool
156Target Report Var(TARGET_CONSTANT_POOL) Init(-1)
157Generate constant pools in the compiler instead of assembler.
158
159mstack-size
160Target Report Var(TARGET_STACK_SIZE) Init(0)
161Emit .stack_size directives.
162
163mccrt
164Target Report Var(TARGET_LIBCCRT) Init(0)
165Generate code for C-SKY compiler runtime instead of libgcc.
166
167mbranch-cost=
168Target Report Joined RejectNegative UInteger Var(csky_branch_cost) Init(1)
169Set the branch costs to roughly the specified number of instructions.
170
171msched-prolog
172Target Report Var(flag_sched_prolog) Init(0)
173Permit scheduling of function prologue and epilogue sequences.
174