class jdk.internal.foreign.abi.x64.sysv.CallArranger$BoxBindingCalculator extends jdk.internal.foreign.abi.x64.sysv.CallArranger$BindingCalculator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.foreign.abi.x64.sysv.CallArranger$BoxBindingCalculator
super_class: jdk.internal.foreign.abi.x64.sysv.CallArranger$BindingCalculator
{
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$sysv$TypeClass$Kind;
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/sysv/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.sysv.CallArranger$BoxBindingCalculator.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokespecial jdk.internal.foreign.abi.x64.sysv.CallArranger$BindingCalculator.<init>:(Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/foreign/abi/x64/sysv/CallArranger$BoxBindingCalculator;
0 2 1 forArguments Z
MethodParameters:
Name Flags
forArguments
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: (0x0000)
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic jdk.internal.foreign.abi.x64.sysv.TypeClass.classifyLayout:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/internal/foreign/abi/x64/sysv/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.sysv.CallArranger$BoxBindingCalculator.$SWITCH_TABLE$jdk$internal$foreign$abi$x64$sysv$TypeClass$Kind:()[I
aload 3
invokevirtual jdk.internal.foreign.abi.x64.sysv.TypeClass.kind:()Ljdk/internal/foreign/abi/x64/sysv/TypeClass$Kind;
invokevirtual jdk.internal.foreign.abi.x64.sysv.TypeClass$Kind.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 3
2: 18
3: 22
4: 25
default: 28
}
3: StackMap locals: jdk.internal.foreign.abi.x64.sysv.TypeClass jdk.internal.foreign.abi.Binding$Builder
StackMap stack:
getstatic jdk.internal.foreign.abi.x64.sysv.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;
pop
5: aload 0
getfield jdk.internal.foreign.abi.x64.sysv.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/sysv/CallArranger$StorageCalculator;
aload 3
invokevirtual jdk.internal.foreign.abi.x64.sysv.CallArranger$StorageCalculator.structStorages:(Ljdk/internal/foreign/abi/x64/sysv/TypeClass;)[Ljdk/internal/foreign/abi/VMStorage;
astore 5
start local 5 6: iconst_0
istore 6
start local 6 7: lconst_0
lstore 7
start local 7 8: goto 16
9: StackMap locals: jdk.internal.foreign.abi.VMStorage[] int long
StackMap stack:
aload 2
invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
lload 7
lsub
ldc 8
invokestatic java.lang.Math.min:(JJ)J
lstore 9
start local 9 10: aload 5
iload 6
iinc 6 1
aaload
astore 11
start local 11 11: aload 4
invokevirtual jdk.internal.foreign.abi.Binding$Builder.dup:()Ljdk/internal/foreign/abi/Binding$Builder;
pop
12: lload 9
invokestatic jdk.internal.foreign.abi.SharedUtils.primitiveCarrierForSize:(J)Ljava/lang/Class;
astore 12
start local 12 13: aload 4
aload 11
aload 12
invokevirtual jdk.internal.foreign.abi.Binding$Builder.vmLoad:(Ljdk/internal/foreign/abi/VMStorage;Ljava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
14: lload 7
aload 12
invokevirtual jdk.internal.foreign.abi.Binding$Builder.bufferStore:(JLjava/lang/Class;)Ljdk/internal/foreign/abi/Binding$Builder;
pop
15: lload 7
lload 9
ladd
lstore 7
end local 12 end local 11 end local 9 16: StackMap locals:
StackMap stack:
lload 7
aload 2
invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
lcmp
iflt 9
17: goto 29
end local 7 end local 6 end local 5 18: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.foreign.abi.x64.sysv.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/sysv/CallArranger$StorageCalculator;
iconst_0
invokevirtual jdk.internal.foreign.abi.x64.sysv.CallArranger$StorageCalculator.nextStorage:(I)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.sysv.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/sysv/CallArranger$StorageCalculator;
iconst_0
invokevirtual jdk.internal.foreign.abi.x64.sysv.CallArranger$StorageCalculator.nextStorage:(I)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.sysv.CallArranger$BoxBindingCalculator.storageCalculator:Ljdk/internal/foreign/abi/x64/sysv/CallArranger$StorageCalculator;
iconst_1
invokevirtual jdk.internal.foreign.abi.x64.sysv.CallArranger$StorageCalculator.nextStorage:(I)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/sysv/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/sysv/TypeClass;
2 30 4 bindings Ljdk/internal/foreign/abi/Binding$Builder;
6 18 5 regs [Ljdk/internal/foreign/abi/VMStorage;
7 18 6 regIndex I
8 18 7 offset J
10 16 9 copy J
11 16 11 storage Ljdk/internal/foreign/abi/VMStorage;
13 16 12 type Ljava/lang/Class<*>;
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$sysv$TypeClass$Kind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.internal.foreign.abi.x64.sysv.CallArranger$BoxBindingCalculator.$SWITCH_TABLE$jdk$internal$foreign$abi$x64$sysv$TypeClass$Kind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.internal.foreign.abi.x64.sysv.TypeClass$Kind.values:()[Ljdk/internal/foreign/abi/x64/sysv/TypeClass$Kind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.internal.foreign.abi.x64.sysv.TypeClass$Kind.FLOAT:Ljdk/internal/foreign/abi/x64/sysv/TypeClass$Kind;
invokevirtual jdk.internal.foreign.abi.x64.sysv.TypeClass$Kind.ordinal:()I
iconst_4
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.sysv.TypeClass$Kind.INTEGER:Ljdk/internal/foreign/abi/x64/sysv/TypeClass$Kind;
invokevirtual jdk.internal.foreign.abi.x64.sysv.TypeClass$Kind.ordinal:()I
iconst_3
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.sysv.TypeClass$Kind.POINTER:Ljdk/internal/foreign/abi/x64/sysv/TypeClass$Kind;
invokevirtual jdk.internal.foreign.abi.x64.sysv.TypeClass$Kind.ordinal:()I
iconst_2
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.sysv.TypeClass$Kind.STRUCT:Ljdk/internal/foreign/abi/x64/sysv/TypeClass$Kind;
invokevirtual jdk.internal.foreign.abi.x64.sysv.TypeClass$Kind.ordinal:()I
iconst_1
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic jdk.internal.foreign.abi.x64.sysv.CallArranger$BoxBindingCalculator.$SWITCH_TABLE$jdk$internal$foreign$abi$x64$sysv$TypeClass$Kind:[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
}
SourceFile: "CallArranger.java"
NestHost: jdk.internal.foreign.abi.x64.sysv.CallArranger
InnerClasses:
public Builder = jdk.internal.foreign.abi.Binding$Builder of jdk.internal.foreign.abi.Binding
abstract BindingCalculator = jdk.internal.foreign.abi.x64.sysv.CallArranger$BindingCalculator of jdk.internal.foreign.abi.x64.sysv.CallArranger
BoxBindingCalculator = jdk.internal.foreign.abi.x64.sysv.CallArranger$BoxBindingCalculator of jdk.internal.foreign.abi.x64.sysv.CallArranger
StorageCalculator = jdk.internal.foreign.abi.x64.sysv.CallArranger$StorageCalculator of jdk.internal.foreign.abi.x64.sysv.CallArranger
final Kind = jdk.internal.foreign.abi.x64.sysv.TypeClass$Kind of jdk.internal.foreign.abi.x64.sysv.TypeClass