public final class com.oracle.svm.core.genscavenge.CardTable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.CardTable
super_class: java.lang.Object
{
private static final int BYTES_COVERED_BY_ENTRY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 512
private static final int ENTRY_SIZE_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int DIRTY_ENTRY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int CLEAN_ENTRY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final org.graalvm.word.LocationIdentity CARD_REMEMBERED_SET_LOCATION;
descriptor: Lorg/graalvm/word/LocationIdentity;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/genscavenge/CardTable;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.svm.core.genscavenge.CardTable.$assertionsDisabled:Z
3: ldc "CardRememberedSet"
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
putstatic com.oracle.svm.core.genscavenge.CardTable.CARD_REMEMBERED_SET_LOCATION:Lorg/graalvm/word/LocationIdentity;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/CardTable;
static void dirtyEntryAtIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.CardTable.indexToTableOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
iconst_0
getstatic com.oracle.svm.core.genscavenge.CardTable.CARD_REMEMBERED_SET_LOCATION:Lorg/graalvm/word/LocationIdentity;
invokeinterface org.graalvm.word.Pointer.writeByte:(Lorg/graalvm/word/WordBase;BLorg/graalvm/word/LocationIdentity;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 table Lorg/graalvm/word/Pointer;
0 2 1 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
index
static boolean isDirtyEntryAtIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.genscavenge.CardTable.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
ifne 1
new java.lang.AssertionError
dup
ldc "Should only be called from the collector."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.CardTable.isDirtyEntryAtIndexUnchecked:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 table Lorg/graalvm/word/Pointer;
0 2 1 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
index
static boolean isDirtyEntryAtIndexUnchecked(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.CardTable.readEntryAtIndexUnchecked:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
invokestatic com.oracle.svm.core.genscavenge.CardTable.isDirtyEntry:(I)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 table Lorg/graalvm/word/Pointer;
0 1 1 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
index
static boolean containsReferenceToYoungSpace(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.CardTable.getReferenceToYoungObjectVisitor:()Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
astore 1
start local 1 1: aload 1
aload 0
invokevirtual com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.containsReferenceToYoungObject:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 obj Ljava/lang/Object;
1 2 1 referenceToYoungObjectVisitor Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
MethodParameters:
Name Flags
obj
static org.graalvm.word.Pointer cleanTableToPointer(org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 2
start local 2 1: aload 2
invokestatic com.oracle.svm.core.genscavenge.CardTable.tableOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 2: aload 0
aload 3
invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanTableToIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 tableStart Lorg/graalvm/word/Pointer;
0 3 1 tableLimit Lorg/graalvm/word/Pointer;
1 3 2 tableOffset Lorg/graalvm/word/UnsignedWord;
2 3 3 indexLimit Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
tableStart
tableLimit
static org.graalvm.word.Pointer cleanTableToIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 1: goto 4
2: StackMap locals: org.graalvm.word.UnsignedWord
StackMap stack:
aload 0
aload 2
invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)V
3: aload 2
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 2
StackMap locals:
StackMap stack:
4: aload 2
aload 1
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 2
end local 2 5: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 table Lorg/graalvm/word/Pointer;
0 6 1 indexLimit Lorg/graalvm/word/UnsignedWord;
1 5 2 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
indexLimit
static void cleanTableInBuffer(java.nio.ByteBuffer, int, org.graalvm.word.UnsignedWord);
descriptor: (Ljava/nio/ByteBuffer;ILorg/graalvm/word/UnsignedWord;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.svm.core.util.HostedByteBufferPointer
dup
aload 0
iload 1
invokespecial com.oracle.svm.core.util.HostedByteBufferPointer.<init>:(Ljava/nio/ByteBuffer;I)V
aload 2
invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanTableToIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 buffer Ljava/nio/ByteBuffer;
0 2 1 bufferTableOffset I
0 2 2 tableSize Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
MethodParameters:
Name Flags
buffer
bufferTableOffset
tableSize
static void cleanEntryAtIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.CardTable.indexToTableOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
iconst_1
getstatic com.oracle.svm.core.genscavenge.CardTable.CARD_REMEMBERED_SET_LOCATION:Lorg/graalvm/word/LocationIdentity;
invokeinterface org.graalvm.word.Pointer.writeByte:(Lorg/graalvm/word/WordBase;BLorg/graalvm/word/LocationIdentity;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 table Lorg/graalvm/word/Pointer;
0 2 1 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
index
static int getBytesCoveredByEntry();
descriptor: ()I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: sipush 512
ireturn
LocalVariableTable:
Start End Slot Name Signature
static org.graalvm.word.UnsignedWord tableSizeForMemorySize(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.CardTable.indexLimitForMemorySize:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 1: aload 1
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.multiply:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 memorySize Lorg/graalvm/word/UnsignedWord;
1 2 1 maxIndex Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
memorySize
static org.graalvm.word.UnsignedWord memoryOffsetToIndex(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
sipush 512
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 offset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
offset
static org.graalvm.word.Pointer indexToMemoryPointer(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
sipush 512
invokeinterface org.graalvm.word.UnsignedWord.multiply:(I)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 1: aload 0
aload 2
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 memoryStart Lorg/graalvm/word/Pointer;
0 2 1 index Lorg/graalvm/word/UnsignedWord;
1 2 2 offset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
memoryStart
index
static org.graalvm.word.UnsignedWord indexLimitForMemorySize(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
sipush 512
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.util.UnsignedUtils.roundUp:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 1: aload 1
invokestatic com.oracle.svm.core.genscavenge.CardTable.memoryOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 memorySize Lorg/graalvm/word/UnsignedWord;
1 2 1 roundedMemory Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
memorySize
static boolean verify(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[CardTable.verify: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 1: aload 4
ldc " ctStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " fotStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectsStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectsLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
2: aload 0
aload 1
aload 2
aload 3
invokestatic com.oracle.svm.core.genscavenge.CardTable.verifyCleanCards:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Z
ifne 6
3: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[CardTableTable.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 5
start local 5 4: aload 5
ldc " fails verifyCleanCards"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
5: iconst_0
ireturn
end local 5 6: StackMap locals: com.oracle.svm.core.log.Log
StackMap stack:
aload 0
aload 2
aload 3
invokestatic com.oracle.svm.core.genscavenge.CardTable.verifyDirtyCards:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Z
ifne 10
7: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[CardTable.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 5
start local 5 8: aload 5
ldc " fails verifyCleanCards"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
9: iconst_0
ireturn
end local 5 10: StackMap locals:
StackMap stack:
aload 4
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
11: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 ctStart Lorg/graalvm/word/Pointer;
0 12 1 fotStart Lorg/graalvm/word/Pointer;
0 12 2 objectsStart Lorg/graalvm/word/Pointer;
0 12 3 objectsLimit Lorg/graalvm/word/Pointer;
1 12 4 trace Lcom/oracle/svm/core/log/Log;
4 6 5 verifyLog Lcom/oracle/svm/core/log/Log;
8 10 5 verifyLog Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
ctStart
fotStart
objectsStart
objectsLimit
private static int readEntryAtIndexUnchecked(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.CardTable.indexToTableOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.readByte:(Lorg/graalvm/word/WordBase;)B
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 table Lorg/graalvm/word/Pointer;
0 1 1 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
index
private static int readEntryAtIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.CardTable.readEntryAtIndexUnchecked:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
istore 2
start local 2 1: getstatic com.oracle.svm.core.genscavenge.CardTable.$assertionsDisabled:Z
ifne 2
iload 2
ifeq 2
iload 2
iconst_1
if_icmpeq 2
new java.lang.AssertionError
dup
ldc "Table entry out of range."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 table Lorg/graalvm/word/Pointer;
0 3 1 index Lorg/graalvm/word/UnsignedWord;
1 3 2 result I
MethodParameters:
Name Flags
table
index
private static boolean isDirtyEntry(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 entry I
MethodParameters:
Name Flags
entry
private static boolean isCleanEntry(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_1
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 entry I
MethodParameters:
Name Flags
entry
private static boolean isCleanEntryAtIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.CardTable.readEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
invokestatic com.oracle.svm.core.genscavenge.CardTable.isCleanEntry:(I)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 table Lorg/graalvm/word/Pointer;
0 1 1 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
index
private static org.graalvm.word.UnsignedWord tableOffsetToIndex(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 offset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
offset
private static org.graalvm.word.UnsignedWord indexToTableOffset(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.multiply:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
index
private static org.graalvm.word.UnsignedWord memoryPointerToIndex(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.core.genscavenge.CardTable.$assertionsDisabled:Z
ifne 1
aload 0
aload 1
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 1
new java.lang.AssertionError
dup
ldc "memoryStart.belowOrEqual(memoryLimit)"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.CardTable.$assertionsDisabled:Z
ifne 2
aload 0
aload 2
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 2
new java.lang.AssertionError
dup
ldc "memoryStart.belowOrEqual(memoryPointer)"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.CardTable.$assertionsDisabled:Z
ifne 3
aload 2
aload 1
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 3
new java.lang.AssertionError
dup
ldc "memoryPointer.belowOrEqual(memoryLimit)"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
aload 2
aload 0
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 3
start local 3 4: aload 3
invokestatic com.oracle.svm.core.genscavenge.CardTable.memoryOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 memoryStart Lorg/graalvm/word/Pointer;
0 5 1 memoryLimit Lorg/graalvm/word/Pointer;
0 5 2 memoryPointer Lorg/graalvm/word/Pointer;
4 5 3 offset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
memoryStart
memoryLimit
memoryPointer
private static boolean visitCards(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord, com.oracle.svm.core.genscavenge.CardTable$Visitor);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;Lcom/oracle/svm/core/genscavenge/CardTable$Visitor;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 1: goto 6
2: StackMap locals: org.graalvm.word.UnsignedWord
StackMap stack:
aload 0
aload 3
invokestatic com.oracle.svm.core.genscavenge.CardTable.readEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
istore 4
start local 4 3: aload 2
aload 0
aload 3
iload 4
invokeinterface com.oracle.svm.core.genscavenge.CardTable$Visitor.visitEntry:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;I)Z
ifne 5
4: iconst_0
ireturn
end local 4 5: StackMap locals:
StackMap stack:
aload 3
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 3
StackMap locals:
StackMap stack:
6: aload 3
aload 1
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 2
end local 3 7: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 table Lorg/graalvm/word/Pointer;
0 8 1 indexLimit Lorg/graalvm/word/UnsignedWord;
0 8 2 visitor Lcom/oracle/svm/core/genscavenge/CardTable$Visitor;
1 7 3 index Lorg/graalvm/word/UnsignedWord;
3 5 4 entry I
MethodParameters:
Name Flags
table
indexLimit
visitor
private static com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor getReferenceToYoungObjectVisitor();
descriptor: ()Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getReferenceToYoungObjectVisitor:()Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static boolean verifyCleanCards(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=19, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[CardTable.verifyCleanCards:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 1: aload 4
ldc " ctStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " fotStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectsStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectsLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
2: aload 2
aload 3
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getTableSizeForMemoryRange:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
astore 5
start local 5 3: invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
astore 6
start local 6 4: goto 54
5: StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord
StackMap stack:
aload 4
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc " index: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 6
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
6: aload 1
aload 6
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isUninitializedIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
ifeq 10
7: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[CardTable.verifyCleanCards: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 7
start local 7 8: aload 7
ldc " reached uninitialized first object table entry"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
9: iconst_0
ireturn
end local 7 10: StackMap locals:
StackMap stack:
aload 0
aload 6
invokestatic com.oracle.svm.core.genscavenge.CardTable.isCleanEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
istore 7
start local 7 11: iload 7
ifne 13
12: goto 53
13: StackMap locals: int
StackMap stack:
aload 1
aload 2
aload 3
aload 6
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getImpreciseFirstObjectPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 8
start local 8 14: aload 2
aload 6
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.CardTable.indexToMemoryPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 9
start local 9 15: aload 9
aload 3
invokestatic com.oracle.svm.core.util.PointerUtils.min:(Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/PointerBase;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.word.Pointer
astore 10
start local 10 16: aload 4
ldc " impreciseStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 8
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " cardLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 9
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " walkLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 10
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
17: aload 8
astore 11
start local 11 18: goto 52
19: StackMap locals: org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord int org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer
StackMap stack:
aload 4
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc " "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " ptr: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 11
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
20: aload 11
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 12
start local 12 21: aload 4
ldc " obj: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 12
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
pop
22: aload 12
invokestatic com.oracle.svm.core.hub.LayoutEncoding.isArray:(Ljava/lang/Object;)Z
ifeq 24
23: aload 4
ldc " length: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 12
invokestatic org.graalvm.compiler.nodes.java.ArrayLengthNode.arrayLength:(Ljava/lang/Object;)I
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
pop
24: StackMap locals: java.lang.Object
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.CardTable.getReferenceToYoungObjectVisitor:()Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
aload 12
invokevirtual com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.containsReferenceToYoungObject:(Ljava/lang/Object;)Z
istore 13
start local 13 25: iload 13
ifeq 51
26: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
astore 14
start local 14 27: aload 14
ldc "[CardTable.verifyCleanCards:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " objectsStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectsLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " indexLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
28: aload 5
29: invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
30: invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
31: aload 14
ldc " index: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 6
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
32: aload 2
aload 6
invokestatic com.oracle.svm.core.genscavenge.CardTable.indexToMemoryPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 15
start local 15 33: aload 14
ldc " cardStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 15
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " cardLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 9
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " walkLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 10
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " fotEntry: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
34: aload 1
aload 14
aload 6
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable$TestingBackDoor.indexToLog:(Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/log/Log;Lorg/graalvm/word/UnsignedWord;)V
35: aload 14
ldc " isClean: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 7
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
36: aload 1
aload 2
aload 3
aload 6
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getPreciseFirstObjectPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 16
start local 16 37: aload 16
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 17
start local 17 38: aload 14
ldc " crossingOntoObject: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 17
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc " end: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 17
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getObjectEnd:(Ljava/lang/Object;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
39: aload 17
invokestatic com.oracle.svm.core.hub.LayoutEncoding.isArray:(Ljava/lang/Object;)Z
ifeq 41
40: aload 14
ldc " array length: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 17
invokestatic org.graalvm.compiler.nodes.java.ArrayLengthNode.arrayLength:(Ljava/lang/Object;)I
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
pop
41: StackMap locals: org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord int org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer java.lang.Object int com.oracle.svm.core.log.Log org.graalvm.word.Pointer org.graalvm.word.Pointer java.lang.Object
StackMap stack:
aload 14
ldc " impreciseStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 8
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
42: aload 14
ldc " obj: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 12
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc " end: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 12
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getObjectEnd:(Ljava/lang/Object;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
43: aload 12
invokestatic com.oracle.svm.core.hub.LayoutEncoding.isArray:(Ljava/lang/Object;)Z
ifeq 45
44: aload 14
ldc " array length: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 12
invokestatic org.graalvm.compiler.nodes.java.ArrayLengthNode.arrayLength:(Ljava/lang/Object;)I
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
pop
45: StackMap locals:
StackMap stack:
aload 14
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
46: aload 12
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getEnclosingChunk:(Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 18
start local 18 47: aload 14
ldc " objChunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 18
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objChunk space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 18
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/Space;
invokevirtual com.oracle.svm.core.genscavenge.Space.getName:()Ljava/lang/String;
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " contains young: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 13
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
48: invokestatic com.oracle.svm.core.genscavenge.CardTable.getReferenceToYoungObjectVisitor:()Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
aload 12
invokevirtual com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.witnessReferenceToYoungObject:(Ljava/lang/Object;)Z
pop
49: aload 14
ldc " returns false for index: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 6
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
50: iconst_0
ireturn
end local 18 end local 17 end local 16 end local 15 end local 14 51: StackMap locals: org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord int org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer java.lang.Object int
StackMap stack:
aload 12
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getObjectEnd:(Ljava/lang/Object;)Lorg/graalvm/word/Pointer;
astore 11
end local 13 end local 12 52: StackMap locals:
StackMap stack:
aload 11
aload 10
invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 19
end local 11 end local 10 end local 9 end local 8 end local 7 53: StackMap locals: org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord
StackMap stack:
aload 6
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 6
StackMap locals:
StackMap stack:
54: aload 6
aload 5
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 5
end local 6 55: aload 4
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
56: iconst_1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 ctStart Lorg/graalvm/word/Pointer;
0 57 1 fotStart Lorg/graalvm/word/Pointer;
0 57 2 objectsStart Lorg/graalvm/word/Pointer;
0 57 3 objectsLimit Lorg/graalvm/word/Pointer;
1 57 4 trace Lcom/oracle/svm/core/log/Log;
3 57 5 indexLimit Lorg/graalvm/word/UnsignedWord;
4 55 6 index Lorg/graalvm/word/UnsignedWord;
8 10 7 failure Lcom/oracle/svm/core/log/Log;
11 53 7 isClean Z
14 53 8 impreciseStart Lorg/graalvm/word/Pointer;
15 53 9 cardLimit Lorg/graalvm/word/Pointer;
16 53 10 walkLimit Lorg/graalvm/word/Pointer;
18 53 11 ptr Lorg/graalvm/word/Pointer;
21 52 12 obj Ljava/lang/Object;
25 52 13 containsYoung Z
27 51 14 witness Lcom/oracle/svm/core/log/Log;
33 51 15 cardStart Lorg/graalvm/word/Pointer;
37 51 16 crossingOntoPointer Lorg/graalvm/word/Pointer;
38 51 17 crossingOntoObject Ljava/lang/Object;
47 51 18 objChunk Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
MethodParameters:
Name Flags
ctStart
fotStart
objectsStart
objectsLimit
private static boolean verifyDirtyCards(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[CardTable.verifyDirtyCards:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 3
start local 3 1: aload 3
ldc " ctStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectsStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectsLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
2: aload 1
astore 4
start local 4 3: goto 18
4: StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.Pointer
StackMap stack:
aload 4
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 5
start local 5 5: aload 5
invokestatic com.oracle.svm.core.genscavenge.CardTable.containsReferenceToYoungSpace:(Ljava/lang/Object;)Z
istore 6
start local 6 6: iload 6
ifeq 17
7: aload 1
aload 2
aload 4
invokestatic com.oracle.svm.core.genscavenge.CardTable.memoryPointerToIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
astore 7
start local 7 8: aload 0
aload 7
invokestatic com.oracle.svm.core.genscavenge.CardTable.isCleanEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
istore 8
start local 8 9: iload 8
ifeq 17
10: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
astore 9
start local 9 11: aload 9
ldc "[CardTable.verifyDirtyCards:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " objectsStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectsLimit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
12: aload 9
ldc " obj: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 5
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc " contains young: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 6
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
ldc " but index: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 7
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " is clean."
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " returns false"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
13: ldc "]"
14: invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
15: invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
16: iconst_0
ireturn
end local 9 end local 8 end local 7 17: StackMap locals: java.lang.Object int
StackMap stack:
aload 5
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getObjectEnd:(Ljava/lang/Object;)Lorg/graalvm/word/Pointer;
astore 4
end local 6 end local 5 18: StackMap locals:
StackMap stack:
aload 4
aload 2
invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 4
19: aload 3
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
20: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 ctStart Lorg/graalvm/word/Pointer;
0 21 1 objectsStart Lorg/graalvm/word/Pointer;
0 21 2 objectsLimit Lorg/graalvm/word/Pointer;
1 21 3 trace Lcom/oracle/svm/core/log/Log;
3 21 4 ptr Lorg/graalvm/word/Pointer;
5 18 5 obj Ljava/lang/Object;
6 18 6 containsYoung Z
8 17 7 index Lorg/graalvm/word/UnsignedWord;
9 17 8 isClean Z
11 17 9 witness Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
ctStart
objectsStart
objectsLimit
}
SourceFile: "CardTable.java"
NestMembers:
com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor com.oracle.svm.core.genscavenge.CardTable$TestingBackDoor com.oracle.svm.core.genscavenge.CardTable$Visitor
InnerClasses:
public abstract AlignedHeader = com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader of com.oracle.svm.core.genscavenge.AlignedHeapChunk
ReferenceToYoungObjectReferenceVisitor = com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor of com.oracle.svm.core.genscavenge.CardTable
ReferenceToYoungObjectVisitor = com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor of com.oracle.svm.core.genscavenge.CardTable
public final TestingBackDoor = com.oracle.svm.core.genscavenge.CardTable$TestingBackDoor of com.oracle.svm.core.genscavenge.CardTable
public abstract Visitor = com.oracle.svm.core.genscavenge.CardTable$Visitor of com.oracle.svm.core.genscavenge.CardTable
public final TestingBackDoor = com.oracle.svm.core.genscavenge.FirstObjectTable$TestingBackDoor of com.oracle.svm.core.genscavenge.FirstObjectTable
public abstract Header = com.oracle.svm.core.genscavenge.HeapChunk$Header of com.oracle.svm.core.genscavenge.HeapChunk