Constructor and Description |
---|
Barriers() |
Modifier and Type | Method and Description |
---|---|
Address |
addressRead(ObjectReference ref,
Word offset,
Word location,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Address.
|
boolean |
addressTryCompareAndSwap(ObjectReference objref,
Address expected,
Address newValue,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
addressWrite(ObjectReference ref,
Address target,
Word offset,
Word location,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Address.
|
boolean |
booleanRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a boolean read barrier.
|
void |
booleanWrite(ObjectReference objref,
boolean value,
Word offset,
Word location,
int mode)
Perform the actual write of a boolean write barrier.
|
byte |
byteRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a byte read barrier.
|
void |
byteWrite(ObjectReference objref,
byte value,
Word offset,
Word location,
int mode)
Perform the actual write of a byte write barrier.
|
char |
charRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a char read barrier.
|
void |
charWrite(ObjectReference objref,
char value,
Word offset,
Word location,
int mode)
Perform the actual write of a char write barrier.
|
double |
doubleRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a double read barrier.
|
void |
doubleWrite(ObjectReference objref,
double value,
Word offset,
Word location,
int mode)
Perform the actual write of a double write barrier.
|
Extent |
extentRead(ObjectReference ref,
Word offset,
Word location,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Extent.
|
void |
extentWrite(ObjectReference ref,
Extent target,
Word offset,
Word location,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Extent.
|
float |
floatRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a float read barrier.
|
void |
floatWrite(ObjectReference objref,
float value,
Word offset,
Word location,
int mode)
Perform the actual write of a float write barrier.
|
int |
intRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a int read barrier.
|
boolean |
intTryCompareAndSwap(ObjectReference objref,
int expected,
int newValue,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
intWrite(ObjectReference objref,
int value,
Word offset,
Word location,
int mode)
Perform the actual write of a int write barrier.
|
long |
longRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a long read barrier.
|
boolean |
longTryCompareAndSwap(ObjectReference objref,
long expected,
long newValue,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
longWrite(ObjectReference objref,
long value,
Word offset,
Word location,
int mode)
Perform the actual write of a long write barrier.
|
void |
objectArrayStoreNoGCBarrier(Object[] dst,
int index,
Object value)
Sets an element of an object array without invoking any write
barrier.
|
ObjectReference |
objectReferenceAtomicWrite(ObjectReference objref,
ObjectReference target,
Word offset,
Word unused,
int mode)
Atomically write a reference field of an object or array and return
the old value of the reference field.
|
void |
objectReferenceNonHeapWrite(Address slot,
ObjectReference target,
Word unusedA,
Word unusedB)
Perform the actual write of the non-heap write barrier.
|
ObjectReference |
objectReferenceRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of an object reference read barrier.
|
boolean |
objectReferenceTryCompareAndSwap(ObjectReference objref,
ObjectReference old,
ObjectReference target,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
objectReferenceWrite(ObjectReference objref,
ObjectReference value,
Word offset,
Word location,
int mode)
Perform the actual write of an object reference write barrier.
|
Offset |
offsetRead(ObjectReference ref,
Word offset,
Word location,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Offset.
|
void |
offsetWrite(ObjectReference ref,
Offset target,
Word offset,
Word location,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Offset.
|
short |
shortRead(ObjectReference objref,
Word offset,
Word location,
int mode)
Perform the actual read of a short read barrier.
|
void |
shortWrite(ObjectReference objref,
short value,
Word offset,
Word location,
int mode)
Perform the actual write of a short write barrier.
|
Word |
wordAtomicWrite(ObjectReference ref,
Word target,
Word offset,
Word unused,
int mode)
Atomically write a raw reference field of an object or array and return
the old value of the reference field.
|
Word |
wordRead(ObjectReference ref,
Word offset,
Word location,
int mode)
Perform the actual read of the read barrier, returning the value as a raw Word.
|
boolean |
wordTryCompareAndSwap(ObjectReference ref,
Word old,
Word target,
Word offset,
Word unused,
int mode)
Attempt an atomic compare and exchange in a write barrier sequence.
|
void |
wordWrite(ObjectReference ref,
Word target,
Word offset,
Word location,
int mode)
Perform the actual write of the write barrier, writing the value as a raw Word.
|
public Barriers()
public final void booleanWrite(ObjectReference objref, boolean value, Word offset, Word location, int mode)
booleanWrite
in class Barriers
objref
- The object that has the boolean fieldvalue
- The value that the slot will be updated tooffset
- The offset from the reflocation
- The FieldReference index to assist the storemode
- The context in which the write is occurringpublic final boolean booleanRead(ObjectReference objref, Word offset, Word location, int mode)
booleanRead
in class Barriers
objref
- The object that has the boolean fieldoffset
- The offset from the reflocation
- Unusedmode
- The context in which the write is occurringpublic final void byteWrite(ObjectReference objref, byte value, Word offset, Word location, int mode)
public final byte byteRead(ObjectReference objref, Word offset, Word location, int mode)
public final void charWrite(ObjectReference objref, char value, Word offset, Word location, int mode)
public final char charRead(ObjectReference objref, Word offset, Word location, int mode)
public final void shortWrite(ObjectReference objref, short value, Word offset, Word location, int mode)
shortWrite
in class Barriers
objref
- The object that has the short fieldvalue
- The value that the slot will be updated tooffset
- The offset from the reflocation
- The FieldReference index to assist the storemode
- The context in which the write is occurringpublic final short shortRead(ObjectReference objref, Word offset, Word location, int mode)
public final void intWrite(ObjectReference objref, int value, Word offset, Word location, int mode)
public final int intRead(ObjectReference objref, Word offset, Word location, int mode)
public boolean intTryCompareAndSwap(ObjectReference objref, int expected, int newValue, Word offset, Word unused, int mode)
intTryCompareAndSwap
in class Barriers
objref
- The object that has the int fieldexpected
- The old int to be swapped outnewValue
- the new intoffset
- The offset from the refunused
- Unusedmode
- The context in which the write is occurringpublic final void longWrite(ObjectReference objref, long value, Word offset, Word location, int mode)
public final long longRead(ObjectReference objref, Word offset, Word location, int mode)
public boolean longTryCompareAndSwap(ObjectReference objref, long expected, long newValue, Word offset, Word unused, int mode)
longTryCompareAndSwap
in class Barriers
objref
- The object that has the long fieldexpected
- The old long to be swapped outnewValue
- the new longoffset
- The offset from the refunused
- Unusedmode
- The context in which the write is occurringpublic final void floatWrite(ObjectReference objref, float value, Word offset, Word location, int mode)
floatWrite
in class Barriers
objref
- The object that has the float fieldvalue
- The value that the slot will be updated tooffset
- The offset from the reflocation
- The FieldReference index to assist the storemode
- The context in which the write is occurringpublic final float floatRead(ObjectReference objref, Word offset, Word location, int mode)
public final void doubleWrite(ObjectReference objref, double value, Word offset, Word location, int mode)
doubleWrite
in class Barriers
objref
- The object that has the double fieldvalue
- The value that the slot will be updated tooffset
- The offset from the reflocation
- The FieldReference index to assist the storemode
- The context in which the write is occurringpublic final double doubleRead(ObjectReference objref, Word offset, Word location, int mode)
doubleRead
in class Barriers
objref
- The object that has the double fieldoffset
- The offset from the reflocation
- Unusedmode
- The context in which the write is occurringpublic final void objectReferenceWrite(ObjectReference objref, ObjectReference value, Word offset, Word location, int mode)
objectReferenceWrite
in class Barriers
objref
- The object that has the reference fieldvalue
- The value that the slot will be updated tooffset
- The offset from the reflocation
- The index of the FieldReferencemode
- The context in which the write is occurringpublic final ObjectReference objectReferenceRead(ObjectReference objref, Word offset, Word location, int mode)
objectReferenceRead
in class Barriers
objref
- The object that has the reference fieldoffset
- The offset from the reflocation
- The index of the FieldReferencemode
- The context in which the write is occurringpublic final void objectReferenceNonHeapWrite(Address slot, ObjectReference target, Word unusedA, Word unusedB)
objectReferenceNonHeapWrite
in class Barriers
slot
- The slot to be updatedtarget
- The value that the slot will be updated tounusedA
- UnusedunusedB
- Unusedpublic final ObjectReference objectReferenceAtomicWrite(ObjectReference objref, ObjectReference target, Word offset, Word unused, int mode)
objectReferenceAtomicWrite
in class Barriers
objref
- The object that has the reference fieldtarget
- The value that the slot will be updated tooffset
- The offset from the refunused
- Unusedmode
- The context in which the write is occurringpublic final boolean objectReferenceTryCompareAndSwap(ObjectReference objref, ObjectReference old, ObjectReference target, Word offset, Word unused, int mode)
objectReferenceTryCompareAndSwap
in class Barriers
objref
- The object that has the reference fieldold
- The old reference to be swapped outtarget
- The value that the slot will be updated tooffset
- The offset from the refunused
- Unusedmode
- The context in which the write is occurringpublic final void wordWrite(ObjectReference ref, Word target, Word offset, Word location, int mode)
public final Word wordAtomicWrite(ObjectReference ref, Word target, Word offset, Word unused, int mode)
wordAtomicWrite
in class Barriers
ref
- The object that has the Word fieldtarget
- The value that the slot will be updated tooffset
- The offset from the refunused
- Unusedmode
- The context in which the write is occurringpublic final boolean wordTryCompareAndSwap(ObjectReference ref, Word old, Word target, Word offset, Word unused, int mode)
wordTryCompareAndSwap
in class Barriers
ref
- The object that has the Word fieldold
- The old Word to be swapped outtarget
- The value that the slot will be updated tooffset
- The offset from the refunused
- Unusedmode
- The context in which the write is occurringpublic final Word wordRead(ObjectReference ref, Word offset, Word location, int mode)
public final void addressWrite(ObjectReference ref, Address target, Word offset, Word location, int mode)
addressWrite
in class Barriers
ref
- The object that has the Address fieldtarget
- The value that the slot will be updated tooffset
- The offset from the reflocation
- The index of the FieldReferencemode
- The context in which the write is occurringpublic final Address addressRead(ObjectReference ref, Word offset, Word location, int mode)
addressRead
in class Barriers
ref
- The object that has the Address fieldoffset
- The offset from the reflocation
- The index of the FieldReferencemode
- The context in which the write is occurringpublic boolean addressTryCompareAndSwap(ObjectReference objref, Address expected, Address newValue, Word offset, Word unused, int mode)
addressTryCompareAndSwap
in class Barriers
objref
- The object that has the Address fieldexpected
- The old Address to be swapped outnewValue
- the new Addressoffset
- The offset from the refunused
- Unusedmode
- The context in which the write is occurringpublic final void offsetWrite(ObjectReference ref, Offset target, Word offset, Word location, int mode)
offsetWrite
in class Barriers
ref
- The object that has the Offset fieldtarget
- The value that the slot will be updated tooffset
- The offset from the reflocation
- The index of the FieldReferencemode
- The context in which the write is occurringpublic final Offset offsetRead(ObjectReference ref, Word offset, Word location, int mode)
offsetRead
in class Barriers
ref
- The object that has the Offset fieldoffset
- The offset from the reflocation
- The index of the FieldReferencemode
- The context in which the write is occurringpublic final void extentWrite(ObjectReference ref, Extent target, Word offset, Word location, int mode)
extentWrite
in class Barriers
ref
- The object that has the Extent fieldtarget
- The value that the slot will be updated tooffset
- The offset from the reflocation
- The index of the FieldReferencemode
- The context in which the write is occurringpublic final Extent extentRead(ObjectReference ref, Word offset, Word location, int mode)
extentRead
in class Barriers
ref
- The object that has the Extent fieldoffset
- The offset from the reflocation
- The index of the FieldReferencemode
- The context in which the write is occurringpublic final void objectArrayStoreNoGCBarrier(Object[] dst, int index, Object value)
objectArrayStoreNoGCBarrier
in class Barriers
dst
- the destination arrayindex
- the index of the element to setvalue
- the new value for the element