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
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
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/>.
22 config/s390/s390-opts.h
24 ;; Definitions to add to the cl_target_option and gcc_options structures
26 ;; whether -march was specified
28 unsigned char s390_arch_specified
30 ;; Flags derived from s390_arch
34 ;; whether -mtune was specified
36 unsigned char s390_tune_specified
38 ;; Flags derived from s390_tune
42 ;; Cpu cost table (this is actually a "const struct processor_cost *")
44 long s390_cost_pointer
47 Target Report RejectNegative Negative(m64) InverseMask(64BIT)
51 Target Report RejectNegative Negative(m31) Mask(64BIT)
55 Target RejectNegative Joined Enum(processor_type) Var(s390_arch) Init(PROCESSOR_max) Save
56 Generate code for given CPU.
59 Name(processor_type) Type(enum processor_type)
62 Enum(processor_type) String(g5) Value(PROCESSOR_9672_G5)
65 Enum(processor_type) String(arch3) Value(PROCESSOR_9672_G5)
68 Enum(processor_type) String(g6) Value(PROCESSOR_9672_G6)
71 Enum(processor_type) String(z900) Value(PROCESSOR_2064_Z900)
74 Enum(processor_type) String(arch5) Value(PROCESSOR_2064_Z900)
77 Enum(processor_type) String(z990) Value(PROCESSOR_2084_Z990)
80 Enum(processor_type) String(arch6) Value(PROCESSOR_2084_Z990)
83 Enum(processor_type) String(z9-109) Value(PROCESSOR_2094_Z9_109)
86 Enum(processor_type) String(z9-ec) Value(PROCESSOR_2094_Z9_EC)
89 Enum(processor_type) String(arch7) Value(PROCESSOR_2094_Z9_EC)
92 Enum(processor_type) String(z10) Value(PROCESSOR_2097_Z10)
95 Enum(processor_type) String(arch8) Value(PROCESSOR_2097_Z10)
98 Enum(processor_type) String(z196) Value(PROCESSOR_2817_Z196)
101 Enum(processor_type) String(arch9) Value(PROCESSOR_2817_Z196)
104 Enum(processor_type) String(zEC12) Value(PROCESSOR_2827_ZEC12)
107 Enum(processor_type) String(arch10) Value(PROCESSOR_2827_ZEC12)
110 Enum(processor_type) String(z13) Value(PROCESSOR_2964_Z13)
113 Enum(processor_type) String(arch11) Value(PROCESSOR_2964_Z13)
116 Enum(processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
119 Target Report Mask(BACKCHAIN) Save
120 Maintain backchain pointer.
123 Target Report Mask(DEBUG_ARG) Save
124 Additional debug prints.
127 Target Report RejectNegative Negative(mzarch) InverseMask(ZARCH)
128 ESA/390 architecture.
131 Target Report Mask(HARD_DFP) Save
132 Enable decimal floating point hardware support.
135 Target Report RejectNegative Negative(msoft-float) InverseMask(SOFT_FLOAT, HARD_FLOAT) Save
136 Enable hardware floating point.
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.
149 Target Report RejectNegative Negative(mlong-double-64) Mask(LONG_DOUBLE_128)
150 Use 128-bit long double.
153 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
154 Use 64-bit long double.
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.
165 Target Report Mask(PACKED_STACK) Save
166 Use packed stack layout.
169 Target Report Mask(SMALL_EXEC) Save
170 Use bras for executable < 64k.
173 Target Report RejectNegative Negative(mhard-float) Mask(SOFT_FLOAT) Save
174 Disable hardware floating point.
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.
181 Target RejectNegative Alias(mstack-guard=,0) Negative(mstack-guard=)
182 Switches off the -mstack-guard= option.
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.
189 Target RejectNegative Alias(mstack-size=,0) Negative(mstack-size=)
190 Switches off the -mstack-size= option.
193 Target RejectNegative Joined Enum(processor_type) Var(s390_tune) Init(PROCESSOR_max) Save
194 Schedule code for given CPU.
197 Target Report Mask(MVCLE) Save
198 Use the mvcle instruction for block moves.
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.
206 Target Var(s390_warn_dynamicstack_p) Save
207 Warn if a function uses alloca or creates an array with dynamic size.
210 Target RejectNegative Joined UInteger Var(s390_warn_framesize) Save
211 Warn if a single function's framesize exceeds the given framesize.
214 Target Report RejectNegative Negative(mesa) Mask(ZARCH)
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
224 Target Report Var(s390_lra_flag) Init(1) Save
225 Use LRA instead of reload.