1 ;; Command-line options for the C-SKY back end.
2 ;; Copyright (C) 2018-2024 Free Software Foundation, Inc.
3 ;; Contributed by C-SKY Microsystems and Mentor Graphics.
5 ;; This file is part of GCC.
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
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
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/>.
23 config/csky/csky_opts.h
25 ;; Architecture/CPU options.
26 ;; Normal CPU and arch enums are loaded from csky_tables.opt.
28 ; For backward compatibility only.
30 Target Var(flag_arch_ck803s) Undocumented
33 Target RejectNegative ToLower Joined Enum(csky_arch) Var(csky_arch_option) Save
34 Specify the target architecture.
37 Target RejectNegative ToLower Joined Enum(csky_processor_type) Var(csky_cpu_option) Init(TARGET_CPU_csky_none) Save
38 Specify the target processor.
40 ;; Endianness options.
43 Target RejectNegative Mask(BIG_ENDIAN)
44 Generate big-endian code.
47 Target RejectNegative Alias(mbig-endian) Undocumented
50 Target RejectNegative InverseMask(BIG_ENDIAN)
51 Generate little-endian code.
54 Target RejectNegative Alias(mlittle-endian) Undocumented
56 ;; Floating point options. These affect code generation but not
60 Target RejectNegative Alias(mfloat-abi=, hard) Undocumented
63 Target RejectNegative Alias(mfloat-abi=, soft) Undocumented
66 Target RejectNegative Alias(mfloat-abi=, hard) Undocumented
69 Target RejectNegative Alias(mfloat-abi=, softfp) Undocumented
72 Target RejectNegative Joined Enum(float_abi_type) Var(csky_float_abi) Init(CSKY_FLOAT_ABI_SOFT)
73 Specify if floating point hardware should be used.
76 Name(float_abi_type) Type(enum float_abi_type)
77 Known floating-point ABIs (for use with the -mfloat-abi= option):
80 Enum(float_abi_type) String(soft) Value(CSKY_FLOAT_ABI_SOFT)
83 Enum(float_abi_type) String(softfp) Value(CSKY_FLOAT_ABI_SOFTFP)
86 Enum(float_abi_type) String(hard) Value(CSKY_FLOAT_ABI_HARD)
89 Target RejectNegative Joined Enum(csky_fpu) Var(csky_fpu_index) Init(TARGET_FPU_auto) Save
90 Specify the target floating-point hardware/format.
93 Target Var(TARGET_DOUBLE_FLOAT) Init(-1)
94 Generate C-SKY FPU double float instructions (default for hard float).
97 Target Var(TARGET_FDIVDU) Init(-1)
98 Generate frecipd/fsqrtd/fdivd instructions (default for hard float).
100 ;; Instruction set extensions. Most of these don't affect code
101 ;; generation, and are passed through to the assembler.
102 ;; There are builtin preprocessor defines for each of these.
105 Target Var(TARGET_ELRW) Init(-1)
106 Enable the extended LRW instruction (default for CK801).
110 Enable interrupt stack instructions.
113 Target RejectNegative Mask(MP)
114 Enable multiprocessor instructions.
117 Target RejectNegative Mask(CP)
118 Enable coprocessor instructions.
121 Target RejectNegative Mask(CACHE)
122 Enable cache prefetch instructions.
125 Target RejectNegative Mask(SECURITY)
126 Enable C-SKY SECURE instructions.
129 Target RejectNegative Alias(msecurity) Undocumented
132 Target RejectNegative Mask(TRUST)
133 Enable C-SKY TRUST instructions.
136 Target RejectNegative Var(TARGET_DSP)
137 Enable C-SKY DSP instructions.
140 Target RejectNegative Mask(EDSP)
141 Enable C-SKY Enhanced DSP instructions.
144 Target RejectNegative Mask(VDSP)
145 Enable C-SKY Vector DSP instructions.
147 ;; Code generation options not passed to the assembler.
150 Target Var(TARGET_DIV) Init(-1)
151 Generate divide instructions.
154 Target Var(TARGET_MINI_REGISTERS) Init(-1)
155 Generate code for Smart Mode.
158 Target Var(TARGET_HIGH_REGISTERS) Init(-1)
159 Enable use of R16-R31 (default).
162 Target Var(TARGET_ANCHOR)
163 Generate code using global anchor symbol addresses.
166 Target Var(TARGET_PUSHPOP) Init(1)
167 Generate push/pop instructions (default).
170 Target Var(TARGET_MULTIPLE_STLD) Init(-1)
171 Generate stm/ldm instructions (default).
174 Target Alias(mmultiple-stld) Undocumented
177 Target Var(TARGET_CONSTANT_POOL) Init(-1)
178 Generate constant pools in the compiler instead of assembler.
181 Target Var(TARGET_STACK_SIZE) Init(0)
182 Emit .stack_size directives.
185 Target Var(TARGET_LIBCCRT) Init(0)
186 Generate code for C-SKY compiler runtime instead of libgcc.
189 Target Joined RejectNegative UInteger Var(csky_branch_cost) Init(1)
190 Set the branch costs to roughly the specified number of instructions.
193 Target Var(flag_sched_prolog) Init(0)
194 Permit scheduling of function prologue and epilogue sequences.
198 Use the simulator runtime.