1; Options for the RISC-V port of the compiler
2;
3; Copyright (C) 2011-2020 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
135malign-data=
136Target RejectNegative Joined Var(riscv_align_data_type) Enum(riscv_align_data) Init(riscv_align_data_type_xlen)
137Use the given data alignment.
138
139Enum
140Name(riscv_align_data) Type(enum riscv_align_data)
141Known data alignment choices (for use with the -malign-data= option):
142
143EnumValue
144Enum(riscv_align_data) String(xlen) Value(riscv_align_data_type_xlen)
145
146EnumValue
147Enum(riscv_align_data) String(natural) Value(riscv_align_data_type_natural)
148