< prev index next >

src/hotspot/share/runtime/globals.cpp

Print this page
rev 47445 : 8171853: Remove Shark compiler


  33 #include "runtime/commandLineFlagWriteableList.hpp"
  34 #include "runtime/commandLineFlagRangeList.hpp"
  35 #include "runtime/os.hpp"
  36 #include "runtime/sharedRuntime.hpp"
  37 #include "trace/tracing.hpp"
  38 #include "utilities/defaultStream.hpp"
  39 #include "utilities/macros.hpp"
  40 #include "utilities/ostream.hpp"
  41 #if INCLUDE_ALL_GCS
  42 #include "gc/g1/g1_globals.hpp"
  43 #endif // INCLUDE_ALL_GCS
  44 #ifdef COMPILER1
  45 #include "c1/c1_globals.hpp"
  46 #endif
  47 #if INCLUDE_JVMCI
  48 #include "jvmci/jvmci_globals.hpp"
  49 #endif
  50 #ifdef COMPILER2
  51 #include "opto/c2_globals.hpp"
  52 #endif
  53 #ifdef SHARK
  54 #include "shark/shark_globals.hpp"
  55 #endif
  56 
  57 RUNTIME_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
  58               MATERIALIZE_PD_DEVELOPER_FLAG, \
  59               MATERIALIZE_PRODUCT_FLAG, \
  60               MATERIALIZE_PD_PRODUCT_FLAG, \
  61               MATERIALIZE_DIAGNOSTIC_FLAG, \
  62               MATERIALIZE_PD_DIAGNOSTIC_FLAG, \
  63               MATERIALIZE_EXPERIMENTAL_FLAG, \
  64               MATERIALIZE_NOTPRODUCT_FLAG, \
  65               MATERIALIZE_MANAGEABLE_FLAG, \
  66               MATERIALIZE_PRODUCT_RW_FLAG, \
  67               MATERIALIZE_LP64_PRODUCT_FLAG, \
  68               IGNORE_RANGE, \
  69               IGNORE_CONSTRAINT, \
  70               IGNORE_WRITEABLE)
  71 
  72 RUNTIME_OS_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
  73                  MATERIALIZE_PD_DEVELOPER_FLAG, \
  74                  MATERIALIZE_PRODUCT_FLAG, \
  75                  MATERIALIZE_PD_PRODUCT_FLAG, \


 561     if (withComments) {
 562       st->print("%s", _doc);
 563     }
 564 #endif
 565 
 566     st->cr();
 567   }
 568 }
 569 
 570 void Flag::print_kind_and_origin(outputStream* st) {
 571   struct Data {
 572     int flag;
 573     const char* name;
 574   };
 575 
 576   Data data[] = {
 577       { KIND_JVMCI, "JVMCI" },
 578       { KIND_C1, "C1" },
 579       { KIND_C2, "C2" },
 580       { KIND_ARCH, "ARCH" },
 581       { KIND_SHARK, "SHARK" },
 582       { KIND_PLATFORM_DEPENDENT, "pd" },
 583       { KIND_PRODUCT, "product" },
 584       { KIND_MANAGEABLE, "manageable" },
 585       { KIND_DIAGNOSTIC, "diagnostic" },
 586       { KIND_EXPERIMENTAL, "experimental" },
 587       { KIND_COMMERCIAL, "commercial" },
 588       { KIND_NOT_PRODUCT, "notproduct" },
 589       { KIND_DEVELOP, "develop" },
 590       { KIND_LP64_PRODUCT, "lp64_product" },
 591       { KIND_READ_WRITE, "rw" },
 592       { -1, "" }
 593   };
 594 
 595   if ((_flags & KIND_MASK) != 0) {
 596     bool is_first = true;
 597     const size_t buffer_size = 64;
 598     size_t buffer_used = 0;
 599     char kind[buffer_size];
 600 
 601     jio_snprintf(kind, buffer_size, "{");


 737 #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) },
 738 #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) },
 739 #define C1_PD_DEVELOP_FLAG_STRUCT(       type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 740 #define C1_NOTPRODUCT_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_NOT_PRODUCT) },
 741 
 742 #define C2_PRODUCT_FLAG_STRUCT(          type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_PRODUCT) },
 743 #define C2_PD_PRODUCT_FLAG_STRUCT(       type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 744 #define C2_DIAGNOSTIC_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DIAGNOSTIC) },
 745 #define C2_PD_DIAGNOSTIC_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 746 #define C2_EXPERIMENTAL_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_EXPERIMENTAL) },
 747 #define C2_DEVELOP_FLAG_STRUCT(          type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP) },
 748 #define C2_PD_DEVELOP_FLAG_STRUCT(       type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 749 #define C2_NOTPRODUCT_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_NOT_PRODUCT) },
 750 
 751 #define ARCH_PRODUCT_FLAG_STRUCT(        type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_PRODUCT) },
 752 #define ARCH_DIAGNOSTIC_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_DIAGNOSTIC) },
 753 #define ARCH_EXPERIMENTAL_FLAG_STRUCT(   type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_EXPERIMENTAL) },
 754 #define ARCH_DEVELOP_FLAG_STRUCT(        type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_DEVELOP) },
 755 #define ARCH_NOTPRODUCT_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_NOT_PRODUCT) },
 756 
 757 #define SHARK_PRODUCT_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_PRODUCT) },
 758 #define SHARK_PD_PRODUCT_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 759 #define SHARK_DIAGNOSTIC_FLAG_STRUCT(    type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DIAGNOSTIC) },
 760 #define SHARK_PD_DIAGNOSTIC_FLAG_STRUCT( type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 761 #define SHARK_DEVELOP_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DEVELOP) },
 762 #define SHARK_PD_DEVELOP_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 763 #define SHARK_NOTPRODUCT_FLAG_STRUCT(    type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_NOT_PRODUCT) },
 764 
 765 static Flag flagTable[] = {
 766  RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
 767                RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
 768                RUNTIME_PRODUCT_FLAG_STRUCT, \
 769                RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
 770                RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \
 771                RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT, \
 772                RUNTIME_EXPERIMENTAL_FLAG_STRUCT, \
 773                RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
 774                RUNTIME_MANAGEABLE_FLAG_STRUCT, \
 775                RUNTIME_PRODUCT_RW_FLAG_STRUCT, \
 776                RUNTIME_LP64_PRODUCT_FLAG_STRUCT, \
 777                IGNORE_RANGE, \
 778                IGNORE_CONSTRAINT, \
 779                IGNORE_WRITEABLE)
 780  RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
 781                   RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
 782                   RUNTIME_PRODUCT_FLAG_STRUCT, \
 783                   RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
 784                   RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \


 823           C1_DIAGNOSTIC_FLAG_STRUCT, \
 824           C1_PD_DIAGNOSTIC_FLAG_STRUCT, \
 825           C1_NOTPRODUCT_FLAG_STRUCT, \
 826           IGNORE_RANGE, \
 827           IGNORE_CONSTRAINT, \
 828           IGNORE_WRITEABLE)
 829 #endif // COMPILER1
 830 #ifdef COMPILER2
 831  C2_FLAGS(C2_DEVELOP_FLAG_STRUCT, \
 832           C2_PD_DEVELOP_FLAG_STRUCT, \
 833           C2_PRODUCT_FLAG_STRUCT, \
 834           C2_PD_PRODUCT_FLAG_STRUCT, \
 835           C2_DIAGNOSTIC_FLAG_STRUCT, \
 836           C2_PD_DIAGNOSTIC_FLAG_STRUCT, \
 837           C2_EXPERIMENTAL_FLAG_STRUCT, \
 838           C2_NOTPRODUCT_FLAG_STRUCT, \
 839           IGNORE_RANGE, \
 840           IGNORE_CONSTRAINT, \
 841           IGNORE_WRITEABLE)
 842 #endif // COMPILER2
 843 #ifdef SHARK
 844  SHARK_FLAGS(SHARK_DEVELOP_FLAG_STRUCT, \
 845              SHARK_PD_DEVELOP_FLAG_STRUCT, \
 846              SHARK_PRODUCT_FLAG_STRUCT, \
 847              SHARK_PD_PRODUCT_FLAG_STRUCT, \
 848              SHARK_DIAGNOSTIC_FLAG_STRUCT, \
 849              SHARK_PD_DIAGNOSTIC_FLAG_STRUCT, \
 850              SHARK_NOTPRODUCT_FLAG_STRUCT, \
 851              IGNORE_RANGE, \
 852              IGNORE_CONSTRAINT, \
 853              IGNORE_WRITEABLE)
 854 #endif // SHARK
 855  ARCH_FLAGS(ARCH_DEVELOP_FLAG_STRUCT, \
 856             ARCH_PRODUCT_FLAG_STRUCT, \
 857             ARCH_DIAGNOSTIC_FLAG_STRUCT, \
 858             ARCH_EXPERIMENTAL_FLAG_STRUCT, \
 859             ARCH_NOTPRODUCT_FLAG_STRUCT, \
 860             IGNORE_RANGE, \
 861             IGNORE_CONSTRAINT, \
 862             IGNORE_WRITEABLE)
 863  FLAGTABLE_EXT
 864  {0, NULL, NULL}
 865 };
 866 
 867 Flag* Flag::flags = flagTable;
 868 size_t Flag::numFlags = (sizeof(flagTable) / sizeof(Flag));
 869 
 870 inline bool str_equal(const char* s, size_t s_len, const char* q, size_t q_len) {
 871   if (s_len != q_len) return false;
 872   return memcmp(s, q, q_len) == 0;
 873 }
 874 




  33 #include "runtime/commandLineFlagWriteableList.hpp"
  34 #include "runtime/commandLineFlagRangeList.hpp"
  35 #include "runtime/os.hpp"
  36 #include "runtime/sharedRuntime.hpp"
  37 #include "trace/tracing.hpp"
  38 #include "utilities/defaultStream.hpp"
  39 #include "utilities/macros.hpp"
  40 #include "utilities/ostream.hpp"
  41 #if INCLUDE_ALL_GCS
  42 #include "gc/g1/g1_globals.hpp"
  43 #endif // INCLUDE_ALL_GCS
  44 #ifdef COMPILER1
  45 #include "c1/c1_globals.hpp"
  46 #endif
  47 #if INCLUDE_JVMCI
  48 #include "jvmci/jvmci_globals.hpp"
  49 #endif
  50 #ifdef COMPILER2
  51 #include "opto/c2_globals.hpp"
  52 #endif



  53 
  54 RUNTIME_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
  55               MATERIALIZE_PD_DEVELOPER_FLAG, \
  56               MATERIALIZE_PRODUCT_FLAG, \
  57               MATERIALIZE_PD_PRODUCT_FLAG, \
  58               MATERIALIZE_DIAGNOSTIC_FLAG, \
  59               MATERIALIZE_PD_DIAGNOSTIC_FLAG, \
  60               MATERIALIZE_EXPERIMENTAL_FLAG, \
  61               MATERIALIZE_NOTPRODUCT_FLAG, \
  62               MATERIALIZE_MANAGEABLE_FLAG, \
  63               MATERIALIZE_PRODUCT_RW_FLAG, \
  64               MATERIALIZE_LP64_PRODUCT_FLAG, \
  65               IGNORE_RANGE, \
  66               IGNORE_CONSTRAINT, \
  67               IGNORE_WRITEABLE)
  68 
  69 RUNTIME_OS_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
  70                  MATERIALIZE_PD_DEVELOPER_FLAG, \
  71                  MATERIALIZE_PRODUCT_FLAG, \
  72                  MATERIALIZE_PD_PRODUCT_FLAG, \


 558     if (withComments) {
 559       st->print("%s", _doc);
 560     }
 561 #endif
 562 
 563     st->cr();
 564   }
 565 }
 566 
 567 void Flag::print_kind_and_origin(outputStream* st) {
 568   struct Data {
 569     int flag;
 570     const char* name;
 571   };
 572 
 573   Data data[] = {
 574       { KIND_JVMCI, "JVMCI" },
 575       { KIND_C1, "C1" },
 576       { KIND_C2, "C2" },
 577       { KIND_ARCH, "ARCH" },

 578       { KIND_PLATFORM_DEPENDENT, "pd" },
 579       { KIND_PRODUCT, "product" },
 580       { KIND_MANAGEABLE, "manageable" },
 581       { KIND_DIAGNOSTIC, "diagnostic" },
 582       { KIND_EXPERIMENTAL, "experimental" },
 583       { KIND_COMMERCIAL, "commercial" },
 584       { KIND_NOT_PRODUCT, "notproduct" },
 585       { KIND_DEVELOP, "develop" },
 586       { KIND_LP64_PRODUCT, "lp64_product" },
 587       { KIND_READ_WRITE, "rw" },
 588       { -1, "" }
 589   };
 590 
 591   if ((_flags & KIND_MASK) != 0) {
 592     bool is_first = true;
 593     const size_t buffer_size = 64;
 594     size_t buffer_used = 0;
 595     char kind[buffer_size];
 596 
 597     jio_snprintf(kind, buffer_size, "{");


 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) },
 735 #define C1_PD_DEVELOP_FLAG_STRUCT(       type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 736 #define C1_NOTPRODUCT_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_NOT_PRODUCT) },
 737 
 738 #define C2_PRODUCT_FLAG_STRUCT(          type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_PRODUCT) },
 739 #define C2_PD_PRODUCT_FLAG_STRUCT(       type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
 740 #define C2_DIAGNOSTIC_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DIAGNOSTIC) },
 741 #define C2_PD_DIAGNOSTIC_FLAG_STRUCT(    type, name,        doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DIAGNOSTIC | Flag::KIND_PLATFORM_DEPENDENT) },
 742 #define C2_EXPERIMENTAL_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_EXPERIMENTAL) },
 743 #define C2_DEVELOP_FLAG_STRUCT(          type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP) },
 744 #define C2_PD_DEVELOP_FLAG_STRUCT(       type, name,        doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
 745 #define C2_NOTPRODUCT_FLAG_STRUCT(       type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_NOT_PRODUCT) },
 746 
 747 #define ARCH_PRODUCT_FLAG_STRUCT(        type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_PRODUCT) },
 748 #define ARCH_DIAGNOSTIC_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_DIAGNOSTIC) },
 749 #define ARCH_EXPERIMENTAL_FLAG_STRUCT(   type, name, value, doc) { #type, XSTR(name), &name,         NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_EXPERIMENTAL) },
 750 #define ARCH_DEVELOP_FLAG_STRUCT(        type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_DEVELOP) },
 751 #define ARCH_NOTPRODUCT_FLAG_STRUCT(     type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_NOT_PRODUCT) },
 752 








 753 static Flag flagTable[] = {
 754  RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
 755                RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
 756                RUNTIME_PRODUCT_FLAG_STRUCT, \
 757                RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
 758                RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \
 759                RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT, \
 760                RUNTIME_EXPERIMENTAL_FLAG_STRUCT, \
 761                RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
 762                RUNTIME_MANAGEABLE_FLAG_STRUCT, \
 763                RUNTIME_PRODUCT_RW_FLAG_STRUCT, \
 764                RUNTIME_LP64_PRODUCT_FLAG_STRUCT, \
 765                IGNORE_RANGE, \
 766                IGNORE_CONSTRAINT, \
 767                IGNORE_WRITEABLE)
 768  RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
 769                   RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
 770                   RUNTIME_PRODUCT_FLAG_STRUCT, \
 771                   RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
 772                   RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \


 811           C1_DIAGNOSTIC_FLAG_STRUCT, \
 812           C1_PD_DIAGNOSTIC_FLAG_STRUCT, \
 813           C1_NOTPRODUCT_FLAG_STRUCT, \
 814           IGNORE_RANGE, \
 815           IGNORE_CONSTRAINT, \
 816           IGNORE_WRITEABLE)
 817 #endif // COMPILER1
 818 #ifdef COMPILER2
 819  C2_FLAGS(C2_DEVELOP_FLAG_STRUCT, \
 820           C2_PD_DEVELOP_FLAG_STRUCT, \
 821           C2_PRODUCT_FLAG_STRUCT, \
 822           C2_PD_PRODUCT_FLAG_STRUCT, \
 823           C2_DIAGNOSTIC_FLAG_STRUCT, \
 824           C2_PD_DIAGNOSTIC_FLAG_STRUCT, \
 825           C2_EXPERIMENTAL_FLAG_STRUCT, \
 826           C2_NOTPRODUCT_FLAG_STRUCT, \
 827           IGNORE_RANGE, \
 828           IGNORE_CONSTRAINT, \
 829           IGNORE_WRITEABLE)
 830 #endif // COMPILER2












 831  ARCH_FLAGS(ARCH_DEVELOP_FLAG_STRUCT, \
 832             ARCH_PRODUCT_FLAG_STRUCT, \
 833             ARCH_DIAGNOSTIC_FLAG_STRUCT, \
 834             ARCH_EXPERIMENTAL_FLAG_STRUCT, \
 835             ARCH_NOTPRODUCT_FLAG_STRUCT, \
 836             IGNORE_RANGE, \
 837             IGNORE_CONSTRAINT, \
 838             IGNORE_WRITEABLE)
 839  FLAGTABLE_EXT
 840  {0, NULL, NULL}
 841 };
 842 
 843 Flag* Flag::flags = flagTable;
 844 size_t Flag::numFlags = (sizeof(flagTable) / sizeof(Flag));
 845 
 846 inline bool str_equal(const char* s, size_t s_len, const char* q, size_t q_len) {
 847   if (s_len != q_len) return false;
 848   return memcmp(s, q, q_len) == 0;
 849 }
 850 


< prev index next >