src/hotspot/share/oops/klass.inline.hpp
changeset 54780 f8d182aedc92
parent 53244 9807daeb47c4
child 54786 ebf733a324d4
--- a/src/hotspot/share/oops/klass.inline.hpp	Thu May 09 07:21:32 2019 -0400
+++ b/src/hotspot/share/oops/klass.inline.hpp	Thu May 09 14:26:03 2019 +0200
@@ -26,6 +26,7 @@
 #define SHARE_OOPS_KLASS_INLINE_HPP
 
 #include "memory/universe.hpp"
+#include "oops/compressedOops.hpp"
 #include "oops/klass.hpp"
 #include "oops/markOop.hpp"
 
@@ -34,41 +35,4 @@
   _prototype_header = header;
 }
 
-inline bool Klass::is_null(Klass* obj)  { return obj == NULL; }
-inline bool Klass::is_null(narrowKlass obj) { return obj == 0; }
-
-// Encoding and decoding for klass field.
-
-inline bool check_klass_alignment(Klass* obj) {
-  return (intptr_t)obj % KlassAlignmentInBytes == 0;
-}
-
-inline narrowKlass Klass::encode_klass_not_null(Klass* v) {
-  assert(!is_null(v), "klass value can never be zero");
-  assert(check_klass_alignment(v), "Address not aligned");
-  int    shift = Universe::narrow_klass_shift();
-  uint64_t pd = (uint64_t)(pointer_delta((void*)v, Universe::narrow_klass_base(), 1));
-  assert(KlassEncodingMetaspaceMax > pd, "change encoding max if new encoding");
-  uint64_t result = pd >> shift;
-  assert((result & CONST64(0xffffffff00000000)) == 0, "narrow klass pointer overflow");
-  assert(decode_klass(result) == v, "reversibility");
-  return (narrowKlass)result;
-}
-
-inline narrowKlass Klass::encode_klass(Klass* v) {
-  return is_null(v) ? (narrowKlass)0 : encode_klass_not_null(v);
-}
-
-inline Klass* Klass::decode_klass_not_null(narrowKlass v) {
-  assert(!is_null(v), "narrow klass value can never be zero");
-  int    shift = Universe::narrow_klass_shift();
-  Klass* result = (Klass*)(void*)((uintptr_t)Universe::narrow_klass_base() + ((uintptr_t)v << shift));
-  assert(check_klass_alignment(result), "address not aligned: " INTPTR_FORMAT, p2i((void*) result));
-  return result;
-}
-
-inline Klass* Klass::decode_klass(narrowKlass v) {
-  return is_null(v) ? (Klass*)NULL : decode_klass_not_null(v);
-}
-
 #endif // SHARE_OOPS_KLASS_INLINE_HPP