1 ;; Command-line options for the C-SKY back end.
2 ;; Copyright (C) 2018-2019 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 Report 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 Report Mask(BIG_ENDIAN)
44 Generate big-endian code.
47 Target RejectNegative Report Alias(mbig-endian) Undocumented
50 Target RejectNegative Report InverseMask(BIG_ENDIAN)
51 Generate little-endian code.
54 Target RejectNegative Report Alias(mlittle-endian) Undocumented
56 ;; Floating point options. These affect code generation but not
60 Target Report RejectNegative Mask(HARD_FLOAT)
61 Enable hardware floating-point instructions.
64 Target Report RejectNegative InverseMask(HARD_FLOAT)
65 Use library calls to perform floating-point operations (default).
68 Target RejectNegative Joined Enum(csky_fpu) Var(csky_fpu_index) Init(TARGET_FPU_auto) Save
69 Specify the target floating-point hardware/format.
72 Target Report Var(TARGET_DOUBLE_FLOAT) Init(-1)
73 Generate C-SKY FPU double float instructions (default for hard float).
76 Target Report Var(TARGET_FDIVDU) Init(-1)
77 Generate frecipd/fsqrtd/fdivd instructions (default for hard float).
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.
84 Target Report Var(TARGET_ELRW) Init(-1)
85 Enable the extended LRW instruction (default for CK801).
88 Target Report Mask(ISTACK)
89 Enable interrupt stack instructions.
92 Target Report RejectNegative Mask(MP)
93 Enable multiprocessor instructions.
96 Target Report RejectNegative Mask(CP)
97 Enable coprocessor instructions.
100 Target Report RejectNegative Mask(CACHE)
101 Enable cache prefetch instructions.
104 Target Report RejectNegative Mask(SECURITY)
105 Enable C-SKY SECURE instructions.
108 Target Report RejectNegative Alias(msecurity) Undocumented
111 Target Report RejectNegative Mask(TRUST)
112 Enable C-SKY TRUST instructions.
115 Target Report RejectNegative Var(TARGET_DSP)
116 Enable C-SKY DSP instructions.
119 Target Report RejectNegative Mask(EDSP)
120 Enable C-SKY Enhanced DSP instructions.
123 Target Report RejectNegative Mask(VDSP)
124 Enable C-SKY Vector DSP instructions.
126 ;; Code generation options not passed to the assembler.
129 Target Report Var(TARGET_DIV) Init(-1)
130 Generate divide instructions.
133 Target Report Var(TARGET_MINI_REGISTERS) Init(-1)
134 Generate code for Smart Mode.
137 Target Report Var(TARGET_HIGH_REGISTERS) Init(-1)
138 Enable use of R16-R31 (default).
141 Target Report Var(TARGET_ANCHOR)
142 Generate code using global anchor symbol addresses.
145 Target Report Var(TARGET_PUSHPOP) Init(1)
146 Generate push/pop instructions (default).
149 Target Report Var(TARGET_MULTIPLE_STLD) Init(-1)
150 Generate stm/ldm instructions (default).
153 Target Report Alias(mmultiple-stld) Undocumented
156 Target Report Var(TARGET_CONSTANT_POOL) Init(-1)
157 Generate constant pools in the compiler instead of assembler.
160 Target Report Var(TARGET_STACK_SIZE) Init(0)
161 Emit .stack_size directives.
164 Target Report Var(TARGET_LIBCCRT) Init(0)
165 Generate code for C-SKY compiler runtime instead of libgcc.
168 Target Report Joined RejectNegative UInteger Var(csky_branch_cost) Init(1)
169 Set the branch costs to roughly the specified number of instructions.
172 Target Report Var(flag_sched_prolog) Init(0)
173 Permit scheduling of function prologue and epilogue sequences.