public class jdk.internal.foreign.PlatformLayouts
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.foreign.PlatformLayouts
super_class: java.lang.Object
{
private static volatile int[] $SWITCH_TABLE$jdk$internal$foreign$CABI;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/PlatformLayouts;
public static <Z extends jdk.incubator.foreign.MemoryLayout> Z pick(Z, Z, );
descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic jdk.internal.foreign.PlatformLayouts.$SWITCH_TABLE$jdk$internal$foreign$CABI:()[I
invokestatic jdk.internal.foreign.CABI.current:()Ljdk/internal/foreign/CABI;
invokevirtual jdk.internal.foreign.CABI.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 1
2: 2
3: 3
default: 4
}
1: StackMap locals:
StackMap stack:
aload 0
goto 5
2: StackMap locals:
StackMap stack:
aload 1
goto 5
3: StackMap locals:
StackMap stack:
aload 2
goto 5
StackMap locals:
StackMap stack:
4: new java.lang.IncompatibleClassChangeError
dup
invokespecial java.lang.IncompatibleClassChangeError.<init>:()V
athrow
5: StackMap locals:
StackMap stack: jdk.incubator.foreign.MemoryLayout
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 sysv TZ;
0 6 1 win64 TZ;
0 6 2 aarch64 TZ;
Signature: <Z::Ljdk/incubator/foreign/MemoryLayout;>(TZ;TZ;TZ;)TZ;
MethodParameters:
Name Flags
sysv
win64
aarch64
public static jdk.incubator.foreign.MemoryLayout asVarArg(jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic jdk.internal.foreign.CABI.current:()Ljdk/internal/foreign/CABI;
getstatic jdk.internal.foreign.CABI.Win64:Ljdk/internal/foreign/CABI;
if_acmpne 2
1: aload 0
invokestatic jdk.internal.foreign.PlatformLayouts$Win64.asVarArg:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
areturn
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ml Ljdk/incubator/foreign/MemoryLayout;
MethodParameters:
Name Flags
ml
private static jdk.incubator.foreign.ValueLayout ofChar(java.nio.ByteOrder, long);
descriptor: (Ljava/nio/ByteOrder;J)Ljdk/incubator/foreign/ValueLayout;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
invokestatic jdk.incubator.foreign.MemoryLayout.ofValueBits:(JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
1: ldc "abi/kind"
getstatic jdk.incubator.foreign.CLinker$TypeKind.CHAR:Ljdk/incubator/foreign/CLinker$TypeKind;
invokevirtual jdk.incubator.foreign.ValueLayout.withAttribute:(Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 order Ljava/nio/ByteOrder;
0 3 1 bitSize J
MethodParameters:
Name Flags
order
bitSize
private static jdk.incubator.foreign.ValueLayout ofShort(java.nio.ByteOrder, long);
descriptor: (Ljava/nio/ByteOrder;J)Ljdk/incubator/foreign/ValueLayout;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
invokestatic jdk.incubator.foreign.MemoryLayout.ofValueBits:(JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
1: ldc "abi/kind"
getstatic jdk.incubator.foreign.CLinker$TypeKind.SHORT:Ljdk/incubator/foreign/CLinker$TypeKind;
invokevirtual jdk.incubator.foreign.ValueLayout.withAttribute:(Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 order Ljava/nio/ByteOrder;
0 3 1 bitSize J
MethodParameters:
Name Flags
order
bitSize
private static jdk.incubator.foreign.ValueLayout ofInt(java.nio.ByteOrder, long);
descriptor: (Ljava/nio/ByteOrder;J)Ljdk/incubator/foreign/ValueLayout;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
invokestatic jdk.incubator.foreign.MemoryLayout.ofValueBits:(JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
1: ldc "abi/kind"
getstatic jdk.incubator.foreign.CLinker$TypeKind.INT:Ljdk/incubator/foreign/CLinker$TypeKind;
invokevirtual jdk.incubator.foreign.ValueLayout.withAttribute:(Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 order Ljava/nio/ByteOrder;
0 3 1 bitSize J
MethodParameters:
Name Flags
order
bitSize
private static jdk.incubator.foreign.ValueLayout ofLong(java.nio.ByteOrder, long);
descriptor: (Ljava/nio/ByteOrder;J)Ljdk/incubator/foreign/ValueLayout;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
invokestatic jdk.incubator.foreign.MemoryLayout.ofValueBits:(JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
1: ldc "abi/kind"
getstatic jdk.incubator.foreign.CLinker$TypeKind.LONG:Ljdk/incubator/foreign/CLinker$TypeKind;
invokevirtual jdk.incubator.foreign.ValueLayout.withAttribute:(Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 order Ljava/nio/ByteOrder;
0 3 1 bitSize J
MethodParameters:
Name Flags
order
bitSize
private static jdk.incubator.foreign.ValueLayout ofLongLong(java.nio.ByteOrder, long);
descriptor: (Ljava/nio/ByteOrder;J)Ljdk/incubator/foreign/ValueLayout;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
invokestatic jdk.incubator.foreign.MemoryLayout.ofValueBits:(JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
1: ldc "abi/kind"
getstatic jdk.incubator.foreign.CLinker$TypeKind.LONG_LONG:Ljdk/incubator/foreign/CLinker$TypeKind;
invokevirtual jdk.incubator.foreign.ValueLayout.withAttribute:(Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 order Ljava/nio/ByteOrder;
0 3 1 bitSize J
MethodParameters:
Name Flags
order
bitSize
private static jdk.incubator.foreign.ValueLayout ofFloat(java.nio.ByteOrder, long);
descriptor: (Ljava/nio/ByteOrder;J)Ljdk/incubator/foreign/ValueLayout;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
invokestatic jdk.incubator.foreign.MemoryLayout.ofValueBits:(JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
1: ldc "abi/kind"
getstatic jdk.incubator.foreign.CLinker$TypeKind.FLOAT:Ljdk/incubator/foreign/CLinker$TypeKind;
invokevirtual jdk.incubator.foreign.ValueLayout.withAttribute:(Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 order Ljava/nio/ByteOrder;
0 3 1 bitSize J
MethodParameters:
Name Flags
order
bitSize
private static jdk.incubator.foreign.ValueLayout ofDouble(java.nio.ByteOrder, long);
descriptor: (Ljava/nio/ByteOrder;J)Ljdk/incubator/foreign/ValueLayout;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
invokestatic jdk.incubator.foreign.MemoryLayout.ofValueBits:(JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
1: ldc "abi/kind"
getstatic jdk.incubator.foreign.CLinker$TypeKind.DOUBLE:Ljdk/incubator/foreign/CLinker$TypeKind;
invokevirtual jdk.incubator.foreign.ValueLayout.withAttribute:(Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 order Ljava/nio/ByteOrder;
0 3 1 bitSize J
MethodParameters:
Name Flags
order
bitSize
private static jdk.incubator.foreign.ValueLayout ofPointer(java.nio.ByteOrder, long);
descriptor: (Ljava/nio/ByteOrder;J)Ljdk/incubator/foreign/ValueLayout;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
invokestatic jdk.incubator.foreign.MemoryLayout.ofValueBits:(JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
1: ldc "abi/kind"
getstatic jdk.incubator.foreign.CLinker$TypeKind.POINTER:Ljdk/incubator/foreign/CLinker$TypeKind;
invokevirtual jdk.incubator.foreign.ValueLayout.withAttribute:(Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/ValueLayout;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 order Ljava/nio/ByteOrder;
0 3 1 bitSize J
MethodParameters:
Name Flags
order
bitSize
public static jdk.incubator.foreign.CLinker$TypeKind getKind(jdk.incubator.foreign.MemoryLayout);
descriptor: (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/CLinker$TypeKind;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "abi/kind"
invokeinterface jdk.incubator.foreign.MemoryLayout.attribute:(Ljava/lang/String;)Ljava/util/Optional;
1: invokedynamic get()Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/foreign/PlatformLayouts.lambda$0()Ljava/lang/IllegalStateException; (6)
()Ljava/lang/IllegalStateException;
2: invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast jdk.incubator.foreign.CLinker$TypeKind
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 layout Ljdk/incubator/foreign/MemoryLayout;
MethodParameters:
Name Flags
layout
static int[] $SWITCH_TABLE$jdk$internal$foreign$CABI();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.internal.foreign.PlatformLayouts.$SWITCH_TABLE$jdk$internal$foreign$CABI:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.internal.foreign.CABI.values:()[Ljdk/internal/foreign/CABI;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.internal.foreign.CABI.AArch64:Ljdk/internal/foreign/CABI;
invokevirtual jdk.internal.foreign.CABI.ordinal:()I
iconst_3
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.CABI.SysV:Ljdk/internal/foreign/CABI;
invokevirtual jdk.internal.foreign.CABI.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.internal.foreign.CABI.Win64:Ljdk/internal/foreign/CABI;
invokevirtual jdk.internal.foreign.CABI.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic jdk.internal.foreign.PlatformLayouts.$SWITCH_TABLE$jdk$internal$foreign$CABI:[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
private static java.lang.IllegalStateException lambda$0();
descriptor: ()Ljava/lang/IllegalStateException;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.IllegalStateException
dup
ldc "Unexpected value layout: could not determine ABI class"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "PlatformLayouts.java"
NestMembers:
jdk.internal.foreign.PlatformLayouts$AArch64 jdk.internal.foreign.PlatformLayouts$SysV jdk.internal.foreign.PlatformLayouts$Win64
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final TypeKind = jdk.incubator.foreign.CLinker$TypeKind of jdk.incubator.foreign.CLinker
public final AArch64 = jdk.internal.foreign.PlatformLayouts$AArch64 of jdk.internal.foreign.PlatformLayouts
public final SysV = jdk.internal.foreign.PlatformLayouts$SysV of jdk.internal.foreign.PlatformLayouts
public final Win64 = jdk.internal.foreign.PlatformLayouts$Win64 of jdk.internal.foreign.PlatformLayouts