1; Options for the RISC-V port of the compiler 2; 3; Copyright (C) 2011-2019 Free Software Foundation, Inc. 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 13; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15; License 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 21HeaderInclude 22config/riscv/riscv-opts.h 23 24mbranch-cost= 25Target RejectNegative Joined UInteger Var(riscv_branch_cost) 26-mbranch-cost=N Set the cost of branches to roughly N instructions. 27 28mplt 29Target Report Var(TARGET_PLT) Init(1) 30When generating -fpic code, allow the use of PLTs. Ignored for fno-pic. 31 32mabi= 33Target Report RejectNegative Joined Enum(abi_type) Var(riscv_abi) Init(ABI_ILP32) Negative(mabi=) 34Specify integer and floating-point calling convention. 35 36mpreferred-stack-boundary= 37Target RejectNegative Joined UInteger Var(riscv_preferred_stack_boundary_arg) 38Attempt to keep stack aligned to this power of 2. 39 40Enum 41Name(abi_type) Type(enum riscv_abi_type) 42Supported ABIs (for use with the -mabi= option): 43 44EnumValue 45Enum(abi_type) String(ilp32) Value(ABI_ILP32) 46 47EnumValue 48Enum(abi_type) String(ilp32e) Value(ABI_ILP32E) 49 50EnumValue 51Enum(abi_type) String(ilp32f) Value(ABI_ILP32F) 52 53EnumValue 54Enum(abi_type) String(ilp32d) Value(ABI_ILP32D) 55 56EnumValue 57Enum(abi_type) String(lp64) Value(ABI_LP64) 58 59EnumValue 60Enum(abi_type) String(lp64f) Value(ABI_LP64F) 61 62EnumValue 63Enum(abi_type) String(lp64d) Value(ABI_LP64D) 64 65mfdiv 66Target Report Mask(FDIV) 67Use hardware floating-point divide and square root instructions. 68 69mdiv 70Target Report Mask(DIV) 71Use hardware instructions for integer division. 72 73march= 74Target Report RejectNegative Joined Negative(march=) 75-march= Generate code for given RISC-V ISA (e.g. RV64IM). ISA strings must be 76lower-case. 77 78mtune= 79Target RejectNegative Joined Var(riscv_tune_string) 80-mtune=PROCESSOR Optimize the output for PROCESSOR. 81 82msmall-data-limit= 83Target Joined Separate UInteger Var(g_switch_value) Init(8) 84-msmall-data-limit=N Put global and static data smaller than <number> bytes into a special section (on some targets). 85 86msave-restore 87Target Report Mask(SAVE_RESTORE) 88Use smaller but slower prologue and epilogue code. 89 90mcmodel= 91Target Report RejectNegative Joined Enum(code_model) Var(riscv_cmodel) Init(TARGET_DEFAULT_CMODEL) 92Specify the code model. 93 94mstrict-align 95Target Report Mask(STRICT_ALIGN) Save 96Do not generate unaligned memory accesses. 97 98Enum 99Name(code_model) Type(enum riscv_code_model) 100Known code models (for use with the -mcmodel= option): 101 102EnumValue 103Enum(code_model) String(medlow) Value(CM_MEDLOW) 104 105EnumValue 106Enum(code_model) String(medany) Value(CM_MEDANY) 107 108mexplicit-relocs 109Target Report Mask(EXPLICIT_RELOCS) 110Use %reloc() operators, rather than assembly macros, to load addresses. 111 112mrelax 113Target Bool Var(riscv_mrelax) Init(1) 114Take advantage of linker relaxations to reduce the number of instructions 115required to materialize symbol addresses. 116 117Mask(64BIT) 118 119Mask(MUL) 120 121Mask(ATOMIC) 122 123Mask(HARD_FLOAT) 124 125Mask(DOUBLE_FLOAT) 126 127Mask(RVC) 128 129Mask(RVE) 130 131mriscv-attribute 132Target Report Var(riscv_emit_attribute_p) Init(-1) 133Emit RISC-V ELF attribute. 134