public class WriteBarrierSnippets extends Object implements Snippets
Modifier and Type | Class and Description |
---|---|
static class |
WriteBarrierSnippets.Templates |
Modifier and Type | Field and Description |
---|---|
private static SnippetCounter.Group |
countersWriteBarriers |
private static SnippetCounter |
g1AttemptedPostWriteBarrierCounter |
private static SnippetCounter |
g1AttemptedPreWriteBarrierCounter |
private static SnippetCounter |
g1EffectiveAfterNullPostWriteBarrierCounter |
private static SnippetCounter |
g1EffectiveAfterXORPostWriteBarrierCounter |
private static SnippetCounter |
g1EffectivePreWriteBarrierCounter |
private static SnippetCounter |
g1ExecutedPostWriteBarrierCounter |
private static SnippetCounter |
g1ExecutedPreWriteBarrierCounter |
static ForeignCallDescriptor |
G1WBPOSTCALL |
static ForeignCallDescriptor |
G1WBPRECALL |
static LocationIdentity |
GC_CARD_LOCATION |
static LocationIdentity |
GC_INDEX_LOCATION |
static LocationIdentity |
GC_LOG_LOCATION |
private static SnippetCounter |
serialWriteBarrierCounter |
static ForeignCallDescriptor |
VALIDATE_OBJECT |
Constructor and Description |
---|
WriteBarrierSnippets() |
Modifier and Type | Method and Description |
---|---|
static void |
g1ArrayRangePostWriteBarrier(Object object,
int startIndex,
int length,
Register threadRegister) |
static void |
g1ArrayRangePreWriteBarrier(Object object,
int startIndex,
int length,
Register threadRegister) |
static void |
g1PostBarrierStub(ForeignCallDescriptor descriptor,
Word card) |
static void |
g1PostWriteBarrier(AddressNode.Address address,
Object object,
Object value,
boolean usePrecise,
Register threadRegister,
boolean trace) |
private static void |
g1PreBarrierStub(ForeignCallDescriptor descriptor,
Object object) |
static void |
g1PreWriteBarrier(AddressNode.Address address,
Object object,
Object expectedObject,
boolean doLoad,
boolean nullCheck,
Register threadRegister,
boolean trace) |
static void |
log(boolean enabled,
String format,
long value)
Log method of debugging purposes.
|
static void |
log(boolean enabled,
String format,
long value1,
long value2) |
static void |
log(boolean enabled,
String format,
long value1,
long value2,
long value3) |
static void |
serialArrayRangeWriteBarrier(Object object,
int startIndex,
int length) |
static void |
serialImpreciseWriteBarrier(Object object) |
static void |
serialPreciseWriteBarrier(AddressNode.Address address) |
private static void |
serialWriteBarrier(Pointer ptr) |
static boolean |
traceBarrier() |
static void |
validateObject(Object parent,
Object child)
Validation helper method which performs sanity checks on write operations.
|
private static boolean |
validateOop(ForeignCallDescriptor descriptor,
Object parent,
Object object) |
private static final SnippetCounter.Group countersWriteBarriers
private static final SnippetCounter serialWriteBarrierCounter
private static final SnippetCounter g1AttemptedPreWriteBarrierCounter
private static final SnippetCounter g1EffectivePreWriteBarrierCounter
private static final SnippetCounter g1ExecutedPreWriteBarrierCounter
private static final SnippetCounter g1AttemptedPostWriteBarrierCounter
private static final SnippetCounter g1EffectiveAfterXORPostWriteBarrierCounter
private static final SnippetCounter g1EffectiveAfterNullPostWriteBarrierCounter
private static final SnippetCounter g1ExecutedPostWriteBarrierCounter
public static final LocationIdentity GC_CARD_LOCATION
public static final LocationIdentity GC_LOG_LOCATION
public static final LocationIdentity GC_INDEX_LOCATION
public static final ForeignCallDescriptor G1WBPRECALL
public static final ForeignCallDescriptor G1WBPOSTCALL
public static final ForeignCallDescriptor VALIDATE_OBJECT
public WriteBarrierSnippets()
private static void serialWriteBarrier(Pointer ptr)
public static void serialImpreciseWriteBarrier(Object object)
public static void serialPreciseWriteBarrier(AddressNode.Address address)
public static void serialArrayRangeWriteBarrier(Object object, int startIndex, int length)
public static void g1PreWriteBarrier(AddressNode.Address address, Object object, Object expectedObject, boolean doLoad, boolean nullCheck, Register threadRegister, boolean trace)
public static void g1PostWriteBarrier(AddressNode.Address address, Object object, Object value, boolean usePrecise, Register threadRegister, boolean trace)
public static void g1ArrayRangePreWriteBarrier(Object object, int startIndex, int length, Register threadRegister)
public static void g1ArrayRangePostWriteBarrier(Object object, int startIndex, int length, Register threadRegister)
private static void g1PreBarrierStub(ForeignCallDescriptor descriptor, Object object)
public static void g1PostBarrierStub(ForeignCallDescriptor descriptor, Word card)
public static void log(boolean enabled, String format, long value)
public static boolean traceBarrier()
public static void validateObject(Object parent, Object child)
private static boolean validateOop(ForeignCallDescriptor descriptor, Object parent, Object object)