71 // logging barrier of narrow oop granularity, like the pre-barrier for G1 |
71 // logging barrier of narrow oop granularity, like the pre-barrier for G1 |
72 // (mentioned here merely by way of example), we will need to change this |
72 // (mentioned here merely by way of example), we will need to change this |
73 // interface, so it is "exactly precise" (if i may be allowed the adverbial |
73 // interface, so it is "exactly precise" (if i may be allowed the adverbial |
74 // redundancy for emphasis) and does not include narrow oop slots not |
74 // redundancy for emphasis) and does not include narrow oop slots not |
75 // included in the original write interval. |
75 // included in the original write interval. |
76 HeapWord* aligned_start = align_ptr_down(start, HeapWordSize); |
76 HeapWord* aligned_start = align_down(start, HeapWordSize); |
77 HeapWord* aligned_end = align_ptr_up (end, HeapWordSize); |
77 HeapWord* aligned_end = align_up (end, HeapWordSize); |
78 // If compressed oops were not being used, these should already be aligned |
78 // If compressed oops were not being used, these should already be aligned |
79 assert(UseCompressedOops || (aligned_start == start && aligned_end == end), |
79 assert(UseCompressedOops || (aligned_start == start && aligned_end == end), |
80 "Expected heap word alignment of start and end"); |
80 "Expected heap word alignment of start and end"); |
81 write_ref_array_work(MemRegion(aligned_start, aligned_end)); |
81 write_ref_array_work(MemRegion(aligned_start, aligned_end)); |
82 } |
82 } |