class jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator 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$UnboxBindingCalculator
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$UnboxBindingCalculator.$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$UnboxBindingCalculator.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$UnboxBindingCalculator;
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$UnboxBindingCalculator.$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 - 6
1: 3
2: 9
3: 16
4: 20
5: 23
6: 26
default: 33
}
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$UnboxBindingCalculator.$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 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.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 5: 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 6: aload 4
lconst_0
aload 6
invokevirtual jdk.internal.foreign.abi.Binding$Builder.bufferLoad:(JLjava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
7: aload 5
aload 6
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
8: goto 34
end local 6 end local 5 9: StackMap locals:
StackMap stack:
getstatic jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.$assertionsDisabled:Z
ifne 10
aload 1
ldc Ljdk/incubator/foreign/MemorySegment;
if_acmpeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 4
aload 2
invokevirtual jdk.internal.foreign.abi.Binding$Builder.copy:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/Binding$Builder;
11: invokevirtual jdk.internal.foreign.abi.Binding$Builder.baseAddress:()Ljdk/internal/foreign/abi/Binding$Builder;
12: invokevirtual jdk.internal.foreign.abi.Binding$Builder.unboxAddress:()Ljdk/internal/foreign/abi/Binding$Builder;
pop
13: aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.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 14: aload 4
aload 5
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
15: goto 34
end local 5 16: StackMap locals:
StackMap stack:
aload 4
invokevirtual jdk.internal.foreign.abi.Binding$Builder.unboxAddress:()Ljdk/internal/foreign/abi/Binding$Builder;
pop
17: aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.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 18: aload 4
aload 5
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
19: goto 34
end local 5 20: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.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 21: aload 4
aload 5
aload 1
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
22: goto 34
end local 5 23: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.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 24: aload 4
aload 5
aload 1
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
25: goto 34
end local 5 26: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.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 27: getstatic jdk.internal.foreign.abi.x64.X86_64Architecture.INSTANCE:Ljdk/internal/foreign/abi/Architecture;
aload 5
invokevirtual jdk.internal.foreign.abi.VMStorage.type:()I
invokeinterface jdk.internal.foreign.abi.Architecture.isStackType:(I)Z
ifne 31
28: aload 0
getfield jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/windows/CallArranger$StorageCalculator;
invokevirtual jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator.extraVarargsStorage:()Ljdk/internal/foreign/abi/VMStorage;
astore 6
start local 6 29: aload 4
invokevirtual jdk.internal.foreign.abi.Binding$Builder.dup:()Ljdk/internal/foreign/abi/Binding$Builder;
30: aload 6
aload 1
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
end local 6 31: StackMap locals: jdk.internal.foreign.abi.VMStorage
StackMap stack:
aload 4
aload 5
aload 1
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmStore:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
32: goto 34
end local 5 33: 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
34: 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 35 0 this Ljdk/internal/foreign/abi/x64/windows/CallArranger$UnboxBindingCalculator;
0 35 1 carrier Ljava/lang/Class<*>;
0 35 2 layout Ljdk/incubator/foreign/MemoryLayout;
1 35 3 argumentClass Ljdk/internal/foreign/abi/x64/windows/TypeClass;
2 35 4 bindings Ljdk/internal/foreign/abi/Binding$Builder;
5 9 5 storage Ljdk/internal/foreign/abi/VMStorage;
6 9 6 type Ljava/lang/Class<*>;
14 16 5 storage Ljdk/internal/foreign/abi/VMStorage;
18 20 5 storage Ljdk/internal/foreign/abi/VMStorage;
21 23 5 storage Ljdk/internal/foreign/abi/VMStorage;
24 26 5 storage Ljdk/internal/foreign/abi/VMStorage;
27 33 5 storage Ljdk/internal/foreign/abi/VMStorage;
29 31 6 extraStorage 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$UnboxBindingCalculator.$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$UnboxBindingCalculator.$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
StorageCalculator = jdk.internal.foreign.abi.x64.windows.CallArranger$StorageCalculator of jdk.internal.foreign.abi.x64.windows.CallArranger
UnboxBindingCalculator = jdk.internal.foreign.abi.x64.windows.CallArranger$UnboxBindingCalculator of jdk.internal.foreign.abi.x64.windows.CallArranger