src/hotspot/share/gc/parallel/psParallelCompact.hpp
changeset 59252 623722a6aeb9
parent 59249 29b0d0b61615
child 59290 97d13893ec3c
equal deleted inserted replaced
59251:4cbfa5077d68 59252:623722a6aeb9
   582 inline void ParallelCompactData::RegionData::set_highest_ref(HeapWord* addr)
   582 inline void ParallelCompactData::RegionData::set_highest_ref(HeapWord* addr)
   583 {
   583 {
   584 #ifdef ASSERT
   584 #ifdef ASSERT
   585   HeapWord* tmp = _highest_ref;
   585   HeapWord* tmp = _highest_ref;
   586   while (addr > tmp) {
   586   while (addr > tmp) {
   587     tmp = Atomic::cmpxchg(addr, &_highest_ref, tmp);
   587     tmp = Atomic::cmpxchg(&_highest_ref, tmp, addr);
   588   }
   588   }
   589 #endif  // #ifdef ASSERT
   589 #endif  // #ifdef ASSERT
   590 }
   590 }
   591 
   591 
   592 inline bool ParallelCompactData::RegionData::claim()
   592 inline bool ParallelCompactData::RegionData::claim()
   593 {
   593 {
   594   const region_sz_t los = static_cast<region_sz_t>(live_obj_size());
   594   const region_sz_t los = static_cast<region_sz_t>(live_obj_size());
   595   const region_sz_t old = Atomic::cmpxchg(dc_claimed | los, &_dc_and_los, los);
   595   const region_sz_t old = Atomic::cmpxchg(&_dc_and_los, los, dc_claimed | los);
   596   return old == los;
   596   return old == los;
   597 }
   597 }
   598 
   598 
   599 inline ParallelCompactData::RegionData*
   599 inline ParallelCompactData::RegionData*
   600 ParallelCompactData::region(size_t region_idx) const
   600 ParallelCompactData::region(size_t region_idx) const