org.jikesrvm.mm.mmtk
Class ScanStatics

java.lang.Object
  extended by org.jikesrvm.mm.mmtk.ScanStatics
All Implemented Interfaces:
Constants

public final class ScanStatics
extends Object
implements Constants

Class that determines all JTOC slots (statics) that hold references


Field Summary
private static int chunkSizeMask
          Mask used when calculating the chunkSize to ensure chunks are 64bit aligned on 64bit architectures
private static int refSlotSize
          Size in 32bits words of a JTOC slot (ie 32bit addresses = 1, 64bit addresses =2)
 
Fields inherited from interface org.mmtk.utility.Constants
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING
 
Constructor Summary
ScanStatics()
           
 
Method Summary
private static void checkReference(Address refaddr, int slot)
          Check that a reference encountered during scanning is valid.
static void scanStatics(TraceLocal trace)
          Scan static variables (JTOC) for object references.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

refSlotSize

private static final int refSlotSize
Size in 32bits words of a JTOC slot (ie 32bit addresses = 1, 64bit addresses =2)


chunkSizeMask

private static final int chunkSizeMask
Mask used when calculating the chunkSize to ensure chunks are 64bit aligned on 64bit architectures

Constructor Detail

ScanStatics

public ScanStatics()
Method Detail

scanStatics

public static void scanStatics(TraceLocal trace)
Scan static variables (JTOC) for object references. Executed by all GC threads in parallel, with each doing a portion of the JTOC.


checkReference

private static void checkReference(Address refaddr,
                                   int slot)
Check that a reference encountered during scanning is valid. If the reference is invalid, dump stack and die.

Parameters:
refaddr - The address of the reference in question.