diff -r 4cbfa5077d68 -r 623722a6aeb9 src/hotspot/share/gc/g1/heapRegion.inline.hpp --- a/src/hotspot/share/gc/g1/heapRegion.inline.hpp Mon Nov 25 12:32:40 2019 +0100 +++ b/src/hotspot/share/gc/g1/heapRegion.inline.hpp Mon Nov 25 12:33:15 2019 +0100 @@ -61,7 +61,7 @@ size_t want_to_allocate = MIN2(available, desired_word_size); if (want_to_allocate >= min_word_size) { HeapWord* new_top = obj + want_to_allocate; - HeapWord* result = Atomic::cmpxchg(new_top, &_top, obj); + HeapWord* result = Atomic::cmpxchg(&_top, obj, new_top); // result can be one of two: // the old top value: the exchange succeeded // otherwise: the new value of the top is returned.