class jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator implements jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator
super_class: java.lang.Object
{
private final jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator storageCalculator;
descriptor: Ljdk/internal/foreign/abi/x64/windows/CallArranger$StorageCalculator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$jdk$internal$foreign$abi$x64$windows$TypeClass;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/internal/foreign/abi/x64/windows/CallArranger;
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 jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(boolean);
descriptor: (Z)V
flags: (0x0000)
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.x64.windows.CallArranger$StorageCalculator
dup
iload 1
invokespecial jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator.<init>:(Z)V
putfield jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/windows/CallArranger$StorageCalculator;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/foreign/abi/x64/windows/CallArranger$BoxBindingCalculator;
0 3 1 forArguments Z
MethodParameters:
Name Flags
forArguments
public 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: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic jdk.internal.foreign.abi.x64.windows.TypeClass.typeClassFor:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/x64/windows/TypeClass;
astore 3
start local 3 1: invokestatic jdk.internal.foreign.abi.Binding.builder:()Ljdk/internal/foreign/abi/Binding$Builder;
astore 4
start local 4 2: invokestatic jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.$SWITCH_TABLE$jdk$internal$foreign$abi$x64$windows$TypeClass:()[I
aload 3
invokevirtual jdk.internal.foreign.abi.x64.windows.TypeClass.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 3
2: 11
3: 18
4: 22
5: 25
default: 28
}
3: StackMap locals: jdk.internal.foreign.abi.x64.windows.TypeClass jdk.internal.foreign.abi.Binding$Builder
StackMap stack:
getstatic jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.$assertionsDisabled:Z
ifne 4
aload 1
ldc Ljdk/incubator/foreign/MemorySegment;
if_acmpeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 4
aload 2
invokevirtual jdk.internal.foreign.abi.Binding$Builder.allocate:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/Binding$Builder;
5: invokevirtual jdk.internal.foreign.abi.Binding$Builder.dup:()Ljdk/internal/foreign/abi/Binding$Builder;
pop
6: aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/windows/CallArranger$StorageCalculator;
iconst_0
aload 2
invokevirtual jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator.nextStorage:(ILjdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/VMStorage;
astore 5
start local 5 7: aload 2
invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
invokestatic jdk.internal.foreign.abi.SharedUtils.primitiveCarrierForSize:(J)Ljava/lang/Class;
astore 6
start local 6 8: aload 4
aload 5
aload 6
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmLoad:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
9: lconst_0
aload 6
invokevirtual jdk.internal.foreign.abi.Binding$Builder.bufferStore:(JLjava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
10: goto 29
end local 6 end local 5 11: StackMap locals:
StackMap stack:
getstatic jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.$assertionsDisabled:Z
ifne 12
aload 1
ldc Ljdk/incubator/foreign/MemorySegment;
if_acmpeq 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/windows/CallArranger$StorageCalculator;
iconst_0
aload 2
invokevirtual jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator.nextStorage:(ILjdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/VMStorage;
astore 5
start local 5 13: aload 4
aload 5
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmLoad:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
14: invokevirtual jdk.internal.foreign.abi.Binding$Builder.boxAddress:()Ljdk/internal/foreign/abi/Binding$Builder;
15: aload 2
invokevirtual jdk.internal.foreign.abi.Binding$Builder.toSegment:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
16: aload 4
aload 2
invokevirtual jdk.internal.foreign.abi.Binding$Builder.copy:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
17: goto 29
end local 5 18: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/windows/CallArranger$StorageCalculator;
iconst_0
aload 2
invokevirtual jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator.nextStorage:(ILjdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/VMStorage;
astore 5
start local 5 19: aload 4
aload 5
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmLoad:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
20: invokevirtual jdk.internal.foreign.abi.Binding$Builder.boxAddress:()Ljdk/internal/foreign/abi/Binding$Builder;
pop
21: goto 29
end local 5 22: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/windows/CallArranger$StorageCalculator;
iconst_0
aload 2
invokevirtual jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator.nextStorage:(ILjdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/VMStorage;
astore 5
start local 5 23: aload 4
aload 5
aload 1
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmLoad:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
24: goto 29
end local 5 25: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/windows/CallArranger$StorageCalculator;
iconst_1
aload 2
invokevirtual jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator.nextStorage:(ILjdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/VMStorage;
astore 5
start local 5 26: aload 4
aload 5
aload 1
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmLoad:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
27: goto 29
end local 5 28: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Unhandled class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
aload 4
invokevirtual jdk.internal.foreign.abi.Binding$Builder.build:()Ljava/util/List;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Ljdk/internal/foreign/abi/x64/windows/CallArranger$BoxBindingCalculator;
0 30 1 carrier Ljava/lang/Class<*>;
0 30 2 layout Ljdk/incubator/foreign/MemoryLayout;
1 30 3 argumentClass Ljdk/internal/foreign/abi/x64/windows/TypeClass;
2 30 4 bindings Ljdk/internal/foreign/abi/Binding$Builder;
7 11 5 storage Ljdk/internal/foreign/abi/VMStorage;
8 11 6 type Ljava/lang/Class<*>;
13 18 5 storage Ljdk/internal/foreign/abi/VMStorage;
19 22 5 storage Ljdk/internal/foreign/abi/VMStorage;
23 25 5 storage Ljdk/internal/foreign/abi/VMStorage;
26 28 5 storage Ljdk/internal/foreign/abi/VMStorage;
Signature: (Ljava/lang/Class<*>;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;
MethodParameters:
Name Flags
carrier
layout
static int[] $SWITCH_TABLE$jdk$internal$foreign$abi$x64$windows$TypeClass();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.$SWITCH_TABLE$jdk$internal$foreign$abi$x64$windows$TypeClass:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.internal.foreign.abi.x64.windows.TypeClass.values:()[Ljdk/internal/foreign/abi/x64/windows/TypeClass;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.internal.foreign.abi.x64.windows.TypeClass.FLOAT:Ljdk/internal/foreign/abi/x64/windows/TypeClass;
invokevirtual jdk.internal.foreign.abi.x64.windows.TypeClass.ordinal:()I
iconst_5
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.internal.foreign.abi.x64.windows.TypeClass.INTEGER:Ljdk/internal/foreign/abi/x64/windows/TypeClass;
invokevirtual jdk.internal.foreign.abi.x64.windows.TypeClass.ordinal:()I
iconst_4
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.internal.foreign.abi.x64.windows.TypeClass.POINTER:Ljdk/internal/foreign/abi/x64/windows/TypeClass;
invokevirtual jdk.internal.foreign.abi.x64.windows.TypeClass.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.internal.foreign.abi.x64.windows.TypeClass.STRUCT_REFERENCE:Ljdk/internal/foreign/abi/x64/windows/TypeClass;
invokevirtual jdk.internal.foreign.abi.x64.windows.TypeClass.ordinal:()I
iconst_2
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.internal.foreign.abi.x64.windows.TypeClass.STRUCT_REGISTER:Ljdk/internal/foreign/abi/x64/windows/TypeClass;
invokevirtual jdk.internal.foreign.abi.x64.windows.TypeClass.ordinal:()I
iconst_1
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.internal.foreign.abi.x64.windows.TypeClass.VARARG_FLOAT:Ljdk/internal/foreign/abi/x64/windows/TypeClass;
invokevirtual jdk.internal.foreign.abi.x64.windows.TypeClass.ordinal:()I
bipush 6
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
dup
putstatic jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator.$SWITCH_TABLE$jdk$internal$foreign$abi$x64$windows$TypeClass:[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
}
SourceFile: "CallArranger.java"
NestHost: jdk.internal.foreign.abi.x64.windows.CallArranger
InnerClasses:
public Builder = jdk.internal.foreign.abi.Binding$Builder of jdk.internal.foreign.abi.Binding
private abstract BindingCalculator = jdk.internal.foreign.abi.x64.windows.CallArranger$BindingCalculator of jdk.internal.foreign.abi.x64.windows.CallArranger
BoxBindingCalculator = jdk.internal.foreign.abi.x64.windows.CallArranger$BoxBindingCalculator of jdk.internal.foreign.abi.x64.windows.CallArranger
StorageCalculator = jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator of jdk.internal.foreign.abi.x64.windows.CallArranger