< 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,11 +193,13 @@
   // 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,12 +438,20 @@
   }
 
   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 >