org.jikesrvm.objectmodel
Interface JavaHeaderConstants

All Superinterfaces:
SizeConstants
All Known Implementing Classes:
JavaHeader, ObjectModel, ServerInterpreter, SpecializedScanMethod

public interface JavaHeaderConstants
extends SizeConstants

Constants for the JavaHeader.

See Also:
ObjectModel

Field Summary
static boolean ADDRESS_BASED_HASHING
          This object model supports two schemes for hashcodes: (1) a 10 bit hash code in the object header (2) use the address of the object as its hashcode.
static int ALIGNMENT_MASK
           
static int ALIGNMENT_VALUE
           
static boolean ALLOWS_LINEAR_SCAN
          Can we perform a linear scan?
static Offset ARRAY_BASE_OFFSET
          Offset of first element of an array
static int ARRAY_LENGTH_BYTES
          Number of bytes used to store the array length.
static Offset ARRAY_LENGTH_OFFSET
          Offset of array length from object reference
static boolean DYNAMIC_HASH_OFFSET
          Does this object model place the hash for a hashed and moved object after the data (at a dynamic offset)
static Offset FIELD_ZERO_OFFSET
          Offset of the first field from object reference
static boolean FORWARDING_PTR_OVERLAYS_TIB
          Does this object model use the same header word to contain the TIB and a forwarding pointer?
static int GC_HEADER_BYTES
          Number of bytes used by the GC Header
static Offset GC_HEADER_OFFSET
          Offset of the garbage collection header from the object reference
static Word HASH_STATE_HASHED
           
static Word HASH_STATE_HASHED_AND_MOVED
           
static Word HASH_STATE_MASK
           
static Word HASH_STATE_UNHASHED
           
static int HASHCODE_BYTES
           
static Offset HASHCODE_OFFSET
           
static int JAVA_HEADER_BYTES
          Number of bytes used by the Java Header
static Offset JAVA_HEADER_OFFSET
          Offset of the Java header from the object reference
static int LOG_MIN_ALIGNMENT
           
static int MISC_HEADER_BYTES
          Number of bytes used by the miscellaneous header
static Offset MISC_HEADER_OFFSET
          Offset of the miscellaneous header from the object reference
static int NUM_AVAILABLE_BITS
          How many bits in the header are available for the GC and MISC headers?
static int OTHER_HEADER_BYTES
          Size of GC and miscellaneous headers
static boolean SEGREGATE_ARRAYS_FOR_LINEAR_SCAN
          Do we need to segregate arrays and scalars to do a linear scan?
static int STATUS_BYTES
          Number of bytes indicating an object's status
static int TIB_BYTES
          Number of bytes in object's TIB pointer
 
Fields inherited from interface org.jikesrvm.SizeConstants
BITS_IN_ADDRESS, BITS_IN_BOOLEAN, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_DOUBLE, BITS_IN_EXTENT, BITS_IN_FLOAT, BITS_IN_INT, BITS_IN_LONG, BITS_IN_OFFSET, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BOOLEAN, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_DOUBLE, BYTES_IN_EXTENT, BYTES_IN_FLOAT, BYTES_IN_INT, BYTES_IN_LONG, BYTES_IN_OFFSET, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BOOLEAN, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_DOUBLE, LOG_BITS_IN_EXTENT, LOG_BITS_IN_FLOAT, LOG_BITS_IN_INT, LOG_BITS_IN_LONG, LOG_BITS_IN_OFFSET, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_BOOLEAN, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_DOUBLE, LOG_BYTES_IN_EXTENT, LOG_BYTES_IN_FLOAT, LOG_BYTES_IN_INT, LOG_BYTES_IN_LONG, LOG_BYTES_IN_OFFSET, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD
 

Field Detail

TIB_BYTES

static final int TIB_BYTES
Number of bytes in object's TIB pointer

See Also:
Constant Field Values

STATUS_BYTES

static final int STATUS_BYTES
Number of bytes indicating an object's status

See Also:
Constant Field Values

ALIGNMENT_MASK

static final int ALIGNMENT_MASK
See Also:
Constant Field Values

ALIGNMENT_VALUE

static final int ALIGNMENT_VALUE
See Also:
Constant Field Values

LOG_MIN_ALIGNMENT

static final int LOG_MIN_ALIGNMENT
See Also:
Constant Field Values

ARRAY_LENGTH_BYTES

static final int ARRAY_LENGTH_BYTES
Number of bytes used to store the array length. We use 64 bits for the length on a 64 bit architecture as this makes the other words 8-byte aligned, and the header has to be 8-byte aligned.

See Also:
Constant Field Values

JAVA_HEADER_BYTES

static final int JAVA_HEADER_BYTES
Number of bytes used by the Java Header

See Also:
Constant Field Values

GC_HEADER_BYTES

static final int GC_HEADER_BYTES
Number of bytes used by the GC Header


MISC_HEADER_BYTES

static final int MISC_HEADER_BYTES
Number of bytes used by the miscellaneous header


OTHER_HEADER_BYTES

static final int OTHER_HEADER_BYTES
Size of GC and miscellaneous headers


ARRAY_LENGTH_OFFSET

static final Offset ARRAY_LENGTH_OFFSET
Offset of array length from object reference


FIELD_ZERO_OFFSET

static final Offset FIELD_ZERO_OFFSET
Offset of the first field from object reference


JAVA_HEADER_OFFSET

static final Offset JAVA_HEADER_OFFSET
Offset of the Java header from the object reference


MISC_HEADER_OFFSET

static final Offset MISC_HEADER_OFFSET
Offset of the miscellaneous header from the object reference


GC_HEADER_OFFSET

static final Offset GC_HEADER_OFFSET
Offset of the garbage collection header from the object reference


ARRAY_BASE_OFFSET

static final Offset ARRAY_BASE_OFFSET
Offset of first element of an array


ADDRESS_BASED_HASHING

static final boolean ADDRESS_BASED_HASHING
This object model supports two schemes for hashcodes: (1) a 10 bit hash code in the object header (2) use the address of the object as its hashcode. In a copying collector, this forces us to add a word to copied objects that have had their hashcode taken.


NUM_AVAILABLE_BITS

static final int NUM_AVAILABLE_BITS
How many bits in the header are available for the GC and MISC headers?


FORWARDING_PTR_OVERLAYS_TIB

static final boolean FORWARDING_PTR_OVERLAYS_TIB
Does this object model use the same header word to contain the TIB and a forwarding pointer?

See Also:
Constant Field Values

DYNAMIC_HASH_OFFSET

static final boolean DYNAMIC_HASH_OFFSET
Does this object model place the hash for a hashed and moved object after the data (at a dynamic offset)


ALLOWS_LINEAR_SCAN

static final boolean ALLOWS_LINEAR_SCAN
Can we perform a linear scan?

See Also:
Constant Field Values

SEGREGATE_ARRAYS_FOR_LINEAR_SCAN

static final boolean SEGREGATE_ARRAYS_FOR_LINEAR_SCAN
Do we need to segregate arrays and scalars to do a linear scan?

See Also:
Constant Field Values

HASH_STATE_UNHASHED

static final Word HASH_STATE_UNHASHED

HASH_STATE_HASHED

static final Word HASH_STATE_HASHED

HASH_STATE_HASHED_AND_MOVED

static final Word HASH_STATE_HASHED_AND_MOVED

HASH_STATE_MASK

static final Word HASH_STATE_MASK

HASHCODE_BYTES

static final int HASHCODE_BYTES
See Also:
Constant Field Values

HASHCODE_OFFSET

static final Offset HASHCODE_OFFSET