| Constructor and Description |
|---|
Barriers() |
| Modifier and Type | Method and Description |
|---|---|
abstract Address |
addressRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Address.
|
abstract boolean |
addressTryCompareAndSwap(ObjectReference ref,
Address old,
Address target,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
addressWrite(ObjectReference ref,
Address target,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Address.
|
abstract boolean |
booleanRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a boolean read barrier.
|
abstract void |
booleanWrite(ObjectReference ref,
boolean value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a boolean write barrier.
|
abstract byte |
byteRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a byte read barrier.
|
abstract void |
byteWrite(ObjectReference ref,
byte value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a byte write barrier.
|
abstract char |
charRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a char read barrier.
|
abstract void |
charWrite(ObjectReference ref,
char value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a char write barrier.
|
abstract double |
doubleRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a double read barrier.
|
abstract void |
doubleWrite(ObjectReference ref,
double value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a double write barrier.
|
abstract Extent |
extentRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Extent.
|
abstract void |
extentWrite(ObjectReference ref,
Extent target,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Extent.
|
abstract float |
floatRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a float read barrier.
|
abstract void |
floatWrite(ObjectReference ref,
float value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a float write barrier.
|
abstract int |
intRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a int read barrier.
|
abstract boolean |
intTryCompareAndSwap(ObjectReference objref,
int old,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
intWrite(ObjectReference ref,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a int write barrier.
|
abstract long |
longRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a long read barrier.
|
abstract boolean |
longTryCompareAndSwap(ObjectReference objref,
long old,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
longWrite(ObjectReference ref,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a long write barrier.
|
abstract void |
objectArrayStoreNoGCBarrier(Object[] dst,
int index,
Object value)
Sets an element of an object array without invoking any write
barrier.
|
abstract ObjectReference |
objectReferenceAtomicWrite(ObjectReference ref,
ObjectReference target,
Word metaDataA,
Word metaDataB,
int mode)
Atomically write a reference field of an object or array and return
the old value of the reference field.
|
abstract void |
objectReferenceNonHeapWrite(Address slot,
ObjectReference target,
Word metaDataA,
Word metaDataB)
Perform the actual write of the non-heap write barrier.
|
abstract ObjectReference |
objectReferenceRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a read barrier.
|
abstract boolean |
objectReferenceTryCompareAndSwap(ObjectReference ref,
ObjectReference old,
ObjectReference target,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
objectReferenceWrite(ObjectReference ref,
ObjectReference value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of an object reference write barrier.
|
abstract Offset |
offsetRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Offset.
|
abstract void |
offsetWrite(ObjectReference ref,
Offset target,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Offset.
|
abstract short |
shortRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of a short read barrier.
|
abstract void |
shortWrite(ObjectReference ref,
short value,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of a short write barrier.
|
abstract Word |
wordAtomicWrite(ObjectReference ref,
Word rawTarget,
Word metaDataA,
Word metaDataB,
int mode)
Atomically write a Word field of an object or array and return
the old value of the Word field.
|
abstract Word |
wordRead(ObjectReference ref,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Word.
|
abstract boolean |
wordTryCompareAndSwap(ObjectReference ref,
Word old,
Word target,
Word metaDataA,
Word metaDataB,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
abstract void |
wordWrite(ObjectReference ref,
Word target,
Word metaDataA,
Word metaDataB,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Word.
|
public Barriers()
public abstract void booleanWrite(ObjectReference ref, boolean value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the boolean fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract boolean booleanRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the boolean fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void byteWrite(ObjectReference ref, byte value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the byte fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract byte byteRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the byte fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void charWrite(ObjectReference ref, char value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the char fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract char charRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the char fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void shortWrite(ObjectReference ref, short value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the short fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract short shortRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the short fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void intWrite(ObjectReference ref, int value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the int fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract int intRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the int fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract boolean intTryCompareAndSwap(ObjectReference objref, int old, int value, Word metaDataA, Word metaDataB, int mode)
objref - The object that has the int fieldold - The old int to be swapped outvalue - the new intmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void longWrite(ObjectReference ref, long value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the long fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract long longRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the long fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract boolean longTryCompareAndSwap(ObjectReference objref, long old, long value, Word metaDataA, Word metaDataB, int mode)
objref - The object that has the long fieldold - The old long to be swapped outvalue - the new longmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void floatWrite(ObjectReference ref, float value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the float fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract float floatRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the float fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void doubleWrite(ObjectReference ref, double value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the double fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract double doubleRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the double fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void objectReferenceWrite(ObjectReference ref, ObjectReference value, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the reference fieldvalue - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract ObjectReference objectReferenceRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the reference fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void objectReferenceNonHeapWrite(Address slot, ObjectReference target, Word metaDataA, Word metaDataB)
slot - The address that contains the reference fieldtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotpublic abstract ObjectReference objectReferenceAtomicWrite(ObjectReference ref, ObjectReference target, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the reference fieldtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract boolean objectReferenceTryCompareAndSwap(ObjectReference ref, ObjectReference old, ObjectReference target, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the reference fieldold - The old reference to be swapped outtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void wordWrite(ObjectReference ref, Word target, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Word fieldtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract Word wordAtomicWrite(ObjectReference ref, Word rawTarget, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Word fieldrawTarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract boolean wordTryCompareAndSwap(ObjectReference ref, Word old, Word target, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Word fieldold - The old Word to be swapped outtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract Word wordRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Word fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void addressWrite(ObjectReference ref, Address target, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Address fieldtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract Address addressRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Address fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract boolean addressTryCompareAndSwap(ObjectReference ref, Address old, Address target, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Address fieldold - The old address to be swapped outtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void offsetWrite(ObjectReference ref, Offset target, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Offset fieldtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract Offset offsetRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Offset fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void extentWrite(ObjectReference ref, Extent target, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Extent fieldtarget - The value that the slot will be updated tometaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract Extent extentRead(ObjectReference ref, Word metaDataA, Word metaDataB, int mode)
ref - The object that has the Extent fieldmetaDataA - Opaque, VM-specific, meta-data identifying the slotmetaDataB - Opaque, VM-specific, meta-data identifying the slotmode - The context in which the write is occurringpublic abstract void objectArrayStoreNoGCBarrier(Object[] dst, int index, Object value)
dst - the destination arrayindex - the index of the element to setvalue - the new value for the element