annotate gcc/config/s390/s390.opt @ 131:84e7813d76e9

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