1;; Command-line options for the C-SKY back end. 2;; Copyright (C) 2018-2021 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 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 Mask(BIG_ENDIAN) 44Generate big-endian code. 45 46EB 47Target RejectNegative Alias(mbig-endian) Undocumented 48 49mlittle-endian 50Target RejectNegative InverseMask(BIG_ENDIAN) 51Generate little-endian code. 52 53EL 54Target RejectNegative Alias(mlittle-endian) Undocumented 55 56;; Floating point options. These affect code generation but not 57;; assembly. 58 59mhard-float 60Target RejectNegative Alias(mfloat-abi=, hard) Undocumented 61 62msoft-float 63Target RejectNegative Alias(mfloat-abi=, soft) Undocumented 64 65mfloat-abi=v2 66Target RejectNegative Alias(mfloat-abi=, hard) Undocumented 67 68mfloat-abi=v1 69Target RejectNegative Alias(mfloat-abi=, softfp) Undocumented 70 71mfloat-abi= 72Target RejectNegative Joined Enum(float_abi_type) Var(csky_float_abi) Init(CSKY_FLOAT_ABI_SOFT) 73Specify if floating point hardware should be used. 74 75Enum 76Name(float_abi_type) Type(enum float_abi_type) 77Known floating-point ABIs (for use with the -mfloat-abi= option): 78 79EnumValue 80Enum(float_abi_type) String(soft) Value(CSKY_FLOAT_ABI_SOFT) 81 82EnumValue 83Enum(float_abi_type) String(softfp) Value(CSKY_FLOAT_ABI_SOFTFP) 84 85EnumValue 86Enum(float_abi_type) String(hard) Value(CSKY_FLOAT_ABI_HARD) 87 88mfpu= 89Target RejectNegative Joined Enum(csky_fpu) Var(csky_fpu_index) Init(TARGET_FPU_auto) Save 90Specify the target floating-point hardware/format. 91 92mdouble-float 93Target Var(TARGET_DOUBLE_FLOAT) Init(-1) 94Generate C-SKY FPU double float instructions (default for hard float). 95 96mfdivdu 97Target Var(TARGET_FDIVDU) Init(-1) 98Generate frecipd/fsqrtd/fdivd instructions (default for hard float). 99 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. 103 104melrw 105Target Var(TARGET_ELRW) Init(-1) 106Enable the extended LRW instruction (default for CK801). 107 108mistack 109Target Mask(ISTACK) 110Enable interrupt stack instructions. 111 112mmp 113Target RejectNegative Mask(MP) 114Enable multiprocessor instructions. 115 116mcp 117Target RejectNegative Mask(CP) 118Enable coprocessor instructions. 119 120mcache 121Target RejectNegative Mask(CACHE) 122Enable cache prefetch instructions. 123 124msecurity 125Target RejectNegative Mask(SECURITY) 126Enable C-SKY SECURE instructions. 127 128mmac 129Target RejectNegative Alias(msecurity) Undocumented 130 131mtrust 132Target RejectNegative Mask(TRUST) 133Enable C-SKY TRUST instructions. 134 135mdsp 136Target RejectNegative Var(TARGET_DSP) 137Enable C-SKY DSP instructions. 138 139medsp 140Target RejectNegative Mask(EDSP) 141Enable C-SKY Enhanced DSP instructions. 142 143mvdsp 144Target RejectNegative Mask(VDSP) 145Enable C-SKY Vector DSP instructions. 146 147;; Code generation options not passed to the assembler. 148 149mdiv 150Target Var(TARGET_DIV) Init(-1) 151Generate divide instructions. 152 153msmart 154Target Var(TARGET_MINI_REGISTERS) Init(-1) 155Generate code for Smart Mode. 156 157mhigh-registers 158Target Var(TARGET_HIGH_REGISTERS) Init(-1) 159Enable use of R16-R31 (default). 160 161manchor 162Target Var(TARGET_ANCHOR) 163Generate code using global anchor symbol addresses. 164 165mpushpop 166Target Var(TARGET_PUSHPOP) Init(1) 167Generate push/pop instructions (default). 168 169mmultiple-stld 170Target Var(TARGET_MULTIPLE_STLD) Init(-1) 171Generate stm/ldm instructions (default). 172 173mstm 174Target Alias(mmultiple-stld) Undocumented 175 176mconstpool 177Target Var(TARGET_CONSTANT_POOL) Init(-1) 178Generate constant pools in the compiler instead of assembler. 179 180mstack-size 181Target Var(TARGET_STACK_SIZE) Init(0) 182Emit .stack_size directives. 183 184mccrt 185Target Var(TARGET_LIBCCRT) Init(0) 186Generate code for C-SKY compiler runtime instead of libgcc. 187 188mbranch-cost= 189Target Joined RejectNegative UInteger Var(csky_branch_cost) Init(1) 190Set the branch costs to roughly the specified number of instructions. 191 192msched-prolog 193Target Var(flag_sched_prolog) Init(0) 194Permit scheduling of function prologue and epilogue sequences. 195 196msim 197Target 198Use the simulator runtime. 199