public final class com.oracle.svm.core.genscavenge.UnalignedHeapChunk
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.UnalignedHeapChunk
super_class: java.lang.Object
{
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/UnalignedHeapChunk;
static org.graalvm.word.Pointer (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.asPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStartOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
that
static org.graalvm.word.Pointer (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.asPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableLimitOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
that
static org.graalvm.word.Pointer (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.asPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStartOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
that
public static org.graalvm.word.UnsignedWord getOverhead();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStartOffset:()Lorg/graalvm/word/UnsignedWord;
areturn
LocalVariableTable:
Start End Slot Name Signature
static org.graalvm.word.UnsignedWord getChunkSizeForObject(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStartOffset:()Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 1: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 2: aload 1
aload 0
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
aload 2
invokestatic com.oracle.svm.core.util.UnsignedUtils.roundUp:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 objectSize Lorg/graalvm/word/UnsignedWord;
1 3 1 objectStart Lorg/graalvm/word/UnsignedWord;
2 3 2 alignment Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
objectSize
public static org.graalvm.word.Pointer (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader, org.graalvm.word.UnsignedWord);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.availableObjectMemory:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 1: invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.word.Pointer
astore 3
start local 3 2: aload 1
aload 2
invokeinterface org.graalvm.word.UnsignedWord.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 6
3: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
astore 3
4: aload 3
aload 1
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 4
start local 4 5: aload 0
aload 4
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setTopPointerCarefully:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)V
end local 4 6: StackMap locals: org.graalvm.word.UnsignedWord org.graalvm.word.Pointer
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
0 7 1 size Lorg/graalvm/word/UnsignedWord;
1 7 2 available Lorg/graalvm/word/UnsignedWord;
2 7 3 result Lorg/graalvm/word/Pointer;
5 6 4 newTop Lorg/graalvm/word/Pointer;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Returns uninitialized memory.", callerMustBe = true)
MethodParameters:
Name Flags
that
size
static com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader (java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
astore 1
start local 1 1: aload 1
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getEnclosingChunkFromObjectPointer:(Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 obj Ljava/lang/Object;
1 2 1 objPointer Lorg/graalvm/word/Pointer;
MethodParameters:
Name Flags
obj
static com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader (org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStartOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 1
start local 1 1: aload 1
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 objPointer Lorg/graalvm/word/Pointer;
1 2 1 chunkPointer Lorg/graalvm/word/Pointer;
MethodParameters:
Name Flags
objPointer
public static boolean (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader, com.oracle.svm.core.heap.ObjectVisitor);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.walkObjectsFrom:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
0 1 1 visitor Lcom/oracle/svm/core/heap/ObjectVisitor;
MethodParameters:
Name Flags
that
visitor
public static boolean (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader, com.oracle.svm.core.heap.ObjectVisitor);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.walkObjectsFromInline:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
0 1 1 visitor Lcom/oracle/svm/core/heap/ObjectVisitor;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.AlwaysInline(value = "GC performance")
MethodParameters:
Name Flags
that
visitor
public static void dirtyCardForObject(java.lang.Object, boolean);
descriptor: (Ljava/lang/Object;Z)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getEnclosingChunk:(Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 2
start local 2 1: aload 2
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
astore 3
start local 3 2: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectIndex:()Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 3: iload 1
ifeq 6
4: iconst_0
aload 3
aload 4
invokestatic com.oracle.svm.core.genscavenge.CardTable.isDirtyEntryAtIndexUnchecked:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
ldc "card must be dirty"
ldc ""
ldc ""
lconst_0
lconst_0
invokestatic org.graalvm.compiler.replacements.nodes.AssertionNode.assertion:(ZZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;JJ)V
5: goto 7
6: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader org.graalvm.word.Pointer org.graalvm.word.UnsignedWord
StackMap stack:
aload 3
aload 4
invokestatic com.oracle.svm.core.genscavenge.CardTable.dirtyEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)V
7: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 obj Ljava/lang/Object;
0 8 1 verifyOnly Z
1 8 2 chunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
2 8 3 cardTableStart Lorg/graalvm/word/Pointer;
3 8 4 objectIndex Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
obj
verifyOnly
static boolean (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeapChunk.verifyOnlyCleanCards:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 1
start local 1 1: aload 1
ldc " that: "
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;
pop
2: iconst_1
istore 2
start local 2 3: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
astore 3
start local 3 4: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectIndex:()Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 5: aload 3
aload 4
invokestatic com.oracle.svm.core.genscavenge.CardTable.isDirtyEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
ifeq 9
6: iconst_0
istore 2
7: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeapChunk.verifyOnlyCleanCards:"
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 " that: "
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 " dirty card at index: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 4
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
end local 5 9: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader com.oracle.svm.core.log.Log int org.graalvm.word.Pointer org.graalvm.word.UnsignedWord
StackMap stack:
aload 1
ldc " returns: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 2
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)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
10: iload 2
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1 11 1 trace Lcom/oracle/svm/core/log/Log;
3 11 2 result Z
4 11 3 rememberedSetStart Lorg/graalvm/word/Pointer;
5 11 4 objectIndex Lorg/graalvm/word/UnsignedWord;
8 9 5 witness Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
that
public static boolean (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader, com.oracle.svm.core.heap.ObjectVisitor, boolean);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=9, 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 "[UnalignedHeapChunk.walkDirtyObjects:"
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 " clean: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 2
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
ldc " that: "
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 " "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
2: iconst_1
istore 4
start local 4 3: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
astore 5
start local 5 4: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectIndex:()Lorg/graalvm/word/UnsignedWord;
astore 6
start local 6 5: aload 3
ldc " rememberedSetStart: "
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.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " objectIndex: "
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 5
aload 6
invokestatic com.oracle.svm.core.genscavenge.CardTable.isDirtyEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
ifeq 14
7: iload 2
ifeq 9
8: aload 5
aload 6
invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)V
9: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader com.oracle.svm.core.heap.ObjectVisitor int com.oracle.svm.core.log.Log int org.graalvm.word.Pointer org.graalvm.word.UnsignedWord
StackMap stack:
aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
astore 7
start local 7 10: aload 7
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 8
start local 8 11: aload 3
ldc " obj: "
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.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
pop
12: aload 1
aload 8
invokeinterface com.oracle.svm.core.heap.ObjectVisitor.visitObjectInline:(Ljava/lang/Object;)Z
ifne 14
13: iconst_0
istore 4
end local 8 end local 7 14: StackMap locals:
StackMap stack:
aload 3
ldc " returns: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 4
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)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
15: iload 4
ireturn
end local 6 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 16 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
0 16 1 visitor Lcom/oracle/svm/core/heap/ObjectVisitor;
0 16 2 clean Z
1 16 3 trace Lcom/oracle/svm/core/log/Log;
3 16 4 result Z
4 16 5 rememberedSetStart Lorg/graalvm/word/Pointer;
5 16 6 objectIndex Lorg/graalvm/word/UnsignedWord;
10 14 7 objectsStart Lorg/graalvm/word/Pointer;
11 14 8 obj Ljava/lang/Object;
MethodParameters:
Name Flags
that
visitor
clean
static void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeapChunk.cleanRememberedSet:"
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;
astore 1
start local 1 1: aload 1
ldc " that: "
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;
pop
2: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableLimit:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanTableToPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
pop
3: aload 1
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
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1 5 1 trace Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
that
static void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 1
start local 1 1: aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.setRememberedSetBit:(Ljava/lang/Object;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1 3 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
that
static org.graalvm.word.UnsignedWord getCardTableStartOffset();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: ldc Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 0
start local 0 1: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 2: aload 0
aload 1
invokestatic com.oracle.svm.core.util.UnsignedUtils.roundUp:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 headerSize Lorg/graalvm/word/UnsignedWord;
2 3 1 alignment Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static org.graalvm.word.UnsignedWord getCardTableSize();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: iconst_1
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.CardTable.tableSizeForMemorySize:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 0
start local 0 1: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 2: aload 0
aload 1
invokestatic com.oracle.svm.core.util.UnsignedUtils.roundUp:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 requiredSize Lorg/graalvm/word/UnsignedWord;
2 3 1 alignment Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static org.graalvm.word.UnsignedWord getCardTableLimitOffset();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStartOffset:()Lorg/graalvm/word/UnsignedWord;
astore 0
start local 0 1: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableSize:()Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 2: aload 0
aload 1
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 3: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 4: aload 2
aload 3
invokestatic com.oracle.svm.core.util.UnsignedUtils.roundUp:(Lorg/graalvm/word/UnsignedWord;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
1 5 0 tableStart Lorg/graalvm/word/UnsignedWord;
2 5 1 tableSize Lorg/graalvm/word/UnsignedWord;
3 5 2 tableLimit Lorg/graalvm/word/UnsignedWord;
4 5 3 alignment Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
static org.graalvm.word.UnsignedWord getObjectStartOffset();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableLimitOffset:()Lorg/graalvm/word/UnsignedWord;
astore 0
start local 0 1: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 2: aload 0
aload 1
invokestatic com.oracle.svm.core.util.UnsignedUtils.roundUp:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 cardTableLimitOffset Lorg/graalvm/word/UnsignedWord;
2 3 1 alignment Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
private static org.graalvm.word.UnsignedWord getObjectIndex();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
areturn
LocalVariableTable:
Start End Slot Name Signature
public static org.graalvm.word.UnsignedWord (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/UnsignedWord;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStartOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
that
static boolean (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.verify:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lorg/graalvm/word/Pointer;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
that
private static boolean (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader, org.graalvm.word.Pointer);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lorg/graalvm/word/Pointer;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: ldc "Should only be called as a VMOperation."
invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgress:(Ljava/lang/String;)V
1: invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.getTraceLog:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeapChunk.verify"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 2
start local 2 2: aload 2
ldc " that: "
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 " start: "
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 " top: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)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 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
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
3: aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointer:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 4: aload 3
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isForwardedHeader:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 10
5: 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.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeapChunk.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 6: aload 4
ldc " that: "
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 " start: "
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 " top: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)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 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
7: aload 4
ldc " space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
pop
8: aload 4
ldc " should not be forwarded"
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 4 10: StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord
StackMap stack:
aload 1
aload 3
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isUnalignedHeader:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
ifne 17
11: 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.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeapChunk.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 12: aload 4
ldc " that: "
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 " start: "
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 " end: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
13: aload 4
ldc " space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
pop
14: aload 4
ldc " obj: "
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 " objHeader: "
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
15: aload 4
ldc " does not have an unaligned header"
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
16: iconst_0
ireturn
end local 4 17: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 4
start local 4 18: aload 4
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getObjectEnd:(Ljava/lang/Object;)Lorg/graalvm/word/Pointer;
astore 5
start local 5 19: aload 5
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokeinterface org.graalvm.word.Pointer.notEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 26
20: 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.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeapChunk.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 6
start local 6 21: aload 6
ldc " that: "
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 " start: "
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 " end: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
22: aload 6
ldc " space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
pop
23: aload 6
ldc " obj: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 4
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc " objEnd: "
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.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
24: aload 6
ldc " should be the only object in the chunk"
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
25: iconst_0
ireturn
end local 6 26: StackMap locals: java.lang.Object org.graalvm.word.Pointer
StackMap stack:
aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.verifyRememberedSet:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Z
ifne 29
27: 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.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeadChunk remembered set fails to verify"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 6
start local 6 28: aload 6
ldc " that: "
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 " remembered set fails to verify."
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
end local 6 29: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.verifyObjects:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)Z
istore 6
start local 6 30: aload 2
ldc " returns: "
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 "]"
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
31: iload 6
ireturn
end local 6 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 32 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
0 32 1 start Lorg/graalvm/word/Pointer;
2 32 2 trace Lcom/oracle/svm/core/log/Log;
4 32 3 objHeader Lorg/graalvm/word/UnsignedWord;
6 10 4 witness Lcom/oracle/svm/core/log/Log;
12 17 4 witness Lcom/oracle/svm/core/log/Log;
18 32 4 obj Ljava/lang/Object;
19 32 5 objEnd Lorg/graalvm/word/Pointer;
21 26 6 witness Lcom/oracle/svm/core/log/Log;
28 29 6 witnessLog Lcom/oracle/svm/core/log/Log;
30 32 6 result Z
MethodParameters:
Name Flags
that
start
private static boolean (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=9, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
astore 1
start local 1 1: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/Space;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getFromSpace:()Lcom/oracle/svm/core/genscavenge/Space;
if_acmpne 14
2: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
astore 2
start local 2 3: aload 2
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 3
start local 3 4: aload 3
invokestatic com.oracle.svm.core.genscavenge.CardTable.containsReferenceToYoungSpace:(Ljava/lang/Object;)Z
istore 4
start local 4 5: iload 4
ifeq 14
6: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
astore 5
start local 5 7: invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectIndex:()Lorg/graalvm/word/UnsignedWord;
astore 6
start local 6 8: aload 5
aload 6
invokestatic com.oracle.svm.core.genscavenge.CardTable.isDirtyEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
istore 7
start local 7 9: iload 7
ifne 14
10: 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.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
ldc "[UnalignedHeapChunk.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 8
start local 8 11: aload 8
ldc " that: "
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;
pop
12: aload 8
ldc " containsYoungReferences implies isDirty"
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
13: iconst_0
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 14: StackMap locals: com.oracle.svm.core.genscavenge.OldGeneration
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 that Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1 15 1 oldGen Lcom/oracle/svm/core/genscavenge/OldGeneration;
3 14 2 objStart Lorg/graalvm/word/Pointer;
4 14 3 obj Ljava/lang/Object;
5 14 4 containsYoungReferences Z
7 14 5 rememberedSet Lorg/graalvm/word/Pointer;
8 14 6 objectIndex Lorg/graalvm/word/UnsignedWord;
9 14 7 isDirty Z
11 14 8 witness Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
that
public static com.oracle.svm.core.MemoryWalker$HeapChunkAccess<com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader> getMemoryWalkerAccess();
descriptor: ()Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$MemoryWalkerAccessImpl;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.core.MemoryWalker$HeapChunkAccess
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess<Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;>;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Fold()
}
SourceFile: "UnalignedHeapChunk.java"
NestMembers:
com.oracle.svm.core.genscavenge.UnalignedHeapChunk$MemoryWalkerAccessImpl com.oracle.svm.core.genscavenge.UnalignedHeapChunk$TestingBackDoor com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
InnerClasses:
public abstract HeapChunkAccess = com.oracle.svm.core.MemoryWalker$HeapChunkAccess of com.oracle.svm.core.MemoryWalker
public abstract Header = com.oracle.svm.core.genscavenge.HeapChunk$Header of com.oracle.svm.core.genscavenge.HeapChunk
final MemoryWalkerAccessImpl = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$MemoryWalkerAccessImpl of com.oracle.svm.core.genscavenge.UnalignedHeapChunk
public final TestingBackDoor = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$TestingBackDoor of com.oracle.svm.core.genscavenge.UnalignedHeapChunk
public abstract UnalignedHeader = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader of com.oracle.svm.core.genscavenge.UnalignedHeapChunk