600 verify_guard();
601 }
602
603 #ifndef PRODUCT
604 void CardTableModRefBS::verify_region(MemRegion mr,
605 jbyte val, bool val_equals) {
606 jbyte* start = byte_for(mr.start());
607 jbyte* end = byte_for(mr.last());
608 bool failures = false;
609 for (jbyte* curr = start; curr <= end; ++curr) {
610 jbyte curr_val = *curr;
611 bool failed = (val_equals) ? (curr_val != val) : (curr_val == val);
612 if (failed) {
613 if (!failures) {
614 tty->cr();
615 tty->print_cr("== CT verification failed: [" INTPTR_FORMAT "," INTPTR_FORMAT "]", p2i(start), p2i(end));
616 tty->print_cr("== %sexpecting value: %d",
617 (val_equals) ? "" : "not ", val);
618 failures = true;
619 }
620 tty->print_cr("== card "PTR_FORMAT" ["PTR_FORMAT","PTR_FORMAT"], "
621 "val: %d", p2i(curr), p2i(addr_for(curr)),
622 p2i((HeapWord*) (((size_t) addr_for(curr)) + card_size)),
623 (int) curr_val);
624 }
625 }
626 guarantee(!failures, "there should not have been any failures");
627 }
628
629 void CardTableModRefBS::verify_not_dirty_region(MemRegion mr) {
630 verify_region(mr, dirty_card, false /* val_equals */);
631 }
632
633 void CardTableModRefBS::verify_dirty_region(MemRegion mr) {
634 verify_region(mr, dirty_card, true /* val_equals */);
635 }
636 #endif
637
638 void CardTableModRefBS::print_on(outputStream* st) const {
639 st->print_cr("Card table byte_map: [" INTPTR_FORMAT "," INTPTR_FORMAT "] byte_map_base: " INTPTR_FORMAT,
640 p2i(_byte_map), p2i(_byte_map + _byte_map_size), p2i(byte_map_base));
|
600 verify_guard();
601 }
602
603 #ifndef PRODUCT
604 void CardTableModRefBS::verify_region(MemRegion mr,
605 jbyte val, bool val_equals) {
606 jbyte* start = byte_for(mr.start());
607 jbyte* end = byte_for(mr.last());
608 bool failures = false;
609 for (jbyte* curr = start; curr <= end; ++curr) {
610 jbyte curr_val = *curr;
611 bool failed = (val_equals) ? (curr_val != val) : (curr_val == val);
612 if (failed) {
613 if (!failures) {
614 tty->cr();
615 tty->print_cr("== CT verification failed: [" INTPTR_FORMAT "," INTPTR_FORMAT "]", p2i(start), p2i(end));
616 tty->print_cr("== %sexpecting value: %d",
617 (val_equals) ? "" : "not ", val);
618 failures = true;
619 }
620 tty->print_cr("== card " PTR_FORMAT " [" PTR_FORMAT "," PTR_FORMAT "], "
621 "val: %d", p2i(curr), p2i(addr_for(curr)),
622 p2i((HeapWord*) (((size_t) addr_for(curr)) + card_size)),
623 (int) curr_val);
624 }
625 }
626 guarantee(!failures, "there should not have been any failures");
627 }
628
629 void CardTableModRefBS::verify_not_dirty_region(MemRegion mr) {
630 verify_region(mr, dirty_card, false /* val_equals */);
631 }
632
633 void CardTableModRefBS::verify_dirty_region(MemRegion mr) {
634 verify_region(mr, dirty_card, true /* val_equals */);
635 }
636 #endif
637
638 void CardTableModRefBS::print_on(outputStream* st) const {
639 st->print_cr("Card table byte_map: [" INTPTR_FORMAT "," INTPTR_FORMAT "] byte_map_base: " INTPTR_FORMAT,
640 p2i(_byte_map), p2i(_byte_map + _byte_map_size), p2i(byte_map_base));
|