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, show
addressBulkCopy, 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, wordRead
public UsePrimitiveWriteBarriersMutator()
public void addressWrite(ObjectReference src, Address slot, Address value, Word metaDataA, Word metaDataB, int mode)
addressWrite
in class MutatorContext
src
- 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 MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
src
to object dst
(as in an array
copy). Thus, dst
is the mutated object. Take
appropriate write barrier actions.booleanBulkCopy
in class MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
src
to object dst
(as in an array
copy). Thus, dst
is the mutated object. Take
appropriate write barrier actions.byteBulkCopy
in class MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
src
to object dst
(as in an array
copy). Thus, dst
is the mutated object. Take
appropriate write barrier actions.charBulkCopy
in class MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
src
to object dst
(as in an array
copy). Thus, dst
is the mutated object. Take
appropriate write barrier actions.doubleBulkCopy
in class MutatorContext
src
- 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 MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
src
to object dst
(as in an array
copy). Thus, dst
is the mutated object. Take
appropriate write barrier actions.floatBulkCopy
in class MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
src
to object dst
(as in an array
copy). Thus, dst
is the mutated object. Take
appropriate write barrier actions.intBulkCopy
in class MutatorContext
src
- 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)
MutatorContext
intTryCompareAndSwap
in class MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
src
to object dst
(as in an array
copy). Thus, dst
is the mutated object. Take
appropriate write barrier actions.longBulkCopy
in class MutatorContext
src
- 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)
MutatorContext
longTryCompareAndSwap
in class MutatorContext
src
- 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 MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
src
to object dst
(as in an array
copy). Thus, dst
is the mutated object. Take
appropriate write barrier actions.shortBulkCopy
in class MutatorContext
src
- 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 MutatorContext
src
- 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)
MutatorContext
wordTryCompareAndSwap
in class MutatorContext
src
- 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