130 // Override. Might want to devirtualize this in the same fashion as
131 // above. Ensures that the value of the card for field says that it's
132 // a younger card in the current collection.
133 virtual void write_ref_field_gc_par(void* field, oop new_val);
134
135 void resize_covered_region(MemRegion new_region);
136
137 bool is_aligned(HeapWord* addr) {
138 return _ct_bs->is_card_aligned(addr);
139 }
140
141 void verify();
142 void verify_aligned_region_empty(MemRegion mr);
143
144 void clear(MemRegion mr) { _ct_bs->clear(mr); }
145 void clear_into_younger(Generation* gen);
146
147 void invalidate(MemRegion mr, bool whole_heap = false) {
148 _ct_bs->invalidate(mr, whole_heap);
149 }
150 void invalidate_or_clear(Generation* gen, bool younger);
151
152 static uintx ct_max_alignment_constraint() {
153 return CardTableModRefBS::ct_max_alignment_constraint();
154 }
155
156 jbyte* byte_for(void* p) { return _ct_bs->byte_for(p); }
157 jbyte* byte_after(void* p) { return _ct_bs->byte_after(p); }
158 HeapWord* addr_for(jbyte* p) { return _ct_bs->addr_for(p); }
159
160 bool is_prev_nonclean_card_val(jbyte v) {
161 return
162 youngergen_card <= v &&
163 v <= cur_youngergen_and_prev_nonclean_card &&
164 v != _cur_youngergen_card_val;
165 }
166
167 static bool youngergen_may_have_been_dirty(jbyte cv) {
168 return cv == CardTableRS::cur_youngergen_and_prev_nonclean_card;
169 }
170
|
130 // Override. Might want to devirtualize this in the same fashion as
131 // above. Ensures that the value of the card for field says that it's
132 // a younger card in the current collection.
133 virtual void write_ref_field_gc_par(void* field, oop new_val);
134
135 void resize_covered_region(MemRegion new_region);
136
137 bool is_aligned(HeapWord* addr) {
138 return _ct_bs->is_card_aligned(addr);
139 }
140
141 void verify();
142 void verify_aligned_region_empty(MemRegion mr);
143
144 void clear(MemRegion mr) { _ct_bs->clear(mr); }
145 void clear_into_younger(Generation* gen);
146
147 void invalidate(MemRegion mr, bool whole_heap = false) {
148 _ct_bs->invalidate(mr, whole_heap);
149 }
150 void invalidate_or_clear(Generation* gen);
151
152 static uintx ct_max_alignment_constraint() {
153 return CardTableModRefBS::ct_max_alignment_constraint();
154 }
155
156 jbyte* byte_for(void* p) { return _ct_bs->byte_for(p); }
157 jbyte* byte_after(void* p) { return _ct_bs->byte_after(p); }
158 HeapWord* addr_for(jbyte* p) { return _ct_bs->addr_for(p); }
159
160 bool is_prev_nonclean_card_val(jbyte v) {
161 return
162 youngergen_card <= v &&
163 v <= cur_youngergen_and_prev_nonclean_card &&
164 v != _cur_youngergen_card_val;
165 }
166
167 static bool youngergen_may_have_been_dirty(jbyte cv) {
168 return cv == CardTableRS::cur_youngergen_and_prev_nonclean_card;
169 }
170
|