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