public class UsePrimitiveWriteBarriersMutator extends SSMutator
SSMutator class as part of the
UsePrimitiveWriteBarriers collector. It overrides various methods in
SSMutator to implement primitive write barriers.| Constructor and Description |
|---|
UsePrimitiveWriteBarriersMutator() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addressTryCompareAndSwap(ObjectReference src,
Address slot,
Address old,
Address value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
addressWrite(ObjectReference src,
Address slot,
Address value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Address.
|
boolean |
booleanBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of booleans are about to be copied from object
src to object dst (as in an array
copy). |
void |
booleanWrite(ObjectReference src,
Address slot,
boolean value,
Word metaDataA,
Word metaDataB,
int mode)
Write a boolean.
|
boolean |
byteBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of bytes are about to be copied from object
src to object dst (as in an array
copy). |
void |
byteWrite(ObjectReference src,
Address slot,
byte value,
Word metaDataA,
Word metaDataB,
int mode)
Write a byte.
|
boolean |
charBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of chars are about to be copied from object
src to object dst (as in an array
copy). |
void |
charWrite(ObjectReference src,
Address slot,
char value,
Word metaDataA,
Word metaDataB,
int mode)
Write a char.
|
boolean |
doubleBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of doubles are about to be copied from object
src to object dst (as in an array
copy). |
void |
doubleWrite(ObjectReference src,
Address slot,
double value,
Word metaDataA,
Word metaDataB,
int mode)
Write a double.
|
void |
extentWrite(ObjectReference src,
Address slot,
Extent value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Extent.
|
boolean |
floatBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of floats are about to be copied from object
src to object dst (as in an array
copy). |
void |
floatWrite(ObjectReference src,
Address slot,
float value,
Word metaDataA,
Word metaDataB,
int mode)
Write a float.
|
boolean |
intBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of ints are about to be copied from object
src to object dst (as in an array
copy). |
boolean |
intTryCompareAndSwap(ObjectReference src,
Address slot,
int old,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
intWrite(ObjectReference src,
Address slot,
int value,
Word metaDataA,
Word metaDataB,
int mode)
Write a int.
|
boolean |
longBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of longs are about to be copied from object
src to object dst (as in an array
copy). |
boolean |
longTryCompareAndSwap(ObjectReference src,
Address slot,
long old,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
longWrite(ObjectReference src,
Address slot,
long value,
Word metaDataA,
Word metaDataB,
int mode)
Write a long.
|
void |
offsetWrite(ObjectReference src,
Address slot,
Offset value,
Word metaDataA,
Word metaDataB,
int mode)
Write an Offset.
|
boolean |
shortBulkCopy(ObjectReference src,
Offset srcOffset,
ObjectReference dst,
Offset dstOffset,
int bytes)
A number of shorts are about to be copied from object
src to object dst (as in an array
copy). |
void |
shortWrite(ObjectReference src,
Address slot,
short value,
Word metaDataA,
Word metaDataB,
int mode)
Write a short.
|
boolean |
wordTryCompareAndSwap(ObjectReference src,
Address slot,
Word old,
Word value,
Word metaDataA,
Word metaDataB,
int mode)
Attempt to atomically exchange the value in the given slot
with the passed replacement value.
|
void |
wordWrite(ObjectReference src,
Address slot,
Word value,
Word metaDataA,
Word metaDataB,
int mode)
Write a Word.
|
alloc, collectionPhase, getAllocatorFromSpace, initMutator, postAlloc, showaddressBulkCopy, addressRead, assertRemsetsFlushed, booleanRead, byteRead, charRead, checkAllocator, deinitMutator, doubleRead, extentBulkCopy, extentRead, floatRead, flush, flushRememberedSets, getId, getLog, intRead, javaLangReferenceReadBarrier, longRead, objectReferenceBulkCopy, objectReferenceNonHeapRead, objectReferenceNonHeapWrite, objectReferenceRead, objectReferenceTryCompareAndSwap, objectReferenceWrite, offsetBulkCopy, offsetRead, shortRead, wordBulkCopy, wordReadpublic UsePrimitiveWriteBarriersMutator()
public void addressWrite(ObjectReference src, Address slot, Address value, Word metaDataA, Word metaDataB, int mode)
addressWrite in class MutatorContextsrc - The object into which the Word will be storedslot - The address into which the Word will be
stored.value - The value of the new AddressmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean addressTryCompareAndSwap(ObjectReference src, Address slot, Address old, Address value, Word metaDataA, Word metaDataB, int mode)
addressTryCompareAndSwap in class MutatorContextsrc - The object into which the Address will be storedslot - The address into which the Address will be
stored.old - The old Address to be swapped outvalue - The new AddressmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic void booleanWrite(ObjectReference src, Address slot, boolean value, Word metaDataA, Word metaDataB, int mode)
booleanWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new booleanmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean booleanBulkCopy(ObjectReference src, Offset srcOffset, ObjectReference dst, Offset dstOffset, int bytes)
MutatorContextsrc to object dst (as in an array
copy). Thus, dst is the mutated object. Take
appropriate write barrier actions.booleanBulkCopy in class MutatorContextsrc - The source arraysrcOffset - The starting source offsetdst - The destination arraydstOffset - The starting destination offsetbytes - The number of bytes to be copiedpublic void byteWrite(ObjectReference src, Address slot, byte value, Word metaDataA, Word metaDataB, int mode)
byteWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new bytemetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean byteBulkCopy(ObjectReference src, Offset srcOffset, ObjectReference dst, Offset dstOffset, int bytes)
MutatorContextsrc to object dst (as in an array
copy). Thus, dst is the mutated object. Take
appropriate write barrier actions.byteBulkCopy in class MutatorContextsrc - The source arraysrcOffset - The starting source offsetdst - The destination arraydstOffset - The starting destination offsetbytes - The number of bytes to be copiedpublic void charWrite(ObjectReference src, Address slot, char value, Word metaDataA, Word metaDataB, int mode)
charWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new charmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean charBulkCopy(ObjectReference src, Offset srcOffset, ObjectReference dst, Offset dstOffset, int bytes)
MutatorContextsrc to object dst (as in an array
copy). Thus, dst is the mutated object. Take
appropriate write barrier actions.charBulkCopy in class MutatorContextsrc - The source arraysrcOffset - The starting source offsetdst - The destination arraydstOffset - The starting destination offsetbytes - The number of bytes to be copiedpublic void doubleWrite(ObjectReference src, Address slot, double value, Word metaDataA, Word metaDataB, int mode)
doubleWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new doublemetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean doubleBulkCopy(ObjectReference src, Offset srcOffset, ObjectReference dst, Offset dstOffset, int bytes)
MutatorContextsrc to object dst (as in an array
copy). Thus, dst is the mutated object. Take
appropriate write barrier actions.doubleBulkCopy in class MutatorContextsrc - The source arraysrcOffset - The starting source offsetdst - The destination arraydstOffset - The starting destination offsetbytes - The number of bytes to be copiedpublic void extentWrite(ObjectReference src, Address slot, Extent value, Word metaDataA, Word metaDataB, int mode)
extentWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new ExtentmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic void floatWrite(ObjectReference src, Address slot, float value, Word metaDataA, Word metaDataB, int mode)
floatWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new floatmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean floatBulkCopy(ObjectReference src, Offset srcOffset, ObjectReference dst, Offset dstOffset, int bytes)
MutatorContextsrc to object dst (as in an array
copy). Thus, dst is the mutated object. Take
appropriate write barrier actions.floatBulkCopy in class MutatorContextsrc - The source arraysrcOffset - The starting source offsetdst - The destination arraydstOffset - The starting destination offsetbytes - The number of bytes to be copiedpublic void intWrite(ObjectReference src, Address slot, int value, Word metaDataA, Word metaDataB, int mode)
intWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new intmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean intBulkCopy(ObjectReference src, Offset srcOffset, ObjectReference dst, Offset dstOffset, int bytes)
MutatorContextsrc to object dst (as in an array
copy). Thus, dst is the mutated object. Take
appropriate write barrier actions.intBulkCopy in class MutatorContextsrc - The source arraysrcOffset - The starting source offsetdst - The destination arraydstOffset - The starting destination offsetbytes - The number of bytes to be copiedpublic boolean intTryCompareAndSwap(ObjectReference src, Address slot, int old, int value, Word metaDataA, Word metaDataB, int mode)
MutatorContextintTryCompareAndSwap in class MutatorContextsrc - The object into which the value will be storedslot - The address into which the value will be
stored.old - The old int to be swapped outvalue - The new intmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic void longWrite(ObjectReference src, Address slot, long value, Word metaDataA, Word metaDataB, int mode)
longWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new longmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean longBulkCopy(ObjectReference src, Offset srcOffset, ObjectReference dst, Offset dstOffset, int bytes)
MutatorContextsrc to object dst (as in an array
copy). Thus, dst is the mutated object. Take
appropriate write barrier actions.longBulkCopy in class MutatorContextsrc - The source arraysrcOffset - The starting source offsetdst - The destination arraydstOffset - The starting destination offsetbytes - The number of bytes to be copiedpublic boolean longTryCompareAndSwap(ObjectReference src, Address slot, long old, long value, Word metaDataA, Word metaDataB, int mode)
MutatorContextlongTryCompareAndSwap in class MutatorContextsrc - The object into which the value will be storedslot - The address into which the value will be
stored.old - The old long to be swapped outvalue - The new longmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic void offsetWrite(ObjectReference src, Address slot, Offset value, Word metaDataA, Word metaDataB, int mode)
offsetWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new OffsetmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic void shortWrite(ObjectReference src, Address slot, short value, Word metaDataA, Word metaDataB, int mode)
shortWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new shortmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean shortBulkCopy(ObjectReference src, Offset srcOffset, ObjectReference dst, Offset dstOffset, int bytes)
MutatorContextsrc to object dst (as in an array
copy). Thus, dst is the mutated object. Take
appropriate write barrier actions.shortBulkCopy in class MutatorContextsrc - The source arraysrcOffset - The starting source offsetdst - The destination arraydstOffset - The starting destination offsetbytes - The number of bytes to be copiedpublic void wordWrite(ObjectReference src, Address slot, Word value, Word metaDataA, Word metaDataB, int mode)
wordWrite in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.value - The value of the new WordmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurredpublic boolean wordTryCompareAndSwap(ObjectReference src, Address slot, Word old, Word value, Word metaDataA, Word metaDataB, int mode)
MutatorContextwordTryCompareAndSwap in class MutatorContextsrc - The object into which the new reference will be storedslot - The address into which the new reference will be
stored.old - The old Word to be swapped outvalue - The new WordmetaDataA - A value that assists the host VM in creating a storemetaDataB - A value that assists the host VM in creating a storemode - The context in which the store occurred