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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator
dup
iload 1
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: return
end local 1 end local 0 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 start local 1 start local 2 0: lconst_0
lstore 3
start local 3 1: goto 11
2: StackMap locals: long
StackMap stack:
aload 2
invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
lload 3
lsub
ldc 8
invokestatic java.lang.Math.min:(JJ)J
lstore 5
start local 5 3: aload 0
getfield jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/aarch64/CallArranger$StorageCalculator;
lload 5
ldc 8
invokevirtual jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator.stackAlloc:(JJ)Ljdk/internal/foreign/abi/VMStorage;
4: astore 7
start local 7 5: lload 3
ldc 8
ladd
aload 2
invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
lcmp
ifge 7
6: aload 1
invokevirtual jdk.internal.foreign.abi.Binding$Builder.dup:()Ljdk/internal/foreign/abi/Binding$Builder;
pop
7: StackMap locals: long jdk.internal.foreign.abi.VMStorage
StackMap stack:
lload 5
invokestatic jdk.internal.foreign.abi.SharedUtils.primitiveCarrierForSize:(J)Ljava/lang/Class;
astore 8
start local 8 8: aload 1
lload 3
aload 8
invokevirtual jdk.internal.foreign.abi.Binding$Builder.bufferLoad:(JLjava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
9: aload 7
aload 8
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
10: lload 3
ldc 8
ladd
lstore 3
end local 8 end local 7 end local 5 11: StackMap locals:
StackMap stack:
lload 3
aload 2
invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
lcmp
iflt 2
12: return
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: lconst_0
lstore 3
start local 3 1: goto 10
2: StackMap locals: long
StackMap stack:
aload 2
invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
lload 3
lsub
ldc 8
invokestatic java.lang.Math.min:(JJ)J
lstore 5
start local 5 3: aload 0
getfield jdk.internal.foreign.abi.aarch64.CallArranger$BindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/aarch64/CallArranger$StorageCalculator;
lload 5
ldc 8
invokevirtual jdk.internal.foreign.abi.aarch64.CallArranger$StorageCalculator.stackAlloc:(JJ)Ljdk/internal/foreign/abi/VMStorage;
4: astore 7
start local 7 5: lload 5
invokestatic jdk.internal.foreign.abi.SharedUtils.primitiveCarrierForSize:(J)Ljava/lang/Class;
astore 8
start local 8 6: aload 1
invokevirtual jdk.internal.foreign.abi.Binding$Builder.dup:()Ljdk/internal/foreign/abi/Binding$Builder;
7: aload 7
aload 8
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmLoad:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
8: lload 3
aload 8
invokevirtual jdk.internal.foreign.abi.Binding$Builder.bufferStore:(JLjava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
9: lload 3
ldc 8
ladd
lstore 3
end local 8 end local 7 end local 5 10: StackMap locals:
StackMap stack:
lload 3
aload 2
invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
lcmp
iflt 2
11: return
end local 3 end local 2 end local 1 end local 0 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