--- old/src/hotspot/share/oops/klass.inline.hpp 2018-05-21 11:52:09.248012489 +0200 +++ new/src/hotspot/share/oops/klass.inline.hpp 2018-05-21 11:52:08.932006859 +0200 @@ -30,8 +30,8 @@ #include "oops/markOop.hpp" inline void Klass::set_prototype_header(markOop header) { - assert(!header->has_bias_pattern() || is_instance_klass(), "biased locking currently only supported for Java instances"); - _prototype_header = header; + assert(!is_value() || header->is_always_locked(), "Unexpected prototype"); + _prototype_header = header; } inline bool Klass::is_null(Klass* obj) { return obj == NULL; } @@ -71,6 +71,14 @@ return is_null(v) ? (Klass*)NULL : decode_klass_not_null(v); } +inline bool Klass::decode_ptr_is_value_type(narrowKlass v) { + return (v & Universe::oop_metadata_valuetype_mask()) != 0; +} + +inline bool Klass::ptr_is_value_type(Klass* v) { + return ((uintptr_t)v & KlassPtrValueTypeMask) != 0; +} + template bool Klass::is_instanceof_or_null(T element) { if (oopDesc::is_null(element)) {