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