--- old/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp 2019-11-21 11:57:34.655394122 +0100 +++ new/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp 2019-11-21 11:57:34.147385542 +0100 @@ -81,7 +81,7 @@ int current = count++; if ((current & stride_mask) == 0) { process_block = (current >= _claimed_idx) && - (Atomic::cmpxchg(current + stride, &_claimed_idx, current) == current); + (Atomic::cmpxchg(&_claimed_idx, current, current + stride) == current); } if (process_block) { if (cb->is_alive()) { @@ -264,7 +264,7 @@ size_t max = (size_t)list->length(); while (_claimed < max) { - size_t cur = Atomic::add(stride, &_claimed) - stride; + size_t cur = Atomic::add(&_claimed, stride) - stride; size_t start = cur; size_t end = MIN2(cur + stride, max); if (start >= max) break;