markOopDesc Class Reference

#include <markOop.hpp>

Inheritance diagram for markOopDesc:

Inheritance graph
[legend]
Collaboration diagram for markOopDesc:

Collaboration graph
[legend]
List of all members.

Public Types

 max_age = age_mask
enum  { max_age = age_mask }

Public Member Functions

bool has_sentinel () const
markOop set_sentinel () const
markOop clear_sentinel () const
bool has_tagged_contents () const
bool is_near_death () const
markOop set_near_death () const
markOop clear_near_death () const
bool is_klass_invalid () const
markOop set_klass_invalid () const
markOop clear_klass_invalid () const
bool has_context_forward () const
markOop set_context_forward () const
bool is_queued () const
markOop set_queued () const
markOop clear_queued () const
int age () const
markOop set_age (int v) const
markOop incr_age () const
int hash () const
markOop set_hash (int v) const
bool has_valid_hash () const
void print_on (outputStream *st)

Static Public Member Functions

static int context_forward_bit_mask ()
static markOop tagged_prototype ()
static markOop untagged_prototype ()
static markOop bad ()
static int masked_hash (int v)

Private Types

 no_hash = 0
 first_hash = 1
 sentinel_bits = 1
 near_death_bits = 1
 tagged_contents_bits = 1
 age_bits = 7
 hash_bits = BitsPerWord - sentinel_bits - near_death_bits - tagged_contents_bits - age_bits - Tag_Size
 hash_shift = Tag_Size
 age_shift = hash_bits + hash_shift
 tagged_contents_shift = age_bits + age_shift
 near_death_shift = tagged_contents_bits + tagged_contents_shift
 sentinel_shift = near_death_bits + near_death_shift
 hash_mask = nthMask(hash_bits)
 hash_mask_in_place = hash_mask << hash_shift
 age_mask = nthMask(age_bits)
 age_mask_in_place = age_mask << age_shift
 tagged_contents_mask = nthMask(tagged_contents_bits)
 tagged_contents_mask_in_place = tagged_contents_mask << tagged_contents_shift
 near_death_mask = nthMask(near_death_bits)
 near_death_mask_in_place = near_death_mask << near_death_shift
 sentinel_mask = nthMask(sentinel_bits)
 sentinel_mask_in_place = sentinel_mask << sentinel_shift
 no_hash_in_place = no_hash << hash_shift
 first_hash_in_place = first_hash << hash_shift
 untagged_contents_in_place = 1 << tagged_contents_shift
 sentinel_is_place = 1 << sentinel_shift
enum  { no_hash = 0, first_hash = 1 }
enum  {
  sentinel_bits = 1, near_death_bits = 1, tagged_contents_bits = 1, age_bits = 7,
  hash_bits = BitsPerWord - sentinel_bits - near_death_bits - tagged_contents_bits - age_bits - Tag_Size
}
enum  {
  hash_shift = Tag_Size, age_shift = hash_bits + hash_shift, tagged_contents_shift = age_bits + age_shift, near_death_shift = tagged_contents_bits + tagged_contents_shift,
  sentinel_shift = near_death_bits + near_death_shift
}
enum  {
  hash_mask = nthMask(hash_bits), hash_mask_in_place = hash_mask << hash_shift, age_mask = nthMask(age_bits), age_mask_in_place = age_mask << age_shift,
  tagged_contents_mask = nthMask(tagged_contents_bits), tagged_contents_mask_in_place = tagged_contents_mask << tagged_contents_shift, near_death_mask = nthMask(near_death_bits), near_death_mask_in_place = near_death_mask << near_death_shift,
  sentinel_mask = nthMask(sentinel_bits), sentinel_mask_in_place = sentinel_mask << sentinel_shift
}
enum  { no_hash_in_place = no_hash << hash_shift, first_hash_in_place = first_hash << hash_shift, untagged_contents_in_place = 1 << tagged_contents_shift }
enum  { sentinel_is_place = 1 << sentinel_shift }

Private Member Functions

unsigned int value () const

Friends

int assign_hash (markOop &m)
int hash_markOop (markOop &m)

Detailed Description

Definition at line 39 of file markOop.hpp.


Member Enumeration Documentation

anonymous enum

Enumerator:
max_age 

Definition at line 77 of file markOop.hpp.

anonymous enum [private]

Enumerator:
no_hash 
first_hash 

Definition at line 44 of file markOop.hpp.

anonymous enum [private]

Enumerator:
sentinel_bits 
near_death_bits 
tagged_contents_bits 
age_bits 
hash_bits 

Definition at line 47 of file markOop.hpp.

anonymous enum [private]

Enumerator:
hash_shift 
age_shift 
tagged_contents_shift 
near_death_shift 
sentinel_shift 

Definition at line 53 of file markOop.hpp.

anonymous enum [private]

Enumerator:
hash_mask 
hash_mask_in_place 
age_mask 
age_mask_in_place 
tagged_contents_mask 
tagged_contents_mask_in_place 
near_death_mask 
near_death_mask_in_place 
sentinel_mask 
sentinel_mask_in_place 

Definition at line 59 of file markOop.hpp.

anonymous enum [private]

Enumerator:
no_hash_in_place 
first_hash_in_place 
untagged_contents_in_place 

Definition at line 71 of file markOop.hpp.

anonymous enum [private]

Enumerator:
sentinel_is_place 

Definition at line 75 of file markOop.hpp.


Member Function Documentation

int markOopDesc::age (  )  const [inline]

Definition at line 105 of file markOop.hpp.

References age_mask_in_place, age_shift, maskBits, and value().

Referenced by ageTable::add(), Universe::allocate_in_survivor_space(), memOopDesc::gc_retrieve_size(), incr_age(), and print_on().

Here is the call graph for this function:

static markOop markOopDesc::bad (  )  [inline, static]

Definition at line 131 of file markOop.hpp.

References first_hash_in_place, Mark_Tag, and sentinel_is_place.

markOop markOopDesc::clear_klass_invalid (  )  const [inline]

Definition at line 92 of file markOop.hpp.

References set_sentinel().

Here is the call graph for this function:

markOop markOopDesc::clear_near_death (  )  const [inline]

Definition at line 87 of file markOop.hpp.

References near_death_mask_in_place, and value().

Here is the call graph for this function:

markOop markOopDesc::clear_queued (  )  const [inline]

Definition at line 102 of file markOop.hpp.

References set_sentinel().

Here is the call graph for this function:

markOop markOopDesc::clear_sentinel (  )  const [inline]

Definition at line 81 of file markOop.hpp.

References sentinel_is_place, and value().

Referenced by set_klass_invalid(), and set_queued().

Here is the call graph for this function:

static int markOopDesc::context_forward_bit_mask (  )  [inline, static]

Definition at line 95 of file markOop.hpp.

References near_death_mask_in_place.

bool markOopDesc::has_context_forward (  )  const [inline]

Definition at line 96 of file markOop.hpp.

References is_near_death().

Here is the call graph for this function:

bool markOopDesc::has_sentinel (  )  const [inline]

Definition at line 79 of file markOop.hpp.

References maskBits, sentinel_mask_in_place, and value().

Referenced by memOopDesc::is_gc_marked(), is_klass_invalid(), is_oop_root(), and is_queued().

Here is the call graph for this function:

bool markOopDesc::has_tagged_contents (  )  const [inline]

Definition at line 83 of file markOop.hpp.

References maskBits, tagged_contents_mask_in_place, and value().

Referenced by print_on().

Here is the call graph for this function:

bool markOopDesc::has_valid_hash (  )  const [inline]

Definition at line 120 of file markOop.hpp.

References hash(), and no_hash.

Referenced by symbolTable::basic_add().

Here is the call graph for this function:

int markOopDesc::hash (  )  const [inline]

Definition at line 113 of file markOop.hpp.

References hash_mask_in_place, hash_shift, maskBits, and value().

Referenced by assign_hash(), has_valid_hash(), contextOopDesc::length(), contextKlass::oop_follow_contents(), print_on(), and set_hash().

Here is the call graph for this function:

markOop markOopDesc::incr_age (  )  const [inline]

Definition at line 110 of file markOop.hpp.

References age(), max_age, and set_age().

Referenced by memOopDesc::copy_to_survivor_space().

Here is the call graph for this function:

bool markOopDesc::is_klass_invalid (  )  const [inline]

Definition at line 90 of file markOop.hpp.

References has_sentinel().

Referenced by klassOopDesc::is_invalid().

Here is the call graph for this function:

bool markOopDesc::is_near_death (  )  const [inline]

Definition at line 85 of file markOop.hpp.

References maskBits, near_death_mask_in_place, and value().

Referenced by has_context_forward(), PRIM_DECL_1(), print_on(), and memConverter::transfer().

Here is the call graph for this function:

bool markOopDesc::is_queued (  )  const [inline]

Definition at line 100 of file markOop.hpp.

References has_sentinel().

Referenced by memOopDesc::is_queued().

Here is the call graph for this function:

static int markOopDesc::masked_hash ( int  v  )  [inline, static]

Definition at line 143 of file markOop.hpp.

References hash_mask.

Referenced by doubleByteArrayOopDesc::hash_value(), and byteArrayOopDesc::hash_value().

void markOopDesc::print_on ( outputStream st  ) 

Reimplemented from oopDesc.

Definition at line 27 of file markOop.cpp.

References age(), has_tagged_contents(), hash(), is_near_death(), and outputStream::print().

Referenced by oopDesc::print_on(), and oopDesc::print_value_on().

Here is the call graph for this function:

markOop markOopDesc::set_age ( int  v  )  const [inline]

Definition at line 106 of file markOop.hpp.

References age_mask, age_mask_in_place, age_shift, assert, and value().

Referenced by incr_age().

Here is the call graph for this function:

markOop markOopDesc::set_context_forward (  )  const [inline]

Definition at line 97 of file markOop.hpp.

References set_near_death().

Here is the call graph for this function:

markOop markOopDesc::set_hash ( int  v  )  const [inline]

Definition at line 114 of file markOop.hpp.

References assert, first_hash, hash(), hash_mask, hash_mask_in_place, hash_shift, no_hash, and value().

Referenced by assign_hash(), and symbolTable::basic_add().

Here is the call graph for this function:

markOop markOopDesc::set_klass_invalid (  )  const [inline]

Definition at line 91 of file markOop.hpp.

References clear_sentinel().

Here is the call graph for this function:

markOop markOopDesc::set_near_death (  )  const [inline]

Definition at line 86 of file markOop.hpp.

References near_death_mask_in_place, and value().

Referenced by set_context_forward().

Here is the call graph for this function:

markOop markOopDesc::set_queued (  )  const [inline]

Definition at line 101 of file markOop.hpp.

References clear_sentinel().

Here is the call graph for this function:

markOop markOopDesc::set_sentinel (  )  const [inline]

Definition at line 80 of file markOop.hpp.

References sentinel_is_place, and value().

Referenced by clear_klass_invalid(), and clear_queued().

Here is the call graph for this function:

static markOop markOopDesc::tagged_prototype (  )  [inline, static]

Definition at line 123 of file markOop.hpp.

References Mark_Tag, no_hash_in_place, and sentinel_is_place.

Referenced by contextKlass::allocateObjectSize(), memOopDesc::bootstrap_header(), memOopDesc::init_mark(), and bootstrap::read_mark().

static markOop markOopDesc::untagged_prototype (  )  [inline, static]

Definition at line 126 of file markOop.hpp.

References Mark_Tag, no_hash_in_place, sentinel_is_place, and untagged_contents_in_place.

Referenced by memOopDesc::bootstrap_header(), memOopDesc::init_untagged_contents_mark(), and bootstrap::read_mark().

unsigned int markOopDesc::value (  )  const [inline, private]

Definition at line 41 of file markOop.hpp.

Referenced by age(), clear_near_death(), clear_sentinel(), has_sentinel(), has_tagged_contents(), hash(), is_near_death(), set_age(), set_hash(), set_near_death(), and set_sentinel().


Friends And Related Function Documentation

int assign_hash ( markOop m  )  [friend]

Definition at line 34 of file markOop.cpp.

int hash_markOop ( markOop m  )  [friend]

Definition at line 135 of file markOop.hpp.


The documentation for this class was generated from the following files:
Generated on Mon Oct 9 14:06:29 2006 for Strongtalk VM by  doxygen 1.4.7