494124f95ebe2aee3e0415309f54bd0d6992f396
[platform/upstream/gcc.git] / gcc / config / s390 / s390.opt
1 ; Options for the S/390 / zSeries port of the compiler.
2
3 ; Copyright (C) 2005-2017 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 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 HeaderInclude
22 config/s390/s390-opts.h
23
24 ;; Definitions to add to the cl_target_option and gcc_options structures
25
26 ;; whether -march was specified
27 TargetVariable
28 unsigned char s390_arch_specified
29
30 ;; Flags derived from s390_arch
31 TargetVariable
32 int s390_arch_flags
33
34 ;; whether -mtune was specified
35 TargetVariable
36 unsigned char s390_tune_specified
37
38 ;; Flags derived from s390_tune
39 TargetVariable
40 int s390_tune_flags
41
42 ;; Cpu cost table (this is actually a "const struct processor_cost *")
43 Variable
44 long s390_cost_pointer
45
46 m31
47 Target Report RejectNegative Negative(m64) InverseMask(64BIT)
48 31 bit ABI.
49
50 m64
51 Target Report RejectNegative Negative(m31) Mask(64BIT)
52 64 bit ABI.
53
54 march=
55 Target RejectNegative Joined Enum(processor_type) Var(s390_arch) Init(PROCESSOR_max) Save
56 Generate code for given CPU.
57
58 Enum
59 Name(processor_type) Type(enum processor_type)
60
61 EnumValue
62 Enum(processor_type) String(g5) Value(PROCESSOR_9672_G5)
63
64 EnumValue
65 Enum(processor_type) String(arch3) Value(PROCESSOR_9672_G5)
66
67 EnumValue
68 Enum(processor_type) String(g6) Value(PROCESSOR_9672_G6)
69
70 EnumValue
71 Enum(processor_type) String(z900) Value(PROCESSOR_2064_Z900)
72
73 EnumValue
74 Enum(processor_type) String(arch5) Value(PROCESSOR_2064_Z900)
75
76 EnumValue
77 Enum(processor_type) String(z990) Value(PROCESSOR_2084_Z990)
78
79 EnumValue
80 Enum(processor_type) String(arch6) Value(PROCESSOR_2084_Z990)
81
82 EnumValue
83 Enum(processor_type) String(z9-109) Value(PROCESSOR_2094_Z9_109)
84
85 EnumValue
86 Enum(processor_type) String(z9-ec) Value(PROCESSOR_2094_Z9_EC)
87
88 EnumValue
89 Enum(processor_type) String(arch7) Value(PROCESSOR_2094_Z9_EC)
90
91 EnumValue
92 Enum(processor_type) String(z10) Value(PROCESSOR_2097_Z10)
93
94 EnumValue
95 Enum(processor_type) String(arch8) Value(PROCESSOR_2097_Z10)
96
97 EnumValue
98 Enum(processor_type) String(z196) Value(PROCESSOR_2817_Z196)
99
100 EnumValue
101 Enum(processor_type) String(arch9) Value(PROCESSOR_2817_Z196)
102
103 EnumValue
104 Enum(processor_type) String(zEC12) Value(PROCESSOR_2827_ZEC12)
105
106 EnumValue
107 Enum(processor_type) String(arch10) Value(PROCESSOR_2827_ZEC12)
108
109 EnumValue
110 Enum(processor_type) String(z13) Value(PROCESSOR_2964_Z13)
111
112 EnumValue
113 Enum(processor_type) String(arch11) Value(PROCESSOR_2964_Z13)
114
115 EnumValue
116 Enum(processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
117
118 mbackchain
119 Target Report Mask(BACKCHAIN) Save
120 Maintain backchain pointer.
121
122 mdebug
123 Target Report Mask(DEBUG_ARG) Save
124 Additional debug prints.
125
126 mesa
127 Target Report RejectNegative Negative(mzarch) InverseMask(ZARCH)
128 ESA/390 architecture.
129
130 mhard-dfp
131 Target Report Mask(HARD_DFP) Save
132 Enable decimal floating point hardware support.
133
134 mhard-float
135 Target Report RejectNegative Negative(msoft-float) InverseMask(SOFT_FLOAT, HARD_FLOAT) Save
136 Enable hardware floating point.
137
138 mhotpatch=
139 Target RejectNegative Report Joined Var(s390_deferred_options) Defer
140 Takes two non-negative integer numbers separated by a comma.
141 Prepend the function label with the number of two-byte Nop
142 instructions indicated by the first.  Append Nop instructions
143 covering the number of halfwords indicated by the second after the
144 label.  Nop instructions of the largest possible size are used
145 (six, four or two bytes), beginning with the largest possible
146 size.  Using 0 for both values disables hotpatching.
147
148 mlong-double-128
149 Target Report RejectNegative Negative(mlong-double-64) Mask(LONG_DOUBLE_128)
150 Use 128-bit long double.
151
152 mlong-double-64
153 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
154 Use 64-bit long double.
155
156 mhtm
157 Target Report Mask(OPT_HTM) Save
158 Use hardware transactional execution instructions.
159
160 mvx
161 Target Report Mask(OPT_VX) Save
162 Use hardware vector facility instructions and enable the vector ABI.
163
164 mpacked-stack
165 Target Report Mask(PACKED_STACK) Save
166 Use packed stack layout.
167
168 msmall-exec
169 Target Report Mask(SMALL_EXEC) Save
170 Use bras for executable < 64k.
171
172 msoft-float
173 Target Report RejectNegative Negative(mhard-float) Mask(SOFT_FLOAT) Save
174 Disable hardware floating point.
175
176 mstack-guard=
177 Target RejectNegative Negative(mno-stack-guard) Joined UInteger Var(s390_stack_guard) Save
178 Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered.
179
180 mno-stack-guard
181 Target RejectNegative Alias(mstack-guard=,0) Negative(mstack-guard=)
182 Switches off the -mstack-guard= option.
183
184 mstack-size=
185 Target RejectNegative Joined UInteger Var(s390_stack_size) Save
186 Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit.
187
188 mno-stack-size
189 Target RejectNegative Alias(mstack-size=,0) Negative(mstack-size=)
190 Switches off the -mstack-size= option.
191
192 mtune=
193 Target RejectNegative Joined Enum(processor_type) Var(s390_tune) Init(PROCESSOR_max) Save
194 Schedule code for given CPU.
195
196 mmvcle
197 Target Report Mask(MVCLE) Save
198 Use the mvcle instruction for block moves.
199
200 mzvector
201 Target Report Mask(ZVECTOR) Save
202 Enable the z vector language extension providing the context-sensitive
203 vector macro and enable the Altivec-style builtins in vecintrin.h.
204
205 mwarn-dynamicstack
206 Target Var(s390_warn_dynamicstack_p) Save
207 Warn if a function uses alloca or creates an array with dynamic size.
208
209 mwarn-framesize=
210 Target RejectNegative Joined UInteger Var(s390_warn_framesize) Save
211 Warn if a single function's framesize exceeds the given framesize.
212
213 mzarch
214 Target Report RejectNegative Negative(mesa) Mask(ZARCH)
215 z/Architecture.
216
217 mbranch-cost=
218 Target Report Joined RejectNegative UInteger Var(s390_branch_cost) Init(1) Save
219 Set the branch costs for conditional branch instructions.  Reasonable
220 values are small, non-negative integers.  The default branch cost is
221 1.
222
223 mlra
224 Target Report Var(s390_lra_flag) Init(1) Save
225 Use LRA instead of reload.