--- old/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp 2017-10-11 09:33:16.463080894 -0400 +++ new/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp 2017-10-11 09:33:16.033467272 -0400 @@ -251,7 +251,7 @@ virtual void work(uint worker_id) { size_t const actual_chunk_size = MAX2(chunk_size(), _page_size); while (true) { - char* touch_addr = (char*)Atomic::add_ptr((intptr_t)actual_chunk_size, (volatile void*) &_cur_addr) - actual_chunk_size; + char* touch_addr = (char*)Atomic::add(actual_chunk_size, &_cur_addr) - actual_chunk_size; if (touch_addr < _start_addr || touch_addr >= _end_addr) { break; }