--- old/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp 2020-04-06 16:01:02.566780904 +0200 +++ new/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp 2020-04-06 16:01:02.460780972 +0200 @@ -79,9 +79,11 @@ // Avoid runtime call when not active. Address gc_state(thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset())); - int flags = ShenandoahHeap::HAS_FORWARDED; - if (ShenandoahStoreValEnqueueBarrier || !dest_uninitialized) { - flags |= ShenandoahHeap::MARKING; + int flags; + if (ShenandoahSATBBarrier && dest_uninitialized) { + flags = ShenandoahHeap::HAS_FORWARDED; + } else { + flags = ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::MARKING; } __ testb(gc_state, flags); __ jcc(Assembler::zero, done);