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: .line 68
            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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.NativeImageHeap heap
        start local 2 // com.oracle.svm.core.image.ImageHeapLayoutInfo heapLayout
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 0 /* this */
            aload 1 /* heap */
            putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
         2: .line 75
            aload 0 /* this */
            aload 2 /* heapLayout */
            putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heapLayout:Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
         3: .line 76
            aload 0 /* this */
            ldc -1
            putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
         4: .line 77
            return
        end local 2 // com.oracle.svm.core.image.ImageHeapLayoutInfo heapLayout
        end local 1 // com.oracle.svm.hosted.image.NativeImageHeap heap
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
         0: .line 85
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: aload 1 /* debug */
            ldc "BootImageHeap.writeHeap:"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 5 /* perHeapIndent */
        start local 5 // org.graalvm.compiler.debug.Indent perHeapIndent
         2: .line 86
            aload 0 /* this */
            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 /* info */
        start local 6 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         4: .line 87
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            aload 6 /* info */
            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: .line 88
      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 /* this */
            aload 6 /* info */
            aload 2 /* buffer */
            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 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         6: .line 86
      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: .line 93
            aload 0 /* this */
            aload 2 /* buffer */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeStaticFields:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;)V
         8: .line 95
            aload 0 /* this */
            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 /* buffer */
            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: .line 96
            aload 5 /* perHeapIndent */
            ifnull 15
            aload 5 /* perHeapIndent */
            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 /* perHeapIndent */
            ifnull 11
            aload 5 /* perHeapIndent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 5 // org.graalvm.compiler.debug.Indent perHeapIndent
      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: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
            lreturn
        end local 2 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
         0: .line 107
            aload 0 /* this */
            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 /* primitiveFields */
        start local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo primitiveFields
         1: .line 108
            aload 0 /* this */
            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 /* objectFields */
        start local 3 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo objectFields
         2: .line 109
            aload 0 /* this */
            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 /* field */
        start local 4 // com.oracle.svm.hosted.meta.HostedField field
         4: .line 110
            aload 4 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 10
            aload 4 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.hasLocation:()Z
            ifeq 10
         5: .line 111
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 6
            aload 4 /* field */
            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 /* field */
            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: .line 112
      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 /* field */
            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 /* objectFields */
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 2 /* primitiveFields */
      StackMap locals:
      StackMap stack: com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
         8: astore 6 /* fields */
        start local 6 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo fields
         9: .line 113
            aload 0 /* this */
            aload 1 /* buffer */
            aload 6 /* fields */
            aload 4 /* field */
            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 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo fields
        end local 4 // com.oracle.svm.hosted.meta.HostedField field
        10: .line 109
      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: .line 116
            return
        end local 3 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo objectFields
        end local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo primitiveFields
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.meta.HostedField field
        start local 1 // jdk.vm.ci.meta.JavaConstant receiver
         0: .line 119
            aload 0 /* field */
            aload 1 /* receiver */
            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 // jdk.vm.ci.meta.JavaConstant receiver
        end local 0 // com.oracle.svm.hosted.meta.HostedField field
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
         0: .line 123
            aload 0 /* this */
            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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // int index
         0: .line 127
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 1
            iload 1 /* index */
            aload 0 /* this */
            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 /* index */
            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: .line 128
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int index
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // java.lang.Object target
        start local 1 // java.lang.Object reason
        start local 2 // java.lang.Object targetInfo
         0: .line 131
            aload 2 /* targetInfo */
            ifnonnull 2
         1: .line 132
            aload 0 /* target */
            aload 1 /* reason */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         2: .line 134
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object targetInfo
        end local 1 // java.lang.Object reason
        end local 0 // java.lang.Object target
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo fields
        start local 3 // com.oracle.svm.hosted.meta.HostedField field
        start local 4 // jdk.vm.ci.meta.JavaConstant receiver
        start local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         0: .line 137
            aload 2 /* fields */
            aload 3 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
            i2l
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            istore 6 /* index */
        start local 6 // int index
         1: .line 140
            aload 3 /* field */
            aload 4 /* receiver */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.readValue:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
            astore 7 /* value */
        start local 7 // jdk.vm.ci.meta.JavaConstant value
         2: .line 141
            goto 5
        end local 7 // jdk.vm.ci.meta.JavaConstant value
      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 /* ex */
        start local 8 // com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError ex
         4: .line 142
            aload 8 /* ex */
            invokevirtual com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 5 /* info */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError ex
        start local 7 // jdk.vm.ci.meta.JavaConstant value
         5: .line 145
      StackMap locals: jdk.vm.ci.meta.JavaConstant
      StackMap stack:
            aload 7 /* value */
            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 /* value */
            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: .line 146
            aload 0 /* this */
            aload 1 /* buffer */
            iload 6 /* index */
            aload 7 /* value */
            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: .line 147
            goto 11
         8: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buffer */
            iload 6 /* index */
            aload 7 /* value */
            aload 5 /* info */
            ifnull 9
            aload 5 /* info */
            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 /* field */
      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: .line 150
      StackMap locals:
      StackMap stack:
            return
        end local 7 // jdk.vm.ci.meta.JavaConstant value
        end local 6 // int index
        end local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        end local 4 // jdk.vm.ci.meta.JavaConstant receiver
        end local 3 // com.oracle.svm.hosted.meta.HostedField field
        end local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo fields
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // int index
        start local 3 // jdk.vm.ci.meta.JavaConstant con
        start local 4 // java.lang.Object reason
         0: .line 153
            aload 3 /* con */
            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: .line 154
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* index */
            aload 3 /* con */
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
            aload 4 /* reason */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeReference:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjava/lang/Object;Ljava/lang/Object;)V
         2: .line 155
            goto 4
         3: .line 156
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            iload 2 /* index */
            aload 3 /* con */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.writePrimitive:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaConstant;)V
         4: .line 158
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object reason
        end local 3 // jdk.vm.ci.meta.JavaConstant con
        end local 2 // int index
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // int index
        start local 3 // java.lang.Object target
        start local 4 // java.lang.Object reason
         0: .line 161
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 1
            aload 3 /* target */
            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: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* index */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.mustBeReferenceAligned:(I)V
         2: .line 163
            aload 3 /* target */
            ifnull 11
         3: .line 164
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            aload 3 /* target */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            astore 5 /* targetInfo */
        start local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo targetInfo
         4: .line 165
            aload 3 /* target */
            aload 4 /* reason */
            aload 5 /* targetInfo */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.verifyTargetDidNotChange:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 166
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.useHeapBase:()Z
            ifeq 10
         6: .line 167
            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 /* compressEncoding */
        start local 6 // org.graalvm.compiler.core.common.CompressEncoding compressEncoding
         7: .line 168
            aload 6 /* compressEncoding */
            invokevirtual org.graalvm.compiler.core.common.CompressEncoding.getShift:()I
            istore 7 /* shift */
        start local 7 // int shift
         8: .line 169
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* index */
            aload 5 /* targetInfo */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getAddress:()J
            iload 7 /* shift */
            lushr
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeReferenceValue:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;IJ)V
        end local 7 // int shift
        end local 6 // org.graalvm.compiler.core.common.CompressEncoding compressEncoding
         9: .line 170
            goto 11
        10: .line 171
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* index */
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.referenceSize:()I
            aload 3 /* target */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.addDirectRelocationWithoutAddend:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;IILjava/lang/Object;)V
        end local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo targetInfo
        11: .line 174
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object reason
        end local 3 // java.lang.Object target
        end local 2 // int index
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // int index
        start local 3 // jdk.vm.ci.meta.JavaKind kind
        start local 4 // java.lang.Object value
        start local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         0: .line 177
            aload 4 /* value */
            instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
            ifeq 3
         1: .line 178
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* index */
            aload 4 /* value */
            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: .line 179
            return
         3: .line 183
      StackMap locals:
      StackMap stack:
            aload 4 /* value */
            instanceof org.graalvm.word.WordBase
            ifeq 6
         4: .line 184
            invokestatic com.oracle.svm.core.FrameAccess.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 4 /* value */
            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 /* con */
        start local 6 // jdk.vm.ci.meta.JavaConstant con
         5: .line 185
            goto 11
        end local 6 // jdk.vm.ci.meta.JavaConstant con
      StackMap locals:
      StackMap stack:
         6: aload 4 /* value */
            ifnonnull 9
            aload 3 /* kind */
            invokestatic com.oracle.svm.core.FrameAccess.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 9
         7: .line 186
            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 /* con */
        start local 6 // jdk.vm.ci.meta.JavaConstant con
         8: .line 187
            goto 11
        end local 6 // jdk.vm.ci.meta.JavaConstant con
         9: .line 188
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 10
            aload 3 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 10
            aload 4 /* value */
            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: .line 189
      StackMap locals:
      StackMap stack:
            aload 3 /* kind */
            aload 4 /* value */
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forBoxedValue:(Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            astore 6 /* con */
        start local 6 // jdk.vm.ci.meta.JavaConstant con
        11: .line 191
      StackMap locals: jdk.vm.ci.meta.JavaConstant
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* index */
            aload 6 /* con */
            aload 5 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.write:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILjdk/vm/ci/meta/JavaConstant;Ljava/lang/Object;)V
        12: .line 192
            return
        end local 6 // jdk.vm.ci.meta.JavaConstant con
        end local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        end local 4 // java.lang.Object value
        end local 3 // jdk.vm.ci.meta.JavaKind kind
        end local 2 // int index
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 writeObjectHeader(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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // int index
        start local 3 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo obj
         0: .line 195
            aload 0 /* this */
            iload 2 /* index */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.mustBeReferenceAligned:(I)V
         1: .line 197
            aload 3 /* obj */
            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 /* hub */
        start local 4 // com.oracle.svm.core.hub.DynamicHub hub
         2: .line 198
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 3
            aload 4 /* hub */
            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: .line 199
      StackMap locals: com.oracle.svm.core.hub.DynamicHub
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            aload 4 /* hub */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            astore 5 /* hubInfo */
        start local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo hubInfo
         4: .line 200
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 5
            aload 5 /* hubInfo */
            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 /* hub */
            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: .line 202
      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 /* objectHeader */
        start local 6 // com.oracle.svm.core.heap.ObjectHeader objectHeader
         6: .line 203
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.useHeapBase:()Z
            ifeq 11
         7: .line 204
            aload 5 /* hubInfo */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getAddress:()J
            lstore 7 /* targetOffset */
        start local 7 // long targetOffset
         8: .line 205
            aload 6 /* objectHeader */
            aload 3 /* obj */
            lload 7 /* targetOffset */
            invokevirtual com.oracle.svm.core.heap.ObjectHeader.encodeAsImageHeapObjectHeader:(Lcom/oracle/svm/core/image/ImageHeapObject;J)J
            lstore 9 /* headerBits */
        start local 9 // long headerBits
         9: .line 206
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* index */
            lload 9 /* headerBits */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeReferenceValue:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;IJ)V
        end local 9 // long headerBits
        end local 7 // long targetOffset
        10: .line 207
            goto 13
        11: .line 209
      StackMap locals: com.oracle.svm.core.heap.ObjectHeader
      StackMap stack:
            aload 6 /* objectHeader */
            aload 3 /* obj */
            lconst_0
            invokevirtual com.oracle.svm.core.heap.ObjectHeader.encodeAsImageHeapObjectHeader:(Lcom/oracle/svm/core/image/ImageHeapObject;J)J
            lstore 7 /* headerBits */
        start local 7 // long headerBits
        12: .line 210
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* index */
            aload 4 /* hub */
            lload 7 /* headerBits */
            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 // long headerBits
        13: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 6 // com.oracle.svm.core.heap.ObjectHeader objectHeader
        end local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo hubInfo
        end local 4 // com.oracle.svm.core.hub.DynamicHub hub
        end local 3 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo obj
        end local 2 // int index
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // int index
        start local 3 // int size
        start local 4 // java.lang.Object target
         0: .line 215
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 1
            iload 3 /* size */
            iconst_4
            if_icmpeq 1
            iload 3 /* size */
            bipush 8
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 216
      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 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heapLayout:Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
            iload 2 /* index */
            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: .line 217
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            iload 2 /* index */
            iload 3 /* size */
            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 /* target */
            invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.addRelocationWithoutAddend:(ILcom/oracle/objectfile/ObjectFile$RelocationKind;Ljava/lang/Object;)V
         5: .line 218
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
            ldc -1
            lcmp
            ifne 7
         6: .line 219
            aload 0 /* this */
            iload 2 /* index */
            i2l
            putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
         7: .line 221
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object target
        end local 3 // int size
        end local 2 // int index
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // int index
        start local 3 // com.oracle.svm.core.hub.DynamicHub target
        start local 4 // long objectHeaderBits
         0: .line 224
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 1
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.spawnIsolates:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heapLayout:Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
            iload 2 /* index */
            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: .line 225
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            iload 2 /* index */
            aload 0 /* this */
            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 /* objectHeaderBits */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 3 /* target */
            invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.addRelocationWithAddend:(ILcom/oracle/objectfile/ObjectFile$RelocationKind;Ljava/lang/Long;Ljava/lang/Object;)V
         4: .line 226
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
            ldc -1
            lcmp
            ifne 6
         5: .line 227
            aload 0 /* this */
            iload 2 /* index */
            i2l
            putfield com.oracle.svm.hosted.image.NativeImageHeapWriter.sectionOffsetOfARelocatablePointer:J
         6: .line 229
      StackMap locals:
      StackMap stack:
            return
        end local 4 // long objectHeaderBits
        end local 3 // com.oracle.svm.core.hub.DynamicHub target
        end local 2 // int index
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // int index
        start local 3 // org.graalvm.nativeimage.c.function.RelocatedPointer pointer
         0: .line 235
            aload 0 /* this */
            iload 2 /* index */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.mustBeReferenceAligned:(I)V
         1: .line 236
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 2
            aload 3 /* pointer */
            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 /* pointer */
            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: .line 237
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 3
            aload 3 /* pointer */
            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 /* pointer */
            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: .line 239
      StackMap locals:
      StackMap stack:
            aload 3 /* pointer */
            checkcast com.oracle.svm.hosted.meta.MethodPointer
            invokevirtual com.oracle.svm.hosted.meta.MethodPointer.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 4 /* method */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod method
         4: .line 240
            aload 4 /* method */
            instanceof com.oracle.svm.hosted.meta.HostedMethod
            ifeq 5
            aload 4 /* method */
            checkcast com.oracle.svm.hosted.meta.HostedMethod
            goto 6
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
         5: aload 0 /* this */
            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 /* method */
            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 /* hMethod */
        start local 5 // com.oracle.svm.hosted.meta.HostedMethod hMethod
         7: .line 241
            aload 5 /* hMethod */
            invokevirtual com.oracle.svm.hosted.meta.HostedMethod.isCompiled:()Z
            ifeq 10
         8: .line 243
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getTarget:()Lcom/oracle/svm/core/SubstrateTargetDescription;
            getfield com.oracle.svm.core.SubstrateTargetDescription.wordSize:I
            istore 6 /* pointerSize */
        start local 6 // int pointerSize
         9: .line 244
            aload 0 /* this */
            aload 1 /* buffer */
            iload 2 /* index */
            iload 6 /* pointerSize */
            aload 3 /* pointer */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.addDirectRelocationWithoutAddend:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;IILjava/lang/Object;)V
        end local 6 // int pointerSize
        10: .line 246
      StackMap locals: com.oracle.svm.hosted.meta.HostedMethod
      StackMap stack:
            return
        end local 5 // com.oracle.svm.hosted.meta.HostedMethod hMethod
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 3 // org.graalvm.nativeimage.c.function.RelocatedPointer pointer
        end local 2 // int index
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 1 // int index
        start local 2 // jdk.vm.ci.meta.JavaConstant con
         0: .line 249
            aload 0 /* buffer */
            invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
            astore 3 /* bb */
        start local 3 // java.nio.ByteBuffer bb
         1: .line 250
            invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 2 /* con */
            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: .line 252
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 3 /* bb */
            iload 1 /* index */
            aload 2 /* con */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            i2b
            invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
            pop
         3: .line 253
            goto 19
         4: .line 255
      StackMap locals:
      StackMap stack:
            aload 3 /* bb */
            iload 1 /* index */
            aload 2 /* con */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            i2b
            invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
            pop
         5: .line 256
            goto 19
         6: .line 258
      StackMap locals:
      StackMap stack:
            aload 3 /* bb */
            iload 1 /* index */
            aload 2 /* con */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            i2c
            invokevirtual java.nio.ByteBuffer.putChar:(IC)Ljava/nio/ByteBuffer;
            pop
         7: .line 259
            goto 19
         8: .line 261
      StackMap locals:
      StackMap stack:
            aload 3 /* bb */
            iload 1 /* index */
            aload 2 /* con */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            i2s
            invokevirtual java.nio.ByteBuffer.putShort:(IS)Ljava/nio/ByteBuffer;
            pop
         9: .line 262
            goto 19
        10: .line 264
      StackMap locals:
      StackMap stack:
            aload 3 /* bb */
            iload 1 /* index */
            aload 2 /* con */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
        11: .line 265
            goto 19
        12: .line 267
      StackMap locals:
      StackMap stack:
            aload 3 /* bb */
            iload 1 /* index */
            aload 2 /* con */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            invokevirtual java.nio.ByteBuffer.putLong:(IJ)Ljava/nio/ByteBuffer;
            pop
        13: .line 268
            goto 19
        14: .line 270
      StackMap locals:
      StackMap stack:
            aload 3 /* bb */
            iload 1 /* index */
            aload 2 /* con */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asFloat:()F
            invokevirtual java.nio.ByteBuffer.putFloat:(IF)Ljava/nio/ByteBuffer;
            pop
        15: .line 271
            goto 19
        16: .line 273
      StackMap locals:
      StackMap stack:
            aload 3 /* bb */
            iload 1 /* index */
            aload 2 /* con */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asDouble:()D
            invokevirtual java.nio.ByteBuffer.putDouble:(ID)Ljava/nio/ByteBuffer;
            pop
        17: .line 274
            goto 19
        18: .line 276
      StackMap locals:
      StackMap stack:
            aload 2 /* con */
            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: .line 278
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.ByteBuffer bb
        end local 2 // jdk.vm.ci.meta.JavaConstant con
        end local 1 // int index
        end local 0 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        start local 2 // int index
        start local 3 // long value
         0: .line 281
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.referenceSize:()I
            bipush 8
            if_icmpne 3
         1: .line 282
            aload 1 /* buffer */
            invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
            iload 2 /* index */
            lload 3 /* value */
            invokevirtual java.nio.ByteBuffer.putLong:(IJ)Ljava/nio/ByteBuffer;
            pop
         2: .line 283
            goto 7
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.referenceSize:()I
            iconst_4
            if_icmpne 6
         4: .line 284
            aload 1 /* buffer */
            invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
            iload 2 /* index */
            lload 3 /* value */
            invokestatic org.graalvm.compiler.core.common.NumUtil.safeToInt:(J)I
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
         5: .line 285
            goto 7
         6: .line 286
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Unsupported reference size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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: .line 288
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long value
        end local 2 // int index
        end local 1 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
        start local 1 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        start local 2 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
         0: .line 295
            aload 0 /* this */
            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 /* objectLayout */
        start local 3 // com.oracle.svm.core.config.ObjectLayout objectLayout
         1: .line 296
            aload 1 /* info */
            aload 3 /* objectLayout */
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getHubOffset:()I
            i2l
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            istore 4 /* indexInBuffer */
        start local 4 // int indexInBuffer
         2: .line 297
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 3
            aload 3 /* objectLayout */
            iload 4 /* indexInBuffer */
            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: .line 299
      StackMap locals: com.oracle.svm.core.config.ObjectLayout int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buffer */
            iload 4 /* indexInBuffer */
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeapWriter.writeObjectHeader:(Lcom/oracle/svm/hosted/image/RelocatableBuffer;ILcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;)V
         4: .line 301
            aload 2 /* buffer */
            invokevirtual com.oracle.svm.hosted.image.RelocatableBuffer.getByteBuffer:()Ljava/nio/ByteBuffer;
            astore 5 /* bufferBytes */
        start local 5 // java.nio.ByteBuffer bufferBytes
         5: .line 302
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getClazz:()Lcom/oracle/svm/hosted/meta/HostedClass;
            astore 6 /* clazz */
        start local 6 // com.oracle.svm.hosted.meta.HostedClass clazz
         6: .line 303
            aload 6 /* clazz */
            invokevirtual com.oracle.svm.hosted.meta.HostedClass.isInstanceClass:()Z
            ifeq 55
         7: .line 304
            aload 1 /* info */
            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 /* con */
        start local 7 // jdk.vm.ci.meta.JavaConstant con
         8: .line 306
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeapWriter.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            aload 6 /* clazz */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getHybridLayout:(Lcom/oracle/svm/hosted/meta/HostedClass;)Lcom/oracle/svm/hosted/config/HybridLayout;
            astore 8 /* hybridLayout */
        start local 8 // com.oracle.svm.hosted.config.HybridLayout hybridLayout
         9: .line 307
            aconst_null
            astore 9 /* hybridArrayField */
        start local 9 // com.oracle.svm.hosted.meta.HostedField hybridArrayField
        10: .line 308
            aconst_null
            astore 10 /* hybridTypeIDSlotsField */
        start local 10 // com.oracle.svm.hosted.meta.HostedField hybridTypeIDSlotsField
        11: .line 309
            iconst_m1
            istore 11 /* maxBitIndex */
        start local 11 // int maxBitIndex
        12: .line 310
            iconst_m1
            istore 12 /* maxTypeIDSlotIndex */
        start local 12 // int maxTypeIDSlotIndex
        13: .line 311
            aconst_null
            astore 13 /* hybridArray */
        start local 13 // java.lang.Object hybridArray
        14: .line 312
            aload 8 /* hybridLayout */
            ifnull 31
        15: .line 313
            aload 8 /* hybridLayout */
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayField:()Lcom/oracle/svm/hosted/meta/HostedField;
            astore 9 /* hybridArrayField */
        16: .line 314
            aload 9 /* hybridArrayField */
            aload 7 /* con */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeapWriter.readObjectField:(Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            astore 13 /* hybridArray */
        17: .line 316
            aload 8 /* hybridLayout */
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getTypeIDSlotsField:()Lcom/oracle/svm/hosted/meta/HostedField;
            astore 10 /* hybridTypeIDSlotsField */
        18: .line 317
            aload 10 /* hybridTypeIDSlotsField */
            ifnull 31
        19: .line 318
            aload 10 /* hybridTypeIDSlotsField */
            aload 7 /* con */
            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 /* typeIDSlots */
        start local 14 // short[] typeIDSlots
        20: .line 319
            aload 14 /* typeIDSlots */
            ifnull 31
        21: .line 320
            aload 14 /* typeIDSlots */
            arraylength
            istore 15 /* length */
        start local 15 // int length
        22: .line 321
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        23: goto 30
        24: .line 322
      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 /* info */
            aload 3 /* objectLayout */
            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 /* i */
            iconst_2
            imul
            iadd
            istore 17 /* index */
        start local 17 // int index
        25: .line 323
            iload 17 /* index */
            iconst_1
            iadd
            iload 12 /* maxTypeIDSlotIndex */
            if_icmple 27
        26: .line 324
            iload 17 /* index */
            iconst_1
            iadd
            istore 12 /* maxTypeIDSlotIndex */
        27: .line 326
      StackMap locals: int
      StackMap stack:
            aload 14 /* typeIDSlots */
            iload 16 /* i */
            saload
            istore 18 /* value */
        start local 18 // short value
        28: .line 327
            aload 5 /* bufferBytes */
            iload 17 /* index */
            iload 18 /* value */
            invokevirtual java.nio.ByteBuffer.putShort:(IS)Ljava/nio/ByteBuffer;
            pop
        end local 18 // short value
        end local 17 // int index
        29: .line 321
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 16 /* i */
            iload 15 /* length */
            if_icmplt 24
        end local 16 // int i
        end local 15 // int length
        end local 14 // short[] typeIDSlots
        31: .line 336
      StackMap locals:
      StackMap stack:
            aload 6 /* clazz */
            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 /* field */
        start local 14 // com.oracle.svm.hosted.meta.HostedField field
        33: .line 337
            aload 14 /* field */
            aload 9 /* hybridArrayField */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 40
        34: .line 338
            aload 14 /* field */
            aload 10 /* hybridTypeIDSlotsField */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 40
        35: .line 339
            aload 14 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.isInImageHeap:()Z
            ifeq 40
        36: .line 340
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 37
            aload 14 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
            ifge 37
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        37: .line 341
      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 /* info */
            aload 14 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
            i2l
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            iload 11 /* maxBitIndex */
            if_icmpgt 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 342
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 39
            aload 1 /* info */
            aload 14 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
            i2l
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            iload 12 /* maxTypeIDSlotIndex */
            if_icmpgt 39
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        39: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buffer */
            aload 1 /* info */
            aload 14 /* field */
            aload 7 /* con */
            aload 1 /* info */
            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 // com.oracle.svm.hosted.meta.HostedField field
        40: .line 336
      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: .line 346
            aload 5 /* bufferBytes */
            aload 1 /* info */
            aload 3 /* objectLayout */
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getIdentityHashCodeOffset:()I
            i2l
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIdentityHashCode:()I
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
        43: .line 347
            aload 13 /* hybridArray */
            ifnull 85
        44: .line 351
            aload 13 /* hybridArray */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 14 /* length */
        start local 14 // int length
        45: .line 352
            aload 5 /* bufferBytes */
            aload 1 /* info */
            aload 3 /* objectLayout */
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayLengthOffset:()I
            i2l
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            iload 14 /* length */
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
        46: .line 353
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        47: goto 53
        48: .line 354
      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 /* info */
            aload 8 /* hybridLayout */
            iload 15 /* i */
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayElementOffset:(I)J
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            istore 16 /* elementIndex */
        start local 16 // int elementIndex
        49: .line 355
            aload 8 /* hybridLayout */
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayElementStorageKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 17 /* elementStorageKind */
        start local 17 // jdk.vm.ci.meta.JavaKind elementStorageKind
        50: .line 356
            aload 13 /* hybridArray */
            iload 15 /* i */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 18 /* array */
        start local 18 // java.lang.Object array
        51: .line 357
            aload 0 /* this */
            aload 2 /* buffer */
            iload 16 /* elementIndex */
            aload 17 /* elementStorageKind */
            aload 18 /* array */
            aload 1 /* info */
            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 // java.lang.Object array
        end local 17 // jdk.vm.ci.meta.JavaKind elementStorageKind
        end local 16 // int elementIndex
        52: .line 353
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        53: iload 15 /* i */
            iload 14 /* length */
            if_icmplt 48
        end local 15 // int i
        end local 14 // int length
        end local 13 // java.lang.Object hybridArray
        end local 12 // int maxTypeIDSlotIndex
        end local 11 // int maxBitIndex
        end local 10 // com.oracle.svm.hosted.meta.HostedField hybridTypeIDSlotsField
        end local 9 // com.oracle.svm.hosted.meta.HostedField hybridArrayField
        end local 8 // com.oracle.svm.hosted.config.HybridLayout hybridLayout
        end local 7 // jdk.vm.ci.meta.JavaConstant con
        54: .line 361
            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 /* clazz */
            invokevirtual com.oracle.svm.hosted.meta.HostedClass.isArray:()Z
            ifeq 84
        56: .line 362
            aload 6 /* clazz */
            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 /* kind */
        start local 7 // jdk.vm.ci.meta.JavaKind kind
        57: .line 363
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            astore 8 /* array */
        start local 8 // java.lang.Object array
        58: .line 364
            aload 8 /* array */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 9 /* length */
        start local 9 // int length
        59: .line 365
            aload 5 /* bufferBytes */
            aload 1 /* info */
            aload 3 /* objectLayout */
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayLengthOffset:()I
            i2l
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            iload 9 /* length */
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
        60: .line 366
            aload 5 /* bufferBytes */
            aload 1 /* info */
            aload 3 /* objectLayout */
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getIdentityHashCodeOffset:()I
            i2l
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIndexInBuffer:(J)I
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getIdentityHashCode:()I
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
        61: .line 367
            aload 8 /* array */
            instanceof java.lang.Object[]
            ifeq 76
        62: .line 368
            aload 8 /* array */
            checkcast java.lang.Object[]
            astore 10 /* oarray */
        start local 10 // java.lang.Object[] oarray
        63: .line 369
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 64
            aload 10 /* oarray */
            arraylength
            iload 9 /* length */
            if_icmpeq 64
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        64: .line 370
      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 /* i */
        start local 11 // int i
        65: goto 74
        66: .line 371
      StackMap locals: int
      StackMap stack:
            aload 1 /* info */
            aload 3 /* objectLayout */
            aload 7 /* kind */
            iload 11 /* i */
            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 /* elementIndex */
        start local 12 // int elementIndex
        67: .line 374
            aload 0 /* this */
            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 /* oarray */
            iload 11 /* i */
            aaload
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.replaceObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* element */
        start local 13 // java.lang.Object element
        68: .line 375
            goto 71
        end local 13 // java.lang.Object element
      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 /* ex */
        start local 14 // com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError ex
        70: .line 376
            aload 14 /* ex */
            invokevirtual com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 1 /* info */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 14 // com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError ex
        start local 13 // java.lang.Object element
        71: .line 379
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic com.oracle.svm.hosted.image.NativeImageHeapWriter.$assertionsDisabled:Z
            ifne 72
            aload 10 /* oarray */
            iload 11 /* i */
            aaload
            instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
            aload 13 /* element */
            instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
            if_icmpeq 72
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        72: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buffer */
            iload 12 /* elementIndex */
            aload 7 /* kind */
            aload 13 /* element */
            aload 1 /* info */
            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 // java.lang.Object element
        end local 12 // int elementIndex
        73: .line 370
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        74: iload 11 /* i */
            iload 9 /* length */
            if_icmplt 66
        end local 11 // int i
        end local 10 // java.lang.Object[] oarray
        75: .line 382
            goto 85
        76: .line 383
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        77: goto 82
        78: .line 384
      StackMap locals: int
      StackMap stack:
            aload 1 /* info */
            aload 3 /* objectLayout */
            aload 7 /* kind */
            iload 10 /* i */
            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 /* elementIndex */
        start local 11 // int elementIndex
        79: .line 385
            aload 8 /* array */
            iload 10 /* i */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 12 /* element */
        start local 12 // java.lang.Object element
        80: .line 386
            aload 0 /* this */
            aload 2 /* buffer */
            iload 11 /* elementIndex */
            aload 7 /* kind */
            aload 12 /* element */
            aload 1 /* info */
            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 // java.lang.Object element
        end local 11 // int elementIndex
        81: .line 383
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        82: iload 10 /* i */
            iload 9 /* length */
            if_icmplt 78
        end local 10 // int i
        end local 9 // int length
        end local 8 // java.lang.Object array
        end local 7 // jdk.vm.ci.meta.JavaKind kind
        83: .line 390
            goto 85
        84: .line 391
      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: .line 393
      StackMap locals:
      StackMap stack:
            return
        end local 6 // com.oracle.svm.hosted.meta.HostedClass clazz
        end local 5 // java.nio.ByteBuffer bufferBytes
        end local 4 // int indexInBuffer
        end local 3 // com.oracle.svm.core.config.ObjectLayout objectLayout
        end local 2 // com.oracle.svm.hosted.image.RelocatableBuffer buffer
        end local 1 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeapWriter this
      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: .line 68
            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