< prev index next >

src/hotspot/share/runtime/globals.cpp

Print this page
rev 48545 : Value-based classes (vbc) / Oop value test via metadata ptr
   1 /*
   2  * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   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
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


  69 RUNTIME_OS_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
  70                  MATERIALIZE_PD_DEVELOPER_FLAG, \
  71                  MATERIALIZE_PRODUCT_FLAG, \
  72                  MATERIALIZE_PD_PRODUCT_FLAG, \
  73                  MATERIALIZE_DIAGNOSTIC_FLAG, \
  74                  MATERIALIZE_PD_DIAGNOSTIC_FLAG, \
  75                  MATERIALIZE_NOTPRODUCT_FLAG, \
  76                  IGNORE_RANGE, \
  77                  IGNORE_CONSTRAINT, \
  78                  IGNORE_WRITEABLE)
  79 
  80 ARCH_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
  81            MATERIALIZE_PRODUCT_FLAG, \
  82            MATERIALIZE_DIAGNOSTIC_FLAG, \
  83            MATERIALIZE_EXPERIMENTAL_FLAG, \
  84            MATERIALIZE_NOTPRODUCT_FLAG, \
  85            IGNORE_RANGE, \
  86            IGNORE_CONSTRAINT, \
  87            IGNORE_WRITEABLE)
  88 




  89 MATERIALIZE_FLAGS_EXT
  90 
  91 #define DEFAULT_RANGE_STR_CHUNK_SIZE 64
  92 static char* create_range_str(const char *fmt, ...) {
  93   static size_t string_length = DEFAULT_RANGE_STR_CHUNK_SIZE;
  94   static char* range_string = NEW_C_HEAP_ARRAY(char, string_length, mtLogging);
  95 
  96   int size_needed = 0;
  97   do {
  98     va_list args;
  99     va_start(args, fmt);
 100     size_needed = jio_vsnprintf(range_string, string_length, fmt, args);
 101     va_end(args);
 102 
 103     if (size_needed < 0) {
 104       string_length += DEFAULT_RANGE_STR_CHUNK_SIZE;
 105       range_string = REALLOC_C_HEAP_ARRAY(char, range_string, string_length, mtLogging);
 106       guarantee(range_string != NULL, "create_range_str string should not be NULL");
 107     }
 108   } while (size_needed < 0);


 695     case Flag::ERR_OTHER: return "ERR_OTHER";
 696     case Flag::SUCCESS: return "SUCCESS";
 697     default: ShouldNotReachHere(); return "NULL";
 698   }
 699 }
 700 
 701 // 4991491 do not "optimize out" the was_set false values: omitting them
 702 // tickles a Microsoft compiler bug causing flagTable to be malformed
 703 
 704 #define RUNTIME_PRODUCT_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT) },
 705 #define RUNTIME_PD_PRODUCT_FLAG_STRUCT(  type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 706 #define RUNTIME_DIAGNOSTIC_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DIAGNOSTIC) },
 707 #define RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT(type, name,       doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 708 #define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_EXPERIMENTAL) },
 709 #define RUNTIME_MANAGEABLE_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_MANAGEABLE) },
 710 #define RUNTIME_PRODUCT_RW_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT | Flag::KIND_READ_WRITE) },
 711 #define RUNTIME_DEVELOP_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP) },
 712 #define RUNTIME_PD_DEVELOP_FLAG_STRUCT(  type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 713 #define RUNTIME_NOTPRODUCT_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_NOT_PRODUCT) },
 714 




 715 #define JVMCI_PRODUCT_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_PRODUCT) },
 716 #define JVMCI_PD_PRODUCT_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 717 #define JVMCI_DIAGNOSTIC_FLAG_STRUCT(    type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DIAGNOSTIC) },
 718 #define JVMCI_PD_DIAGNOSTIC_FLAG_STRUCT( type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 719 #define JVMCI_EXPERIMENTAL_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_EXPERIMENTAL) },
 720 #define JVMCI_DEVELOP_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP) },
 721 #define JVMCI_PD_DEVELOP_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 722 #define JVMCI_NOTPRODUCT_FLAG_STRUCT(    type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_NOT_PRODUCT) },
 723 
 724 #ifdef _LP64
 725 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_LP64_PRODUCT) },
 726 #else
 727 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) /* flag is constant */
 728 #endif // _LP64
 729 
 730 #define C1_PRODUCT_FLAG_STRUCT(          type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_PRODUCT) },
 731 #define C1_PD_PRODUCT_FLAG_STRUCT(       type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 732 #define C1_DIAGNOSTIC_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DIAGNOSTIC) },
 733 #define C1_PD_DIAGNOSTIC_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 734 #define C1_DEVELOP_FLAG_STRUCT(          type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP) },


 773                   RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT, \
 774                   RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
 775                   IGNORE_RANGE, \
 776                   IGNORE_CONSTRAINT, \
 777                   IGNORE_WRITEABLE)
 778 #if INCLUDE_ALL_GCS
 779  G1_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
 780           RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
 781           RUNTIME_PRODUCT_FLAG_STRUCT, \
 782           RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
 783           RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \
 784           RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT, \
 785           RUNTIME_EXPERIMENTAL_FLAG_STRUCT, \
 786           RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
 787           RUNTIME_MANAGEABLE_FLAG_STRUCT, \
 788           RUNTIME_PRODUCT_RW_FLAG_STRUCT, \
 789           IGNORE_RANGE, \
 790           IGNORE_CONSTRAINT, \
 791           IGNORE_WRITEABLE)
 792 #endif // INCLUDE_ALL_GCS



 793 #if INCLUDE_JVMCI
 794  JVMCI_FLAGS(JVMCI_DEVELOP_FLAG_STRUCT, \
 795              JVMCI_PD_DEVELOP_FLAG_STRUCT, \
 796              JVMCI_PRODUCT_FLAG_STRUCT, \
 797              JVMCI_PD_PRODUCT_FLAG_STRUCT, \
 798              JVMCI_DIAGNOSTIC_FLAG_STRUCT, \
 799              JVMCI_PD_DIAGNOSTIC_FLAG_STRUCT, \
 800              JVMCI_EXPERIMENTAL_FLAG_STRUCT, \
 801              JVMCI_NOTPRODUCT_FLAG_STRUCT, \
 802              IGNORE_RANGE, \
 803              IGNORE_CONSTRAINT, \
 804              IGNORE_WRITEABLE)
 805 #endif // INCLUDE_JVMCI
 806 #ifdef COMPILER1
 807  C1_FLAGS(C1_DEVELOP_FLAG_STRUCT, \
 808           C1_PD_DEVELOP_FLAG_STRUCT, \
 809           C1_PRODUCT_FLAG_STRUCT, \
 810           C1_PD_PRODUCT_FLAG_STRUCT, \
 811           C1_DIAGNOSTIC_FLAG_STRUCT, \
 812           C1_PD_DIAGNOSTIC_FLAG_STRUCT, \


   1 /*
   2  * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   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
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


  69 RUNTIME_OS_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
  70                  MATERIALIZE_PD_DEVELOPER_FLAG, \
  71                  MATERIALIZE_PRODUCT_FLAG, \
  72                  MATERIALIZE_PD_PRODUCT_FLAG, \
  73                  MATERIALIZE_DIAGNOSTIC_FLAG, \
  74                  MATERIALIZE_PD_DIAGNOSTIC_FLAG, \
  75                  MATERIALIZE_NOTPRODUCT_FLAG, \
  76                  IGNORE_RANGE, \
  77                  IGNORE_CONSTRAINT, \
  78                  IGNORE_WRITEABLE)
  79 
  80 ARCH_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
  81            MATERIALIZE_PRODUCT_FLAG, \
  82            MATERIALIZE_DIAGNOSTIC_FLAG, \
  83            MATERIALIZE_EXPERIMENTAL_FLAG, \
  84            MATERIALIZE_NOTPRODUCT_FLAG, \
  85            IGNORE_RANGE, \
  86            IGNORE_CONSTRAINT, \
  87            IGNORE_WRITEABLE)
  88 
  89 #if INCLUDE_VBC
  90 VALUE_BASED_CLASS_FLAGS(MATERIALIZE_PRODUCT_FLAG)
  91 #endif
  92 
  93 MATERIALIZE_FLAGS_EXT
  94 
  95 #define DEFAULT_RANGE_STR_CHUNK_SIZE 64
  96 static char* create_range_str(const char *fmt, ...) {
  97   static size_t string_length = DEFAULT_RANGE_STR_CHUNK_SIZE;
  98   static char* range_string = NEW_C_HEAP_ARRAY(char, string_length, mtLogging);
  99 
 100   int size_needed = 0;
 101   do {
 102     va_list args;
 103     va_start(args, fmt);
 104     size_needed = jio_vsnprintf(range_string, string_length, fmt, args);
 105     va_end(args);
 106 
 107     if (size_needed < 0) {
 108       string_length += DEFAULT_RANGE_STR_CHUNK_SIZE;
 109       range_string = REALLOC_C_HEAP_ARRAY(char, range_string, string_length, mtLogging);
 110       guarantee(range_string != NULL, "create_range_str string should not be NULL");
 111     }
 112   } while (size_needed < 0);


 699     case Flag::ERR_OTHER: return "ERR_OTHER";
 700     case Flag::SUCCESS: return "SUCCESS";
 701     default: ShouldNotReachHere(); return "NULL";
 702   }
 703 }
 704 
 705 // 4991491 do not "optimize out" the was_set false values: omitting them
 706 // tickles a Microsoft compiler bug causing flagTable to be malformed
 707 
 708 #define RUNTIME_PRODUCT_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT) },
 709 #define RUNTIME_PD_PRODUCT_FLAG_STRUCT(  type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 710 #define RUNTIME_DIAGNOSTIC_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DIAGNOSTIC) },
 711 #define RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT(type, name,       doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 712 #define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_EXPERIMENTAL) },
 713 #define RUNTIME_MANAGEABLE_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_MANAGEABLE) },
 714 #define RUNTIME_PRODUCT_RW_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT | Flag::KIND_READ_WRITE) },
 715 #define RUNTIME_DEVELOP_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP) },
 716 #define RUNTIME_PD_DEVELOP_FLAG_STRUCT(  type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 717 #define RUNTIME_NOTPRODUCT_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_NOT_PRODUCT) },
 718 
 719 #if INCLUDE_VBC
 720 #define VBC_PRODUCT_FLAG_STRUCT(         type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT) },
 721 #endif
 722 
 723 #define JVMCI_PRODUCT_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_PRODUCT) },
 724 #define JVMCI_PD_PRODUCT_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 725 #define JVMCI_DIAGNOSTIC_FLAG_STRUCT(    type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DIAGNOSTIC) },
 726 #define JVMCI_PD_DIAGNOSTIC_FLAG_STRUCT( type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 727 #define JVMCI_EXPERIMENTAL_FLAG_STRUCT(  type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_EXPERIMENTAL) },
 728 #define JVMCI_DEVELOP_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP) },
 729 #define JVMCI_PD_DEVELOP_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 730 #define JVMCI_NOTPRODUCT_FLAG_STRUCT(    type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_NOT_PRODUCT) },
 731 
 732 #ifdef _LP64
 733 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_LP64_PRODUCT) },
 734 #else
 735 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) /* flag is constant */
 736 #endif // _LP64
 737 
 738 #define C1_PRODUCT_FLAG_STRUCT(          type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_PRODUCT) },
 739 #define C1_PD_PRODUCT_FLAG_STRUCT(       type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 740 #define C1_DIAGNOSTIC_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DIAGNOSTIC) },
 741 #define C1_PD_DIAGNOSTIC_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 742 #define C1_DEVELOP_FLAG_STRUCT(          type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP) },


 781                   RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT, \
 782                   RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
 783                   IGNORE_RANGE, \
 784                   IGNORE_CONSTRAINT, \
 785                   IGNORE_WRITEABLE)
 786 #if INCLUDE_ALL_GCS
 787  G1_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
 788           RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
 789           RUNTIME_PRODUCT_FLAG_STRUCT, \
 790           RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
 791           RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \
 792           RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT, \
 793           RUNTIME_EXPERIMENTAL_FLAG_STRUCT, \
 794           RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
 795           RUNTIME_MANAGEABLE_FLAG_STRUCT, \
 796           RUNTIME_PRODUCT_RW_FLAG_STRUCT, \
 797           IGNORE_RANGE, \
 798           IGNORE_CONSTRAINT, \
 799           IGNORE_WRITEABLE)
 800 #endif // INCLUDE_ALL_GCS
 801 #if INCLUDE_VBC
 802   VALUE_BASED_CLASS_FLAGS(VBC_PRODUCT_FLAG_STRUCT)
 803 #endif
 804 #if INCLUDE_JVMCI
 805  JVMCI_FLAGS(JVMCI_DEVELOP_FLAG_STRUCT, \
 806              JVMCI_PD_DEVELOP_FLAG_STRUCT, \
 807              JVMCI_PRODUCT_FLAG_STRUCT, \
 808              JVMCI_PD_PRODUCT_FLAG_STRUCT, \
 809              JVMCI_DIAGNOSTIC_FLAG_STRUCT, \
 810              JVMCI_PD_DIAGNOSTIC_FLAG_STRUCT, \
 811              JVMCI_EXPERIMENTAL_FLAG_STRUCT, \
 812              JVMCI_NOTPRODUCT_FLAG_STRUCT, \
 813              IGNORE_RANGE, \
 814              IGNORE_CONSTRAINT, \
 815              IGNORE_WRITEABLE)
 816 #endif // INCLUDE_JVMCI
 817 #ifdef COMPILER1
 818  C1_FLAGS(C1_DEVELOP_FLAG_STRUCT, \
 819           C1_PD_DEVELOP_FLAG_STRUCT, \
 820           C1_PRODUCT_FLAG_STRUCT, \
 821           C1_PD_PRODUCT_FLAG_STRUCT, \
 822           C1_DIAGNOSTIC_FLAG_STRUCT, \
 823           C1_PD_DIAGNOSTIC_FLAG_STRUCT, \


< prev index next >