31 void ParCompactionManager::push_objarray(oop obj, size_t index) |
31 void ParCompactionManager::push_objarray(oop obj, size_t index) |
32 { |
32 { |
33 ObjArrayTask task(obj, index); |
33 ObjArrayTask task(obj, index); |
34 assert(task.is_valid(), "bad ObjArrayTask"); |
34 assert(task.is_valid(), "bad ObjArrayTask"); |
35 _objarray_stack.push(task); |
35 _objarray_stack.push(task); |
|
36 #ifdef MIPS64 |
|
37 if (Use3A2000) OrderAccess::fence(); |
|
38 #endif |
36 } |
39 } |
37 |
40 |
38 void ParCompactionManager::push_region(size_t index) |
41 void ParCompactionManager::push_region(size_t index) |
39 { |
42 { |
40 #ifdef ASSERT |
43 #ifdef ASSERT |
42 ParallelCompactData::RegionData* const region_ptr = sd.region(index); |
45 ParallelCompactData::RegionData* const region_ptr = sd.region(index); |
43 assert(region_ptr->claimed(), "must be claimed"); |
46 assert(region_ptr->claimed(), "must be claimed"); |
44 assert(region_ptr->_pushed++ == 0, "should only be pushed once"); |
47 assert(region_ptr->_pushed++ == 0, "should only be pushed once"); |
45 #endif |
48 #endif |
46 region_stack()->push(index); |
49 region_stack()->push(index); |
|
50 #ifdef MIPS64 |
|
51 if (Use3A2000) OrderAccess::fence(); |
|
52 #endif |
47 } |
53 } |
48 |
54 |
49 #endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP |
55 #endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP |