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, \
|