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(g6) Value(PROCESSOR_9672_G6)
68 Enum(processor_type) String(z900) Value(PROCESSOR_2064_Z900)
71 Enum(processor_type) String(z990) Value(PROCESSOR_2084_Z990)
74 Enum(processor_type) String(z9-109) Value(PROCESSOR_2094_Z9_109)
77 Enum(processor_type) String(z9-ec) Value(PROCESSOR_2094_Z9_EC)
80 Enum(processor_type) String(z10) Value(PROCESSOR_2097_Z10)
83 Enum(processor_type) String(z196) Value(PROCESSOR_2817_Z196)
86 Enum(processor_type) String(zEC12) Value(PROCESSOR_2827_ZEC12)
89 Enum(processor_type) String(z13) Value(PROCESSOR_2964_Z13)
92 Enum(processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly
95 Target Report Mask(BACKCHAIN) Save
96 Maintain backchain pointer.
99 Target Report Mask(DEBUG_ARG) Save
100 Additional debug prints.
103 Target Report RejectNegative Negative(mzarch) InverseMask(ZARCH)
104 ESA/390 architecture.
107 Target Report Mask(HARD_DFP) Save
108 Enable decimal floating point hardware support.
111 Target Report RejectNegative Negative(msoft-float) InverseMask(SOFT_FLOAT, HARD_FLOAT) Save
112 Enable hardware floating point.
115 Target RejectNegative Report Joined Var(s390_deferred_options) Defer
116 Takes two non-negative integer numbers separated by a comma.
117 Prepend the function label with the number of two-byte Nop
118 instructions indicated by the first. Append Nop instructions
119 covering the number of halfwords indicated by the second after the
120 label. Nop instructions of the largest possible size are used
121 (six, four or two bytes), beginning with the largest possible
122 size. Using 0 for both values disables hotpatching.
125 Target Report RejectNegative Negative(mlong-double-64) Mask(LONG_DOUBLE_128)
126 Use 128-bit long double.
129 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
130 Use 64-bit long double.
133 Target Report Mask(OPT_HTM) Save
134 Use hardware transactional execution instructions.
137 Target Report Mask(OPT_VX) Save
138 Use hardware vector facility instructions and enable the vector ABI.
141 Target Report Mask(PACKED_STACK) Save
142 Use packed stack layout.
145 Target Report Mask(SMALL_EXEC) Save
146 Use bras for executable < 64k.
149 Target Report RejectNegative Negative(mhard-float) Mask(SOFT_FLOAT) Save
150 Disable hardware floating point.
153 Target RejectNegative Negative(mno-stack-guard) Joined UInteger Var(s390_stack_guard) Save
154 Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered.
157 Target RejectNegative Alias(mstack-guard=,0) Negative(mstack-guard=)
158 Switches off the -mstack-guard= option.
161 Target RejectNegative Joined UInteger Var(s390_stack_size) Save
162 Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit.
165 Target RejectNegative Alias(mstack-size=,0) Negative(mstack-size=)
166 Switches off the -mstack-size= option.
169 Target RejectNegative Joined Enum(processor_type) Var(s390_tune) Init(PROCESSOR_max) Save
170 Schedule code for given CPU.
173 Target Report Mask(MVCLE) Save
177 Target Report Mask(ZVECTOR) Save
178 Enable the z vector language extension providing the context-sensitive
179 vector macro and enable the Altivec-style builtins in vecintrin.h
182 Target Var(s390_warn_dynamicstack_p) Save
183 Warn if a function uses alloca or creates an array with dynamic size.
186 Target RejectNegative Joined UInteger Var(s390_warn_framesize) Save
187 Warn if a single function's framesize exceeds the given framesize.
190 Target Report RejectNegative Negative(mesa) Mask(ZARCH)
194 Target Report Joined RejectNegative UInteger Var(s390_branch_cost) Init(1) Save
195 Set the branch costs for conditional branch instructions. Reasonable
196 values are small, non-negative integers. The default branch cost is
200 Target Report Var(s390_lra_flag) Init(1) Save
201 Use LRA instead of reload.