--- old/src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp 2018-03-22 16:37:37.432885714 +0100 +++ new/src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp 2018-03-22 16:37:37.228885721 +0100 @@ -31,6 +31,8 @@ #include "gc/g1/g1StringDedup.hpp" #include "gc/g1/g1StringDedupQueue.hpp" #include "gc/shared/preservedMarks.inline.hpp" +#include "oops/access.inline.hpp" +#include "oops/compressedOops.inline.hpp" #include "utilities/debug.hpp" inline bool G1FullGCMarker::mark_object(oop obj) { @@ -60,9 +62,9 @@ } template inline void G1FullGCMarker::mark_and_push(T* p) { - T heap_oop = oopDesc::load_heap_oop(p); - if (!oopDesc::is_null(heap_oop)) { - oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); + T heap_oop = RawAccess<>::oop_load(p); + if (!CompressedOops::is_null(heap_oop)) { + oop obj = CompressedOops::decode_not_null(heap_oop); if (mark_object(obj)) { _oop_stack.push(obj); assert(_bitmap->is_marked(obj), "Must be marked now - map self");