public abstract class com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter<T extends com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition> implements com.oracle.svm.core.image.ImageHeapLayouter
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter
super_class: java.lang.Object
{
private static final int READ_ONLY_PRIMITIVE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int READ_ONLY_REFERENCE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int READ_ONLY_RELOCATABLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int WRITABLE_PRIMITIVE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int WRITABLE_REFERENCE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int WRITABLE_HUGE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int READ_ONLY_HUGE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final int PARTITION_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private final T[] partitions;
descriptor: [Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [TT;
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/AbstractImageHeapLayouter;
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.AbstractImageHeapLayouter.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public T[] getPartitions();
descriptor: ()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
Signature: ()[TT;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
bipush 7
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.createPartitionsArray:(I)[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
putfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
2: aload 0
getfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_0
aload 0
ldc "readOnlyPrimitive"
iconst_0
iconst_0
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.createPartition:(Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
aastore
3: aload 0
getfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_1
aload 0
ldc "readOnlyReference"
iconst_1
iconst_0
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.createPartition:(Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
aastore
4: aload 0
getfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_2
aload 0
ldc "readOnlyRelocatable"
iconst_1
iconst_0
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.createPartition:(Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
aastore
5: aload 0
getfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_3
aload 0
ldc "writablePrimitive"
iconst_0
iconst_1
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.createPartition:(Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
aastore
6: aload 0
getfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_4
aload 0
ldc "writableReference"
iconst_1
iconst_1
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.createPartition:(Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
aastore
7: aload 0
getfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_5
aload 0
ldc "writableHuge"
iconst_1
iconst_1
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.createPartition:(Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
aastore
8: aload 0
getfield com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.partitions:[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
bipush 6
aload 0
ldc "readOnlyHuge"
iconst_1
iconst_0
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.createPartition:(Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
aastore
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
public void assignObjectToPartition(com.oracle.svm.core.image.ImageHeapObject, boolean, boolean, boolean);
descriptor: (Lcom/oracle/svm/core/image/ImageHeapObject;ZZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
iload 3
iload 4
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.choosePartition:(Lcom/oracle/svm/core/image/ImageHeapObject;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
astore 5
start local 5 1: aload 1
aload 5
invokeinterface com.oracle.svm.core.image.ImageHeapObject.setHeapPartition:(Lcom/oracle/svm/core/image/ImageHeapPartition;)V
2: aload 5
aload 1
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.assign:(Lcom/oracle/svm/core/image/ImageHeapObject;)V
3: return
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 4 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
0 4 1 info Lcom/oracle/svm/core/image/ImageHeapObject;
0 4 2 immutable Z
0 4 3 references Z
0 4 4 relocatable Z
1 4 5 partition TT;
MethodParameters:
Name Flags
info
immutable
references
relocatable
public com.oracle.svm.core.image.ImageHeapLayoutInfo layout(com.oracle.svm.core.image.ImageHeap, int);
descriptor: (Lcom/oracle/svm/core/image/ImageHeap;I)Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
istore 3
start local 3 1: getstatic com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.$assertionsDisabled:Z
ifne 2
iload 2
iload 3
irem
ifeq 2
new java.lang.AssertionError
dup
ldc "Page size does not match object alignment"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: int
StackMap stack:
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 18
StackMap locals: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter com.oracle.svm.core.image.ImageHeap int int top int int com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: iload 3
istore 8
start local 8 5: iload 3
istore 9
start local 9 6: aload 4
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyRelocatable:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
if_acmpne 10
7: iload 2
istore 8
8: iload 2
istore 9
9: goto 15
StackMap locals: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter com.oracle.svm.core.image.ImageHeap int int com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition int int com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition[] int int
StackMap stack:
10: aload 4
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getWritablePrimitive:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
if_acmpne 13
11: iload 2
istore 8
12: goto 15
StackMap locals:
StackMap stack:
13: aload 4
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getWritableHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
if_acmpne 15
14: iload 2
istore 9
15: StackMap locals:
StackMap stack:
aload 4
iload 8
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.setStartAlignment:(I)V
16: aload 4
iload 9
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.setEndAlignment:(I)V
end local 9 end local 8 end local 4 17: iinc 5 1
StackMap locals: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter com.oracle.svm.core.image.ImageHeap int int top int int com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition[]
StackMap stack:
18: iload 5
iload 6
if_icmplt 3
19: aload 0
aload 1
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.doLayout:(Lcom/oracle/svm/core/image/ImageHeap;)Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
astore 4
start local 4 20: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 25
StackMap locals: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter com.oracle.svm.core.image.ImageHeap int int com.oracle.svm.core.image.ImageHeapLayoutInfo top int int com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition[]
StackMap stack:
21: aload 8
iload 6
aaload
astore 5
start local 5 22: getstatic com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.$assertionsDisabled:Z
ifne 23
aload 5
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getStartOffset:()J
aload 5
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getStartAlignment:()I
i2l
lrem
lconst_0
lcmp
ifeq 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter com.oracle.svm.core.image.ImageHeap int int com.oracle.svm.core.image.ImageHeapLayoutInfo com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition int int com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition[]
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.$assertionsDisabled:Z
ifne 24
aload 5
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getStartOffset:()J
aload 5
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getSize:()J
ladd
aload 5
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getEndAlignment:()I
i2l
lrem
lconst_0
lcmp
ifeq 24
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 5 24: StackMap locals: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter com.oracle.svm.core.image.ImageHeap int int com.oracle.svm.core.image.ImageHeapLayoutInfo top int int com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
25: iload 6
iload 7
if_icmplt 21
26: getstatic com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.$assertionsDisabled:Z
ifne 28
aload 4
invokevirtual com.oracle.svm.core.image.ImageHeapLayoutInfo.getReadOnlyRelocatableOffset:()J
iload 2
i2l
lrem
lconst_0
lcmp
ifne 27
aload 4
invokevirtual com.oracle.svm.core.image.ImageHeapLayoutInfo.getReadOnlyRelocatableSize:()J
iload 2
i2l
lrem
lconst_0
lcmp
ifeq 28
StackMap locals: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter com.oracle.svm.core.image.ImageHeap int int com.oracle.svm.core.image.ImageHeapLayoutInfo
StackMap stack:
27: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
28: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.$assertionsDisabled:Z
ifne 30
aload 4
invokevirtual com.oracle.svm.core.image.ImageHeapLayoutInfo.getWritableOffset:()J
iload 2
i2l
lrem
lconst_0
lcmp
ifne 29
aload 4
invokevirtual com.oracle.svm.core.image.ImageHeapLayoutInfo.getWritableSize:()J
iload 2
i2l
lrem
lconst_0
lcmp
ifeq 30
StackMap locals:
StackMap stack:
29: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
0 31 1 imageHeap Lcom/oracle/svm/core/image/ImageHeap;
0 31 2 pageSize I
1 31 3 objectAlignment I
4 17 4 partition TT;
5 17 8 startAlignment I
6 17 9 endAlignment I
20 31 4 layoutInfo Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
22 24 5 partition TT;
MethodParameters:
Name Flags
imageHeap
pageSize
public void writeMetadata(java.nio.ByteBuffer, long);
descriptor: (Ljava/nio/ByteBuffer;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=4, args_size=3
start local 0 start local 1 start local 2 0: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
0 1 1 imageHeapBytes Ljava/nio/ByteBuffer;
0 1 2 imageHeapOffsetInBuffer J
MethodParameters:
Name Flags
imageHeapBytes
imageHeapOffsetInBuffer
protected abstract com.oracle.svm.core.image.ImageHeapLayoutInfo doLayout(com.oracle.svm.core.image.ImageHeap);
descriptor: (Lcom/oracle/svm/core/image/ImageHeap;)Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
imageHeap
protected T getReadOnlyPrimitive();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_0
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
Signature: ()TT;
protected T getReadOnlyReference();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_1
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
Signature: ()TT;
protected T getReadOnlyRelocatable();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_2
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
Signature: ()TT;
protected T getWritablePrimitive();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_3
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
Signature: ()TT;
protected T getWritableReference();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_4
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
Signature: ()TT;
protected T getWritableHuge();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
iconst_5
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
Signature: ()TT;
protected T getReadOnlyHuge();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
bipush 6
aaload
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
Signature: ()TT;
protected long getHugeObjectThreshold();
descriptor: ()J
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc 9223372036854775807
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
private T choosePartition(com.oracle.svm.core.image.ImageHeapObject, boolean, boolean, );
descriptor: (Lcom/oracle/svm/core/image/ImageHeapObject;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
ifeq 14
1: iload 4
ifeq 6
2: aload 1
invokeinterface com.oracle.svm.core.image.ImageHeapObject.getSize:()J
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getHugeObjectThreshold:()J
lcmp
ifge 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "Objects with relocatable pointers cannot be huge objects"
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
5: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyRelocatable:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
areturn
6: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.oracle.svm.core.image.ImageHeapObject.getSize:()J
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getHugeObjectThreshold:()J
lcmp
iflt 11
7: aload 1
invokeinterface com.oracle.svm.core.image.ImageHeapObject.getObject:()Ljava/lang/Object;
instanceof com.oracle.svm.core.hub.DynamicHub
ifeq 8
iconst_0
goto 9
StackMap locals:
StackMap stack:
8: iconst_1
StackMap locals:
StackMap stack: int
9: ldc "Class metadata (dynamic hubs) cannot be huge objects"
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
10: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
areturn
11: StackMap locals:
StackMap stack:
iload 3
ifeq 12
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyReference:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
goto 13
StackMap locals:
StackMap stack:
12: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyPrimitive:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
StackMap locals:
StackMap stack: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition
13: areturn
14: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.$assertionsDisabled:Z
ifne 15
aload 1
invokeinterface com.oracle.svm.core.image.ImageHeapObject.getObject:()Ljava/lang/Object;
instanceof com.oracle.svm.core.hub.DynamicHub
ifeq 15
new java.lang.AssertionError
dup
ldc "Class metadata (dynamic hubs) cannot be writable"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
15: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.oracle.svm.core.image.ImageHeapObject.getSize:()J
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getHugeObjectThreshold:()J
lcmp
iflt 17
16: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getWritableHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
areturn
17: StackMap locals:
StackMap stack:
iload 3
ifeq 18
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getWritableReference:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
goto 19
StackMap locals:
StackMap stack:
18: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getWritablePrimitive:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
StackMap locals:
StackMap stack: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition
19: areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
0 20 1 info Lcom/oracle/svm/core/image/ImageHeapObject;
0 20 2 immutable Z
0 20 3 hasReferences Z
0 20 4 hasRelocatables Z
Signature: (Lcom/oracle/svm/core/image/ImageHeapObject;ZZZ)TT;
MethodParameters:
Name Flags
info
immutable
hasReferences
hasRelocatables
protected com.oracle.svm.core.image.ImageHeapLayoutInfo createLayoutInfo(long, long);
descriptor: (JJ)Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
flags: (0x0004) ACC_PROTECTED
Code:
stack=12, locals=11, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getWritableHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getStartOffset:()J
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getWritableHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getSize:()J
ladd
lstore 5
start local 5 1: lload 5
lload 3
lsub
lstore 7
start local 7 2: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getStartOffset:()J
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getSize:()J
ladd
lload 1
lsub
lstore 9
start local 9 3: new com.oracle.svm.core.image.ImageHeapLayoutInfo
dup
lload 3
lload 7
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyRelocatable:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getStartOffset:()J
aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getReadOnlyRelocatable:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.getSize:()J
lload 9
invokespecial com.oracle.svm.core.image.ImageHeapLayoutInfo.<init>:(JJJJJ)V
areturn
end local 9 end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<TT;>;
0 4 1 heapStartOffset J
0 4 3 writableBeginOffset J
1 4 5 writableEnd J
2 4 7 writableSize J
3 4 9 imageHeapSize J
MethodParameters:
Name Flags
heapStartOffset
writableBeginOffset
protected abstract T[] createPartitionsArray();
descriptor: (I)[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (I)[TT;
MethodParameters:
Name Flags
count
protected abstract T createPartition(java.lang.String, boolean, boolean, );
descriptor: (Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Ljava/lang/String;ZZZ)TT;
MethodParameters:
Name Flags
name
containsReferences
writable
hugeObjects
public com.oracle.svm.core.image.ImageHeapPartition[] getPartitions();
descriptor: ()[Lcom/oracle/svm/core/image/ImageHeapPartition;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: <T:Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;>Ljava/lang/Object;Lcom/oracle/svm/core/image/ImageHeapLayouter;
SourceFile: "AbstractImageHeapLayouter.java"
NestMembers:
com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition
InnerClasses:
public abstract AbstractImageHeapPartition = com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition of com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter