< prev index next >
src/hotspot/share/memory/universe.hpp
Print this page
rev 48545 : Value-based classes (vbc) / Oop value test via metadata ptr
*** 193,203 ****
// For UseCompressedOops.
static struct NarrowPtrStruct _narrow_oop;
// For UseCompressedClassPointers.
static struct NarrowPtrStruct _narrow_klass;
static address _narrow_ptrs_base;
!
// array of dummy objects used with +FullGCAlot
debug_only(static objArrayOop _fullgc_alot_dummy_array;)
// index of next entry to clear
debug_only(static int _fullgc_alot_dummy_next;)
--- 193,205 ----
// For UseCompressedOops.
static struct NarrowPtrStruct _narrow_oop;
// For UseCompressedClassPointers.
static struct NarrowPtrStruct _narrow_klass;
static address _narrow_ptrs_base;
! #if INCLUDE_VBC
! static int _oop_metadata_odd_mask;
! #endif
// array of dummy objects used with +FullGCAlot
debug_only(static objArrayOop _fullgc_alot_dummy_array;)
// index of next entry to clear
debug_only(static int _fullgc_alot_dummy_next;)
*** 436,447 ****
--- 438,457 ----
}
static void set_narrow_klass_shift(int shift) {
assert(shift == 0 || shift == LogKlassAlignmentInBytes, "invalid shift for klass ptrs");
_narrow_klass._shift = shift;
+ #if INCLUDE_VBC
+ _oop_metadata_odd_mask = (shift) ? 1 : KlassPtrEvenOddMask;
+ #endif
}
+ #if INCLUDE_VBC
+ static int oop_metadata_odd_mask() { return _oop_metadata_odd_mask; }
+ #endif
+
+
// Reserve Java heap and determine CompressedOops mode
static ReservedSpace reserve_heap(size_t heap_size, size_t alignment);
// Historic gc information
static size_t get_heap_capacity_at_last_gc() { return _heap_capacity_at_last_gc; }
< prev index next >