hotspot/src/share/vm/memory/barrierSet.cpp
changeset 3262 30d1c247fc25
parent 1374 4c24294029a9
child 4461 c17c526d36ef
equal deleted inserted replaced
3192:607a56c8880f 3262:30d1c247fc25
    23  */
    23  */
    24 
    24 
    25 # include "incls/_precompiled.incl"
    25 # include "incls/_precompiled.incl"
    26 # include "incls/_barrierSet.cpp.incl"
    26 # include "incls/_barrierSet.cpp.incl"
    27 
    27 
    28 // count is in HeapWord's
    28 // count is number of array elements being written
    29 void BarrierSet::static_write_ref_array_pre(HeapWord* start, size_t count) {
    29 void BarrierSet::static_write_ref_array_pre(HeapWord* start, size_t count) {
    30    Universe::heap()->barrier_set()->write_ref_array_pre(MemRegion(start, start + count));
    30   assert(count <= (size_t)max_intx, "count too large");
       
    31 #if 0
       
    32   warning("Pre: \t" INTPTR_FORMAT "[" SIZE_FORMAT "]\t",
       
    33                    start,            count);
       
    34 #endif
       
    35   if (UseCompressedOops) {
       
    36     Universe::heap()->barrier_set()->write_ref_array_pre((narrowOop*)start, (int)count);
       
    37   } else {
       
    38     Universe::heap()->barrier_set()->write_ref_array_pre(      (oop*)start, (int)count);
       
    39   }
    31 }
    40 }
    32 
    41 
    33 // count is in HeapWord's
    42 // count is number of array elements being written
    34 void BarrierSet::static_write_ref_array_post(HeapWord* start, size_t count) {
    43 void BarrierSet::static_write_ref_array_post(HeapWord* start, size_t count) {
    35    Universe::heap()->barrier_set()->write_ref_array_work(MemRegion(start, start + count));
    44   assert(count <= (size_t)max_intx, "count too large");
       
    45   HeapWord* end = start + objArrayOopDesc::array_size((int)count);
       
    46 #if 0
       
    47   warning("Post:\t" INTPTR_FORMAT "[" SIZE_FORMAT "] : [" INTPTR_FORMAT","INTPTR_FORMAT")\t",
       
    48                    start,            count,              start,          end);
       
    49 #endif
       
    50   Universe::heap()->barrier_set()->write_ref_array_work(MemRegion(start, end));
    36 }
    51 }