org.jikesrvm.mm.mminterface
Class Barriers

java.lang.Object
  extended by org.jikesrvm.mm.mminterface.Barriers
All Implemented Interfaces:
Constants

public class Barriers
extends Object
implements Constants


Field Summary
static boolean BOOLEAN_BULK_COPY_SUPPORTED
          true if the garbage collector does not support the bulk copy operation
static boolean BYTE_BULK_COPY_SUPPORTED
          true if the garbage collector does not support the bulk copy operation
static boolean CHAR_BULK_COPY_SUPPORTED
          true if the garbage collector does not support the bulk copy operation
static boolean DOUBLE_BULK_COPY_SUPPORTED
          true if the garbage collector supports the bulk copy operation
static boolean FLOAT_BULK_COPY_SUPPORTED
          true if the garbage collector supports the bulk copy operation
static boolean INT_BULK_COPY_SUPPORTED
          true if the garbage collector does not support the bulk copy operation
static boolean LONG_BULK_COPY_SUPPORTED
          true if the garbage collector supports the bulk copy operation
private static boolean NEEDS_ADDRESS_GC_READ_BARRIER
          true if the garbage collector requires read barriers on Address getfield or arrayload
private static boolean NEEDS_ADDRESS_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on Address putfield, arraystore or modifycheck
static boolean NEEDS_ADDRESS_GETFIELD_BARRIER
          true if the VM requires read barriers on Address getfield
static boolean NEEDS_ADDRESS_PUTFIELD_BARRIER
          true if the VM requires write barriers on Address putfield
static boolean NEEDS_BOOLEAN_ALOAD_BARRIER
          true if the VM requires read barriers on boolean arrayload
static boolean NEEDS_BOOLEAN_ASTORE_BARRIER
          true if the VM requires write barriers on boolean arraystore
private static boolean NEEDS_BOOLEAN_GC_READ_BARRIER
          true if the garbage collector requires read barriers on boolean getfield or arrayload
private static boolean NEEDS_BOOLEAN_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on boolean putfield, arraystore or modifycheck
static boolean NEEDS_BOOLEAN_GETFIELD_BARRIER
          true if the VM requires read barriers on boolean getfield
static boolean NEEDS_BOOLEAN_PUTFIELD_BARRIER
          true if the VM requires write barriers on boolean putfield
static boolean NEEDS_BYTE_ALOAD_BARRIER
          true if the VM requires read barriers on byte arrayload
static boolean NEEDS_BYTE_ASTORE_BARRIER
          true if the VM requires write barriers on byte arraystore
private static boolean NEEDS_BYTE_GC_READ_BARRIER
          true if the garbage collector requires read barriers on byte getfield or arrayload
private static boolean NEEDS_BYTE_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on byte putfield, arraystore or modifycheck
static boolean NEEDS_BYTE_GETFIELD_BARRIER
          true if the VM requires read barriers on byte getfield
static boolean NEEDS_BYTE_PUTFIELD_BARRIER
          true if the VM requires write barriers on byte putfield
static boolean NEEDS_CHAR_ALOAD_BARRIER
          true if the VM requires read barriers on char arrayload
static boolean NEEDS_CHAR_ASTORE_BARRIER
          true if the VM requires write barriers on char arraystore
private static boolean NEEDS_CHAR_GC_READ_BARRIER
          true if the garbage collector requires read barriers on char getfield or arrayload
private static boolean NEEDS_CHAR_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on char putfield, arraystore or modifycheck
static boolean NEEDS_CHAR_GETFIELD_BARRIER
          true if the VM requires read barriers on char getfield
static boolean NEEDS_CHAR_PUTFIELD_BARRIER
          true if the VM requires write barriers on char putfield
static boolean NEEDS_DOUBLE_ALOAD_BARRIER
          true if the VM requires read barriers on double arrayload
static boolean NEEDS_DOUBLE_ASTORE_BARRIER
          true if the VM requires write barriers on double arraystore
private static boolean NEEDS_DOUBLE_GC_READ_BARRIER
          true if the garbage collector requires read barriers on double getfield or arrayload
private static boolean NEEDS_DOUBLE_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on double putfield, arraystore or modifycheck
static boolean NEEDS_DOUBLE_GETFIELD_BARRIER
          true if the VM requires read barriers on double getfield
static boolean NEEDS_DOUBLE_PUTFIELD_BARRIER
          true if the VM requires write barriers on double putfield
private static boolean NEEDS_EXTENT_GC_READ_BARRIER
          true if the garbage collector requires read barriers on Extent getfield or arrayload
private static boolean NEEDS_EXTENT_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on Extent putfield, arraystore or modifycheck
static boolean NEEDS_EXTENT_GETFIELD_BARRIER
          true if the VM requires read barriers on Extent getfield
static boolean NEEDS_EXTENT_PUTFIELD_BARRIER
          true if the VM requires write barriers on Extent putfield
static boolean NEEDS_FLOAT_ALOAD_BARRIER
          true if the VM requires read barriers on float arrayload
static boolean NEEDS_FLOAT_ASTORE_BARRIER
          true if the VM requires write barriers on float arraystore
private static boolean NEEDS_FLOAT_GC_READ_BARRIER
          true if the garbage collector requires read barriers on float getfield or arrayload
private static boolean NEEDS_FLOAT_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on float putfield, arraystore or modifycheck
static boolean NEEDS_FLOAT_GETFIELD_BARRIER
          true if the VM requires read barriers on float getfield
static boolean NEEDS_FLOAT_PUTFIELD_BARRIER
          true if the VM requires write barriers on float putfield
static boolean NEEDS_INT_ALOAD_BARRIER
          true if the VM requires read barriers on int arrayload
static boolean NEEDS_INT_ASTORE_BARRIER
          true if the VM requires write barriers on int arraystore
private static boolean NEEDS_INT_GC_READ_BARRIER
          true if the garbage collector requires read barriers on int getfield or arrayload
private static boolean NEEDS_INT_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on int putfield, arraystore or modifycheck
static boolean NEEDS_INT_GETFIELD_BARRIER
          true if the VM requires read barriers on int getfield
static boolean NEEDS_INT_PUTFIELD_BARRIER
          true if the VM requires write barriers on int putfield
private static boolean NEEDS_JAVA_LANG_REFERENCE_GC_READ_BARRIER
          true if the selected plan requires a read barrier on java.lang.ref.Reference types
static boolean NEEDS_JAVA_LANG_REFERENCE_READ_BARRIER
          true if the selected plan requires a read barrier on java.lang.ref.Reference types
static boolean NEEDS_LONG_ALOAD_BARRIER
          true if the VM requires read barriers on long arrayload
static boolean NEEDS_LONG_ASTORE_BARRIER
          true if the VM requires write barriers on long arraystore
private static boolean NEEDS_LONG_GC_READ_BARRIER
          true if the garbage collector requires read barriers on long getfield or arrayload
private static boolean NEEDS_LONG_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on long putfield, arraystore or modifycheck
static boolean NEEDS_LONG_GETFIELD_BARRIER
          true if the VM requires read barriers on long getfield
static boolean NEEDS_LONG_PUTFIELD_BARRIER
          true if the VM requires write barriers on long putfield
static boolean NEEDS_OBJECT_ALOAD_BARRIER
          true if the VM requires read barriers on reference arrayload
static boolean NEEDS_OBJECT_ASTORE_BARRIER
          true if the VM requires write barriers on reference arraystore
private static boolean NEEDS_OBJECT_GC_GETSTATIC_BARRIER
          true if the selected plan requires read barriers on reference getstatic
private static boolean NEEDS_OBJECT_GC_PUTSTATIC_BARRIER
          true if the selected plan requires write barriers on reference putstatic
private static boolean NEEDS_OBJECT_GC_READ_BARRIER
          true if the garbage collector requires read barriers on reference getfield or arrayload
private static boolean NEEDS_OBJECT_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on reference putfield, arraystore or modifycheck
static boolean NEEDS_OBJECT_GETFIELD_BARRIER
          true if the VM requires read barriers on reference getfield
static boolean NEEDS_OBJECT_GETSTATIC_BARRIER
          true if the selected plan requires read barriers on reference getstatic
static boolean NEEDS_OBJECT_PUTFIELD_BARRIER
          true if the VM requires write barriers on reference putfield
static boolean NEEDS_OBJECT_PUTSTATIC_BARRIER
          true if the selected plan requires write barriers on reference putstatic
private static boolean NEEDS_OFFSET_GC_READ_BARRIER
          true if the garbage collector requires read barriers on Offset getfield or arrayload
private static boolean NEEDS_OFFSET_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on Offset putfield, arraystore or modifycheck
static boolean NEEDS_OFFSET_GETFIELD_BARRIER
          true if the VM requires read barriers on Offset getfield
static boolean NEEDS_OFFSET_PUTFIELD_BARRIER
          true if the VM requires write barriers on Offset putfield
static boolean NEEDS_SHORT_ALOAD_BARRIER
          true if the VM requires read barriers on short arrayload
static boolean NEEDS_SHORT_ASTORE_BARRIER
          true if the VM requires write barriers on short arraystore
private static boolean NEEDS_SHORT_GC_READ_BARRIER
          true if the garbage collector requires read barriers on short getfield or arrayload
private static boolean NEEDS_SHORT_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on short putfield, arraystore or modifycheck
static boolean NEEDS_SHORT_GETFIELD_BARRIER
          true if the VM requires read barriers on short getfield
static boolean NEEDS_SHORT_PUTFIELD_BARRIER
          true if the VM requires write barriers on short putfield
private static boolean NEEDS_WORD_GC_READ_BARRIER
          true if the garbage collector requires read barriers on Word getfield or arrayload
private static boolean NEEDS_WORD_GC_WRITE_BARRIER
          true if the garbage collector requires write barriers on Word putfield, arraystore or modifycheck
static boolean NEEDS_WORD_GETFIELD_BARRIER
          true if the VM requires read barriers on Word getfield
static boolean NEEDS_WORD_PUTFIELD_BARRIER
          true if the VM requires write barriers on Word putfield
static boolean OBJECT_BULK_COPY_SUPPORTED
          true if the garbage collector supports the bulk copy operation
static boolean SHORT_BULK_COPY_SUPPORTED
          true if the garbage collector does not support the bulk copy operation
 
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
Barriers()
           
 
Method Summary
static Address addressFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of Address's from fields of instances (i.e. getfield).
static void addressFieldWrite(Object ref, Address value, Offset offset, int locationMetadata)
          Barrier for writes of Address's into fields of instances (i.e. putfield).
static boolean addressTryCompareAndSwap(Object ref, Offset offset, Address old, Address value)
          Barrier for conditional compare and exchange of Address fields.
static boolean booleanArrayRead(boolean[] ref, int index)
          Barrier for loads of booleans from fields of arrays (i.e. aload).
static void booleanArrayWrite(boolean[] ref, int index, boolean value)
          Barrier for writes of booleans into arrays (i.e. bastore).
static void booleanBulkCopy(boolean[] src, Offset srcOffset, boolean[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of booleans (i.e. in an array copy).
static boolean booleanFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of booleans from fields of instances (i.e. getfield).
static void booleanFieldWrite(Object ref, boolean value, Offset offset, int locationMetadata)
          Barrier for writes of booleans into fields of instances (i.e. putfield).
static byte byteArrayRead(byte[] ref, int index)
          Barrier for loads of bytes from fields of arrays (i.e. baload).
static void byteArrayWrite(byte[] ref, int index, byte value)
          Barrier for writes of bytes into arrays (i.e. bastore).
static void byteBulkCopy(byte[] src, Offset srcOffset, byte[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of bytes (i.e. in an array copy).
static byte byteFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of bytes from fields of instances (i.e. getfield).
static void byteFieldWrite(Object ref, byte value, Offset offset, int locationMetadata)
          Barrier for writes of bytes into fields of instances (i.e. putfield).
static char charArrayRead(char[] ref, int index)
          Barrier for loads of chars from fields of arrays (i.e. caload).
static void charArrayWrite(char[] ref, int index, char value)
          Barrier for writes of chars into arrays (i.e. castore).
static void charBulkCopy(char[] src, Offset srcOffset, char[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of chars (i.e. in an array copy).
static char charFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of chars from fields of instances (i.e. getfield).
static void charFieldWrite(Object ref, char value, Offset offset, int locationMetadata)
          Barrier for writes of chars into fields of instances (i.e. putfield).
static double doubleArrayRead(double[] ref, int index)
          Barrier for loads of doubles from fields of arrays (i.e. daload).
static void doubleArrayWrite(double[] ref, int index, double value)
          Barrier for writes of doubles into arrays (i.e. dastore).
static void doubleBulkCopy(double[] src, Offset srcOffset, double[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of doubles (i.e. in an array copy).
static double doubleFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of doubles from fields of instances (i.e. getfield).
static void doubleFieldWrite(Object ref, double value, Offset offset, int locationMetadata)
          Barrier for writes of doubles into fields of instances (i.e. putfield).
static Extent extentFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of Extents from fields of instances (i.e. getfield).
static void extentFieldWrite(Object ref, Extent value, Offset offset, int locationMetadata)
          Barrier for writes of Extents into fields of instances (i.e. putfield).
static float floatArrayRead(float[] ref, int index)
          Barrier for loads of floats from fields of arrays (i.e. faload).
static void floatArrayWrite(float[] ref, int index, float value)
          Barrier for writes of floats into arrays (i.e. fastore).
static void floatBulkCopy(float[] src, Offset srcOffset, float[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of floats (i.e. in an array copy).
static float floatFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of floats from fields of instances (i.e. getfield).
static void floatFieldWrite(Object ref, float value, Offset offset, int locationMetadata)
          Barrier for writes of floats into fields of instances (i.e. putfield).
static int intArrayRead(int[] ref, int index)
          Barrier for loads of ints from fields of arrays (i.e. iaload).
static void intArrayWrite(int[] ref, int index, int value)
          Barrier for writes of ints into arrays (i.e. iastore).
static void intBulkCopy(int[] src, Offset srcOffset, int[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of ints (i.e. in an array copy).
static int intFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of ints from fields of instances (i.e. getfield).
static void intFieldWrite(Object ref, int value, Offset offset, int locationMetadata)
          Barrier for writes of ints into fields of instances (i.e. putfield).
static boolean intTryCompareAndSwap(Object ref, Offset offset, int old, int value)
          Barrier for conditional compare and exchange of int fields.
static Object javaLangReferenceReadBarrier(Object obj)
          A java.lang.ref.Reference is being read.
static long longArrayRead(long[] ref, int index)
          Barrier for loads of longs from fields of arrays (i.e. laload).
static void longArrayWrite(long[] ref, int index, long value)
          Barrier for writes of longs into arrays (i.e. lastore).
static void longBulkCopy(long[] src, Offset srcOffset, long[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of longs (i.e. in an array copy).
static long longFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of longs from fields of instances (i.e. getfield).
static void longFieldWrite(Object ref, long value, Offset offset, int locationMetadata)
          Barrier for writes of longs into fields of instances (i.e. putfield).
static boolean longTryCompareAndSwap(Object ref, Offset offset, long old, long value)
          Barrier for conditional compare and exchange of long fields.
static Object objectArrayRead(Object[] ref, int index)
          Barrier for loads of objects from fields of arrays (i.e. aaload).
static void objectArrayWrite(Object[] ref, int index, Object value)
          Barrier for writes of objects into arrays (i.e. aastore).
static void objectBulkCopy(Object[] src, Offset srcOffset, Object[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of objects (i.e. in an array copy).
static Object objectFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of objects from fields of instances (i.e. getfield).
static void objectFieldWrite(Object ref, Object value, Offset offset, int locationMetadata)
          Barrier for writes of objects into fields of instances (i.e. putfield).
static Object objectStaticRead(Offset offset, int locationMetadata)
          Barrier for loads of objects from statics (i.e. getstatic)
static void objectStaticWrite(Object value, Offset offset, int locationMetadata)
          Barrier for writes of objects from statics (eg putstatic)
static boolean objectTryCompareAndSwap(Object ref, Offset offset, Object old, Object value)
          Barrier for conditional compare and exchange of reference fields.
static Offset offsetFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of Offsets from fields of instances (i.e. getfield).
static void offsetFieldWrite(Object ref, Offset value, Offset offset, int locationMetadata)
          Barrier for writes of Offsets into fields of instances (i.e. putfield).
static short shortArrayRead(short[] ref, int index)
          Barrier for loads of shorts from fields of arrays (i.e. saload).
static void shortArrayWrite(short[] ref, int index, short value)
          Barrier for writes of shorts into arrays (i.e. sastore).
static void shortBulkCopy(short[] src, Offset srcOffset, short[] dst, Offset dstOffset, int bytes)
          Barrier for a bulk copy of shorts (i.e. in an array copy).
static short shortFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of shorts from fields of instances (i.e. getfield).
static void shortFieldWrite(Object ref, short value, Offset offset, int locationMetadata)
          Barrier for writes of shorts into fields of instances (i.e. putfield).
static Word wordFieldRead(Object ref, Offset offset, int locationMetadata)
          Barrier for loads of Words from fields of instances (i.e. getfield).
static void wordFieldWrite(Object ref, Word value, Offset offset, int locationMetadata)
          Barrier for writes of Words into fields of instances (i.e. putfield).
static boolean wordTryCompareAndSwap(Object ref, Offset offset, Word old, Word value)
          Barrier for conditional compare and exchange of Word fields.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NEEDS_JAVA_LANG_REFERENCE_GC_READ_BARRIER

private static final boolean NEEDS_JAVA_LANG_REFERENCE_GC_READ_BARRIER
true if the selected plan requires a read barrier on java.lang.ref.Reference types


NEEDS_JAVA_LANG_REFERENCE_READ_BARRIER

public static final boolean NEEDS_JAVA_LANG_REFERENCE_READ_BARRIER
true if the selected plan requires a read barrier on java.lang.ref.Reference types


NEEDS_BOOLEAN_GC_WRITE_BARRIER

private static final boolean NEEDS_BOOLEAN_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on boolean putfield, arraystore or modifycheck


NEEDS_BOOLEAN_PUTFIELD_BARRIER

public static final boolean NEEDS_BOOLEAN_PUTFIELD_BARRIER
true if the VM requires write barriers on boolean putfield


NEEDS_BOOLEAN_ASTORE_BARRIER

public static final boolean NEEDS_BOOLEAN_ASTORE_BARRIER
true if the VM requires write barriers on boolean arraystore


NEEDS_BOOLEAN_GC_READ_BARRIER

private static final boolean NEEDS_BOOLEAN_GC_READ_BARRIER
true if the garbage collector requires read barriers on boolean getfield or arrayload


NEEDS_BOOLEAN_GETFIELD_BARRIER

public static final boolean NEEDS_BOOLEAN_GETFIELD_BARRIER
true if the VM requires read barriers on boolean getfield


NEEDS_BOOLEAN_ALOAD_BARRIER

public static final boolean NEEDS_BOOLEAN_ALOAD_BARRIER
true if the VM requires read barriers on boolean arrayload


BOOLEAN_BULK_COPY_SUPPORTED

public static final boolean BOOLEAN_BULK_COPY_SUPPORTED
true if the garbage collector does not support the bulk copy operation


NEEDS_BYTE_GC_WRITE_BARRIER

private static final boolean NEEDS_BYTE_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on byte putfield, arraystore or modifycheck


NEEDS_BYTE_PUTFIELD_BARRIER

public static final boolean NEEDS_BYTE_PUTFIELD_BARRIER
true if the VM requires write barriers on byte putfield


NEEDS_BYTE_ASTORE_BARRIER

public static final boolean NEEDS_BYTE_ASTORE_BARRIER
true if the VM requires write barriers on byte arraystore


NEEDS_BYTE_GC_READ_BARRIER

private static final boolean NEEDS_BYTE_GC_READ_BARRIER
true if the garbage collector requires read barriers on byte getfield or arrayload


NEEDS_BYTE_GETFIELD_BARRIER

public static final boolean NEEDS_BYTE_GETFIELD_BARRIER
true if the VM requires read barriers on byte getfield


NEEDS_BYTE_ALOAD_BARRIER

public static final boolean NEEDS_BYTE_ALOAD_BARRIER
true if the VM requires read barriers on byte arrayload


BYTE_BULK_COPY_SUPPORTED

public static final boolean BYTE_BULK_COPY_SUPPORTED
true if the garbage collector does not support the bulk copy operation


NEEDS_CHAR_GC_WRITE_BARRIER

private static final boolean NEEDS_CHAR_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on char putfield, arraystore or modifycheck


NEEDS_CHAR_PUTFIELD_BARRIER

public static final boolean NEEDS_CHAR_PUTFIELD_BARRIER
true if the VM requires write barriers on char putfield


NEEDS_CHAR_ASTORE_BARRIER

public static final boolean NEEDS_CHAR_ASTORE_BARRIER
true if the VM requires write barriers on char arraystore


NEEDS_CHAR_GC_READ_BARRIER

private static final boolean NEEDS_CHAR_GC_READ_BARRIER
true if the garbage collector requires read barriers on char getfield or arrayload


NEEDS_CHAR_GETFIELD_BARRIER

public static final boolean NEEDS_CHAR_GETFIELD_BARRIER
true if the VM requires read barriers on char getfield


NEEDS_CHAR_ALOAD_BARRIER

public static final boolean NEEDS_CHAR_ALOAD_BARRIER
true if the VM requires read barriers on char arrayload


CHAR_BULK_COPY_SUPPORTED

public static final boolean CHAR_BULK_COPY_SUPPORTED
true if the garbage collector does not support the bulk copy operation


NEEDS_SHORT_GC_WRITE_BARRIER

private static final boolean NEEDS_SHORT_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on short putfield, arraystore or modifycheck


NEEDS_SHORT_PUTFIELD_BARRIER

public static final boolean NEEDS_SHORT_PUTFIELD_BARRIER
true if the VM requires write barriers on short putfield


NEEDS_SHORT_ASTORE_BARRIER

public static final boolean NEEDS_SHORT_ASTORE_BARRIER
true if the VM requires write barriers on short arraystore


NEEDS_SHORT_GC_READ_BARRIER

private static final boolean NEEDS_SHORT_GC_READ_BARRIER
true if the garbage collector requires read barriers on short getfield or arrayload


NEEDS_SHORT_GETFIELD_BARRIER

public static final boolean NEEDS_SHORT_GETFIELD_BARRIER
true if the VM requires read barriers on short getfield


NEEDS_SHORT_ALOAD_BARRIER

public static final boolean NEEDS_SHORT_ALOAD_BARRIER
true if the VM requires read barriers on short arrayload


SHORT_BULK_COPY_SUPPORTED

public static final boolean SHORT_BULK_COPY_SUPPORTED
true if the garbage collector does not support the bulk copy operation


NEEDS_INT_GC_WRITE_BARRIER

private static final boolean NEEDS_INT_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on int putfield, arraystore or modifycheck


NEEDS_INT_PUTFIELD_BARRIER

public static final boolean NEEDS_INT_PUTFIELD_BARRIER
true if the VM requires write barriers on int putfield


NEEDS_INT_ASTORE_BARRIER

public static final boolean NEEDS_INT_ASTORE_BARRIER
true if the VM requires write barriers on int arraystore


NEEDS_INT_GC_READ_BARRIER

private static final boolean NEEDS_INT_GC_READ_BARRIER
true if the garbage collector requires read barriers on int getfield or arrayload


NEEDS_INT_GETFIELD_BARRIER

public static final boolean NEEDS_INT_GETFIELD_BARRIER
true if the VM requires read barriers on int getfield


NEEDS_INT_ALOAD_BARRIER

public static final boolean NEEDS_INT_ALOAD_BARRIER
true if the VM requires read barriers on int arrayload


INT_BULK_COPY_SUPPORTED

public static final boolean INT_BULK_COPY_SUPPORTED
true if the garbage collector does not support the bulk copy operation


NEEDS_LONG_GC_WRITE_BARRIER

private static final boolean NEEDS_LONG_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on long putfield, arraystore or modifycheck


NEEDS_LONG_PUTFIELD_BARRIER

public static final boolean NEEDS_LONG_PUTFIELD_BARRIER
true if the VM requires write barriers on long putfield


NEEDS_LONG_ASTORE_BARRIER

public static final boolean NEEDS_LONG_ASTORE_BARRIER
true if the VM requires write barriers on long arraystore


NEEDS_LONG_GC_READ_BARRIER

private static final boolean NEEDS_LONG_GC_READ_BARRIER
true if the garbage collector requires read barriers on long getfield or arrayload


NEEDS_LONG_GETFIELD_BARRIER

public static final boolean NEEDS_LONG_GETFIELD_BARRIER
true if the VM requires read barriers on long getfield


NEEDS_LONG_ALOAD_BARRIER

public static final boolean NEEDS_LONG_ALOAD_BARRIER
true if the VM requires read barriers on long arrayload


LONG_BULK_COPY_SUPPORTED

public static final boolean LONG_BULK_COPY_SUPPORTED
true if the garbage collector supports the bulk copy operation


NEEDS_FLOAT_GC_WRITE_BARRIER

private static final boolean NEEDS_FLOAT_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on float putfield, arraystore or modifycheck


NEEDS_FLOAT_PUTFIELD_BARRIER

public static final boolean NEEDS_FLOAT_PUTFIELD_BARRIER
true if the VM requires write barriers on float putfield


NEEDS_FLOAT_ASTORE_BARRIER

public static final boolean NEEDS_FLOAT_ASTORE_BARRIER
true if the VM requires write barriers on float arraystore


NEEDS_FLOAT_GC_READ_BARRIER

private static final boolean NEEDS_FLOAT_GC_READ_BARRIER
true if the garbage collector requires read barriers on float getfield or arrayload


NEEDS_FLOAT_GETFIELD_BARRIER

public static final boolean NEEDS_FLOAT_GETFIELD_BARRIER
true if the VM requires read barriers on float getfield


NEEDS_FLOAT_ALOAD_BARRIER

public static final boolean NEEDS_FLOAT_ALOAD_BARRIER
true if the VM requires read barriers on float arrayload


FLOAT_BULK_COPY_SUPPORTED

public static final boolean FLOAT_BULK_COPY_SUPPORTED
true if the garbage collector supports the bulk copy operation


NEEDS_DOUBLE_GC_WRITE_BARRIER

private static final boolean NEEDS_DOUBLE_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on double putfield, arraystore or modifycheck


NEEDS_DOUBLE_PUTFIELD_BARRIER

public static final boolean NEEDS_DOUBLE_PUTFIELD_BARRIER
true if the VM requires write barriers on double putfield


NEEDS_DOUBLE_ASTORE_BARRIER

public static final boolean NEEDS_DOUBLE_ASTORE_BARRIER
true if the VM requires write barriers on double arraystore


NEEDS_DOUBLE_GC_READ_BARRIER

private static final boolean NEEDS_DOUBLE_GC_READ_BARRIER
true if the garbage collector requires read barriers on double getfield or arrayload


NEEDS_DOUBLE_GETFIELD_BARRIER

public static final boolean NEEDS_DOUBLE_GETFIELD_BARRIER
true if the VM requires read barriers on double getfield


NEEDS_DOUBLE_ALOAD_BARRIER

public static final boolean NEEDS_DOUBLE_ALOAD_BARRIER
true if the VM requires read barriers on double arrayload


DOUBLE_BULK_COPY_SUPPORTED

public static final boolean DOUBLE_BULK_COPY_SUPPORTED
true if the garbage collector supports the bulk copy operation


NEEDS_WORD_GC_WRITE_BARRIER

private static final boolean NEEDS_WORD_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on Word putfield, arraystore or modifycheck


NEEDS_WORD_PUTFIELD_BARRIER

public static final boolean NEEDS_WORD_PUTFIELD_BARRIER
true if the VM requires write barriers on Word putfield


NEEDS_WORD_GC_READ_BARRIER

private static final boolean NEEDS_WORD_GC_READ_BARRIER
true if the garbage collector requires read barriers on Word getfield or arrayload


NEEDS_WORD_GETFIELD_BARRIER

public static final boolean NEEDS_WORD_GETFIELD_BARRIER
true if the VM requires read barriers on Word getfield


NEEDS_ADDRESS_GC_WRITE_BARRIER

private static final boolean NEEDS_ADDRESS_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on Address putfield, arraystore or modifycheck


NEEDS_ADDRESS_PUTFIELD_BARRIER

public static final boolean NEEDS_ADDRESS_PUTFIELD_BARRIER
true if the VM requires write barriers on Address putfield


NEEDS_ADDRESS_GC_READ_BARRIER

private static final boolean NEEDS_ADDRESS_GC_READ_BARRIER
true if the garbage collector requires read barriers on Address getfield or arrayload


NEEDS_ADDRESS_GETFIELD_BARRIER

public static final boolean NEEDS_ADDRESS_GETFIELD_BARRIER
true if the VM requires read barriers on Address getfield


NEEDS_EXTENT_GC_WRITE_BARRIER

private static final boolean NEEDS_EXTENT_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on Extent putfield, arraystore or modifycheck


NEEDS_EXTENT_PUTFIELD_BARRIER

public static final boolean NEEDS_EXTENT_PUTFIELD_BARRIER
true if the VM requires write barriers on Extent putfield


NEEDS_EXTENT_GC_READ_BARRIER

private static final boolean NEEDS_EXTENT_GC_READ_BARRIER
true if the garbage collector requires read barriers on Extent getfield or arrayload


NEEDS_EXTENT_GETFIELD_BARRIER

public static final boolean NEEDS_EXTENT_GETFIELD_BARRIER
true if the VM requires read barriers on Extent getfield


NEEDS_OFFSET_GC_WRITE_BARRIER

private static final boolean NEEDS_OFFSET_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on Offset putfield, arraystore or modifycheck


NEEDS_OFFSET_PUTFIELD_BARRIER

public static final boolean NEEDS_OFFSET_PUTFIELD_BARRIER
true if the VM requires write barriers on Offset putfield


NEEDS_OFFSET_GC_READ_BARRIER

private static final boolean NEEDS_OFFSET_GC_READ_BARRIER
true if the garbage collector requires read barriers on Offset getfield or arrayload


NEEDS_OFFSET_GETFIELD_BARRIER

public static final boolean NEEDS_OFFSET_GETFIELD_BARRIER
true if the VM requires read barriers on Offset getfield


NEEDS_OBJECT_GC_WRITE_BARRIER

private static final boolean NEEDS_OBJECT_GC_WRITE_BARRIER
true if the garbage collector requires write barriers on reference putfield, arraystore or modifycheck


NEEDS_OBJECT_PUTFIELD_BARRIER

public static final boolean NEEDS_OBJECT_PUTFIELD_BARRIER
true if the VM requires write barriers on reference putfield


NEEDS_OBJECT_ASTORE_BARRIER

public static final boolean NEEDS_OBJECT_ASTORE_BARRIER
true if the VM requires write barriers on reference arraystore


NEEDS_OBJECT_GC_READ_BARRIER

private static final boolean NEEDS_OBJECT_GC_READ_BARRIER
true if the garbage collector requires read barriers on reference getfield or arrayload


NEEDS_OBJECT_GETFIELD_BARRIER

public static final boolean NEEDS_OBJECT_GETFIELD_BARRIER
true if the VM requires read barriers on reference getfield


NEEDS_OBJECT_ALOAD_BARRIER

public static final boolean NEEDS_OBJECT_ALOAD_BARRIER
true if the VM requires read barriers on reference arrayload


OBJECT_BULK_COPY_SUPPORTED

public static final boolean OBJECT_BULK_COPY_SUPPORTED
true if the garbage collector supports the bulk copy operation


NEEDS_OBJECT_GC_PUTSTATIC_BARRIER

private static final boolean NEEDS_OBJECT_GC_PUTSTATIC_BARRIER
true if the selected plan requires write barriers on reference putstatic


NEEDS_OBJECT_PUTSTATIC_BARRIER

public static final boolean NEEDS_OBJECT_PUTSTATIC_BARRIER
true if the selected plan requires write barriers on reference putstatic


NEEDS_OBJECT_GC_GETSTATIC_BARRIER

private static final boolean NEEDS_OBJECT_GC_GETSTATIC_BARRIER
true if the selected plan requires read barriers on reference getstatic


NEEDS_OBJECT_GETSTATIC_BARRIER

public static final boolean NEEDS_OBJECT_GETSTATIC_BARRIER
true if the selected plan requires read barriers on reference getstatic

Constructor Detail

Barriers

public Barriers()
Method Detail

javaLangReferenceReadBarrier

public static Object javaLangReferenceReadBarrier(Object obj)
A java.lang.ref.Reference is being read.

Parameters:
obj - The non-null referent about to be released to the mutator.
Returns:
The object to release to the mutator.

booleanFieldWrite

public static void booleanFieldWrite(Object ref,
                                     boolean value,
                                     Offset offset,
                                     int locationMetadata)
Barrier for writes of booleans into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

booleanArrayWrite

public static void booleanArrayWrite(boolean[] ref,
                                     int index,
                                     boolean value)
Barrier for writes of booleans into arrays (i.e. bastore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

booleanFieldRead

public static boolean booleanFieldRead(Object ref,
                                       Offset offset,
                                       int locationMetadata)
Barrier for loads of booleans from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

booleanArrayRead

public static boolean booleanArrayRead(boolean[] ref,
                                       int index)
Barrier for loads of booleans from fields of arrays (i.e. aload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

booleanBulkCopy

public static void booleanBulkCopy(boolean[] src,
                                   Offset srcOffset,
                                   boolean[] dst,
                                   Offset dstOffset,
                                   int bytes)
Barrier for a bulk copy of booleans (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

byteFieldWrite

public static void byteFieldWrite(Object ref,
                                  byte value,
                                  Offset offset,
                                  int locationMetadata)
Barrier for writes of bytes into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

byteArrayWrite

public static void byteArrayWrite(byte[] ref,
                                  int index,
                                  byte value)
Barrier for writes of bytes into arrays (i.e. bastore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

byteFieldRead

public static byte byteFieldRead(Object ref,
                                 Offset offset,
                                 int locationMetadata)
Barrier for loads of bytes from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

byteArrayRead

public static byte byteArrayRead(byte[] ref,
                                 int index)
Barrier for loads of bytes from fields of arrays (i.e. baload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

byteBulkCopy

public static void byteBulkCopy(byte[] src,
                                Offset srcOffset,
                                byte[] dst,
                                Offset dstOffset,
                                int bytes)
Barrier for a bulk copy of bytes (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

charFieldWrite

public static void charFieldWrite(Object ref,
                                  char value,
                                  Offset offset,
                                  int locationMetadata)
Barrier for writes of chars into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

charArrayWrite

public static void charArrayWrite(char[] ref,
                                  int index,
                                  char value)
Barrier for writes of chars into arrays (i.e. castore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

charFieldRead

public static char charFieldRead(Object ref,
                                 Offset offset,
                                 int locationMetadata)
Barrier for loads of chars from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

charArrayRead

public static char charArrayRead(char[] ref,
                                 int index)
Barrier for loads of chars from fields of arrays (i.e. caload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

charBulkCopy

public static void charBulkCopy(char[] src,
                                Offset srcOffset,
                                char[] dst,
                                Offset dstOffset,
                                int bytes)
Barrier for a bulk copy of chars (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

shortFieldWrite

public static void shortFieldWrite(Object ref,
                                   short value,
                                   Offset offset,
                                   int locationMetadata)
Barrier for writes of shorts into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

shortArrayWrite

public static void shortArrayWrite(short[] ref,
                                   int index,
                                   short value)
Barrier for writes of shorts into arrays (i.e. sastore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

shortFieldRead

public static short shortFieldRead(Object ref,
                                   Offset offset,
                                   int locationMetadata)
Barrier for loads of shorts from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

shortArrayRead

public static short shortArrayRead(short[] ref,
                                   int index)
Barrier for loads of shorts from fields of arrays (i.e. saload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

shortBulkCopy

public static void shortBulkCopy(short[] src,
                                 Offset srcOffset,
                                 short[] dst,
                                 Offset dstOffset,
                                 int bytes)
Barrier for a bulk copy of shorts (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

intFieldWrite

public static void intFieldWrite(Object ref,
                                 int value,
                                 Offset offset,
                                 int locationMetadata)
Barrier for writes of ints into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

intArrayWrite

public static void intArrayWrite(int[] ref,
                                 int index,
                                 int value)
Barrier for writes of ints into arrays (i.e. iastore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

intFieldRead

public static int intFieldRead(Object ref,
                               Offset offset,
                               int locationMetadata)
Barrier for loads of ints from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

intArrayRead

public static int intArrayRead(int[] ref,
                               int index)
Barrier for loads of ints from fields of arrays (i.e. iaload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

intBulkCopy

public static void intBulkCopy(int[] src,
                               Offset srcOffset,
                               int[] dst,
                               Offset dstOffset,
                               int bytes)
Barrier for a bulk copy of ints (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

intTryCompareAndSwap

public static boolean intTryCompareAndSwap(Object ref,
                                           Offset offset,
                                           int old,
                                           int value)
Barrier for conditional compare and exchange of int fields.

Parameters:
ref - the object which is the subject of the compare and exchanges
offset - the offset of the field to be modified
old - the old value to swap out
value - the new value for the field

longFieldWrite

public static void longFieldWrite(Object ref,
                                  long value,
                                  Offset offset,
                                  int locationMetadata)
Barrier for writes of longs into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

longArrayWrite

public static void longArrayWrite(long[] ref,
                                  int index,
                                  long value)
Barrier for writes of longs into arrays (i.e. lastore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

longFieldRead

public static long longFieldRead(Object ref,
                                 Offset offset,
                                 int locationMetadata)
Barrier for loads of longs from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

longArrayRead

public static long longArrayRead(long[] ref,
                                 int index)
Barrier for loads of longs from fields of arrays (i.e. laload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

longTryCompareAndSwap

public static boolean longTryCompareAndSwap(Object ref,
                                            Offset offset,
                                            long old,
                                            long value)
Barrier for conditional compare and exchange of long fields.

Parameters:
ref - the object which is the subject of the compare and exchanges
offset - the offset of the field to be modified
old - the old value to swap out
value - the new value for the field

longBulkCopy

public static void longBulkCopy(long[] src,
                                Offset srcOffset,
                                long[] dst,
                                Offset dstOffset,
                                int bytes)
Barrier for a bulk copy of longs (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

floatFieldWrite

public static void floatFieldWrite(Object ref,
                                   float value,
                                   Offset offset,
                                   int locationMetadata)
Barrier for writes of floats into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

floatArrayWrite

public static void floatArrayWrite(float[] ref,
                                   int index,
                                   float value)
Barrier for writes of floats into arrays (i.e. fastore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

floatFieldRead

public static float floatFieldRead(Object ref,
                                   Offset offset,
                                   int locationMetadata)
Barrier for loads of floats from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

floatArrayRead

public static float floatArrayRead(float[] ref,
                                   int index)
Barrier for loads of floats from fields of arrays (i.e. faload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

floatBulkCopy

public static void floatBulkCopy(float[] src,
                                 Offset srcOffset,
                                 float[] dst,
                                 Offset dstOffset,
                                 int bytes)
Barrier for a bulk copy of floats (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

doubleFieldWrite

public static void doubleFieldWrite(Object ref,
                                    double value,
                                    Offset offset,
                                    int locationMetadata)
Barrier for writes of doubles into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

doubleArrayWrite

public static void doubleArrayWrite(double[] ref,
                                    int index,
                                    double value)
Barrier for writes of doubles into arrays (i.e. dastore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

doubleFieldRead

public static double doubleFieldRead(Object ref,
                                     Offset offset,
                                     int locationMetadata)
Barrier for loads of doubles from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

doubleArrayRead

public static double doubleArrayRead(double[] ref,
                                     int index)
Barrier for loads of doubles from fields of arrays (i.e. daload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

doubleBulkCopy

public static void doubleBulkCopy(double[] src,
                                  Offset srcOffset,
                                  double[] dst,
                                  Offset dstOffset,
                                  int bytes)
Barrier for a bulk copy of doubles (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

wordFieldWrite

public static void wordFieldWrite(Object ref,
                                  Word value,
                                  Offset offset,
                                  int locationMetadata)
Barrier for writes of Words into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

wordFieldRead

public static Word wordFieldRead(Object ref,
                                 Offset offset,
                                 int locationMetadata)
Barrier for loads of Words from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

wordTryCompareAndSwap

public static boolean wordTryCompareAndSwap(Object ref,
                                            Offset offset,
                                            Word old,
                                            Word value)
Barrier for conditional compare and exchange of Word fields.

Parameters:
ref - the object which is the subject of the compare and exchanges
offset - the offset of the field to be modified
old - the old value to swap out
value - the new value for the field

addressFieldWrite

public static void addressFieldWrite(Object ref,
                                     Address value,
                                     Offset offset,
                                     int locationMetadata)
Barrier for writes of Address's into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

addressFieldRead

public static Address addressFieldRead(Object ref,
                                       Offset offset,
                                       int locationMetadata)
Barrier for loads of Address's from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

addressTryCompareAndSwap

public static boolean addressTryCompareAndSwap(Object ref,
                                               Offset offset,
                                               Address old,
                                               Address value)
Barrier for conditional compare and exchange of Address fields.

Parameters:
ref - the object which is the subject of the compare and exchanges
offset - the offset of the field to be modified
old - the old value to swap out
value - the new value for the field

extentFieldWrite

public static void extentFieldWrite(Object ref,
                                    Extent value,
                                    Offset offset,
                                    int locationMetadata)
Barrier for writes of Extents into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

extentFieldRead

public static Extent extentFieldRead(Object ref,
                                     Offset offset,
                                     int locationMetadata)
Barrier for loads of Extents from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

offsetFieldWrite

public static void offsetFieldWrite(Object ref,
                                    Offset value,
                                    Offset offset,
                                    int locationMetadata)
Barrier for writes of Offsets into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

offsetFieldRead

public static Offset offsetFieldRead(Object ref,
                                     Offset offset,
                                     int locationMetadata)
Barrier for loads of Offsets from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

objectFieldWrite

public static void objectFieldWrite(Object ref,
                                    Object value,
                                    Offset offset,
                                    int locationMetadata)
Barrier for writes of objects into fields of instances (i.e. putfield).

Parameters:
ref - the object which is the subject of the putfield
value - the new value for the field
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

objectArrayWrite

public static void objectArrayWrite(Object[] ref,
                                    int index,
                                    Object value)
Barrier for writes of objects into arrays (i.e. aastore).

Parameters:
ref - the array which is the subject of the astore
index - the index into the array where the new reference resides. The index is the "natural" index into the array, for example a[index].
value - the value to be stored.

objectFieldRead

public static Object objectFieldRead(Object ref,
                                     Offset offset,
                                     int locationMetadata)
Barrier for loads of objects from fields of instances (i.e. getfield).

Parameters:
ref - the object which is the subject of the getfield
offset - the offset of the field to be read
locationMetadata - an int that encodes the source location being read
Returns:
The value read from the field.

objectArrayRead

public static Object objectArrayRead(Object[] ref,
                                     int index)
Barrier for loads of objects from fields of arrays (i.e. aaload).

Parameters:
ref - the array containing the reference.
index - the index into the array were the reference resides.
Returns:
the value read from the array

objectBulkCopy

public static void objectBulkCopy(Object[] src,
                                  Offset srcOffset,
                                  Object[] dst,
                                  Offset dstOffset,
                                  int bytes)
Barrier for a bulk copy of objects (i.e. in an array copy).

Parameters:
src - The source array
srcOffset - The starting source offset
dst - The destination array
dstOffset - The starting destination offset
bytes - The number of bytes to be copied

objectStaticWrite

public static void objectStaticWrite(Object value,
                                     Offset offset,
                                     int locationMetadata)
Barrier for writes of objects from statics (eg putstatic)

Parameters:
value - the new value to be stored
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being modified

objectStaticRead

public static Object objectStaticRead(Offset offset,
                                      int locationMetadata)
Barrier for loads of objects from statics (i.e. getstatic)

Parameters:
offset - the offset of the field to be modified
locationMetadata - an int that encodes the source location being read
Returns:
the value read from the field

objectTryCompareAndSwap

public static boolean objectTryCompareAndSwap(Object ref,
                                              Offset offset,
                                              Object old,
                                              Object value)
Barrier for conditional compare and exchange of reference fields.

Parameters:
ref - the object which is the subject of the compare and exchanges
offset - the offset of the field to be modified
old - the old value to swap out
value - the new value for the field