--- old/src/hotspot/share/gc/g1/heapRegionRemSet.cpp 2017-10-13 18:24:58.022421966 -0400 +++ new/src/hotspot/share/gc/g1/heapRegionRemSet.cpp 2017-10-13 18:24:57.636470733 -0400 @@ -113,9 +113,7 @@ public: - HeapRegion* hr() const { - return (HeapRegion*) OrderAccess::load_ptr_acquire(&_hr); - } + HeapRegion* hr() const { return OrderAccess::load_acquire(&_hr); } jint occupied() const { // Overkill, but if we ever need it... @@ -133,7 +131,7 @@ _bm.clear(); // Make sure that the bitmap clearing above has been finished before publishing // this PRT to concurrent threads. - OrderAccess::release_store_ptr(&_hr, hr); + OrderAccess::release_store(&_hr, hr); } void add_reference(OopOrNarrowOopStar from) { @@ -182,7 +180,7 @@ while (true) { PerRegionTable* fl = _free_list; last->set_next(fl); - PerRegionTable* res = (PerRegionTable*) Atomic::cmpxchg_ptr(prt, &_free_list, fl); + PerRegionTable* res = Atomic::cmpxchg(prt, &_free_list, fl); if (res == fl) { return; } @@ -199,9 +197,7 @@ PerRegionTable* fl = _free_list; while (fl != NULL) { PerRegionTable* nxt = fl->next(); - PerRegionTable* res = - (PerRegionTable*) - Atomic::cmpxchg_ptr(nxt, &_free_list, fl); + PerRegionTable* res = Atomic::cmpxchg(nxt, &_free_list, fl); if (res == fl) { fl->init(hr, true); return fl; @@ -416,7 +412,7 @@ // some mark bits may not yet seem cleared or a 'later' update // performed by a concurrent thread could be undone when the // zeroing becomes visible). This requires store ordering. - OrderAccess::release_store_ptr((volatile PerRegionTable*)&_fine_grain_regions[ind], prt); + OrderAccess::release_store(&_fine_grain_regions[ind], prt); _n_fine_entries++; if (G1HRRSUseSparseTable) {