25 #include "precompiled.hpp"
26 #include "memory/allocation.inline.hpp"
27 #include "oops/oop.inline.hpp"
28 #include "runtime/arguments.hpp"
29 #include "runtime/globals.hpp"
30 #include "runtime/globals_extension.hpp"
31 #include "runtime/commandLineFlagConstraintList.hpp"
32 #include "runtime/commandLineFlagRangeList.hpp"
33 #include "runtime/os.hpp"
34 #include "runtime/sharedRuntime.hpp"
35 #include "trace/tracing.hpp"
36 #include "utilities/macros.hpp"
37 #include "utilities/ostream.hpp"
38 #include "utilities/top.hpp"
39 #if INCLUDE_ALL_GCS
40 #include "gc/g1/g1_globals.hpp"
41 #endif // INCLUDE_ALL_GCS
42 #ifdef COMPILER1
43 #include "c1/c1_globals.hpp"
44 #endif
45 #ifdef COMPILER2
46 #include "opto/c2_globals.hpp"
47 #endif
48 #ifdef SHARK
49 #include "shark/shark_globals.hpp"
50 #endif
51
52 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
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_EXPERIMENTAL_FLAG, \
60 MATERIALIZE_NOTPRODUCT_FLAG, \
61 MATERIALIZE_MANAGEABLE_FLAG, \
62 MATERIALIZE_PRODUCT_RW_FLAG, \
63 MATERIALIZE_LP64_PRODUCT_FLAG, \
64 IGNORE_RANGE, \
425 #ifndef PRODUCT
426 if (withComments) {
427 st->print("%s", _doc);
428 }
429 #endif
430
431 st->cr();
432
433 }
434 }
435 }
436
437 void Flag::print_kind(outputStream* st) {
438 struct Data {
439 int flag;
440 const char* name;
441 };
442
443 Data data[] = {
444 { KIND_C1, "C1" },
445 { KIND_C2, "C2" },
446 { KIND_ARCH, "ARCH" },
447 { KIND_SHARK, "SHARK" },
448 { KIND_PLATFORM_DEPENDENT, "pd" },
449 { KIND_PRODUCT, "product" },
450 { KIND_MANAGEABLE, "manageable" },
451 { KIND_DIAGNOSTIC, "diagnostic" },
452 { KIND_EXPERIMENTAL, "experimental" },
453 { KIND_COMMERCIAL, "commercial" },
454 { KIND_NOT_PRODUCT, "notproduct" },
455 { KIND_DEVELOP, "develop" },
456 { KIND_LP64_PRODUCT, "lp64_product" },
457 { KIND_READ_WRITE, "rw" },
458 { -1, "" }
459 };
460
461 if ((_flags & KIND_MASK) != 0) {
462 st->print("{");
463 bool is_first = true;
464
531 case Flag::SUCCESS: return "SUCCESS";
532 default: ShouldNotReachHere(); return "NULL";
533 }
534 }
535
536 // 4991491 do not "optimize out" the was_set false values: omitting them
537 // tickles a Microsoft compiler bug causing flagTable to be malformed
538
539 #define NAME(name) NOT_PRODUCT(&name) PRODUCT_ONLY(&CONST_##name)
540
541 #define RUNTIME_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT) },
542 #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) },
543 #define RUNTIME_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DIAGNOSTIC) },
544 #define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_EXPERIMENTAL) },
545 #define RUNTIME_MANAGEABLE_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_MANAGEABLE) },
546 #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) },
547 #define RUNTIME_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP) },
548 #define RUNTIME_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
549 #define RUNTIME_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_NOT_PRODUCT) },
550
551 #ifdef _LP64
552 #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) },
553 #else
554 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) /* flag is constant */
555 #endif // _LP64
556
557 #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) },
558 #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) },
559 #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) },
560 #define C1_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP) },
561 #define C1_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
562 #define C1_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_NOT_PRODUCT) },
563
564 #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) },
565 #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) },
566 #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) },
567 #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) },
568 #define C2_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP) },
569 #define C2_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
570 #define C2_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_NOT_PRODUCT) },
599 RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
600 RUNTIME_PRODUCT_FLAG_STRUCT, \
601 RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
602 RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \
603 RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
604 IGNORE_RANGE, \
605 IGNORE_CONSTRAINT)
606 #if INCLUDE_ALL_GCS
607 G1_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
608 RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
609 RUNTIME_PRODUCT_FLAG_STRUCT, \
610 RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
611 RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \
612 RUNTIME_EXPERIMENTAL_FLAG_STRUCT, \
613 RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
614 RUNTIME_MANAGEABLE_FLAG_STRUCT, \
615 RUNTIME_PRODUCT_RW_FLAG_STRUCT, \
616 IGNORE_RANGE, \
617 IGNORE_CONSTRAINT)
618 #endif // INCLUDE_ALL_GCS
619 #ifdef COMPILER1
620 C1_FLAGS(C1_DEVELOP_FLAG_STRUCT, \
621 C1_PD_DEVELOP_FLAG_STRUCT, \
622 C1_PRODUCT_FLAG_STRUCT, \
623 C1_PD_PRODUCT_FLAG_STRUCT, \
624 C1_DIAGNOSTIC_FLAG_STRUCT, \
625 C1_NOTPRODUCT_FLAG_STRUCT, \
626 IGNORE_RANGE, \
627 IGNORE_CONSTRAINT)
628 #endif // COMPILER1
629 #ifdef COMPILER2
630 C2_FLAGS(C2_DEVELOP_FLAG_STRUCT, \
631 C2_PD_DEVELOP_FLAG_STRUCT, \
632 C2_PRODUCT_FLAG_STRUCT, \
633 C2_PD_PRODUCT_FLAG_STRUCT, \
634 C2_DIAGNOSTIC_FLAG_STRUCT, \
635 C2_EXPERIMENTAL_FLAG_STRUCT, \
636 C2_NOTPRODUCT_FLAG_STRUCT, \
637 IGNORE_RANGE, \
638 IGNORE_CONSTRAINT)
|
25 #include "precompiled.hpp"
26 #include "memory/allocation.inline.hpp"
27 #include "oops/oop.inline.hpp"
28 #include "runtime/arguments.hpp"
29 #include "runtime/globals.hpp"
30 #include "runtime/globals_extension.hpp"
31 #include "runtime/commandLineFlagConstraintList.hpp"
32 #include "runtime/commandLineFlagRangeList.hpp"
33 #include "runtime/os.hpp"
34 #include "runtime/sharedRuntime.hpp"
35 #include "trace/tracing.hpp"
36 #include "utilities/macros.hpp"
37 #include "utilities/ostream.hpp"
38 #include "utilities/top.hpp"
39 #if INCLUDE_ALL_GCS
40 #include "gc/g1/g1_globals.hpp"
41 #endif // INCLUDE_ALL_GCS
42 #ifdef COMPILER1
43 #include "c1/c1_globals.hpp"
44 #endif
45 #if INCLUDE_JVMCI
46 #include "jvmci/jvmci_globals.hpp"
47 #endif
48 #ifdef COMPILER2
49 #include "opto/c2_globals.hpp"
50 #endif
51 #ifdef SHARK
52 #include "shark/shark_globals.hpp"
53 #endif
54
55 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
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_EXPERIMENTAL_FLAG, \
63 MATERIALIZE_NOTPRODUCT_FLAG, \
64 MATERIALIZE_MANAGEABLE_FLAG, \
65 MATERIALIZE_PRODUCT_RW_FLAG, \
66 MATERIALIZE_LP64_PRODUCT_FLAG, \
67 IGNORE_RANGE, \
428 #ifndef PRODUCT
429 if (withComments) {
430 st->print("%s", _doc);
431 }
432 #endif
433
434 st->cr();
435
436 }
437 }
438 }
439
440 void Flag::print_kind(outputStream* st) {
441 struct Data {
442 int flag;
443 const char* name;
444 };
445
446 Data data[] = {
447 { KIND_C1, "C1" },
448 { KIND_JVMCI, "JVMCI" },
449 { KIND_C2, "C2" },
450 { KIND_ARCH, "ARCH" },
451 { KIND_SHARK, "SHARK" },
452 { KIND_PLATFORM_DEPENDENT, "pd" },
453 { KIND_PRODUCT, "product" },
454 { KIND_MANAGEABLE, "manageable" },
455 { KIND_DIAGNOSTIC, "diagnostic" },
456 { KIND_EXPERIMENTAL, "experimental" },
457 { KIND_COMMERCIAL, "commercial" },
458 { KIND_NOT_PRODUCT, "notproduct" },
459 { KIND_DEVELOP, "develop" },
460 { KIND_LP64_PRODUCT, "lp64_product" },
461 { KIND_READ_WRITE, "rw" },
462 { -1, "" }
463 };
464
465 if ((_flags & KIND_MASK) != 0) {
466 st->print("{");
467 bool is_first = true;
468
535 case Flag::SUCCESS: return "SUCCESS";
536 default: ShouldNotReachHere(); return "NULL";
537 }
538 }
539
540 // 4991491 do not "optimize out" the was_set false values: omitting them
541 // tickles a Microsoft compiler bug causing flagTable to be malformed
542
543 #define NAME(name) NOT_PRODUCT(&name) PRODUCT_ONLY(&CONST_##name)
544
545 #define RUNTIME_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT) },
546 #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) },
547 #define RUNTIME_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DIAGNOSTIC) },
548 #define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_EXPERIMENTAL) },
549 #define RUNTIME_MANAGEABLE_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_MANAGEABLE) },
550 #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) },
551 #define RUNTIME_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP) },
552 #define RUNTIME_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
553 #define RUNTIME_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_NOT_PRODUCT) },
554
555 #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) },
556 #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) },
557 #define JVMCI_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP) },
558 #define JVMCI_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
559 #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) },
560 #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) },
561 #define JVMCI_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_NOT_PRODUCT) },
562
563 #ifdef _LP64
564 #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) },
565 #else
566 #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) /* flag is constant */
567 #endif // _LP64
568
569 #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) },
570 #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) },
571 #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) },
572 #define C1_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP) },
573 #define C1_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
574 #define C1_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_NOT_PRODUCT) },
575
576 #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) },
577 #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) },
578 #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) },
579 #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) },
580 #define C2_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP) },
581 #define C2_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
582 #define C2_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_NOT_PRODUCT) },
611 RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
612 RUNTIME_PRODUCT_FLAG_STRUCT, \
613 RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
614 RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \
615 RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
616 IGNORE_RANGE, \
617 IGNORE_CONSTRAINT)
618 #if INCLUDE_ALL_GCS
619 G1_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
620 RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
621 RUNTIME_PRODUCT_FLAG_STRUCT, \
622 RUNTIME_PD_PRODUCT_FLAG_STRUCT, \
623 RUNTIME_DIAGNOSTIC_FLAG_STRUCT, \
624 RUNTIME_EXPERIMENTAL_FLAG_STRUCT, \
625 RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
626 RUNTIME_MANAGEABLE_FLAG_STRUCT, \
627 RUNTIME_PRODUCT_RW_FLAG_STRUCT, \
628 IGNORE_RANGE, \
629 IGNORE_CONSTRAINT)
630 #endif // INCLUDE_ALL_GCS
631 #if INCLUDE_JVMCI
632 JVMCI_FLAGS(JVMCI_DEVELOP_FLAG_STRUCT, \
633 JVMCI_PD_DEVELOP_FLAG_STRUCT, \
634 JVMCI_PRODUCT_FLAG_STRUCT, \
635 JVMCI_PD_PRODUCT_FLAG_STRUCT, \
636 JVMCI_DIAGNOSTIC_FLAG_STRUCT, \
637 JVMCI_EXPERIMENTAL_FLAG_STRUCT, \
638 JVMCI_NOTPRODUCT_FLAG_STRUCT, \
639 IGNORE_RANGE, \
640 IGNORE_CONSTRAINT)
641 #endif // INCLUDE_JVMCI
642 #ifdef COMPILER1
643 C1_FLAGS(C1_DEVELOP_FLAG_STRUCT, \
644 C1_PD_DEVELOP_FLAG_STRUCT, \
645 C1_PRODUCT_FLAG_STRUCT, \
646 C1_PD_PRODUCT_FLAG_STRUCT, \
647 C1_DIAGNOSTIC_FLAG_STRUCT, \
648 C1_NOTPRODUCT_FLAG_STRUCT, \
649 IGNORE_RANGE, \
650 IGNORE_CONSTRAINT)
651 #endif // COMPILER1
652 #ifdef COMPILER2
653 C2_FLAGS(C2_DEVELOP_FLAG_STRUCT, \
654 C2_PD_DEVELOP_FLAG_STRUCT, \
655 C2_PRODUCT_FLAG_STRUCT, \
656 C2_PD_PRODUCT_FLAG_STRUCT, \
657 C2_DIAGNOSTIC_FLAG_STRUCT, \
658 C2_EXPERIMENTAL_FLAG_STRUCT, \
659 C2_NOTPRODUCT_FLAG_STRUCT, \
660 IGNORE_RANGE, \
661 IGNORE_CONSTRAINT)
|