S/390: Add support for arch<n> arch/tune options.
[official-gcc.git] / gcc / config / s390 / s390.opt
blob569ed957887f2668477d6434ba0e5ae6883ebd5a
1 ; Options for the S/390 / zSeries port of the compiler.
3 ; Copyright (C) 2005-2016 Free Software Foundation, Inc.
5 ; This file is part of GCC.
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.
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.
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/>.
21 HeaderInclude
22 config/s390/s390-opts.h
24 ;; Definitions to add to the cl_target_option and gcc_options structures
26 ;; whether -march was specified
27 TargetVariable
28 unsigned char s390_arch_specified
30 ;; Flags derived from s390_arch
31 TargetVariable
32 int s390_arch_flags
34 ;; whether -mtune was specified
35 TargetVariable
36 unsigned char s390_tune_specified
38 ;; Flags derived from s390_tune
39 TargetVariable
40 int s390_tune_flags
42 ;; Cpu cost table (this is actually a "const struct processor_cost *")
43 Variable
44 long s390_cost_pointer
46 m31
47 Target Report RejectNegative Negative(m64) InverseMask(64BIT)
48 31 bit ABI.
50 m64
51 Target Report RejectNegative Negative(m31) Mask(64BIT)
52 64 bit ABI.
54 march=
55 Target RejectNegative Joined Enum(processor_type) Var(s390_arch) Init(PROCESSOR_max) Save
56 Generate code for given CPU.
58 Enum
59 Name(processor_type) Type(enum processor_type)
61 EnumValue
62 Enum(processor_type) String(g5) Value(PROCESSOR_9672_G5)
64 EnumValue
65 Enum(processor_type) String(arch3) Value(PROCESSOR_9672_G5)
67 EnumValue
68 Enum(processor_type) String(g6) Value(PROCESSOR_9672_G6)
70 EnumValue
71 Enum(processor_type) String(z900) Value(PROCESSOR_2064_Z900)
73 EnumValue
74 Enum(processor_type) String(arch5) Value(PROCESSOR_2064_Z900)
76 EnumValue
77 Enum(processor_type) String(z990) Value(PROCESSOR_2084_Z990)
79 EnumValue
80 Enum(processor_type) String(arch6) Value(PROCESSOR_2084_Z990)
82 EnumValue
83 Enum(processor_type) String(z9-109) Value(PROCESSOR_2094_Z9_109)
85 EnumValue
86 Enum(processor_type) String(z9-ec) Value(PROCESSOR_2094_Z9_EC)
88 EnumValue
89 Enum(processor_type) String(arch7) Value(PROCESSOR_2094_Z9_EC)
91 EnumValue
92 Enum(processor_type) String(z10) Value(PROCESSOR_2097_Z10)
94 EnumValue
95 Enum(processor_type) String(arch8) Value(PROCESSOR_2097_Z10)
97 EnumValue
98 Enum(processor_type) String(z196) Value(PROCESSOR_2817_Z196)
100 EnumValue
101 Enum(processor_type) String(arch9) Value(PROCESSOR_2817_Z196)
103 EnumValue
104 Enum(processor_type) String(zEC12) Value(PROCESSOR_2827_ZEC12)
106 EnumValue
107 Enum(processor_type) String(arch10) Value(PROCESSOR_2827_ZEC12)
109 EnumValue
110 Enum(processor_type) String(z13) Value(PROCESSOR_2964_Z13)
112 EnumValue
113 Enum(processor_type) String(arch11) Value(PROCESSOR_2964_Z13)
115 EnumValue
116 Enum(processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
118 mbackchain
119 Target Report Mask(BACKCHAIN) Save
120 Maintain backchain pointer.
122 mdebug
123 Target Report Mask(DEBUG_ARG) Save
124 Additional debug prints.
126 mesa
127 Target Report RejectNegative Negative(mzarch) InverseMask(ZARCH)
128 ESA/390 architecture.
130 mhard-dfp
131 Target Report Mask(HARD_DFP) Save
132 Enable decimal floating point hardware support.
134 mhard-float
135 Target Report RejectNegative Negative(msoft-float) InverseMask(SOFT_FLOAT, HARD_FLOAT) Save
136 Enable hardware floating point.
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.
148 mlong-double-128
149 Target Report RejectNegative Negative(mlong-double-64) Mask(LONG_DOUBLE_128)
150 Use 128-bit long double.
152 mlong-double-64
153 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
154 Use 64-bit long double.
156 mhtm
157 Target Report Mask(OPT_HTM) Save
158 Use hardware transactional execution instructions.
161 Target Report Mask(OPT_VX) Save
162 Use hardware vector facility instructions and enable the vector ABI.
164 mpacked-stack
165 Target Report Mask(PACKED_STACK) Save
166 Use packed stack layout.
168 msmall-exec
169 Target Report Mask(SMALL_EXEC) Save
170 Use bras for executable < 64k.
172 msoft-float
173 Target Report RejectNegative Negative(mhard-float) Mask(SOFT_FLOAT) Save
174 Disable hardware floating point.
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.
180 mno-stack-guard
181 Target RejectNegative Alias(mstack-guard=,0) Negative(mstack-guard=)
182 Switches off the -mstack-guard= option.
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.
188 mno-stack-size
189 Target RejectNegative Alias(mstack-size=,0) Negative(mstack-size=)
190 Switches off the -mstack-size= option.
192 mtune=
193 Target RejectNegative Joined Enum(processor_type) Var(s390_tune) Init(PROCESSOR_max) Save
194 Schedule code for given CPU.
196 mmvcle
197 Target Report Mask(MVCLE) Save
198 Use the mvcle instruction for block moves.
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.
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.
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.
213 mzarch
214 Target Report RejectNegative Negative(mesa) Mask(ZARCH)
215 z/Architecture.
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
223 mlra
224 Target Report Var(s390_lra_flag) Init(1) Save
225 Use LRA instead of reload.