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