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