760 nonstatic_field(ciField, _name, ciSymbol*) \
761 nonstatic_field(ciField, _signature, ciSymbol*) \
762 nonstatic_field(ciField, _offset, int) \
763 nonstatic_field(ciField, _is_constant, bool) \
764 nonstatic_field(ciField, _constant_value, ciConstant) \
765 \
766 nonstatic_field(ciObjectFactory, _ci_metadata, GrowableArray<ciMetadata*>) \
767 nonstatic_field(ciObjectFactory, _symbols, GrowableArray<ciSymbol*>) \
768 \
769 nonstatic_field(ciConstant, _type, BasicType) \
770 nonstatic_field(ciConstant, _value._int, jint) \
771 nonstatic_field(ciConstant, _value._long, jlong) \
772 nonstatic_field(ciConstant, _value._float, jfloat) \
773 nonstatic_field(ciConstant, _value._double, jdouble) \
774 nonstatic_field(ciConstant, _value._object, ciObject*) \
775 \
776 /************/ \
777 /* Monitors */ \
778 /************/ \
779 \
780 volatile_nonstatic_field(ObjectMonitor, _header, markWord) \
781 unchecked_nonstatic_field(ObjectMonitor, _object, sizeof(void *)) /* NOTE: no type */ \
782 unchecked_nonstatic_field(ObjectMonitor, _owner, sizeof(void *)) /* NOTE: no type */ \
783 volatile_nonstatic_field(ObjectMonitor, _next_om, ObjectMonitor*) \
784 volatile_nonstatic_field(BasicLock, _displaced_header, markWord) \
785 nonstatic_field(ObjectMonitor, _contentions, int) \
786 volatile_nonstatic_field(ObjectMonitor, _waiters, int) \
787 volatile_nonstatic_field(ObjectMonitor, _recursions, intx) \
788 nonstatic_field(BasicObjectLock, _lock, BasicLock) \
789 nonstatic_field(BasicObjectLock, _obj, oop) \
790 static_field(ObjectSynchronizer, _in_use_list, MonitorList) \
791 volatile_nonstatic_field(MonitorList, _head, ObjectMonitor*) \
792 \
793 /*********************/ \
794 /* Matcher (C2 only) */ \
795 /*********************/ \
796 \
797 unchecked_c2_static_field(Matcher, _regEncode, sizeof(Matcher::_regEncode)) /* NOTE: no type */ \
798 \
799 c2_nonstatic_field(Node, _in, Node**) \
800 c2_nonstatic_field(Node, _out, Node**) \
801 c2_nonstatic_field(Node, _cnt, node_idx_t) \
802 c2_nonstatic_field(Node, _max, node_idx_t) \
803 c2_nonstatic_field(Node, _outcnt, node_idx_t) \
804 c2_nonstatic_field(Node, _outmax, node_idx_t) \
1976 /****************/ \
1977 \
1978 VM_INT_CONSTANTS_GC(declare_constant, \
1979 declare_constant_with_value) \
1980 \
1981 /******************/ \
1982 /* Useful globals */ \
1983 /******************/ \
1984 \
1985 declare_preprocessor_constant("ASSERT", DEBUG_ONLY(1) NOT_DEBUG(0)) \
1986 \
1987 /****************/ \
1988 /* Object sizes */ \
1989 /****************/ \
1990 \
1991 declare_constant(oopSize) \
1992 declare_constant(LogBytesPerWord) \
1993 declare_constant(BytesPerWord) \
1994 declare_constant(BytesPerLong) \
1995 \
1996 declare_constant(LogKlassAlignmentInBytes) \
1997 \
1998 declare_constant(HeapWordSize) \
1999 declare_constant(LogHeapWordSize) \
2000 \
2001 \
2002 /************************/ \
2003 /* PerfMemory - jvmstat */ \
2004 /************************/ \
2005 \
2006 declare_preprocessor_constant("PERFDATA_MAJOR_VERSION", PERFDATA_MAJOR_VERSION) \
2007 declare_preprocessor_constant("PERFDATA_MINOR_VERSION", PERFDATA_MINOR_VERSION) \
2008 declare_preprocessor_constant("PERFDATA_BIG_ENDIAN", PERFDATA_BIG_ENDIAN) \
2009 declare_preprocessor_constant("PERFDATA_LITTLE_ENDIAN", PERFDATA_LITTLE_ENDIAN) \
2010 \
2011 \
2012 /************************************************************/ \
2013 /* HotSpot specific JVM_ACC constants from global anon enum */ \
2014 /************************************************************/ \
2015 \
2016 declare_constant(JVM_ACC_WRITTEN_FLAGS) \
2017 declare_constant(JVM_ACC_HAS_FINALIZER) \
2481 #define VM_LONG_CONSTANTS(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) \
2482 \
2483 /****************/ \
2484 /* GC constants */ \
2485 /****************/ \
2486 \
2487 VM_LONG_CONSTANTS_GC(declare_constant) \
2488 \
2489 /*********************/ \
2490 /* markWord constants */ \
2491 /*********************/ \
2492 \
2493 /* Note: some of these are declared as long constants just for */ \
2494 /* consistency. The mask constants are the only ones requiring */ \
2495 /* 64 bits (on 64-bit platforms). */ \
2496 \
2497 declare_constant(markWord::age_bits) \
2498 declare_constant(markWord::lock_bits) \
2499 declare_constant(markWord::max_hash_bits) \
2500 declare_constant(markWord::hash_bits) \
2501 \
2502 declare_constant(markWord::lock_shift) \
2503 declare_constant(markWord::age_shift) \
2504 declare_constant(markWord::hash_shift) \
2505 \
2506 declare_constant(markWord::lock_mask) \
2507 declare_constant(markWord::lock_mask_in_place) \
2508 declare_constant(markWord::age_mask) \
2509 declare_constant(markWord::age_mask_in_place) \
2510 declare_constant(markWord::hash_mask) \
2511 declare_constant(markWord::hash_mask_in_place) \
2512 \
2513 declare_constant(markWord::locked_value) \
2514 declare_constant(markWord::unlocked_value) \
2515 declare_constant(markWord::monitor_value) \
2516 declare_constant(markWord::marked_value) \
2517 \
2518 declare_constant(markWord::no_hash) \
2519 declare_constant(markWord::no_hash_in_place) \
2520 declare_constant(markWord::no_lock_in_place) \
2521 declare_constant(markWord::max_age) \
2522 \
2523 /* InvocationCounter constants */ \
2524 declare_constant(InvocationCounter::count_increment) \
2525 declare_constant(InvocationCounter::count_shift) \
2526 \
2527 /* ObjectMonitor constants */ \
2528 declare_constant(ObjectMonitor::ANONYMOUS_OWNER) \
2529
2530 //--------------------------------------------------------------------------------
2531 //
|
760 nonstatic_field(ciField, _name, ciSymbol*) \
761 nonstatic_field(ciField, _signature, ciSymbol*) \
762 nonstatic_field(ciField, _offset, int) \
763 nonstatic_field(ciField, _is_constant, bool) \
764 nonstatic_field(ciField, _constant_value, ciConstant) \
765 \
766 nonstatic_field(ciObjectFactory, _ci_metadata, GrowableArray<ciMetadata*>) \
767 nonstatic_field(ciObjectFactory, _symbols, GrowableArray<ciSymbol*>) \
768 \
769 nonstatic_field(ciConstant, _type, BasicType) \
770 nonstatic_field(ciConstant, _value._int, jint) \
771 nonstatic_field(ciConstant, _value._long, jlong) \
772 nonstatic_field(ciConstant, _value._float, jfloat) \
773 nonstatic_field(ciConstant, _value._double, jdouble) \
774 nonstatic_field(ciConstant, _value._object, ciObject*) \
775 \
776 /************/ \
777 /* Monitors */ \
778 /************/ \
779 \
780 volatile_nonstatic_field(ObjectMonitor, _metadata, uintptr_t) \
781 unchecked_nonstatic_field(ObjectMonitor, _object, sizeof(void *)) /* NOTE: no type */ \
782 unchecked_nonstatic_field(ObjectMonitor, _owner, sizeof(void *)) /* NOTE: no type */ \
783 volatile_nonstatic_field(ObjectMonitor, _next_om, ObjectMonitor*) \
784 volatile_nonstatic_field(BasicLock, _metadata, uintptr_t) \
785 nonstatic_field(ObjectMonitor, _contentions, int) \
786 volatile_nonstatic_field(ObjectMonitor, _waiters, int) \
787 volatile_nonstatic_field(ObjectMonitor, _recursions, intx) \
788 nonstatic_field(BasicObjectLock, _lock, BasicLock) \
789 nonstatic_field(BasicObjectLock, _obj, oop) \
790 static_field(ObjectSynchronizer, _in_use_list, MonitorList) \
791 volatile_nonstatic_field(MonitorList, _head, ObjectMonitor*) \
792 \
793 /*********************/ \
794 /* Matcher (C2 only) */ \
795 /*********************/ \
796 \
797 unchecked_c2_static_field(Matcher, _regEncode, sizeof(Matcher::_regEncode)) /* NOTE: no type */ \
798 \
799 c2_nonstatic_field(Node, _in, Node**) \
800 c2_nonstatic_field(Node, _out, Node**) \
801 c2_nonstatic_field(Node, _cnt, node_idx_t) \
802 c2_nonstatic_field(Node, _max, node_idx_t) \
803 c2_nonstatic_field(Node, _outcnt, node_idx_t) \
804 c2_nonstatic_field(Node, _outmax, node_idx_t) \
1976 /****************/ \
1977 \
1978 VM_INT_CONSTANTS_GC(declare_constant, \
1979 declare_constant_with_value) \
1980 \
1981 /******************/ \
1982 /* Useful globals */ \
1983 /******************/ \
1984 \
1985 declare_preprocessor_constant("ASSERT", DEBUG_ONLY(1) NOT_DEBUG(0)) \
1986 \
1987 /****************/ \
1988 /* Object sizes */ \
1989 /****************/ \
1990 \
1991 declare_constant(oopSize) \
1992 declare_constant(LogBytesPerWord) \
1993 declare_constant(BytesPerWord) \
1994 declare_constant(BytesPerLong) \
1995 \
1996 declare_constant(HeapWordSize) \
1997 declare_constant(LogHeapWordSize) \
1998 \
1999 \
2000 /************************/ \
2001 /* PerfMemory - jvmstat */ \
2002 /************************/ \
2003 \
2004 declare_preprocessor_constant("PERFDATA_MAJOR_VERSION", PERFDATA_MAJOR_VERSION) \
2005 declare_preprocessor_constant("PERFDATA_MINOR_VERSION", PERFDATA_MINOR_VERSION) \
2006 declare_preprocessor_constant("PERFDATA_BIG_ENDIAN", PERFDATA_BIG_ENDIAN) \
2007 declare_preprocessor_constant("PERFDATA_LITTLE_ENDIAN", PERFDATA_LITTLE_ENDIAN) \
2008 \
2009 \
2010 /************************************************************/ \
2011 /* HotSpot specific JVM_ACC constants from global anon enum */ \
2012 /************************************************************/ \
2013 \
2014 declare_constant(JVM_ACC_WRITTEN_FLAGS) \
2015 declare_constant(JVM_ACC_HAS_FINALIZER) \
2479 #define VM_LONG_CONSTANTS(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) \
2480 \
2481 /****************/ \
2482 /* GC constants */ \
2483 /****************/ \
2484 \
2485 VM_LONG_CONSTANTS_GC(declare_constant) \
2486 \
2487 /*********************/ \
2488 /* markWord constants */ \
2489 /*********************/ \
2490 \
2491 /* Note: some of these are declared as long constants just for */ \
2492 /* consistency. The mask constants are the only ones requiring */ \
2493 /* 64 bits (on 64-bit platforms). */ \
2494 \
2495 declare_constant(markWord::age_bits) \
2496 declare_constant(markWord::lock_bits) \
2497 declare_constant(markWord::max_hash_bits) \
2498 declare_constant(markWord::hash_bits) \
2499 declare_constant(markWord::hash_bits_compact) \
2500 \
2501 declare_constant(markWord::lock_shift) \
2502 declare_constant(markWord::age_shift) \
2503 declare_constant(markWord::hash_shift) \
2504 declare_constant(markWord::hash_shift_compact) \
2505 LP64_ONLY(declare_constant(markWord::klass_shift)) \
2506 \
2507 declare_constant(markWord::lock_mask) \
2508 declare_constant(markWord::lock_mask_in_place) \
2509 declare_constant(markWord::age_mask) \
2510 declare_constant(markWord::age_mask_in_place) \
2511 declare_constant(markWord::hash_mask) \
2512 declare_constant(markWord::hash_mask_in_place) \
2513 declare_constant(markWord::hash_mask_compact) \
2514 declare_constant(markWord::hash_mask_compact_in_place) \
2515 \
2516 declare_constant(markWord::locked_value) \
2517 declare_constant(markWord::unlocked_value) \
2518 declare_constant(markWord::monitor_value) \
2519 declare_constant(markWord::marked_value) \
2520 \
2521 declare_constant(markWord::no_hash) \
2522 declare_constant(markWord::no_hash_in_place) \
2523 declare_constant(markWord::no_lock_in_place) \
2524 declare_constant(markWord::max_age) \
2525 \
2526 /* InvocationCounter constants */ \
2527 declare_constant(InvocationCounter::count_increment) \
2528 declare_constant(InvocationCounter::count_shift) \
2529 \
2530 /* ObjectMonitor constants */ \
2531 declare_constant(ObjectMonitor::ANONYMOUS_OWNER) \
2532
2533 //--------------------------------------------------------------------------------
2534 //
|