org.jikesrvm.osr
Class ObjectHolder

java.lang.Object
  extended by org.jikesrvm.osr.ObjectHolder
All Implemented Interfaces:
SizeConstants

public class ObjectHolder
extends Object
implements SizeConstants

ObjectHolder helps the specialized prologue to load reference get around of GC problem


Field Summary
private static int POOLSIZE
           
private static Object[][] refs
           
 
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
 
Constructor Summary
ObjectHolder()
           
 
Method Summary
static void boot()
           
static void cleanRefs(int h)
          Clean objects.
static Object getRefAt(int h, int i)
          Get the object handed in before, only called by specialized code.
static int handinRefs(Object[] objs)
          The VM scope descriptor extractor can hand in an object here
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

POOLSIZE

private static final int POOLSIZE
See Also:
Constant Field Values

refs

private static Object[][] refs
Constructor Detail

ObjectHolder

public ObjectHolder()
Method Detail

boot

public static void boot()

handinRefs

public static int handinRefs(Object[] objs)
The VM scope descriptor extractor can hand in an object here


getRefAt

public static Object getRefAt(int h,
                              int i)
Get the object handed in before, only called by specialized code.


cleanRefs

public static void cleanRefs(int h)
Clean objects. This method is called by specialized bytecode prologue Uses magic because it must be uninterruptible