0
|
1 ; Options for the S/390 / zSeries port of the compiler.
|
|
2
|
131
|
3 ; Copyright (C) 2005-2018 Free Software Foundation, Inc.
|
0
|
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
|
111
|
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
|
0
|
46 m31
|
|
47 Target Report RejectNegative Negative(m64) InverseMask(64BIT)
|
111
|
48 31 bit ABI.
|
0
|
49
|
|
50 m64
|
|
51 Target Report RejectNegative Negative(m31) Mask(64BIT)
|
111
|
52 64 bit ABI.
|
0
|
53
|
|
54 march=
|
111
|
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(z900) Value(PROCESSOR_2064_Z900)
|
|
63
|
|
64 EnumValue
|
|
65 Enum(processor_type) String(arch5) Value(PROCESSOR_2064_Z900)
|
|
66
|
|
67 EnumValue
|
|
68 Enum(processor_type) String(z990) Value(PROCESSOR_2084_Z990)
|
|
69
|
|
70 EnumValue
|
|
71 Enum(processor_type) String(arch6) Value(PROCESSOR_2084_Z990)
|
|
72
|
|
73 EnumValue
|
|
74 Enum(processor_type) String(z9-109) Value(PROCESSOR_2094_Z9_109)
|
|
75
|
|
76 EnumValue
|
|
77 Enum(processor_type) String(z9-ec) Value(PROCESSOR_2094_Z9_EC)
|
|
78
|
|
79 EnumValue
|
|
80 Enum(processor_type) String(arch7) Value(PROCESSOR_2094_Z9_EC)
|
|
81
|
|
82 EnumValue
|
|
83 Enum(processor_type) String(z10) Value(PROCESSOR_2097_Z10)
|
|
84
|
|
85 EnumValue
|
|
86 Enum(processor_type) String(arch8) Value(PROCESSOR_2097_Z10)
|
|
87
|
|
88 EnumValue
|
|
89 Enum(processor_type) String(z196) Value(PROCESSOR_2817_Z196)
|
|
90
|
|
91 EnumValue
|
|
92 Enum(processor_type) String(arch9) Value(PROCESSOR_2817_Z196)
|
|
93
|
|
94 EnumValue
|
|
95 Enum(processor_type) String(zEC12) Value(PROCESSOR_2827_ZEC12)
|
|
96
|
|
97 EnumValue
|
|
98 Enum(processor_type) String(arch10) Value(PROCESSOR_2827_ZEC12)
|
|
99
|
|
100 EnumValue
|
|
101 Enum(processor_type) String(z13) Value(PROCESSOR_2964_Z13)
|
|
102
|
|
103 EnumValue
|
|
104 Enum(processor_type) String(arch11) Value(PROCESSOR_2964_Z13)
|
|
105
|
|
106 EnumValue
|
|
107 Enum(processor_type) String(z14) Value(PROCESSOR_3906_Z14)
|
|
108
|
|
109 EnumValue
|
|
110 Enum(processor_type) String(arch12) Value(PROCESSOR_3906_Z14)
|
|
111
|
|
112 EnumValue
|
|
113 Enum(processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
|
0
|
114
|
|
115 mbackchain
|
111
|
116 Target Report Mask(BACKCHAIN) Save
|
|
117 Maintain backchain pointer.
|
0
|
118
|
|
119 mdebug
|
111
|
120 Target Report Mask(DEBUG_ARG) Save
|
|
121 Additional debug prints.
|
0
|
122
|
|
123 mesa
|
|
124 Target Report RejectNegative Negative(mzarch) InverseMask(ZARCH)
|
111
|
125 ESA/390 architecture.
|
0
|
126
|
|
127 mhard-dfp
|
111
|
128 Target Report Mask(HARD_DFP) Save
|
|
129 Enable decimal floating point hardware support.
|
0
|
130
|
|
131 mhard-float
|
111
|
132 Target Report RejectNegative Negative(msoft-float) InverseMask(SOFT_FLOAT, HARD_FLOAT) Save
|
|
133 Enable hardware floating point.
|
|
134
|
|
135 mhotpatch=
|
|
136 Target RejectNegative Report Joined Var(s390_deferred_options) Defer
|
|
137 Takes two non-negative integer numbers separated by a comma.
|
|
138 Prepend the function label with the number of two-byte Nop
|
|
139 instructions indicated by the first. Append Nop instructions
|
|
140 covering the number of halfwords indicated by the second after the
|
|
141 label. Nop instructions of the largest possible size are used
|
|
142 (six, four or two bytes), beginning with the largest possible
|
|
143 size. Using 0 for both values disables hotpatching.
|
0
|
144
|
|
145 mlong-double-128
|
|
146 Target Report RejectNegative Negative(mlong-double-64) Mask(LONG_DOUBLE_128)
|
111
|
147 Use 128-bit long double.
|
0
|
148
|
|
149 mlong-double-64
|
|
150 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
|
111
|
151 Use 64-bit long double.
|
|
152
|
|
153 mhtm
|
|
154 Target Report Mask(OPT_HTM) Save
|
|
155 Use hardware transactional execution instructions.
|
|
156
|
|
157 mvx
|
|
158 Target Report Mask(OPT_VX) Save
|
|
159 Use hardware vector facility instructions and enable the vector ABI.
|
0
|
160
|
|
161 mpacked-stack
|
111
|
162 Target Report Mask(PACKED_STACK) Save
|
|
163 Use packed stack layout.
|
0
|
164
|
|
165 msmall-exec
|
111
|
166 Target Report Mask(SMALL_EXEC) Save
|
|
167 Use bras for executable < 64k.
|
0
|
168
|
|
169 msoft-float
|
111
|
170 Target Report RejectNegative Negative(mhard-float) Mask(SOFT_FLOAT) Save
|
|
171 Disable hardware floating point.
|
0
|
172
|
|
173 mstack-guard=
|
111
|
174 Target RejectNegative Negative(mno-stack-guard) Joined UInteger Var(s390_stack_guard) Save
|
|
175 Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered.
|
|
176
|
|
177 mno-stack-guard
|
|
178 Target RejectNegative Alias(mstack-guard=,0) Negative(mstack-guard=)
|
|
179 Switches off the -mstack-guard= option.
|
0
|
180
|
|
181 mstack-size=
|
111
|
182 Target RejectNegative Joined UInteger Var(s390_stack_size) Save
|
|
183 Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit.
|
|
184
|
|
185 mno-stack-size
|
|
186 Target RejectNegative Alias(mstack-size=,0) Negative(mstack-size=)
|
|
187 Switches off the -mstack-size= option.
|
0
|
188
|
|
189 mtune=
|
111
|
190 Target RejectNegative Joined Enum(processor_type) Var(s390_tune) Init(PROCESSOR_max) Save
|
|
191 Schedule code for given CPU.
|
0
|
192
|
|
193 mmvcle
|
111
|
194 Target Report Mask(MVCLE) Save
|
|
195 Use the mvcle instruction for block moves.
|
|
196
|
|
197 mzvector
|
|
198 Target Report Mask(ZVECTOR) Save
|
|
199 Enable the z vector language extension providing the context-sensitive
|
|
200 vector macro and enable the Altivec-style builtins in vecintrin.h.
|
0
|
201
|
|
202 mwarn-dynamicstack
|
111
|
203 Target Var(s390_warn_dynamicstack_p) Save
|
|
204 Warn if a function uses alloca or creates an array with dynamic size.
|
0
|
205
|
|
206 mwarn-framesize=
|
111
|
207 Target RejectNegative Joined UInteger Var(s390_warn_framesize) Save
|
|
208 Warn if a single function's framesize exceeds the given framesize.
|
0
|
209
|
|
210 mzarch
|
|
211 Target Report RejectNegative Negative(mesa) Mask(ZARCH)
|
111
|
212 z/Architecture.
|
|
213
|
|
214 mbranch-cost=
|
|
215 Target Report Joined RejectNegative UInteger Var(s390_branch_cost) Init(1) Save
|
|
216 Set the branch costs for conditional branch instructions. Reasonable
|
|
217 values are small, non-negative integers. The default branch cost is
|
|
218 1.
|
|
219
|
|
220 mlra
|
|
221 Target Report Var(s390_lra_flag) Init(1) Save
|
|
222 Use LRA instead of reload.
|
|
223
|
|
224 mpic-data-is-text-relative
|
|
225 Target Report Var(s390_pic_data_is_text_relative) Init(TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE)
|
|
226 Assume data segments are relative to text segment.
|
131
|
227
|
|
228
|
|
229 mindirect-branch=
|
|
230 Target Report RejectNegative Joined Enum(indirect_branch) Var(s390_indirect_branch) Init(indirect_branch_keep)
|
|
231 Wrap all indirect branches into execute in order to disable branch
|
|
232 prediction.
|
|
233
|
|
234 mindirect-branch-jump=
|
|
235 Target Report RejectNegative Joined Enum(indirect_branch) Var(s390_indirect_branch_jump) Init(indirect_branch_keep)
|
|
236 Wrap indirect table jumps and computed gotos into execute in order to
|
|
237 disable branch prediction. Using thunk or thunk-extern with this
|
|
238 option requires the thunks to be considered signal handlers to order to
|
|
239 generate correct CFI. For environments where unwinding (e.g. for
|
|
240 exceptions) is required please use thunk-inline instead.
|
|
241
|
|
242 mindirect-branch-call=
|
|
243 Target Report RejectNegative Joined Enum(indirect_branch) Var(s390_indirect_branch_call) Init(indirect_branch_keep)
|
|
244 Wrap all indirect calls into execute in order to disable branch prediction.
|
|
245
|
|
246 mfunction-return=
|
|
247 Target Report RejectNegative Joined Enum(indirect_branch) Var(s390_function_return) Init(indirect_branch_keep)
|
|
248 Wrap all indirect return branches into execute in order to disable branch
|
|
249 prediction.
|
|
250
|
|
251 mfunction-return-mem=
|
|
252 Target Report RejectNegative Joined Enum(indirect_branch) Var(s390_function_return_mem) Init(indirect_branch_keep)
|
|
253 Wrap indirect return branches into execute in order to disable branch
|
|
254 prediction. This affects only branches where the return address is
|
|
255 going to be restored from memory.
|
|
256
|
|
257 mfunction-return-reg=
|
|
258 Target Report RejectNegative Joined Enum(indirect_branch) Var(s390_function_return_reg) Init(indirect_branch_keep)
|
|
259 Wrap indirect return branches into execute in order to disable branch
|
|
260 prediction. This affects only branches where the return address
|
|
261 doesn't need to be restored from memory.
|
|
262
|
|
263 Enum
|
|
264 Name(indirect_branch) Type(enum indirect_branch)
|
|
265 Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
|
|
266
|
|
267 EnumValue
|
|
268 Enum(indirect_branch) String(keep) Value(indirect_branch_keep)
|
|
269
|
|
270 EnumValue
|
|
271 Enum(indirect_branch) String(thunk) Value(indirect_branch_thunk)
|
|
272
|
|
273 EnumValue
|
|
274 Enum(indirect_branch) String(thunk-inline) Value(indirect_branch_thunk_inline)
|
|
275
|
|
276 EnumValue
|
|
277 Enum(indirect_branch) String(thunk-extern) Value(indirect_branch_thunk_extern)
|
|
278
|
|
279 mindirect-branch-table
|
|
280 Target Report Var(s390_indirect_branch_table) Init(TARGET_DEFAULT_INDIRECT_BRANCH_TABLE)
|
|
281 Generate sections .s390_indirect_jump, .s390_indirect_call,
|
|
282 .s390_return_reg, and .s390_return_mem to contain the indirect branch
|
|
283 locations which have been patched as part of using one of the
|
|
284 -mindirect-branch* or -mfunction-return* options. The sections
|
|
285 consist of an array of 32 bit elements. Each entry holds the offset
|
|
286 from the entry to the patched location.
|
|
287
|
|
288 mfentry
|
|
289 Target Report Var(flag_fentry)
|
|
290 Emit profiling counter call at function entry before prologue. The compiled
|
|
291 code will require a 64-bit CPU and glibc 2.29 or newer to run.
|
|
292
|
|
293 mrecord-mcount
|
|
294 Target Report Var(flag_record_mcount)
|
|
295 Generate __mcount_loc section with all _mcount and __fentry__ calls.
|
|
296
|
|
297 mnop-mcount
|
|
298 Target Report Var(flag_nop_mcount)
|
|
299 Generate mcount/__fentry__ calls as nops. To activate they need to be
|
|
300 patched in.
|