src/share/vm/memory/cardTableModRefBS.cpp
Print this page
rev 4973 : imported patch change-yg-card-value.diff
rev 4975 : imported patch refactor-and-sparc.diff
*** 461,470 ****
--- 461,476 ----
jbyte val = _byte_map[card_index];
// It's already processed
if ((val & (clean_card_mask_val() | deferred_card_val())) == deferred_card_val()) {
return false;
}
+
+ if (val == g1_young_gen) {
+ // the card is for a young gen region. We don't need to keep track of all pointers into young
+ return false;
+ }
+
// Cached bit can be installed either on a clean card or on a claimed card.
jbyte new_val = val;
if (val == clean_card_val()) {
new_val = (jbyte)deferred_card_val();
} else {
*** 730,739 ****
--- 736,749 ----
}
void CardTableModRefBS::verify_dirty_region(MemRegion mr) {
verify_region(mr, dirty_card, true /* val_equals */);
}
+
+ void CardTableModRefBS::verify_g1_young_region(MemRegion mr) {
+ verify_region(mr, g1_young_gen, true);
+ }
#endif
void CardTableModRefBS::print_on(outputStream* st) const {
st->print_cr("Card table byte_map: [" INTPTR_FORMAT "," INTPTR_FORMAT "] byte_map_base: " INTPTR_FORMAT,
_byte_map, _byte_map + _byte_map_size, byte_map_base);