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