final class com.oracle.svm.core.genscavenge.Space
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.Space
super_class: java.lang.Object
{
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isFromSpace;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int age;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.genscavenge.SpaceAccounting accounting;
descriptor: Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader ;
descriptor: Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
flags: (0x0002) ACC_PRIVATE
private com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader ;
descriptor: Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
flags: (0x0002) ACC_PRIVATE
private com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader ;
descriptor: Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
flags: (0x0002) ACC_PRIVATE
private com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader ;
descriptor: Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
flags: (0x0002) ACC_PRIVATE
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/Space;
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.Space.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.String, boolean, int);
descriptor: (Ljava/lang/String;ZI)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.core.genscavenge.Space.name:Ljava/lang/String;
2: getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 3
aload 1
ifnonnull 3
new java.lang.AssertionError
dup
ldc "Space name should not be null."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: com.oracle.svm.core.genscavenge.Space java.lang.String int int
StackMap stack:
aload 0
iload 2
putfield com.oracle.svm.core.genscavenge.Space.isFromSpace:Z
4: aload 0
iload 3
putfield com.oracle.svm.core.genscavenge.Space.age:I
5: aload 0
new com.oracle.svm.core.genscavenge.SpaceAccounting
dup
invokespecial com.oracle.svm.core.genscavenge.SpaceAccounting.<init>:()V
putfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 7 1 name Ljava/lang/String;
0 7 2 isFromSpace Z
0 7 3 age I
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
MethodParameters:
Name Flags
name
isFromSpace
age
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
public boolean isEmpty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNull:()Z
ifeq 1
aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNull:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
void tearDown();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.freeAlignedChunkList:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.freeUnalignedChunkList:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
boolean isEdenSpace();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.age:I
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 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
boolean isYoungSpace();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.age:I
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
if_icmpgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
boolean isSurvivorSpace();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.age:I
ifle 1
aload 0
getfield com.oracle.svm.core.genscavenge.Space.age:I
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
if_icmpgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
boolean isOldSpace();
descriptor: ()Z
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.age:I
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
iconst_1
iadd
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 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
int getAge();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.age:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/Space;
int getNextAgeForPromotion();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.age:I
iconst_1
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/Space;
boolean isFromSpace();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.isFromSpace:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/Space;
public boolean walkObjects(com.oracle.svm.core.heap.ObjectVisitor);
descriptor: (Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 2
start local 2 1: goto 5
2: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 2
aload 1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.walkObjects:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
5: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 2
6: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 3
start local 3 7: goto 11
8: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 3
aload 1
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.walkObjects:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
ifne 10
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 3
11: StackMap locals:
StackMap stack:
aload 3
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 8
12: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 13 1 visitor Lcom/oracle/svm/core/heap/ObjectVisitor;
1 13 2 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
7 13 3 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
visitor
public boolean walkDirtyObjects(com.oracle.svm.core.heap.ObjectVisitor, boolean);
descriptor: (Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, 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 "[Space.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 " space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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 " 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;
pop
2: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 4
start local 4 3: goto 10
4: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 3
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc " aChunk: "
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.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
5: aload 4
aload 1
iload 2
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.walkDirtyObjects:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
ifne 9
6: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[Space.walkDirtyObjects:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 5
start local 5 7: aload 5
ldc " aChunk.walkDirtyObjects fails"
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
8: iconst_0
ireturn
end local 5 9: StackMap locals:
StackMap stack:
aload 4
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 4
10: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 4
11: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 5
start local 5 12: goto 19
13: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 3
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc " uChunk: "
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
14: aload 5
aload 1
iload 2
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.walkDirtyObjects:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
ifne 18
15: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[Space.walkDirtyObjects:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 6
start local 6 16: aload 6
ldc " uChunk.walkDirtyObjects fails"
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
17: iconst_0
ireturn
end local 6 18: StackMap locals:
StackMap stack:
aload 5
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 5
19: StackMap locals:
StackMap stack:
aload 5
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 13
20: 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
21: 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 22 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 22 1 visitor Lcom/oracle/svm/core/heap/ObjectVisitor;
0 22 2 clean Z
1 22 3 trace Lcom/oracle/svm/core/log/Log;
3 22 4 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
7 9 5 failureLog Lcom/oracle/svm/core/log/Log;
12 22 5 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
16 18 6 failureLog Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
visitor
clean
public com.oracle.svm.core.log.Log report(com.oracle.svm.core.log.Log, boolean);
descriptor: (Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "["
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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 ":"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
pop
1: aload 0
getfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.SpaceAccounting.report:(Lcom/oracle/svm/core/log/Log;)V
2: iload 2
ifeq 19
3: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 11
4: aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc "aligned chunks:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
pop
5: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 3
start local 3 6: goto 9
7: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()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 " ("
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
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;
aload 3
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 ")"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
8: aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 3
StackMap locals:
StackMap stack:
9: aload 3
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 7
end local 3 10: aload 1
iconst_0
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
pop
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifeq 19
12: aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc "unaligned chunks:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
pop
13: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 3
start local 3 14: goto 17
15: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()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 " ("
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
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;
aload 3
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 ")"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
16: aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 3
StackMap locals:
StackMap stack:
17: aload 3
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 15
end local 3 18: aload 1
iconst_0
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
pop
19: StackMap locals:
StackMap stack:
aload 1
iconst_0
invokevirtual com.oracle.svm.core.log.Log.redent:(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;
pop
20: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 21 1 log Lcom/oracle/svm/core/log/Log;
0 21 2 traceHeapChunks Z
6 10 3 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
14 18 3 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
log
traceHeapChunks
private org.graalvm.word.Pointer allocateMemory(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[Space.allocateMemory:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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 " size: "
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.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
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 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 4
start local 4 3: aload 2
ldc " oldChunk: "
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.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
4: aload 4
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 7
5: aload 4
aload 1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.allocateMemory:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 3
6: aload 2
ldc " oldChunk provides: "
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
7: StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.Pointer com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 3
invokeinterface org.graalvm.word.Pointer.isNull:()Z
ifeq 16
8: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.requestAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 5
start local 5 9: aload 2
ldc " newChunk: "
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
10: aload 5
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 16
11: aload 5
aload 1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.allocateMemory:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 3
12: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.isSurvivorSpace:()Z
ifeq 15
13: aload 2
ldc " newSurvivorChunk provides: "
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
14: goto 16
15: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 2
ldc " newChunk provides: "
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
end local 5 16: StackMap locals:
StackMap stack:
aload 2
ldc " returns: "
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 "]"
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
17: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 18 1 objectSize Lorg/graalvm/word/UnsignedWord;
1 18 2 trace Lcom/oracle/svm/core/log/Log;
2 18 3 result Lorg/graalvm/word/Pointer;
3 18 4 oldChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
9 16 5 newChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
objectSize
void promoteObjectChunk(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isAlignedObject:(Ljava/lang/Object;)Z
ifeq 6
1: aload 1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getEnclosingChunk:(Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 2
start local 2 2: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/Space;
astore 3
start local 3 3: aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.isFromSpace:()Z
ifeq 11
4: aload 0
aload 2
aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.promoteAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/genscavenge/Space;)V
end local 3 end local 2 5: goto 11
6: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 7
aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isUnalignedObject:(Ljava/lang/Object;)Z
ifne 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getEnclosingChunk:(Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 2
start local 2 8: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/Space;
astore 3
start local 3 9: aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.isFromSpace:()Z
ifeq 11
10: aload 0
aload 2
aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.promoteUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/genscavenge/Space;)V
end local 3 end local 2 11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 12 1 original Ljava/lang/Object;
2 5 2 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
3 5 3 originalSpace Lcom/oracle/svm/core/genscavenge/Space;
8 11 2 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
9 11 3 originalSpace Lcom/oracle/svm/core/genscavenge/Space;
MethodParameters:
Name Flags
original
public void releaseChunks(com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser);
descriptor: (Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.oracle.svm.core.genscavenge.Space.firstAlignedHeapChunk:Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser.add:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
1: aload 1
aload 0
getfield com.oracle.svm.core.genscavenge.Space.firstUnalignedHeapChunk:Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser.add:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
2: aload 0
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
putfield com.oracle.svm.core.genscavenge.Space.firstAlignedHeapChunk:Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
3: aload 0
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
putfield com.oracle.svm.core.genscavenge.Space.lastAlignedHeapChunk:Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
4: aload 0
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
putfield com.oracle.svm.core.genscavenge.Space.firstUnalignedHeapChunk:Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
5: aload 0
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
putfield com.oracle.svm.core.genscavenge.Space.lastUnalignedHeapChunk:Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
6: aload 0
getfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
invokevirtual com.oracle.svm.core.genscavenge.SpaceAccounting.reset:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 8 1 chunkReleaser Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
MethodParameters:
Name Flags
chunkReleaser
void cleanRememberedSet();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.cleanRememberedSetAlignedHeapChunks:()V
1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.cleanRememberedSetUnalignedHeapChunks:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/Space;
private void cleanRememberedSetAlignedHeapChunks();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[Space.cleanRememberedSetAlignedHeapChunks:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
astore 1
start local 1 1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 2
start local 2 2: goto 6
3: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc " aChunk: "
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
4: aload 2
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.cleanRememberedSet:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
5: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
6: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 3
7: 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
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/genscavenge/Space;
1 9 1 trace Lcom/oracle/svm/core/log/Log;
2 9 2 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
private void cleanRememberedSetUnalignedHeapChunks();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[Space.cleanRememberedSetUnalignedHeapChunks:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
astore 1
start local 1 1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 2
start local 2 2: goto 6
3: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc " uChunk: "
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
4: aload 2
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.cleanRememberedSet:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
5: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 2
6: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 3
7: 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
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/genscavenge/Space;
1 9 1 trace Lcom/oracle/svm/core/log/Log;
2 9 2 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 2
1: ldc "Trying to append an aligned heap chunk but no mutual exclusion."
invokestatic com.oracle.svm.core.thread.VMThreads.guaranteeOwnsThreadMutex:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.appendAlignedHeapChunkUninterruptibly:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
3: aload 0
getfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.SpaceAccounting.noteAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 5 1 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
aChunk
private void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 2
start local 2 1: aload 1
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/Space;)V
2: aload 1
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
3: aload 1
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
4: aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 6
5: aload 2
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
6: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.setLastAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
7: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNull:()Z
ifeq 9
8: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.setFirstAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 10 1 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
1 10 2 oldLast Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Must not interact with garbage collections.")
MethodParameters:
Name Flags
aChunk
void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.genscavenge.Space.$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 by the collector."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.extractAlignedHeapChunkUninterruptibly:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
2: aload 0
getfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.SpaceAccounting.unnoteAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 4 1 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
aChunk
private void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
start local 2 1: aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 3
start local 3 2: aload 3
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 5
3: aload 3
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
4: goto 6
5: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.setFirstAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
6: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 9
7: aload 2
aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.setLastAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
10: StackMap locals:
StackMap stack:
aload 1
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
11: aload 1
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
12: aload 1
aconst_null
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/Space;)V
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 14 1 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
1 14 2 chunkNext Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
2 14 3 chunkPrev Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Must not interact with garbage collections.")
MethodParameters:
Name Flags
aChunk
void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 2
1: ldc "Trying to append an unaligned chunk but no mutual exclusion."
invokestatic com.oracle.svm.core.thread.VMThreads.guaranteeOwnsThreadMutex:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.appendUnalignedHeapChunkUninterruptibly:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
3: aload 0
getfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.SpaceAccounting.noteUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 5 1 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
uChunk
private void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getLastUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 2
start local 2 1: aload 1
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/Space;)V
2: aload 1
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
3: aload 1
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
4: aload 2
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifeq 6
5: aload 2
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
6: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.setLastUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
7: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNull:()Z
ifeq 9
8: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.setFirstUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 10 1 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1 10 2 oldLast Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Must not interact with garbage collections.")
MethodParameters:
Name Flags
uChunk
void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
ifne 1
new java.lang.AssertionError
dup
ldc "Trying to extract an unaligned chunk but not in a VMOperation."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.extractUnalignedHeapChunkUninterruptibly:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
2: aload 0
getfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
aload 1
invokevirtual com.oracle.svm.core.genscavenge.SpaceAccounting.unnoteUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 4 1 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
uChunk
private void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 2
start local 2 1: aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 3
start local 3 2: aload 3
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifeq 5
3: aload 3
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
4: goto 6
5: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.setFirstUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
6: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifeq 9
7: aload 2
aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.setLastUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
10: StackMap locals:
StackMap stack:
aload 1
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
11: aload 1
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
12: aload 1
aconst_null
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/Space;)V
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 14 1 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1 14 2 chunkNext Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
2 14 3 chunkPrev Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Must not interact with garbage collections.")
MethodParameters:
Name Flags
uChunk
com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.firstAlignedHeapChunk:Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
private void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.svm.core.genscavenge.Space.firstAlignedHeapChunk:Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 2 1 chunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
chunk
com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.lastAlignedHeapChunk:Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
private void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.svm.core.genscavenge.Space.lastAlignedHeapChunk:Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 2 1 chunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
chunk
com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.firstUnalignedHeapChunk:Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
private void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.svm.core.genscavenge.Space.firstUnalignedHeapChunk:Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 2 1 chunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
chunk
com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.Space.lastUnalignedHeapChunk:Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
private void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.svm.core.genscavenge.Space.lastUnalignedHeapChunk:Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 2 1 chunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
chunk
java.lang.Object promoteAlignedObject(java.lang.Object, com.oracle.svm.core.genscavenge.Space);
descriptor: (Ljava/lang/Object;Lcom/oracle/svm/core/genscavenge/Space;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isAlignedObject:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 3
aload 0
aload 2
if_acmpeq 2
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.isFromSpace:()Z
ifne 3
StackMap locals:
StackMap stack:
2: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapOptions.TraceObjectPromotion:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 6
4: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[promoteAlignedObject:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
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.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc " fromSpace: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
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 " toSpace: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
5: ldc " size: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getSizeFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
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
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.copyAlignedObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 7: aload 1
aload 3
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.installForwardingPointer:(Ljava/lang/Object;Ljava/lang/Object;)V
8: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 9 1 original Ljava/lang/Object;
0 9 2 originalSpace Lcom/oracle/svm/core/genscavenge/Space;
7 9 3 copy Ljava/lang/Object;
MethodParameters:
Name Flags
original
originalSpace
private java.lang.Object copyAlignedObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 2
aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isAlignedObject:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getSizeFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 3: aload 0
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.allocateMemory:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 3
start local 3 4: ldc 1.0000000000287557E-6
aload 3
invokeinterface org.graalvm.word.Pointer.isNull:()Z
invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 10
5: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[! Space.copyAlignedObject:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 6: aload 4
ldc " failure to allocate "
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.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " bytes"
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
7: aload 4
ldc " object to be promoted: "
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.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc " header "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
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
8: aload 4
ldc " !]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_0
invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
pop
9: ldc "Promotion failure"
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 4 10: StackMap locals: org.graalvm.word.UnsignedWord org.graalvm.word.Pointer
StackMap stack:
aload 1
invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
astore 4
start local 4 11: invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
astore 5
start local 5 12: goto 15
13: StackMap locals: org.graalvm.word.Pointer org.graalvm.word.UnsignedWord
StackMap stack:
aload 3
aload 5
aload 4
aload 5
invokeinterface org.graalvm.word.Pointer.readWord:(Lorg/graalvm/word/WordBase;)Lorg/graalvm/word/WordBase;
invokeinterface org.graalvm.word.Pointer.writeWord:(Lorg/graalvm/word/WordBase;Lorg/graalvm/word/WordBase;)V
14: aload 5
invokestatic com.oracle.svm.core.config.ConfigurationValues.getTarget:()Lcom/oracle/svm/core/SubstrateTargetDescription;
getfield com.oracle.svm.core.SubstrateTargetDescription.wordSize:I
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 5
15: StackMap locals:
StackMap stack:
ldc 0.9
aload 5
aload 2
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifne 13
16: aload 3
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 6
start local 6 17: aload 6
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getEnclosingChunk:(Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 7
start local 7 18: aload 7
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.isOldSpace:()Z
ifeq 20
19: aload 7
aload 6
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.setUpRememberedSetForObject:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Ljava/lang/Object;)V
20: StackMap locals: java.lang.Object com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 6
areturn
end local 7 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 21 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 21 1 originalObj Ljava/lang/Object;
3 21 2 size Lorg/graalvm/word/UnsignedWord;
4 21 3 copyMemory Lorg/graalvm/word/Pointer;
6 10 4 failureLog Lcom/oracle/svm/core/log/Log;
11 21 4 originalMemory Lorg/graalvm/word/Pointer;
12 21 5 offset Lorg/graalvm/word/UnsignedWord;
17 21 6 copy Ljava/lang/Object;
18 21 7 copyChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
originalObj
private void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader, com.oracle.svm.core.genscavenge.Space);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/genscavenge/Space;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 2
aload 0
aload 2
if_acmpeq 1
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.isFromSpace:()Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapOptions.TraceObjectPromotion:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 5
3: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[promoteAlignedHeapChunk:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " chunk: "
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 " fromSpace: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
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 " toSpace: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
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
5: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.extractAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
6: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.appendAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
7: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.isOldSpace:()Z
ifeq 9
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.isYoungSpace:()Z
ifeq 9
8: aload 1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.constructRememberedSet:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 10 1 chunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
0 10 2 originalSpace Lcom/oracle/svm/core/genscavenge/Space;
MethodParameters:
Name Flags
chunk
originalSpace
void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader, com.oracle.svm.core.genscavenge.Space);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/genscavenge/Space;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 2
aload 0
aload 2
if_acmpeq 1
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.isFromSpace:()Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapOptions.TraceObjectPromotion:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 5
3: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "[promoteUnalignedHeapChunk:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " chunk: "
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 " fromSpace: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
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 " toSpace: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
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
5: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.extractUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
6: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.appendUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
7: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.isOldSpace:()Z
ifeq 9
8: aload 1
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.setUpRememberedSet:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 10 1 chunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
0 10 2 originalSpace Lcom/oracle/svm/core/genscavenge/Space;
MethodParameters:
Name Flags
chunk
originalSpace
private com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.Space.$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:
invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[Space.requestAlignedHeapChunk:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " space: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
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;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
astore 1
start local 1 2: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.produceAlignedChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 2
start local 2 3: aload 1
ldc " aChunk: "
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
4: aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 6
5: aload 0
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.appendAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
6: StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
ldc " Space.requestAlignedHeapChunk returns: "
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 "]"
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
7: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/Space;
2 8 1 trace Lcom/oracle/svm/core/log/Log;
3 8 2 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
void absorb(com.oracle.svm.core.genscavenge.Space);
descriptor: (Lcom/oracle/svm/core/genscavenge/Space;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 2
start local 2 1: goto 6
2: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 3
start local 3 3: aload 1
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.extractAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
4: aload 0
aload 2
invokevirtual com.oracle.svm.core.genscavenge.Space.appendAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
5: aload 3
astore 2
end local 3 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 2
7: aload 1
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 3
start local 3 8: goto 13
9: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 4
start local 4 10: aload 1
aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.extractUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
11: aload 0
aload 3
invokevirtual com.oracle.svm.core.genscavenge.Space.appendUnalignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
12: aload 4
astore 3
end local 4 13: StackMap locals:
StackMap stack:
aload 3
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 9
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 15 1 src Lcom/oracle/svm/core/genscavenge/Space;
1 15 2 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
3 6 3 next Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
8 15 3 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
10 13 4 next Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
src
boolean walkHeapChunks(com.oracle.svm.core.MemoryWalker$Visitor);
descriptor: (Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iconst_1
istore 2
start local 2 1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 3
start local 3 2: goto 5
3: StackMap locals: int com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
aload 3
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getMemoryWalkerAccess:()Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess;
invokeinterface com.oracle.svm.core.MemoryWalker$Visitor.visitHeapChunk:(Lorg/graalvm/word/PointerBase;Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess;)Z
istore 2
4: aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 3
5: StackMap locals:
StackMap stack:
iload 2
ifeq 6
aload 3
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 3
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 4
start local 4 7: goto 10
8: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 1
aload 4
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getMemoryWalkerAccess:()Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess;
invokeinterface com.oracle.svm.core.MemoryWalker$Visitor.visitHeapChunk:(Lorg/graalvm/word/PointerBase;Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess;)Z
istore 2
9: aload 4
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 4
10: StackMap locals:
StackMap stack:
iload 2
ifeq 11
aload 4
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 8
11: StackMap locals:
StackMap stack:
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 12 0 this Lcom/oracle/svm/core/genscavenge/Space;
0 12 1 visitor Lcom/oracle/svm/core/MemoryWalker$Visitor;
1 12 2 continueVisiting Z
2 12 3 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
7 12 4 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
visitor
org.graalvm.word.UnsignedWord getChunkBytes();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.isEdenSpace:()Z
ifeq 1
invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
ifne 1
new java.lang.AssertionError
dup
ldc "eden data is only accurate during a GC"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
invokevirtual com.oracle.svm.core.genscavenge.SpaceAccounting.getAlignedChunkBytes:()Lorg/graalvm/word/UnsignedWord;
aload 0
getfield com.oracle.svm.core.genscavenge.Space.accounting:Lcom/oracle/svm/core/genscavenge/SpaceAccounting;
invokevirtual com.oracle.svm.core.genscavenge.SpaceAccounting.getUnalignedChunkBytes:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
org.graalvm.word.UnsignedWord computeObjectBytes();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.Space.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.isEdenSpace:()Z
ifeq 1
invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
ifne 1
new java.lang.AssertionError
dup
ldc "eden data is only accurate during a GC"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.computeAlignedObjectBytes:()Lorg/graalvm/word/UnsignedWord;
aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.computeUnalignedObjectBytes:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/Space;
private org.graalvm.word.UnsignedWord computeAlignedObjectBytes();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
astore 1
start local 1 1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 2
start local 2 2: goto 6
3: StackMap locals: org.graalvm.word.UnsignedWord com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStartOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 4: aload 1
aload 3
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 1
5: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
end local 3 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 3
7: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/Space;
1 8 1 result Lorg/graalvm/word/UnsignedWord;
2 8 2 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
4 6 3 allocatedBytes Lorg/graalvm/word/UnsignedWord;
private org.graalvm.word.UnsignedWord computeUnalignedObjectBytes();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
astore 1
start local 1 1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
astore 2
start local 2 2: goto 6
3: StackMap locals: org.graalvm.word.UnsignedWord com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopOffset:(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;
astore 3
start local 3 4: aload 1
aload 3
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 1
5: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 2
end local 3 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 3
7: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/Space;
1 8 1 result Lorg/graalvm/word/UnsignedWord;
2 8 2 uChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
4 6 3 allocatedBytes Lorg/graalvm/word/UnsignedWord;
public void verifyDirtyCards();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 1
start local 1 1: goto 11
2: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
3: aload 1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getFirstObjectTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
4: aload 1
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
5: aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
6: invokestatic com.oracle.svm.core.genscavenge.CardTable.verify:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Z
7: ifne 10
8: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
ldc "AlignedChunk card verification failed!"
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: invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.flush:()Lcom/oracle/svm/core/log/Log;
pop
10: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 1
11: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 2
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/svm/core/genscavenge/Space;
1 13 1 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
}
SourceFile: "Space.java"
InnerClasses:
public abstract HeapChunkAccess = com.oracle.svm.core.MemoryWalker$HeapChunkAccess of com.oracle.svm.core.MemoryWalker
public abstract Visitor = com.oracle.svm.core.MemoryWalker$Visitor of com.oracle.svm.core.MemoryWalker
public abstract AlignedHeader = com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader of com.oracle.svm.core.genscavenge.AlignedHeapChunk
public ChunkReleaser = com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser of com.oracle.svm.core.genscavenge.GCImpl
public abstract Header = com.oracle.svm.core.genscavenge.HeapChunk$Header of com.oracle.svm.core.genscavenge.HeapChunk
public abstract UnalignedHeader = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader of com.oracle.svm.core.genscavenge.UnalignedHeapChunk