hotspot/src/share/vm/runtime/commandLineFlagConstraintList.cpp
changeset 38273 2634194d7555
parent 37491 edf4cc53f5a3
child 39117 59fa99a45873
equal deleted inserted replaced
38267:29feb145a316 38273:2634194d7555
   215 #define EMIT_CONSTRAINT_PD_DEVELOPER_FLAG(type, name, doc)        ); emit_constraint_##type(#name
   215 #define EMIT_CONSTRAINT_PD_DEVELOPER_FLAG(type, name, doc)        ); emit_constraint_##type(#name
   216 #define EMIT_CONSTRAINT_NOTPRODUCT_FLAG(type, name, value, doc)   ); emit_constraint_##type(#name
   216 #define EMIT_CONSTRAINT_NOTPRODUCT_FLAG(type, name, value, doc)   ); emit_constraint_##type(#name
   217 #define EMIT_CONSTRAINT_LP64_PRODUCT_FLAG(type, name, value, doc) ); emit_constraint_##type(#name
   217 #define EMIT_CONSTRAINT_LP64_PRODUCT_FLAG(type, name, value, doc) ); emit_constraint_##type(#name
   218 
   218 
   219 // Generate func argument to pass into emit_constraint_xxx functions
   219 // Generate func argument to pass into emit_constraint_xxx functions
   220 #define EMIT_CONSTRAINT_CHECK(func, type)                               , func, CommandLineFlagConstraint::type
   220 #define EMIT_CONSTRAINT_CHECK(func, type)                         , func, CommandLineFlagConstraint::type
   221 
   221 
   222 // the "name" argument must be a string literal
   222 // the "name" argument must be a string literal
   223 #define INITIAL_CONSTRAINTS_SIZE 72
   223 #define INITIAL_CONSTRAINTS_SIZE 72
   224 GrowableArray<CommandLineFlagConstraint*>* CommandLineFlagConstraintList::_constraints = NULL;
   224 GrowableArray<CommandLineFlagConstraint*>* CommandLineFlagConstraintList::_constraints = NULL;
   225 CommandLineFlagConstraint::ConstraintType CommandLineFlagConstraintList::_validating_type = CommandLineFlagConstraint::AtParse;
   225 CommandLineFlagConstraint::ConstraintType CommandLineFlagConstraintList::_validating_type = CommandLineFlagConstraint::AtParse;
   237                                         EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   237                                         EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   238                                         EMIT_CONSTRAINT_MANAGEABLE_FLAG,
   238                                         EMIT_CONSTRAINT_MANAGEABLE_FLAG,
   239                                         EMIT_CONSTRAINT_PRODUCT_RW_FLAG,
   239                                         EMIT_CONSTRAINT_PRODUCT_RW_FLAG,
   240                                         EMIT_CONSTRAINT_LP64_PRODUCT_FLAG,
   240                                         EMIT_CONSTRAINT_LP64_PRODUCT_FLAG,
   241                                         IGNORE_RANGE,
   241                                         IGNORE_RANGE,
   242                                         EMIT_CONSTRAINT_CHECK));
   242                                         EMIT_CONSTRAINT_CHECK,
       
   243                                         IGNORE_WRITEABLE));
   243 
   244 
   244   EMIT_CONSTRAINTS_FOR_GLOBALS_EXT
   245   EMIT_CONSTRAINTS_FOR_GLOBALS_EXT
   245 
   246 
   246   emit_constraint_no(NULL ARCH_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG,
   247   emit_constraint_no(NULL ARCH_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG,
   247                                      EMIT_CONSTRAINT_PRODUCT_FLAG,
   248                                      EMIT_CONSTRAINT_PRODUCT_FLAG,
   248                                      EMIT_CONSTRAINT_DIAGNOSTIC_FLAG,
   249                                      EMIT_CONSTRAINT_DIAGNOSTIC_FLAG,
   249                                      EMIT_CONSTRAINT_EXPERIMENTAL_FLAG,
   250                                      EMIT_CONSTRAINT_EXPERIMENTAL_FLAG,
   250                                      EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   251                                      EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   251                                      IGNORE_RANGE,
   252                                      IGNORE_RANGE,
   252                                      EMIT_CONSTRAINT_CHECK));
   253                                      EMIT_CONSTRAINT_CHECK,
       
   254                                      IGNORE_WRITEABLE));
   253 
   255 
   254 
   256 
   255 #ifdef COMPILER1
   257 #ifdef COMPILER1
   256   emit_constraint_no(NULL C1_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG,
   258   emit_constraint_no(NULL C1_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG,
   257                                    EMIT_CONSTRAINT_PD_DEVELOPER_FLAG,
   259                                    EMIT_CONSTRAINT_PD_DEVELOPER_FLAG,
   258                                    EMIT_CONSTRAINT_PRODUCT_FLAG,
   260                                    EMIT_CONSTRAINT_PRODUCT_FLAG,
   259                                    EMIT_CONSTRAINT_PD_PRODUCT_FLAG,
   261                                    EMIT_CONSTRAINT_PD_PRODUCT_FLAG,
   260                                    EMIT_CONSTRAINT_DIAGNOSTIC_FLAG,
   262                                    EMIT_CONSTRAINT_DIAGNOSTIC_FLAG,
   261                                    EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   263                                    EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   262                                    IGNORE_RANGE,
   264                                    IGNORE_RANGE,
   263                                    EMIT_CONSTRAINT_CHECK));
   265                                    EMIT_CONSTRAINT_CHECK,
       
   266                                    IGNORE_WRITEABLE));
   264 #endif // COMPILER1
   267 #endif // COMPILER1
   265 
   268 
   266 #ifdef COMPILER2
   269 #ifdef COMPILER2
   267   emit_constraint_no(NULL C2_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG,
   270   emit_constraint_no(NULL C2_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG,
   268                                    EMIT_CONSTRAINT_PD_DEVELOPER_FLAG,
   271                                    EMIT_CONSTRAINT_PD_DEVELOPER_FLAG,
   270                                    EMIT_CONSTRAINT_PD_PRODUCT_FLAG,
   273                                    EMIT_CONSTRAINT_PD_PRODUCT_FLAG,
   271                                    EMIT_CONSTRAINT_DIAGNOSTIC_FLAG,
   274                                    EMIT_CONSTRAINT_DIAGNOSTIC_FLAG,
   272                                    EMIT_CONSTRAINT_EXPERIMENTAL_FLAG,
   275                                    EMIT_CONSTRAINT_EXPERIMENTAL_FLAG,
   273                                    EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   276                                    EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   274                                    IGNORE_RANGE,
   277                                    IGNORE_RANGE,
   275                                    EMIT_CONSTRAINT_CHECK));
   278                                    EMIT_CONSTRAINT_CHECK,
       
   279                                    IGNORE_WRITEABLE));
   276 #endif // COMPILER2
   280 #endif // COMPILER2
   277 
   281 
   278 #if INCLUDE_ALL_GCS
   282 #if INCLUDE_ALL_GCS
   279   emit_constraint_no(NULL G1_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG,
   283   emit_constraint_no(NULL G1_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG,
   280                                    EMIT_CONSTRAINT_PD_DEVELOPER_FLAG,
   284                                    EMIT_CONSTRAINT_PD_DEVELOPER_FLAG,
   284                                    EMIT_CONSTRAINT_EXPERIMENTAL_FLAG,
   288                                    EMIT_CONSTRAINT_EXPERIMENTAL_FLAG,
   285                                    EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   289                                    EMIT_CONSTRAINT_NOTPRODUCT_FLAG,
   286                                    EMIT_CONSTRAINT_MANAGEABLE_FLAG,
   290                                    EMIT_CONSTRAINT_MANAGEABLE_FLAG,
   287                                    EMIT_CONSTRAINT_PRODUCT_RW_FLAG,
   291                                    EMIT_CONSTRAINT_PRODUCT_RW_FLAG,
   288                                    IGNORE_RANGE,
   292                                    IGNORE_RANGE,
   289                                    EMIT_CONSTRAINT_CHECK));
   293                                    EMIT_CONSTRAINT_CHECK,
       
   294                                    IGNORE_WRITEABLE));
   290 #endif // INCLUDE_ALL_GCS
   295 #endif // INCLUDE_ALL_GCS
   291 }
   296 }
   292 
   297 
   293 CommandLineFlagConstraint* CommandLineFlagConstraintList::find(const char* name) {
   298 CommandLineFlagConstraint* CommandLineFlagConstraintList::find(const char* name) {
   294   CommandLineFlagConstraint* found = NULL;
   299   CommandLineFlagConstraint* found = NULL;