< prev index next >

src/hotspot/share/utilities/bitMap.cpp

Print this page




 667 
 668 BitMap::idx_t BitMap::count_one_bits() const {
 669   init_pop_count_table(); // If necessary.
 670   idx_t sum = 0;
 671   typedef unsigned char uchar;
 672   for (idx_t i = 0; i < size_in_words(); i++) {
 673     bm_word_t w = map()[i];
 674     for (size_t j = 0; j < sizeof(bm_word_t); j++) {
 675       sum += num_set_bits_from_table(uchar(w & 255));
 676       w >>= 8;
 677     }
 678   }
 679   return sum;
 680 }
 681 
 682 void BitMap::print_on_error(outputStream* st, const char* prefix) const {
 683   st->print_cr("%s[" PTR_FORMAT ", " PTR_FORMAT ")",
 684       prefix, p2i(map()), p2i((char*)map() + (size() >> LogBitsPerByte)));
 685 }
 686 





 687 #ifndef PRODUCT
 688 
 689 void BitMap::print_on(outputStream* st) const {
 690   tty->print("Bitmap(" SIZE_FORMAT "):", size());
 691   for (idx_t index = 0; index < size(); index++) {
 692     tty->print("%c", at(index) ? '1' : '0');
 693   }
 694   tty->cr();
 695 }
 696 
 697 #endif


 667 
 668 BitMap::idx_t BitMap::count_one_bits() const {
 669   init_pop_count_table(); // If necessary.
 670   idx_t sum = 0;
 671   typedef unsigned char uchar;
 672   for (idx_t i = 0; i < size_in_words(); i++) {
 673     bm_word_t w = map()[i];
 674     for (size_t j = 0; j < sizeof(bm_word_t); j++) {
 675       sum += num_set_bits_from_table(uchar(w & 255));
 676       w >>= 8;
 677     }
 678   }
 679   return sum;
 680 }
 681 
 682 void BitMap::print_on_error(outputStream* st, const char* prefix) const {
 683   st->print_cr("%s[" PTR_FORMAT ", " PTR_FORMAT ")",
 684       prefix, p2i(map()), p2i((char*)map() + (size() >> LogBitsPerByte)));
 685 }
 686 
 687 void BitMap::write_to(bm_word_t* buffer, size_t buffer_size_in_bytes) const {
 688   assert(buffer_size_in_bytes == size_in_bytes(), "must be");
 689   memcpy(buffer, _map, size_in_bytes());
 690 }
 691 
 692 #ifndef PRODUCT
 693 
 694 void BitMap::print_on(outputStream* st) const {
 695   tty->print("Bitmap(" SIZE_FORMAT "):", size());
 696   for (idx_t index = 0; index < size(); index++) {
 697     tty->print("%c", at(index) ? '1' : '0');
 698   }
 699   tty->cr();
 700 }
 701 
 702 #endif
< prev index next >