25 #ifndef SHARE_RUNTIME_GLOBALS_EXTENSION_HPP |
25 #ifndef SHARE_RUNTIME_GLOBALS_EXTENSION_HPP |
26 #define SHARE_RUNTIME_GLOBALS_EXTENSION_HPP |
26 #define SHARE_RUNTIME_GLOBALS_EXTENSION_HPP |
27 |
27 |
28 #include "runtime/globals.hpp" |
28 #include "runtime/globals.hpp" |
29 #include "utilities/macros.hpp" |
29 #include "utilities/macros.hpp" |
30 #if INCLUDE_JVMCI |
|
31 #include "jvmci/jvmci_globals.hpp" |
|
32 #endif |
|
33 #ifdef COMPILER1 |
|
34 #include "c1/c1_globals.hpp" |
|
35 #endif |
|
36 #ifdef COMPILER2 |
|
37 #include "opto/c2_globals.hpp" |
|
38 #endif |
|
39 |
30 |
40 // Construct enum of Flag_<cmdline-arg> constants. |
31 // Construct enum of Flag_<cmdline-arg> constants. |
41 |
32 |
42 // Parenthesis left off in the following for the enum decl below. |
33 #define FLAG_MEMBER_ENUM(name) Flag_##name##_enum |
43 #define FLAG_MEMBER(flag) Flag_##flag |
34 #define FLAG_MEMBER_ENUM_(name) FLAG_MEMBER_ENUM(name), |
44 |
35 |
45 #define RUNTIME_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
36 #define FLAG_MEMBER_ENUM_PRODUCT(type, name, value, doc) FLAG_MEMBER_ENUM_(name) |
46 #define RUNTIME_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
37 #define FLAG_MEMBER_ENUM_PD_PRODUCT(type, name, doc) FLAG_MEMBER_ENUM_(name) |
47 #define RUNTIME_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
38 #define FLAG_MEMBER_ENUM_DIAGNOSTIC(type, name, value, doc) FLAG_MEMBER_ENUM_(name) |
48 #define RUNTIME_PD_DIAGNOSTIC_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
39 #define FLAG_MEMBER_ENUM_PD_DIAGNOSTIC(type, name, doc) FLAG_MEMBER_ENUM_(name) |
49 #define RUNTIME_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
40 #define FLAG_MEMBER_ENUM_EXPERIMENTAL(type, name, value, doc) FLAG_MEMBER_ENUM_(name) |
50 #define RUNTIME_MANAGEABLE_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
41 #define FLAG_MEMBER_ENUM_MANAGEABLE(type, name, value, doc) FLAG_MEMBER_ENUM_(name) |
51 #define RUNTIME_PRODUCT_RW_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
42 #define FLAG_MEMBER_ENUM_PRODUCT_RW(type, name, value, doc) FLAG_MEMBER_ENUM_(name) |
52 #define RUNTIME_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
43 #define FLAG_MEMBER_ENUM_DEVELOP(type, name, value, doc) FLAG_MEMBER_ENUM_(name) |
53 #define RUNTIME_PD_DEVELOP_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
44 #define FLAG_MEMBER_ENUM_PD_DEVELOP(type, name, doc) FLAG_MEMBER_ENUM_(name) |
54 #define RUNTIME_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
45 #define FLAG_MEMBER_ENUM_NOTPRODUCT(type, name, value, doc) FLAG_MEMBER_ENUM_(name) |
55 |
|
56 #define JVMCI_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
57 #define JVMCI_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
|
58 #define JVMCI_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
59 #define JVMCI_PD_DEVELOP_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
|
60 #define JVMCI_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
61 #define JVMCI_PD_DIAGNOSTIC_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
|
62 #define JVMCI_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
63 #define JVMCI_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
64 |
|
65 #ifdef _LP64 |
46 #ifdef _LP64 |
66 #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
47 #define FLAG_MEMBER_ENUM_LP64_PRODUCT(type, name, value, doc) FLAG_MEMBER_ENUM_(name) |
67 #else |
48 #else |
68 #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER(type, name, value, doc) /* flag is constant */ |
49 #define FLAG_MEMBER_ENUM_LP64_PRODUCT(type, name, value, doc) /* flag is constant */ |
69 #endif // _LP64 |
50 #endif // _LP64 |
70 |
51 |
71 #define C1_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
52 typedef enum { |
72 #define C1_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
53 ALL_FLAGS(FLAG_MEMBER_ENUM_DEVELOP, |
73 #define C1_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
54 FLAG_MEMBER_ENUM_PD_DEVELOP, |
74 #define C1_PD_DIAGNOSTIC_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
55 FLAG_MEMBER_ENUM_PRODUCT, |
75 #define C1_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
56 FLAG_MEMBER_ENUM_PD_PRODUCT, |
76 #define C1_PD_DEVELOP_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
57 FLAG_MEMBER_ENUM_DIAGNOSTIC, |
77 #define C1_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
58 FLAG_MEMBER_ENUM_PD_DIAGNOSTIC, |
|
59 FLAG_MEMBER_ENUM_EXPERIMENTAL, |
|
60 FLAG_MEMBER_ENUM_NOTPRODUCT, |
|
61 FLAG_MEMBER_ENUM_MANAGEABLE, |
|
62 FLAG_MEMBER_ENUM_PRODUCT_RW, |
|
63 FLAG_MEMBER_ENUM_LP64_PRODUCT, |
|
64 IGNORE_RANGE, |
|
65 IGNORE_CONSTRAINT, |
|
66 IGNORE_WRITEABLE) |
|
67 JVMFLAGSENUM_EXT |
|
68 NUM_JVMFlagsEnum |
|
69 } JVMFlagsEnum; |
78 |
70 |
79 #define C2_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
71 #define FLAG_IS_DEFAULT(name) (JVMFlagEx::is_default(FLAG_MEMBER_ENUM(name))) |
80 #define C2_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
72 #define FLAG_IS_ERGO(name) (JVMFlagEx::is_ergo(FLAG_MEMBER_ENUM(name))) |
81 #define C2_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
73 #define FLAG_IS_CMDLINE(name) (JVMFlagEx::is_cmdline(FLAG_MEMBER_ENUM(name))) |
82 #define C2_PD_DIAGNOSTIC_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
|
83 #define C2_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
84 #define C2_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
85 #define C2_PD_DEVELOP_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name), |
|
86 #define C2_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
87 |
|
88 #define ARCH_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
89 #define ARCH_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
90 #define ARCH_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
91 #define ARCH_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
92 #define ARCH_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name), |
|
93 |
|
94 typedef enum { |
|
95 VM_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, \ |
|
96 RUNTIME_PD_DEVELOP_FLAG_MEMBER, \ |
|
97 RUNTIME_PRODUCT_FLAG_MEMBER, \ |
|
98 RUNTIME_PD_PRODUCT_FLAG_MEMBER, \ |
|
99 RUNTIME_DIAGNOSTIC_FLAG_MEMBER, \ |
|
100 RUNTIME_PD_DIAGNOSTIC_FLAG_MEMBER, \ |
|
101 RUNTIME_EXPERIMENTAL_FLAG_MEMBER, \ |
|
102 RUNTIME_NOTPRODUCT_FLAG_MEMBER, \ |
|
103 RUNTIME_MANAGEABLE_FLAG_MEMBER, \ |
|
104 RUNTIME_PRODUCT_RW_FLAG_MEMBER, \ |
|
105 RUNTIME_LP64_PRODUCT_FLAG_MEMBER, \ |
|
106 IGNORE_RANGE, \ |
|
107 IGNORE_CONSTRAINT, \ |
|
108 IGNORE_WRITEABLE) |
|
109 |
|
110 RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, \ |
|
111 RUNTIME_PD_DEVELOP_FLAG_MEMBER, \ |
|
112 RUNTIME_PRODUCT_FLAG_MEMBER, \ |
|
113 RUNTIME_PD_PRODUCT_FLAG_MEMBER, \ |
|
114 RUNTIME_DIAGNOSTIC_FLAG_MEMBER, \ |
|
115 RUNTIME_PD_DIAGNOSTIC_FLAG_MEMBER, \ |
|
116 RUNTIME_NOTPRODUCT_FLAG_MEMBER, \ |
|
117 IGNORE_RANGE, \ |
|
118 IGNORE_CONSTRAINT, \ |
|
119 IGNORE_WRITEABLE) |
|
120 #if INCLUDE_JVMCI |
|
121 JVMCI_FLAGS(JVMCI_DEVELOP_FLAG_MEMBER, \ |
|
122 JVMCI_PD_DEVELOP_FLAG_MEMBER, \ |
|
123 JVMCI_PRODUCT_FLAG_MEMBER, \ |
|
124 JVMCI_PD_PRODUCT_FLAG_MEMBER, \ |
|
125 JVMCI_DIAGNOSTIC_FLAG_MEMBER, \ |
|
126 JVMCI_PD_DIAGNOSTIC_FLAG_MEMBER, \ |
|
127 JVMCI_EXPERIMENTAL_FLAG_MEMBER, \ |
|
128 JVMCI_NOTPRODUCT_FLAG_MEMBER, \ |
|
129 IGNORE_RANGE, \ |
|
130 IGNORE_CONSTRAINT, \ |
|
131 IGNORE_WRITEABLE) |
|
132 #endif // INCLUDE_JVMCI |
|
133 #ifdef COMPILER1 |
|
134 C1_FLAGS(C1_DEVELOP_FLAG_MEMBER, \ |
|
135 C1_PD_DEVELOP_FLAG_MEMBER, \ |
|
136 C1_PRODUCT_FLAG_MEMBER, \ |
|
137 C1_PD_PRODUCT_FLAG_MEMBER, \ |
|
138 C1_DIAGNOSTIC_FLAG_MEMBER, \ |
|
139 C1_PD_DIAGNOSTIC_FLAG_MEMBER, \ |
|
140 C1_NOTPRODUCT_FLAG_MEMBER, \ |
|
141 IGNORE_RANGE, \ |
|
142 IGNORE_CONSTRAINT, \ |
|
143 IGNORE_WRITEABLE) |
|
144 #endif |
|
145 #ifdef COMPILER2 |
|
146 C2_FLAGS(C2_DEVELOP_FLAG_MEMBER, \ |
|
147 C2_PD_DEVELOP_FLAG_MEMBER, \ |
|
148 C2_PRODUCT_FLAG_MEMBER, \ |
|
149 C2_PD_PRODUCT_FLAG_MEMBER, \ |
|
150 C2_DIAGNOSTIC_FLAG_MEMBER, \ |
|
151 C2_PD_DIAGNOSTIC_FLAG_MEMBER, \ |
|
152 C2_EXPERIMENTAL_FLAG_MEMBER, \ |
|
153 C2_NOTPRODUCT_FLAG_MEMBER, \ |
|
154 IGNORE_RANGE, \ |
|
155 IGNORE_CONSTRAINT, \ |
|
156 IGNORE_WRITEABLE) |
|
157 #endif |
|
158 ARCH_FLAGS(ARCH_DEVELOP_FLAG_MEMBER, \ |
|
159 ARCH_PRODUCT_FLAG_MEMBER, \ |
|
160 ARCH_DIAGNOSTIC_FLAG_MEMBER, \ |
|
161 ARCH_EXPERIMENTAL_FLAG_MEMBER, \ |
|
162 ARCH_NOTPRODUCT_FLAG_MEMBER, \ |
|
163 IGNORE_RANGE, \ |
|
164 IGNORE_CONSTRAINT, \ |
|
165 IGNORE_WRITEABLE) |
|
166 JVMFLAGS_EXT |
|
167 NUM_JVMFlags |
|
168 } JVMFlags; |
|
169 |
|
170 // Construct enum of Flag_<cmdline-arg>_<type> constants. |
|
171 |
|
172 #define FLAG_MEMBER_WITH_TYPE(flag,type) Flag_##flag##_##type |
|
173 |
|
174 #define RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
175 #define RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
176 #define RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
177 #define RUNTIME_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
178 #define RUNTIME_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
179 #define RUNTIME_MANAGEABLE_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
180 #define RUNTIME_PRODUCT_RW_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
181 #define RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
182 #define RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
183 #define RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
184 |
|
185 #define JVMCI_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
186 #define JVMCI_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
187 #define JVMCI_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
188 #define JVMCI_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
189 #define JVMCI_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
190 #define JVMCI_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
191 #define JVMCI_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
192 #define JVMCI_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
193 |
|
194 #define C1_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
195 #define C1_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
196 #define C1_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
197 #define C1_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
198 #define C1_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
199 #define C1_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
200 #define C1_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
201 |
|
202 #ifdef _LP64 |
|
203 #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
204 #else |
|
205 #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */ |
|
206 #endif // _LP64 |
|
207 |
|
208 #define C2_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
209 #define C2_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
210 #define C2_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
211 #define C2_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
212 #define C2_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
213 #define C2_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
214 #define C2_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
215 #define C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
216 |
|
217 #define ARCH_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
218 #define ARCH_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
219 #define ARCH_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
220 #define ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
221 #define ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type), |
|
222 |
|
223 typedef enum { |
|
224 VM_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
225 RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
226 RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
227 RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
228 RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
229 RUNTIME_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
230 RUNTIME_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE, |
|
231 RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
232 RUNTIME_MANAGEABLE_FLAG_MEMBER_WITH_TYPE, |
|
233 RUNTIME_PRODUCT_RW_FLAG_MEMBER_WITH_TYPE, |
|
234 RUNTIME_LP64_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
235 IGNORE_RANGE, |
|
236 IGNORE_CONSTRAINT, |
|
237 IGNORE_WRITEABLE) |
|
238 |
|
239 RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
240 RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
241 RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
242 RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
243 RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
244 RUNTIME_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
245 RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
246 IGNORE_RANGE, |
|
247 IGNORE_CONSTRAINT, |
|
248 IGNORE_WRITEABLE) |
|
249 #if INCLUDE_JVMCI |
|
250 JVMCI_FLAGS(JVMCI_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
251 JVMCI_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
252 JVMCI_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
253 JVMCI_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
254 JVMCI_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
255 JVMCI_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
256 JVMCI_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE, |
|
257 JVMCI_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
258 IGNORE_RANGE, |
|
259 IGNORE_CONSTRAINT, |
|
260 IGNORE_WRITEABLE) |
|
261 #endif // INCLUDE_JVMCI |
|
262 #ifdef COMPILER1 |
|
263 C1_FLAGS(C1_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
264 C1_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
265 C1_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
266 C1_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
267 C1_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
268 C1_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
269 C1_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
270 IGNORE_RANGE, |
|
271 IGNORE_CONSTRAINT, |
|
272 IGNORE_WRITEABLE) |
|
273 #endif |
|
274 #ifdef COMPILER2 |
|
275 C2_FLAGS(C2_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
276 C2_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
277 C2_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
278 C2_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
279 C2_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
280 C2_PD_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
281 C2_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE, |
|
282 C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
283 IGNORE_RANGE, |
|
284 IGNORE_CONSTRAINT, |
|
285 IGNORE_WRITEABLE) |
|
286 #endif |
|
287 ARCH_FLAGS(ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE, |
|
288 ARCH_PRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
289 ARCH_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE, |
|
290 ARCH_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE, |
|
291 ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE, |
|
292 IGNORE_RANGE, |
|
293 IGNORE_CONSTRAINT, |
|
294 IGNORE_WRITEABLE) |
|
295 JVMFLAGSWITHTYPE_EXT |
|
296 NUM_JVMFlagsWithType |
|
297 } JVMFlagsWithType; |
|
298 |
|
299 #define FLAG_IS_DEFAULT(name) (JVMFlagEx::is_default(FLAG_MEMBER(name))) |
|
300 #define FLAG_IS_ERGO(name) (JVMFlagEx::is_ergo(FLAG_MEMBER(name))) |
|
301 #define FLAG_IS_CMDLINE(name) (JVMFlagEx::is_cmdline(FLAG_MEMBER(name))) |
|
302 |
74 |
303 #define FLAG_SET_DEFAULT(name, value) ((name) = (value)) |
75 #define FLAG_SET_DEFAULT(name, value) ((name) = (value)) |
304 |
76 |
305 #define FLAG_SET_CMDLINE(type, name, value) (JVMFlagEx::setOnCmdLine(FLAG_MEMBER_WITH_TYPE(name, type)), \ |
77 #define FLAG_SET_CMDLINE(type, name, value) (JVMFlagEx::setOnCmdLine(FLAG_MEMBER_ENUM(name)), \ |
306 JVMFlagEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name, type), (type)(value), JVMFlag::COMMAND_LINE)) |
78 JVMFlagEx::type##AtPut(FLAG_MEMBER_ENUM(name), (type)(value), JVMFlag::COMMAND_LINE)) |
307 #define FLAG_SET_ERGO(type, name, value) (JVMFlagEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name, type), (type)(value), JVMFlag::ERGONOMIC)) |
79 #define FLAG_SET_ERGO(type, name, value) (JVMFlagEx::type##AtPut(FLAG_MEMBER_ENUM(name), (type)(value), JVMFlag::ERGONOMIC)) |
308 #define FLAG_SET_MGMT(type, name, value) (JVMFlagEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name, type), (type)(value), JVMFlag::MANAGEMENT)) |
80 #define FLAG_SET_MGMT(type, name, value) (JVMFlagEx::type##AtPut(FLAG_MEMBER_ENUM(name), (type)(value), JVMFlag::MANAGEMENT)) |
309 |
81 |
310 #define FLAG_SET_ERGO_IF_DEFAULT(type, name, value) \ |
82 #define FLAG_SET_ERGO_IF_DEFAULT(type, name, value) \ |
311 do { \ |
83 do { \ |
312 if (FLAG_IS_DEFAULT(name)) { \ |
84 if (FLAG_IS_DEFAULT(name)) { \ |
313 FLAG_SET_ERGO(type, name, value); \ |
85 FLAG_SET_ERGO(type, name, value); \ |