< prev index next >

src/share/vm/gc/g1/heapRegionType.hpp

Print this page

        

*** 42,72 **** // future, we'll have to increase the size of the latter and hence // decrease the size of the former. // // 0000 0 [ 0] Free // ! // 0001 0 Young Mask // 0001 0 [ 2] Eden // 0001 1 [ 3] Survivor // ! // 0010 0 Humongous Mask ! // 0010 0 [ 4] Starts Humongous ! // 0010 1 [ 5] Continues Humongous // ! // 01000 [ 8] Old typedef enum { FreeTag = 0, YoungMask = 2, EdenTag = YoungMask, SurvTag = YoungMask + 1, HumongousMask = 4, ! StartsHumongousTag = HumongousMask, ! ContinuesHumongousTag = HumongousMask + 1, ! OldTag = 8 } Tag; volatile Tag _tag; static bool is_valid(Tag tag); --- 42,79 ---- // future, we'll have to increase the size of the latter and hence // decrease the size of the former. // // 0000 0 [ 0] Free // ! // 0001 0 [ 2] Young Mask // 0001 0 [ 2] Eden // 0001 1 [ 3] Survivor // ! // 0010 0 [ 4] Humongous Mask ! // 0100 0 [ 8] Pinned Mask ! // 0110 0 [12] Starts Humongous ! // 0110 1 [13] Continues Humongous // ! // 1000 0 [16] Old Mask ! // ! // 1100 0 [24] Archive typedef enum { FreeTag = 0, YoungMask = 2, EdenTag = YoungMask, SurvTag = YoungMask + 1, HumongousMask = 4, ! PinnedMask = 8, ! StartsHumongousTag = HumongousMask | PinnedMask, ! ContinuesHumongousTag = HumongousMask | PinnedMask + 1, ! ! OldMask = 16, ! OldTag = OldMask, ! ArchiveTag = PinnedMask | OldMask } Tag; volatile Tag _tag; static bool is_valid(Tag tag);
*** 106,116 **** bool is_humongous() const { return (get() & HumongousMask) != 0; } bool is_starts_humongous() const { return get() == StartsHumongousTag; } bool is_continues_humongous() const { return get() == ContinuesHumongousTag; } ! bool is_old() const { return get() == OldTag; } // Setters void set_free() { set(FreeTag); } --- 113,129 ---- bool is_humongous() const { return (get() & HumongousMask) != 0; } bool is_starts_humongous() const { return get() == StartsHumongousTag; } bool is_continues_humongous() const { return get() == ContinuesHumongousTag; } ! bool is_archive() const { return get() == ArchiveTag; } ! ! // is_old regions may or may not also be pinned ! bool is_old() const { return (get() & OldMask) != 0; } ! ! // is_pinned regions may be archive or humongous ! bool is_pinned() const { return (get() & PinnedMask) != 0; } // Setters void set_free() { set(FreeTag); }
*** 121,130 **** --- 134,145 ---- void set_starts_humongous() { set_from(StartsHumongousTag, FreeTag); } void set_continues_humongous() { set_from(ContinuesHumongousTag, FreeTag); } void set_old() { set(OldTag); } + void set_archive() { set_from(ArchiveTag, FreeTag); } + // Misc const char* get_str() const; const char* get_short_str() const;
< prev index next >