hotspot/src/share/vm/jvmci/jvmci_globals.cpp
changeset 38273 2634194d7555
parent 36313 e7eff81d7f1d
child 39117 59fa99a45873
equal deleted inserted replaced
38267:29feb145a316 38273:2634194d7555
     1 /*
     1 /*
     2  * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    33             MATERIALIZE_PD_PRODUCT_FLAG, \
    33             MATERIALIZE_PD_PRODUCT_FLAG, \
    34             MATERIALIZE_DIAGNOSTIC_FLAG, \
    34             MATERIALIZE_DIAGNOSTIC_FLAG, \
    35             MATERIALIZE_EXPERIMENTAL_FLAG, \
    35             MATERIALIZE_EXPERIMENTAL_FLAG, \
    36             MATERIALIZE_NOTPRODUCT_FLAG,
    36             MATERIALIZE_NOTPRODUCT_FLAG,
    37             IGNORE_RANGE, \
    37             IGNORE_RANGE, \
    38             IGNORE_CONSTRAINT)
    38             IGNORE_CONSTRAINT, \
       
    39             IGNORE_WRITEABLE)
    39 
    40 
    40 #define JVMCI_IGNORE_FLAG_FOUR_PARAM(type, name, value, doc)
    41 #define JVMCI_IGNORE_FLAG_FOUR_PARAM(type, name, value, doc)
    41 #define JVMCI_IGNORE_FLAG_THREE_PARAM(type, name, doc)
    42 #define JVMCI_IGNORE_FLAG_THREE_PARAM(type, name, doc)
    42 
    43 
    43 // Return true if jvmci flags are consistent.
    44 // Return true if jvmci flags are consistent.
    89                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
    90                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
    90                 JVMCI_DIAGNOSTIC_FLAG_VALUE_CHANGED_CHECK_CODE, \
    91                 JVMCI_DIAGNOSTIC_FLAG_VALUE_CHANGED_CHECK_CODE, \
    91                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
    92                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
    92                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
    93                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
    93                 IGNORE_RANGE, \
    94                 IGNORE_RANGE, \
    94                 IGNORE_CONSTRAINT)
    95                 IGNORE_CONSTRAINT, \
       
    96                 IGNORE_WRITEABLE)
    95   }
    97   }
    96 
    98 
    97   // Check consistency of experimental flags if UnlockExperimentalVMOptions is
    99   // Check consistency of experimental flags if UnlockExperimentalVMOptions is
    98   // true or not default.
   100   // true or not default.
    99   if (UnlockExperimentalVMOptions || !FLAG_IS_DEFAULT(UnlockExperimentalVMOptions)) {
   101   if (UnlockExperimentalVMOptions || !FLAG_IS_DEFAULT(UnlockExperimentalVMOptions)) {
   103                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
   105                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
   104                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   106                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   105                 JVMCI_EXPERIMENTAL_FLAG_VALUE_CHANGED_CHECK_CODE, \
   107                 JVMCI_EXPERIMENTAL_FLAG_VALUE_CHANGED_CHECK_CODE, \
   106                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   108                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   107                 IGNORE_RANGE, \
   109                 IGNORE_RANGE, \
   108                 IGNORE_CONSTRAINT)
   110                 IGNORE_CONSTRAINT, \
       
   111                 IGNORE_WRITEABLE)
   109   }
   112   }
   110 
   113 
   111 #ifndef PRODUCT
   114 #ifndef PRODUCT
   112 #define JVMCI_DEVELOP_FLAG_VALUE_CHANGED_CHECK_CODE(type, name, value, doc)        EMIT_FLAG_VALUE_CHANGED_CHECK_CODE(name)
   115 #define JVMCI_DEVELOP_FLAG_VALUE_CHANGED_CHECK_CODE(type, name, value, doc)        EMIT_FLAG_VALUE_CHANGED_CHECK_CODE(name)
   113 #define JVMCI_PD_DEVELOP_FLAG_VALUE_CHANGED_CHECK_CODE(type, name, doc)            EMIT_FLAG_VALUE_CHANGED_CHECK_CODE(name)
   116 #define JVMCI_PD_DEVELOP_FLAG_VALUE_CHANGED_CHECK_CODE(type, name, doc)            EMIT_FLAG_VALUE_CHANGED_CHECK_CODE(name)
   127               JVMCI_PD_PRODUCT_FLAG_VALUE_CHANGED_CHECK_CODE, \
   130               JVMCI_PD_PRODUCT_FLAG_VALUE_CHANGED_CHECK_CODE, \
   128               JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   131               JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   129               JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   132               JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   130               JVMCI_NOTPRODUCT_FLAG_VALUE_CHANGED_CHECK_CODE, \
   133               JVMCI_NOTPRODUCT_FLAG_VALUE_CHANGED_CHECK_CODE, \
   131               IGNORE_RANGE, \
   134               IGNORE_RANGE, \
   132               IGNORE_CONSTRAINT)
   135               IGNORE_CONSTRAINT, \
       
   136               IGNORE_WRITEABLE)
   133 
   137 
   134 #undef EMIT_FLAG_VALUE_CHANGED_CHECK_CODE
   138 #undef EMIT_FLAG_VALUE_CHANGED_CHECK_CODE
   135 #undef JVMCI_DEVELOP_FLAG_VALUE_CHANGED_CHECK_CODE
   139 #undef JVMCI_DEVELOP_FLAG_VALUE_CHANGED_CHECK_CODE
   136 #undef JVMCI_PD_DEVELOP_FLAG_VALUE_CHANGED_CHECK_CODE
   140 #undef JVMCI_PD_DEVELOP_FLAG_VALUE_CHANGED_CHECK_CODE
   137 #undef JVMCI_NOTPRODUCT_FLAG_VALUE_CHANGED_CHECK_CODE
   141 #undef JVMCI_NOTPRODUCT_FLAG_VALUE_CHANGED_CHECK_CODE
   165                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
   169                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
   166                 JVMCI_DIAGNOSTIC_FLAG_CHECK_PRINT_ERR_MSG_CODE, \
   170                 JVMCI_DIAGNOSTIC_FLAG_CHECK_PRINT_ERR_MSG_CODE, \
   167                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   171                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   168                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   172                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   169                 IGNORE_RANGE, \
   173                 IGNORE_RANGE, \
   170                 IGNORE_CONSTRAINT)
   174                 IGNORE_CONSTRAINT, \
       
   175                 IGNORE_WRITEABLE)
   171   }
   176   }
   172 
   177 
   173   if (UnlockExperimentalVMOptions || !FLAG_IS_DEFAULT(UnlockExperimentalVMOptions)) {
   178   if (UnlockExperimentalVMOptions || !FLAG_IS_DEFAULT(UnlockExperimentalVMOptions)) {
   174     JVMCI_FLAGS(JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   179     JVMCI_FLAGS(JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   175                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
   180                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
   177                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
   182                 JVMCI_IGNORE_FLAG_THREE_PARAM, \
   178                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   183                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   179                 JVMCI_EXPERIMENTAL_FLAG_CHECK_PRINT_ERR_MSG_CODE, \
   184                 JVMCI_EXPERIMENTAL_FLAG_CHECK_PRINT_ERR_MSG_CODE, \
   180                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   185                 JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   181                 IGNORE_RANGE, \
   186                 IGNORE_RANGE, \
   182                 IGNORE_CONSTRAINT)
   187                 IGNORE_CONSTRAINT, \
       
   188                 IGNORE_WRITEABLE)
   183   }
   189   }
   184 
   190 
   185 #ifndef PRODUCT
   191 #ifndef PRODUCT
   186 #define JVMCI_DEVELOP_FLAG_CHECK_PRINT_ERR_MSG_CODE(type, name, value, doc)        EMIT_CHECK_PRINT_ERR_MSG_CODE(name)
   192 #define JVMCI_DEVELOP_FLAG_CHECK_PRINT_ERR_MSG_CODE(type, name, value, doc)        EMIT_CHECK_PRINT_ERR_MSG_CODE(name)
   187 #define JVMCI_PD_DEVELOP_FLAG_CHECK_PRINT_ERR_MSG_CODE(type, name, doc)            EMIT_CHECK_PRINT_ERR_MSG_CODE(name)
   193 #define JVMCI_PD_DEVELOP_FLAG_CHECK_PRINT_ERR_MSG_CODE(type, name, doc)            EMIT_CHECK_PRINT_ERR_MSG_CODE(name)
   201               JVMCI_PD_PRODUCT_FLAG_CHECK_PRINT_ERR_MSG_CODE, \
   207               JVMCI_PD_PRODUCT_FLAG_CHECK_PRINT_ERR_MSG_CODE, \
   202               JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   208               JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   203               JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   209               JVMCI_IGNORE_FLAG_FOUR_PARAM, \
   204               JVMCI_NOTPRODUCT_FLAG_CHECK_PRINT_ERR_MSG_CODE, \
   210               JVMCI_NOTPRODUCT_FLAG_CHECK_PRINT_ERR_MSG_CODE, \
   205               IGNORE_RANGE, \
   211               IGNORE_RANGE, \
   206               IGNORE_CONSTRAINT)
   212               IGNORE_CONSTRAINT, \
       
   213               IGNORE_WRITEABLE)
   207 
   214 
   208 #undef EMIT_CHECK_PRINT_ERR_MSG_CODE
   215 #undef EMIT_CHECK_PRINT_ERR_MSG_CODE
   209 #undef JVMCI_DEVELOP_FLAG_CHECK_PRINT_ERR_MSG_CODE
   216 #undef JVMCI_DEVELOP_FLAG_CHECK_PRINT_ERR_MSG_CODE
   210 #undef JVMCI_PD_DEVELOP_FLAG_CHECK_PRINT_ERR_MSG_CODE
   217 #undef JVMCI_PD_DEVELOP_FLAG_CHECK_PRINT_ERR_MSG_CODE
   211 #undef JVMCI_NOTPRODUCT_FLAG_CHECK_PRINT_ERR_MSG_CODE
   218 #undef JVMCI_NOTPRODUCT_FLAG_CHECK_PRINT_ERR_MSG_CODE