abstract class jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator
  super_class: java.lang.Object
{
  protected final jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator storageCalculator;
    descriptor: Ljdk/internal/foreign/abi/aarch64/CallArranger$StorageCalculator;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator this
        start local 1 // boolean forArguments
         0: .line 217
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 218
            aload 0 /* this */
            new jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator
            dup
            iload 1 /* forArguments */
            invokespecial jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator.<init>:(Z)V
            putfield jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/aarch64/CallArranger$StorageCalculator;
         2: .line 219
            return
        end local 1 // boolean forArguments
        end local 0 // jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Ljdk/internal/foreign/abi/aarch64/CallArranger$BindingCalculator;
            0    3     1  forArguments  Z
    MethodParameters:
              Name  Flags
      forArguments  

  protected void spillStructUnbox(jdk.internal.foreign.abi.Binding$Builder, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/internal/foreign/abi/Binding$Builder;Ljdk/incubator/foreign/MemoryLayout;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator this
        start local 1 // jdk.internal.foreign.abi.Binding$Builder bindings
        start local 2 // jdk.incubator.foreign.MemoryLayout layout
         0: .line 227
            lconst_0
            lstore 3 /* offset */
        start local 3 // long offset
         1: .line 228
            goto 11
         2: .line 229
      StackMap locals: long
      StackMap stack:
            aload 2 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
            lload 3 /* offset */
            lsub
            ldc 8
            invokestatic java.lang.Math.min:(JJ)J
            lstore 5 /* copy */
        start local 5 // long copy
         3: .line 231
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/aarch64/CallArranger$StorageCalculator;
            lload 5 /* copy */
            ldc 8
            invokevirtual jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator.stackAlloc:(JJ)Ljdk/internal/foreign/abi/VMStorage;
         4: .line 230
            astore 7 /* storage */
        start local 7 // jdk.internal.foreign.abi.VMStorage storage
         5: .line 232
            lload 3 /* offset */
            ldc 8
            ladd
            aload 2 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
            lcmp
            ifge 7
         6: .line 233
            aload 1 /* bindings */
            invokevirtual jdk.internal.foreign.abi.Binding$Builder.dup:()Ljdk/internal/foreign/abi/Binding$Builder;
            pop
         7: .line 235
      StackMap locals: long jdk.internal.foreign.abi.VMStorage
      StackMap stack:
            lload 5 /* copy */
            invokestatic jdk.internal.foreign.abi.SharedUtils.primitiveCarrierForSize:(J)Ljava/lang/Class;
            astore 8 /* type */
        start local 8 // java.lang.Class type
         8: .line 236
            aload 1 /* bindings */
            lload 3 /* offset */
            aload 8 /* type */
            invokevirtual jdk.internal.foreign.abi.Binding$Builder.bufferLoad:(JLjava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
         9: .line 237
            aload 7 /* storage */
            aload 8 /* type */
            invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
            pop
        10: .line 238
            lload 3 /* offset */
            ldc 8
            ladd
            lstore 3 /* offset */
        end local 8 // java.lang.Class type
        end local 7 // jdk.internal.foreign.abi.VMStorage storage
        end local 5 // long copy
        11: .line 228
      StackMap locals:
      StackMap stack:
            lload 3 /* offset */
            aload 2 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
            lcmp
            iflt 2
        12: .line 240
            return
        end local 3 // long offset
        end local 2 // jdk.incubator.foreign.MemoryLayout layout
        end local 1 // jdk.internal.foreign.abi.Binding$Builder bindings
        end local 0 // jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Ljdk/internal/foreign/abi/aarch64/CallArranger$BindingCalculator;
            0   13     1  bindings  Ljdk/internal/foreign/abi/Binding$Builder;
            0   13     2    layout  Ljdk/incubator/foreign/MemoryLayout;
            1   13     3    offset  J
            3   11     5      copy  J
            5   11     7   storage  Ljdk/internal/foreign/abi/VMStorage;
            8   11     8      type  Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      bindings  
      layout    

  protected void spillStructBox(jdk.internal.foreign.abi.Binding$Builder, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/internal/foreign/abi/Binding$Builder;Ljdk/incubator/foreign/MemoryLayout;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator this
        start local 1 // jdk.internal.foreign.abi.Binding$Builder bindings
        start local 2 // jdk.incubator.foreign.MemoryLayout layout
         0: .line 248
            lconst_0
            lstore 3 /* offset */
        start local 3 // long offset
         1: .line 249
            goto 10
         2: .line 250
      StackMap locals: long
      StackMap stack:
            aload 2 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
            lload 3 /* offset */
            lsub
            ldc 8
            invokestatic java.lang.Math.min:(JJ)J
            lstore 5 /* copy */
        start local 5 // long copy
         3: .line 252
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/aarch64/CallArranger$StorageCalculator;
            lload 5 /* copy */
            ldc 8
            invokevirtual jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator.stackAlloc:(JJ)Ljdk/internal/foreign/abi/VMStorage;
         4: .line 251
            astore 7 /* storage */
        start local 7 // jdk.internal.foreign.abi.VMStorage storage
         5: .line 253
            lload 5 /* copy */
            invokestatic jdk.internal.foreign.abi.SharedUtils.primitiveCarrierForSize:(J)Ljava/lang/Class;
            astore 8 /* type */
        start local 8 // java.lang.Class type
         6: .line 254
            aload 1 /* bindings */
            invokevirtual jdk.internal.foreign.abi.Binding$Builder.dup:()Ljdk/internal/foreign/abi/Binding$Builder;
         7: .line 255
            aload 7 /* storage */
            aload 8 /* type */
            invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmLoad:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
         8: .line 256
            lload 3 /* offset */
            aload 8 /* type */
            invokevirtual jdk.internal.foreign.abi.Binding$Builder.bufferStore:(JLjava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
            pop
         9: .line 257
            lload 3 /* offset */
            ldc 8
            ladd
            lstore 3 /* offset */
        end local 8 // java.lang.Class type
        end local 7 // jdk.internal.foreign.abi.VMStorage storage
        end local 5 // long copy
        10: .line 249
      StackMap locals:
      StackMap stack:
            lload 3 /* offset */
            aload 2 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
            lcmp
            iflt 2
        11: .line 259
            return
        end local 3 // long offset
        end local 2 // jdk.incubator.foreign.MemoryLayout layout
        end local 1 // jdk.internal.foreign.abi.Binding$Builder bindings
        end local 0 // jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Ljdk/internal/foreign/abi/aarch64/CallArranger$BindingCalculator;
            0   12     1  bindings  Ljdk/internal/foreign/abi/Binding$Builder;
            0   12     2    layout  Ljdk/incubator/foreign/MemoryLayout;
            1   12     3    offset  J
            3   10     5      copy  J
            5   10     7   storage  Ljdk/internal/foreign/abi/VMStorage;
            6   10     8      type  Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      bindings  
      layout    

  abstract java.util.List<jdk.internal.foreign.abi.Binding> getBindings(java.lang.Class<?>, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/List;
    flags: (0x0400) ACC_ABSTRACT
    Signature: (Ljava/lang/Class<*>;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;
    MethodParameters:
         Name  Flags
      carrier  
      layout   

  abstract java.util.List<jdk.internal.foreign.abi.Binding> getIndirectBindings();
    descriptor: ()Ljava/util/List;
    flags: (0x0400) ACC_ABSTRACT
    Signature: ()Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;
}
SourceFile: "CallArranger.java"
NestHost: jdk.internal.foreign.abi.aarch64.CallArranger
InnerClasses:
  public Builder = jdk.internal.foreign.abi.Binding$Builder of jdk.internal.foreign.abi.Binding
  abstract BindingCalculator = jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator of jdk.internal.foreign.abi.aarch64.CallArranger
  StorageCalculator = jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator of jdk.internal.foreign.abi.aarch64.CallArranger