src/hotspot/share/gc/g1/heapRegion.cpp
changeset 55510 3e31a8beaae4
parent 54983 81becad91321
child 57802 854e828d6b5b
equal deleted inserted replaced
55509:d58442b8abc1 55510:3e31a8beaae4
    47 #include "runtime/orderAccess.hpp"
    47 #include "runtime/orderAccess.hpp"
    48 #include "utilities/growableArray.hpp"
    48 #include "utilities/growableArray.hpp"
    49 
    49 
    50 int    HeapRegion::LogOfHRGrainBytes = 0;
    50 int    HeapRegion::LogOfHRGrainBytes = 0;
    51 int    HeapRegion::LogOfHRGrainWords = 0;
    51 int    HeapRegion::LogOfHRGrainWords = 0;
       
    52 int    HeapRegion::LogCardsPerRegion = 0;
    52 size_t HeapRegion::GrainBytes        = 0;
    53 size_t HeapRegion::GrainBytes        = 0;
    53 size_t HeapRegion::GrainWords        = 0;
    54 size_t HeapRegion::GrainWords        = 0;
    54 size_t HeapRegion::CardsPerRegion    = 0;
    55 size_t HeapRegion::CardsPerRegion    = 0;
    55 
    56 
    56 size_t HeapRegion::max_region_size() {
    57 size_t HeapRegion::max_region_size() {
   102   GrainWords = GrainBytes >> LogHeapWordSize;
   103   GrainWords = GrainBytes >> LogHeapWordSize;
   103   guarantee((size_t) 1 << LogOfHRGrainWords == GrainWords, "sanity");
   104   guarantee((size_t) 1 << LogOfHRGrainWords == GrainWords, "sanity");
   104 
   105 
   105   guarantee(CardsPerRegion == 0, "we should only set it once");
   106   guarantee(CardsPerRegion == 0, "we should only set it once");
   106   CardsPerRegion = GrainBytes >> G1CardTable::card_shift;
   107   CardsPerRegion = GrainBytes >> G1CardTable::card_shift;
       
   108 
       
   109   LogCardsPerRegion = log2_long((jlong) CardsPerRegion);
   107 
   110 
   108   if (G1HeapRegionSize != GrainBytes) {
   111   if (G1HeapRegionSize != GrainBytes) {
   109     FLAG_SET_ERGO(G1HeapRegionSize, GrainBytes);
   112     FLAG_SET_ERGO(G1HeapRegionSize, GrainBytes);
   110   }
   113   }
   111 }
   114 }