1 ; Options for the S/390 / zSeries port of the compiler.
3 ; Copyright (C) 2005-2017 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(z14) Value(PROCESSOR_3906_Z14)
119 Enum(processor_type) String(arch12) Value(PROCESSOR_3906_Z14)
122 Enum(processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
125 Target Report Mask(BACKCHAIN) Save
126 Maintain backchain pointer.
129 Target Report Mask(DEBUG_ARG) Save
130 Additional debug prints.
133 Target Report RejectNegative Negative(mzarch) InverseMask(ZARCH)
134 ESA/390 architecture.
137 Target Report Mask(HARD_DFP) Save
138 Enable decimal floating point hardware support.
141 Target Report RejectNegative Negative(msoft-float) InverseMask(SOFT_FLOAT, HARD_FLOAT) Save
142 Enable hardware floating point.
145 Target RejectNegative Report Joined Var(s390_deferred_options) Defer
146 Takes two non-negative integer numbers separated by a comma.
147 Prepend the function label with the number of two-byte Nop
148 instructions indicated by the first. Append Nop instructions
149 covering the number of halfwords indicated by the second after the
150 label. Nop instructions of the largest possible size are used
151 (six, four or two bytes), beginning with the largest possible
152 size. Using 0 for both values disables hotpatching.
155 Target Report RejectNegative Negative(mlong-double-64) Mask(LONG_DOUBLE_128)
156 Use 128-bit long double.
159 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
160 Use 64-bit long double.
163 Target Report Mask(OPT_HTM) Save
164 Use hardware transactional execution instructions.
167 Target Report Mask(OPT_VX) Save
168 Use hardware vector facility instructions and enable the vector ABI.
171 Target Report Mask(PACKED_STACK) Save
172 Use packed stack layout.
175 Target Report Mask(SMALL_EXEC) Save
176 Use bras for executable < 64k.
179 Target Report RejectNegative Negative(mhard-float) Mask(SOFT_FLOAT) Save
180 Disable hardware floating point.
183 Target RejectNegative Negative(mno-stack-guard) Joined UInteger Var(s390_stack_guard) Save
184 Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered.
187 Target RejectNegative Alias(mstack-guard=,0) Negative(mstack-guard=)
188 Switches off the -mstack-guard= option.
191 Target RejectNegative Joined UInteger Var(s390_stack_size) Save
192 Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit.
195 Target RejectNegative Alias(mstack-size=,0) Negative(mstack-size=)
196 Switches off the -mstack-size= option.
199 Target RejectNegative Joined Enum(processor_type) Var(s390_tune) Init(PROCESSOR_max) Save
200 Schedule code for given CPU.
203 Target Report Mask(MVCLE) Save
204 Use the mvcle instruction for block moves.
207 Target Report Mask(ZVECTOR) Save
208 Enable the z vector language extension providing the context-sensitive
209 vector macro and enable the Altivec-style builtins in vecintrin.h.
212 Target Var(s390_warn_dynamicstack_p) Save
213 Warn if a function uses alloca or creates an array with dynamic size.
216 Target RejectNegative Joined UInteger Var(s390_warn_framesize) Save
217 Warn if a single function's framesize exceeds the given framesize.
220 Target Report RejectNegative Negative(mesa) Mask(ZARCH)
224 Target Report Joined RejectNegative UInteger Var(s390_branch_cost) Init(1) Save
225 Set the branch costs for conditional branch instructions. Reasonable
226 values are small, non-negative integers. The default branch cost is
230 Target Report Var(s390_lra_flag) Init(1) Save
231 Use LRA instead of reload.
233 mpic-data-is-text-relative
234 Target Report Var(s390_pic_data_is_text_relative) Init(TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE)
235 Assume data segments are relative to text segment.