public final class com.oracle.svm.hosted.image.NativeImageHeapWriter
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.hosted.image.NativeImageHeapWriter
super_class: java.lang.Object
{
private final com.oracle.svm.hosted.image.NativeImageHeap heap;
descriptor: Lcom/oracle/svm/hosted/image/NativeImageHeap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.core.image.ImageHeapLayoutInfo heapLayout;
descriptor: Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long sectionOffsetOfARelocatablePointer;
descriptor: J
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
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.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.oracle.svm.hosted.image.NativeImageHeap, com.oracle.svm.core.image.ImageHeapLayoutInfo);
descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap;Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
2: aload 0
aload 2
putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heapLayout:Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
3: aload 0
ldc -1
putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 5 1 heap Lcom/oracle/svm/hosted/image/NativeImageHeap;
0 5 2 heapLayout Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
MethodParameters:
Name Flags
heap
heapLayout
public long writeHeap(org.graalvm.compiler.debug.DebugContext, com.oracle.svm.hosted.image.RelocatableBuffer);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lcom/oracle/svm/hosted/image/RelocatableBuffer;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
aconst_null
astore 4
1: aload 1
ldc "BootImageHeap.writeHeap:"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 5
start local 5 2: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjects:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 6
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter org.graalvm.compiler.debug.DebugContext com.oracle.svm.hosted.image.RelocatableBuffer java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top java.util.Iterator
StackMap stack:
3: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
astore 6
start local 6 4: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 5
aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
aload 6
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.isBlacklisted:(Ljava/lang/Object;)Z
ifeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter org.graalvm.compiler.debug.DebugContext com.oracle.svm.hosted.image.RelocatableBuffer java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo java.util.Iterator
StackMap stack:
aload 0
aload 6
aload 2
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeObject:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/image/RelocatableBuffer;)V
end local 6 6: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter org.graalvm.compiler.debug.DebugContext com.oracle.svm.hosted.image.RelocatableBuffer java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: aload 0
aload 2
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeStaticFields:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;)V
8: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getLayouter:()Lcom/oracle/svm/core/image/ImageHeapLayouter;
aload 2
invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
lconst_0
invokeinterface com.oracle.svm.core.image.ImageHeapLayouter.writeMetadata:(Ljava/nio/ByteBuffer;J)V
9: aload 5
ifnull 15
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 15
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter org.graalvm.compiler.debug.DebugContext com.oracle.svm.hosted.image.RelocatableBuffer java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
10: astore 3
aload 5
ifnull 11
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 5 StackMap locals:
StackMap stack:
11: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 4
aload 3
ifnonnull 13
aload 4
astore 3
goto 14
StackMap locals:
StackMap stack:
13: aload 3
aload 4
if_acmpeq 14
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 3
athrow
15: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 16 1 debug Lorg/graalvm/compiler/debug/DebugContext;
0 16 2 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
2 11 5 perHeapIndent Lorg/graalvm/compiler/debug/Indent;
4 6 6 info Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
Exception table:
from to target type
2 9 10 any
1 12 12 any
MethodParameters:
Name Flags
debug
buffer
private void writeStaticFields(com.oracle.svm.hosted.image.RelocatableBuffer);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokestatic com.oracle.svm.core.StaticFieldsSupport.getStaticPrimitiveFields:()[B
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
astore 2
start local 2 1: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokestatic com.oracle.svm.core.StaticFieldsSupport.getStaticObjectFields:()[Ljava/lang/Object;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
astore 3
start local 3 2: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getUniverse:()Lcom/oracle/svm/hosted/meta/HostedUniverse;
invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.getFields:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 10
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.meta.HostedField
astore 4
start local 4 4: aload 4
invokevirtual com.oracle.svm.hosted.meta.HostedField.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 10
aload 4
invokevirtual com.oracle.svm.hosted.meta.HostedField.hasLocation:()Z
ifeq 10
5: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 6
aload 4
invokevirtual com.oracle.svm.hosted.meta.HostedField.isWritten:()Z
ifne 6
invokestatic com.oracle.svm.hosted.meta.MaterializedConstantFields.singleton:()Lcom/oracle/svm/hosted/meta/MaterializedConstantFields;
aload 4
getfield com.oracle.svm.hosted.meta.HostedField.wrapped:Lcom/oracle/graal/pointsto/meta/AnalysisField;
invokevirtual com.oracle.svm.hosted.meta.MaterializedConstantFields.contains:(Lcom/oracle/graal/pointsto/meta/AnalysisField;)Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.meta.HostedField java.util.Iterator
StackMap stack:
aload 4
invokevirtual com.oracle.svm.hosted.meta.HostedField.getStorageKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 7
aload 3
goto 8
StackMap locals:
StackMap stack:
7: aload 2
StackMap locals:
StackMap stack: com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
8: astore 6
start local 6 9: aload 0
aload 1
aload 6
aload 4
aconst_null
aconst_null
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeField:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
end local 6 end local 4 10: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
11: return
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/hosted/image/NativeImageHeapWriter;
0 12 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
1 12 2 primitiveFields Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
2 12 3 objectFields Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
4 10 4 field Lcom/oracle/svm/hosted/meta/HostedField;
9 10 6 fields Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
MethodParameters:
Name Flags
buffer
private static java.lang.Object readObjectField(com.oracle.svm.hosted.meta.HostedField, jdk.vm.ci.meta.JavaConstant);
descriptor: (Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.meta.HostedField.readStorageValue:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 field Lcom/oracle/svm/hosted/meta/HostedField;
0 1 1 receiver Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
field
receiver
private int referenceSize();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getReferenceSize:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
private void mustBeReferenceAligned(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 1
iload 1
aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getReferenceSize:()I
irem
ifeq 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "index "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " must be reference-aligned."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 2 1 index I
MethodParameters:
Name Flags
index
private static void verifyTargetDidNotChange(java.lang.Object, java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: aload 0
aload 1
invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 target Ljava/lang/Object;
0 3 1 reason Ljava/lang/Object;
0 3 2 targetInfo Ljava/lang/Object;
MethodParameters:
Name Flags
target
reason
targetInfo
private void writeField(com.oracle.svm.hosted.image.RelocatableBuffer, com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, com.oracle.svm.hosted.meta.HostedField, jdk.vm.ci.meta.JavaConstant, com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
aload 3
invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
istore 6
start local 6 1: aload 3
aload 4
invokevirtual com.oracle.svm.hosted.meta.HostedField.readValue:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
astore 7
start local 7 2: goto 5
end local 7 StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.meta.HostedField jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int
StackMap stack: com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError
3: astore 8
start local 8 4: aload 8
invokevirtual com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 5
invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 8 start local 7 5: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 8
aload 7
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
ifeq 8
6: aload 0
aload 1
iload 6
aload 7
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
checkcast org.graalvm.nativeimage.c.function.RelocatedPointer
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.addNonDataRelocation:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILorg/graalvm/nativeimage/c/function/RelocatedPointer;)V
7: goto 11
8: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 6
aload 7
aload 5
ifnull 9
aload 5
goto 10
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.meta.HostedField jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int jdk.vm.ci.meta.JavaConstant
StackMap stack: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer int jdk.vm.ci.meta.JavaConstant
9: aload 3
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.meta.HostedField jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int jdk.vm.ci.meta.JavaConstant
StackMap stack: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer int jdk.vm.ci.meta.JavaConstant java.lang.Object
10: invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.write:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaConstant;Ljava/lang/Object;)V
11: StackMap locals:
StackMap stack:
return
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 12 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 12 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 12 2 fields Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
0 12 3 field Lcom/oracle/svm/hosted/meta/HostedField;
0 12 4 receiver Ljdk/vm/ci/meta/JavaConstant;
0 12 5 info Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
1 12 6 index I
2 3 7 value Ljdk/vm/ci/meta/JavaConstant;
5 12 7 value Ljdk/vm/ci/meta/JavaConstant;
4 5 8 ex Lcom/oracle/graal/pointsto/util/AnalysisError$TypeNotFoundError;
Exception table:
from to target type
1 2 3 Class com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError
MethodParameters:
Name Flags
buffer
fields
field
receiver
info
private void write(com.oracle.svm.hosted.image.RelocatableBuffer, int, jdk.vm.ci.meta.JavaConstant, java.lang.Object);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaConstant;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 3
1: aload 0
aload 1
iload 2
aload 3
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
aload 4
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeReference:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjava/lang/Object;Ljava/lang/Object;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 1
iload 2
aload 3
invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.writePrimitive:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaConstant;)V
4: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 5 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 5 2 index I
0 5 3 con Ljdk/vm/ci/meta/JavaConstant;
0 5 4 reason Ljava/lang/Object;
MethodParameters:
Name Flags
buffer
index
con
reason
void writeReference(com.oracle.svm.hosted.image.RelocatableBuffer, int, java.lang.Object, java.lang.Object);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjava/lang/Object;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 1
aload 3
instanceof org.graalvm.word.WordBase
ifeq 1
new java.lang.AssertionError
dup
ldc "word values are not references"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.mustBeReferenceAligned:(I)V
2: aload 3
ifnull 11
3: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
aload 3
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
astore 5
start local 5 4: aload 3
aload 4
aload 5
invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.verifyTargetDidNotChange:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
5: invokestatic com.oracle.svm.hosted.image.NativeImageHeap.useHeapBase:()Z
ifeq 10
6: ldc Lorg/graalvm/compiler/core/common/CompressEncoding;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.CompressEncoding
astore 6
start local 6 7: aload 6
invokevirtual org.graalvm.compiler.core.common.CompressEncoding.getShift:()I
istore 7
start local 7 8: aload 0
aload 1
iload 2
aload 5
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getAddress:()J
iload 7
lushr
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeReferenceValue:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;IJ)V
end local 7 end local 6 9: goto 11
10: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
StackMap stack:
aload 0
aload 1
iload 2
aload 0
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.referenceSize:()I
aload 3
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.addDirectRelocationWithoutAddend:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;IILjava/lang/Object;)V
end local 5 11: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 12 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 12 2 index I
0 12 3 target Ljava/lang/Object;
0 12 4 reason Ljava/lang/Object;
4 11 5 targetInfo Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
7 9 6 compressEncoding Lorg/graalvm/compiler/core/common/CompressEncoding;
8 9 7 shift I
MethodParameters:
Name Flags
buffer
index
target
reason
private void writeConstant(com.oracle.svm.hosted.image.RelocatableBuffer, int, jdk.vm.ci.meta.JavaKind, java.lang.Object, com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaKind;Ljava/lang/Object;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 4
instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
ifeq 3
1: aload 0
aload 1
iload 2
aload 4
checkcast org.graalvm.nativeimage.c.function.RelocatedPointer
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.addNonDataRelocation:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILorg/graalvm/nativeimage/c/function/RelocatedPointer;)V
2: return
3: StackMap locals:
StackMap stack:
aload 4
instanceof org.graalvm.word.WordBase
ifeq 6
4: invokestatic com.oracle.svm.core.FrameAccess.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
aload 4
checkcast org.graalvm.word.WordBase
invokeinterface org.graalvm.word.WordBase.rawValue:()J
invokestatic jdk.vm.ci.meta.JavaConstant.forIntegerKind:(Ljdk/vm/ci/meta/JavaKind;J)Ljdk/vm/ci/meta/PrimitiveConstant;
astore 6
start local 6 5: goto 11
end local 6 StackMap locals:
StackMap stack:
6: aload 4
ifnonnull 9
aload 3
invokestatic com.oracle.svm.core.FrameAccess.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
if_acmpne 9
7: invokestatic com.oracle.svm.core.FrameAccess.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
lconst_0
invokestatic jdk.vm.ci.meta.JavaConstant.forIntegerKind:(Ljdk/vm/ci/meta/JavaKind;J)Ljdk/vm/ci/meta/PrimitiveConstant;
astore 6
start local 6 8: goto 11
end local 6 9: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 10
aload 3
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 10
aload 4
ifnonnull 10
new java.lang.AssertionError
dup
ldc "primitive value must not be null"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
10: StackMap locals:
StackMap stack:
aload 3
aload 4
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forBoxedValue:(Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
astore 6
start local 6 11: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 0
aload 1
iload 2
aload 6
aload 5
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.write:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaConstant;Ljava/lang/Object;)V
12: return
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 13 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 13 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 13 2 index I
0 13 3 kind Ljdk/vm/ci/meta/JavaKind;
0 13 4 value Ljava/lang/Object;
0 13 5 info Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
5 6 6 con Ljdk/vm/ci/meta/JavaConstant;
8 9 6 con Ljdk/vm/ci/meta/JavaConstant;
11 13 6 con Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
buffer
index
kind
value
info
private void (com.oracle.svm.hosted.image.RelocatableBuffer, int, com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 2
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.mustBeReferenceAligned:(I)V
1: aload 3
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getClazz:()Lcom/oracle/svm/hosted/meta/HostedClass;
invokevirtual com.oracle.svm.hosted.meta.HostedClass.getHub:()Lcom/oracle/svm/core/hub/DynamicHub;
astore 4
start local 4 2: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 3
aload 4
ifnonnull 3
new java.lang.AssertionError
dup
ldc "Null DynamicHub found during native image generation."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: com.oracle.svm.core.hub.DynamicHub
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
aload 4
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
astore 5
start local 5 4: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 5
aload 5
ifnonnull 5
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unknown object "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual com.oracle.svm.core.hub.DynamicHub.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " found. Static field or an object referenced from a static field changed during native image generation?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
StackMap stack:
invokestatic com.oracle.svm.core.heap.Heap.getHeap:()Lcom/oracle/svm/core/heap/Heap;
invokevirtual com.oracle.svm.core.heap.Heap.getObjectHeader:()Lcom/oracle/svm/core/heap/ObjectHeader;
astore 6
start local 6 6: invokestatic com.oracle.svm.hosted.image.NativeImageHeap.useHeapBase:()Z
ifeq 11
7: aload 5
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getAddress:()J
lstore 7
start local 7 8: aload 6
aload 3
lload 7
invokevirtual com.oracle.svm.core.heap.ObjectHeader.encodeAsImageHeapObjectHeader:(Lcom/oracle/svm/core/image/ImageHeapObject;J)J
lstore 9
start local 9 9: aload 0
aload 1
iload 2
lload 9
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeReferenceValue:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;IJ)V
end local 9 end local 7 10: goto 13
11: StackMap locals: com.oracle.svm.core.heap.ObjectHeader
StackMap stack:
aload 6
aload 3
lconst_0
invokevirtual com.oracle.svm.core.heap.ObjectHeader.encodeAsImageHeapObjectHeader:(Lcom/oracle/svm/core/image/ImageHeapObject;J)J
lstore 7
start local 7 12: aload 0
aload 1
iload 2
aload 4
lload 7
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.addDirectRelocationWithAddend:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILcom/oracle/svm/core/hub/DynamicHub;J)V
end local 7 13: StackMap locals:
StackMap stack:
return
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 14 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 14 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 14 2 index I
0 14 3 obj Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
2 14 4 hub Lcom/oracle/svm/core/hub/DynamicHub;
4 14 5 hubInfo Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
6 14 6 objectHeader Lcom/oracle/svm/core/heap/ObjectHeader;
8 10 7 targetOffset J
9 10 9 headerBits J
12 13 7 headerBits J
MethodParameters:
Name Flags
buffer
index
obj
private void addDirectRelocationWithoutAddend(com.oracle.svm.hosted.image.RelocatableBuffer, int, int, java.lang.Object);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;IILjava/lang/Object;)V
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: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 1
iload 3
iconst_4
if_icmpeq 1
iload 3
bipush 8
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 2
invokestatic com.oracle.svm.hosted.image.NativeImageHeap.spawnIsolates:()Z
ifeq 2
aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heapLayout:Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
iload 2
invokevirtual com.oracle.svm.core.image.ImageHeapLayoutInfo.isReadOnlyRelocatable:(I)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 3
bipush 8
if_icmpne 3
getstatic com.oracle.objectfile.ObjectFile$RelocationKind.DIRECT_8:Lcom/oracle/objectfile/ObjectFile$RelocationKind;
goto 4
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer int int java.lang.Object
StackMap stack: com.oracle.svm.hosted.image.RelocatableBuffer int
3: getstatic com.oracle.objectfile.ObjectFile$RelocationKind.DIRECT_4:Lcom/oracle/objectfile/ObjectFile$RelocationKind;
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer int int java.lang.Object
StackMap stack: com.oracle.svm.hosted.image.RelocatableBuffer int com.oracle.objectfile.ObjectFile$RelocationKind
4: aload 4
invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.addRelocationWithoutAddend:(ILcom/oracle/objectfile/ObjectFile$RelocationKind;Ljava/lang/Object;)V
5: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
ldc -1
lcmp
ifne 7
6: aload 0
iload 2
i2l
putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
7: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 8 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 8 2 index I
0 8 3 size I
0 8 4 target Ljava/lang/Object;
MethodParameters:
Name Flags
buffer
index
size
target
private void addDirectRelocationWithAddend(com.oracle.svm.hosted.image.RelocatableBuffer, int, com.oracle.svm.core.hub.DynamicHub, long);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILcom/oracle/svm/core/hub/DynamicHub;J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.hosted.image.NativeImageHeap.spawnIsolates:()Z
ifeq 1
aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heapLayout:Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
iload 2
invokevirtual com.oracle.svm.core.image.ImageHeapLayoutInfo.isReadOnlyRelocatable:(I)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
iload 2
aload 0
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.referenceSize:()I
bipush 8
if_icmpne 2
getstatic com.oracle.objectfile.ObjectFile$RelocationKind.DIRECT_8:Lcom/oracle/objectfile/ObjectFile$RelocationKind;
goto 3
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer int com.oracle.svm.core.hub.DynamicHub long
StackMap stack: com.oracle.svm.hosted.image.RelocatableBuffer int
2: getstatic com.oracle.objectfile.ObjectFile$RelocationKind.DIRECT_4:Lcom/oracle/objectfile/ObjectFile$RelocationKind;
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.RelocatableBuffer int com.oracle.svm.core.hub.DynamicHub long
StackMap stack: com.oracle.svm.hosted.image.RelocatableBuffer int com.oracle.objectfile.ObjectFile$RelocationKind
3: lload 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 3
invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.addRelocationWithAddend:(ILcom/oracle/objectfile/ObjectFile$RelocationKind;Ljava/lang/Long;Ljava/lang/Object;)V
4: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
ldc -1
lcmp
ifne 6
5: aload 0
iload 2
i2l
putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
6: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 7 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 7 2 index I
0 7 3 target Lcom/oracle/svm/core/hub/DynamicHub;
0 7 4 objectHeaderBits J
MethodParameters:
Name Flags
buffer
index
target
objectHeaderBits
private void addNonDataRelocation(com.oracle.svm.hosted.image.RelocatableBuffer, int, org.graalvm.nativeimage.c.function.RelocatedPointer);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILorg/graalvm/nativeimage/c/function/RelocatedPointer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 2
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.mustBeReferenceAligned:(I)V
1: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 2
aload 3
instanceof org.graalvm.nativeimage.c.function.CFunctionPointer
ifne 2
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "unknown relocated pointer "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 3
aload 3
instanceof com.oracle.svm.hosted.meta.MethodPointer
ifne 3
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "cannot create relocation for unknown FunctionPointer "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
aload 3
checkcast com.oracle.svm.hosted.meta.MethodPointer
invokevirtual com.oracle.svm.hosted.meta.MethodPointer.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 4
start local 4 4: aload 4
instanceof com.oracle.svm.hosted.meta.HostedMethod
ifeq 5
aload 4
checkcast com.oracle.svm.hosted.meta.HostedMethod
goto 6
StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
5: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getUniverse:()Lcom/oracle/svm/hosted/meta/HostedUniverse;
aload 4
invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.lookup:(Ljdk/vm/ci/meta/JavaMethod;)Lcom/oracle/svm/hosted/meta/HostedMethod;
StackMap locals:
StackMap stack: com.oracle.svm.hosted.meta.HostedMethod
6: astore 5
start local 5 7: aload 5
invokevirtual com.oracle.svm.hosted.meta.HostedMethod.isCompiled:()Z
ifeq 10
8: invokestatic com.oracle.svm.core.config.ConfigurationValues.getTarget:()Lcom/oracle/svm/core/SubstrateTargetDescription;
getfield com.oracle.svm.core.SubstrateTargetDescription.wordSize:I
istore 6
start local 6 9: aload 0
aload 1
iload 2
iload 6
aload 3
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.addDirectRelocationWithoutAddend:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;IILjava/lang/Object;)V
end local 6 10: StackMap locals: com.oracle.svm.hosted.meta.HostedMethod
StackMap stack:
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 11 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 11 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 11 2 index I
0 11 3 pointer Lorg/graalvm/nativeimage/c/function/RelocatedPointer;
4 11 4 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
7 11 5 hMethod Lcom/oracle/svm/hosted/meta/HostedMethod;
9 10 6 pointerSize I
MethodParameters:
Name Flags
buffer
index
pointer
private static void writePrimitive(com.oracle.svm.hosted.image.RelocatableBuffer, int, jdk.vm.ci.meta.JavaConstant);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaConstant;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
astore 3
start local 3 1: invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 2
2: 4
3: 8
4: 6
5: 10
6: 14
7: 12
8: 16
default: 18
}
2: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 3
iload 1
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
3: goto 19
4: StackMap locals:
StackMap stack:
aload 3
iload 1
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
5: goto 19
6: StackMap locals:
StackMap stack:
aload 3
iload 1
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
i2c
invokevirtual java.nio.ByteBuffer.putChar:(IC)Ljava/nio/ByteBuffer;
pop
7: goto 19
8: StackMap locals:
StackMap stack:
aload 3
iload 1
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
i2s
invokevirtual java.nio.ByteBuffer.putShort:(IS)Ljava/nio/ByteBuffer;
pop
9: goto 19
10: StackMap locals:
StackMap stack:
aload 3
iload 1
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
11: goto 19
12: StackMap locals:
StackMap stack:
aload 3
iload 1
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
invokevirtual java.nio.ByteBuffer.putLong:(IJ)Ljava/nio/ByteBuffer;
pop
13: goto 19
14: StackMap locals:
StackMap stack:
aload 3
iload 1
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asFloat:()F
invokevirtual java.nio.ByteBuffer.putFloat:(IF)Ljava/nio/ByteBuffer;
pop
15: goto 19
16: StackMap locals:
StackMap stack:
aload 3
iload 1
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asDouble:()D
invokevirtual java.nio.ByteBuffer.putDouble:(ID)Ljava/nio/ByteBuffer;
pop
17: goto 19
18: StackMap locals:
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
19: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 20 1 index I
0 20 2 con Ljdk/vm/ci/meta/JavaConstant;
1 20 3 bb Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
index
con
private void writeReferenceValue(com.oracle.svm.hosted.image.RelocatableBuffer, int, long);
descriptor: (Lcom/oracle/svm/hosted/image/RelocatableBuffer;IJ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.referenceSize:()I
bipush 8
if_icmpne 3
1: aload 1
invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
iload 2
lload 3
invokevirtual java.nio.ByteBuffer.putLong:(IJ)Ljava/nio/ByteBuffer;
pop
2: goto 7
StackMap locals:
StackMap stack:
3: aload 0
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.referenceSize:()I
iconst_4
if_icmpne 6
4: aload 1
invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
iload 2
lload 3
invokestatic org.graalvm.compiler.core.common.NumUtil.safeToInt:(J)I
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
5: goto 7
6: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unsupported reference size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.referenceSize:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
7: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 8 1 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
0 8 2 index I
0 8 3 value J
MethodParameters:
Name Flags
buffer
index
value
private void writeObject(com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, com.oracle.svm.hosted.image.RelocatableBuffer);
descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/image/RelocatableBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=19, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
astore 3
start local 3 1: aload 1
aload 3
invokevirtual com.oracle.svm.core.config.ObjectLayout.getHubOffset:()I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
istore 4
start local 4 2: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 3
aload 3
iload 4
i2l
invokevirtual com.oracle.svm.core.config.ObjectLayout.isAligned:(J)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: com.oracle.svm.core.config.ObjectLayout int
StackMap stack:
aload 0
aload 2
iload 4
aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeObjectHeader:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
4: aload 2
invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
astore 5
start local 5 5: aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getClazz:()Lcom/oracle/svm/hosted/meta/HostedClass;
astore 6
start local 6 6: aload 6
invokevirtual com.oracle.svm.hosted.meta.HostedClass.isInstanceClass:()Z
ifeq 55
7: aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
astore 7
start local 7 8: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
aload 6
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getHybridLayout:(Lcom/oracle/svm/hosted/meta/HostedClass;)Lcom/oracle/svm/hosted/config/HybridLayout;
astore 8
start local 8 9: aconst_null
astore 9
start local 9 10: aconst_null
astore 10
start local 10 11: iconst_m1
istore 11
start local 11 12: iconst_m1
istore 12
start local 12 13: aconst_null
astore 13
start local 13 14: aload 8
ifnull 31
15: aload 8
invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayField:()Lcom/oracle/svm/hosted/meta/HostedField;
astore 9
16: aload 9
aload 7
invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.readObjectField:(Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
astore 13
17: aload 8
invokevirtual com.oracle.svm.hosted.config.HybridLayout.getTypeIDSlotsField:()Lcom/oracle/svm/hosted/meta/HostedField;
astore 10
18: aload 10
ifnull 31
19: aload 10
aload 7
invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.readObjectField:(Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
checkcast short[]
astore 14
start local 14 20: aload 14
ifnull 31
21: aload 14
arraylength
istore 15
start local 15 22: iconst_0
istore 16
start local 16 23: goto 30
24: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.config.HybridLayout com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField int int java.lang.Object short[] int int
StackMap stack:
aload 1
aload 3
invokestatic com.oracle.svm.hosted.config.HybridLayout.getTypeIDSlotsFieldOffset:(Lcom/oracle/svm/core/config/ObjectLayout;)I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
iload 16
iconst_2
imul
iadd
istore 17
start local 17 25: iload 17
iconst_1
iadd
iload 12
if_icmple 27
26: iload 17
iconst_1
iadd
istore 12
27: StackMap locals: int
StackMap stack:
aload 14
iload 16
saload
istore 18
start local 18 28: aload 5
iload 17
iload 18
invokevirtual java.nio.ByteBuffer.putShort:(IS)Ljava/nio/ByteBuffer;
pop
end local 18 end local 17 29: iinc 16 1
StackMap locals:
StackMap stack:
30: iload 16
iload 15
if_icmplt 24
end local 16 end local 15 end local 14 31: StackMap locals:
StackMap stack:
aload 6
iconst_1
invokevirtual com.oracle.svm.hosted.meta.HostedClass.getInstanceFields:(Z)[Lcom/oracle/svm/hosted/meta/HostedField;
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 41
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.config.HybridLayout com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField int int java.lang.Object top int int com.oracle.svm.hosted.meta.HostedField[]
StackMap stack:
32: aload 17
iload 15
aaload
astore 14
start local 14 33: aload 14
aload 9
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 40
34: aload 14
aload 10
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 40
35: aload 14
invokevirtual com.oracle.svm.hosted.meta.HostedField.isInImageHeap:()Z
ifeq 40
36: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 37
aload 14
invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
ifge 37
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
37: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.config.HybridLayout com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField int int java.lang.Object com.oracle.svm.hosted.meta.HostedField int int com.oracle.svm.hosted.meta.HostedField[]
StackMap stack:
getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 38
aload 1
aload 14
invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
iload 11
if_icmpgt 38
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
38: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 39
aload 1
aload 14
invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
iload 12
if_icmpgt 39
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 1
aload 14
aload 7
aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeField:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
end local 14 40: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.config.HybridLayout com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField int int java.lang.Object top int int com.oracle.svm.hosted.meta.HostedField[]
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
41: iload 15
iload 16
if_icmplt 32
42: aload 5
aload 1
aload 3
invokevirtual com.oracle.svm.core.config.ObjectLayout.getIdentityHashCodeOffset:()I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIdentityHashCode:()I
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
43: aload 13
ifnull 85
44: aload 13
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
istore 14
start local 14 45: aload 5
aload 1
aload 3
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayLengthOffset:()I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
iload 14
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
46: iconst_0
istore 15
start local 15 47: goto 53
48: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.config.HybridLayout com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField int int java.lang.Object int int
StackMap stack:
aload 1
aload 8
iload 15
invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayElementOffset:(I)J
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
istore 16
start local 16 49: aload 8
invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayElementStorageKind:()Ljdk/vm/ci/meta/JavaKind;
astore 17
start local 17 50: aload 13
iload 15
invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
astore 18
start local 18 51: aload 0
aload 2
iload 16
aload 17
aload 18
aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeConstant:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaKind;Ljava/lang/Object;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
end local 18 end local 17 end local 16 52: iinc 15 1
StackMap locals:
StackMap stack:
53: iload 15
iload 14
if_icmplt 48
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 54: goto 85
StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass
StackMap stack:
55: aload 6
invokevirtual com.oracle.svm.hosted.meta.HostedClass.isArray:()Z
ifeq 84
56: aload 6
invokevirtual com.oracle.svm.hosted.meta.HostedClass.getComponentType:()Lcom/oracle/svm/hosted/meta/HostedType;
invokevirtual com.oracle.svm.hosted.meta.HostedType.getStorageKind:()Ljdk/vm/ci/meta/JavaKind;
astore 7
start local 7 57: aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
astore 8
start local 8 58: aload 8
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
istore 9
start local 9 59: aload 5
aload 1
aload 3
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayLengthOffset:()I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
iload 9
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
60: aload 5
aload 1
aload 3
invokevirtual com.oracle.svm.core.config.ObjectLayout.getIdentityHashCodeOffset:()I
i2l
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIdentityHashCode:()I
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
61: aload 8
instanceof java.lang.Object[]
ifeq 76
62: aload 8
checkcast java.lang.Object[]
astore 10
start local 10 63: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 64
aload 10
arraylength
iload 9
if_icmpeq 64
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
64: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass jdk.vm.ci.meta.JavaKind java.lang.Object int java.lang.Object[]
StackMap stack:
iconst_0
istore 11
start local 11 65: goto 74
66: StackMap locals: int
StackMap stack:
aload 1
aload 3
aload 7
iload 11
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayElementOffset:(Ljdk/vm/ci/meta/JavaKind;I)J
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
istore 12
start local 12 67: aload 0
getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getAnalysisUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
aload 10
iload 11
aaload
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.replaceObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 13
start local 13 68: goto 71
end local 13 StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass jdk.vm.ci.meta.JavaKind java.lang.Object int java.lang.Object[] int int
StackMap stack: com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError
69: astore 14
start local 14 70: aload 14
invokevirtual com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 1
invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 14 start local 13 71: StackMap locals: java.lang.Object
StackMap stack:
getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
ifne 72
aload 10
iload 11
aaload
instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
aload 13
instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
if_icmpeq 72
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
72: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 12
aload 7
aload 13
aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeConstant:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaKind;Ljava/lang/Object;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
end local 13 end local 12 73: iinc 11 1
StackMap locals:
StackMap stack:
74: iload 11
iload 9
if_icmplt 66
end local 11 end local 10 75: goto 85
76: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 77: goto 82
78: StackMap locals: int
StackMap stack:
aload 1
aload 3
aload 7
iload 10
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayElementOffset:(Ljdk/vm/ci/meta/JavaKind;I)J
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
istore 11
start local 11 79: aload 8
iload 10
invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
astore 12
start local 12 80: aload 0
aload 2
iload 11
aload 7
aload 12
aload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeConstant:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaKind;Ljava/lang/Object;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
end local 12 end local 11 81: iinc 10 1
StackMap locals:
StackMap stack:
82: iload 10
iload 9
if_icmplt 78
end local 10 end local 9 end local 8 end local 7 83: goto 85
84: StackMap locals: com.oracle.svm.hosted.image.NativeImageHeapWriter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo com.oracle.svm.hosted.image.RelocatableBuffer com.oracle.svm.core.config.ObjectLayout int java.nio.ByteBuffer com.oracle.svm.hosted.meta.HostedClass
StackMap stack:
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
85: StackMap locals:
StackMap stack:
return
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 86 0 this Lcom/oracle/svm/hosted/image/NativeImageHeapWriter;
0 86 1 info Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
0 86 2 buffer Lcom/oracle/svm/hosted/image/RelocatableBuffer;
1 86 3 objectLayout Lcom/oracle/svm/core/config/ObjectLayout;
2 86 4 indexInBuffer I
5 86 5 bufferBytes Ljava/nio/ByteBuffer;
6 86 6 clazz Lcom/oracle/svm/hosted/meta/HostedClass;
8 54 7 con Ljdk/vm/ci/meta/JavaConstant;
9 54 8 hybridLayout Lcom/oracle/svm/hosted/config/HybridLayout<*>;
10 54 9 hybridArrayField Lcom/oracle/svm/hosted/meta/HostedField;
11 54 10 hybridTypeIDSlotsField Lcom/oracle/svm/hosted/meta/HostedField;
12 54 11 maxBitIndex I
13 54 12 maxTypeIDSlotIndex I
14 54 13 hybridArray Ljava/lang/Object;
20 31 14 typeIDSlots [S
22 31 15 length I
23 31 16 i I
25 29 17 index I
28 29 18 value S
33 40 14 field Lcom/oracle/svm/hosted/meta/HostedField;
45 54 14 length I
47 54 15 i I
49 52 16 elementIndex I
50 52 17 elementStorageKind Ljdk/vm/ci/meta/JavaKind;
51 52 18 array Ljava/lang/Object;
57 83 7 kind Ljdk/vm/ci/meta/JavaKind;
58 83 8 array Ljava/lang/Object;
59 83 9 length I
63 75 10 oarray [Ljava/lang/Object;
65 75 11 i I
67 73 12 elementIndex I
68 69 13 element Ljava/lang/Object;
71 73 13 element Ljava/lang/Object;
70 71 14 ex Lcom/oracle/graal/pointsto/util/AnalysisError$TypeNotFoundError;
77 83 10 i I
79 81 11 elementIndex I
80 81 12 element Ljava/lang/Object;
Exception table:
from to target type
67 68 69 Class com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError
MethodParameters:
Name Flags
info
buffer
static int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.vm.ci.meta.JavaKind.values:()[Ljdk/vm/ci/meta/JavaKind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 8
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 6
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 11
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_5
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 7
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 9
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_3
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 10
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
dup
putstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
}
SourceFile: "NativeImageHeapWriter.java"
InnerClasses:
public TypeNotFoundError = com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError of com.oracle.graal.pointsto.util.AnalysisError
public final RelocationKind = com.oracle.objectfile.ObjectFile$RelocationKind of com.oracle.objectfile.ObjectFile
public final ObjectInfo = com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo of com.oracle.svm.hosted.image.NativeImageHeap