public class com.oracle.svm.hosted.config.HybridLayout<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.config.HybridLayout
super_class: java.lang.Object
{
private final com.oracle.svm.core.config.ObjectLayout layout;
descriptor: Lcom/oracle/svm/core/config/ObjectLayout;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.hosted.meta.HostedField arrayField;
descriptor: Lcom/oracle/svm/hosted/meta/HostedField;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.hosted.meta.HostedField typeIDSlotsField;
descriptor: Lcom/oracle/svm/hosted/meta/HostedField;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int instanceSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public static boolean isHybrid(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc Lcom/oracle/svm/hosted/config/HybridLayoutSupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.config.HybridLayoutSupport
aload 0
invokevirtual com.oracle.svm.hosted.config.HybridLayoutSupport.isHybrid:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 clazz Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
clazz
public static boolean isHybridField(jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc Lcom/oracle/svm/hosted/config/HybridLayoutSupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.config.HybridLayoutSupport
aload 0
invokevirtual com.oracle.svm.hosted.config.HybridLayoutSupport.isHybridField:(Ljdk/vm/ci/meta/ResolvedJavaField;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 field Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
field
public void <init>(java.lang.Class<T>, com.oracle.svm.core.config.ObjectLayout, com.oracle.svm.hosted.meta.HostedMetaAccess);
descriptor: (Ljava/lang/Class;Lcom/oracle/svm/core/config/ObjectLayout;Lcom/oracle/svm/hosted/meta/HostedMetaAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 3
aload 1
invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/meta/HostedType;
checkcast com.oracle.svm.hosted.meta.HostedInstanceClass
aload 2
invokespecial com.oracle.svm.hosted.config.HybridLayout.<init>:(Lcom/oracle/svm/hosted/meta/HostedInstanceClass;Lcom/oracle/svm/core/config/ObjectLayout;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
0 2 1 hybridClass Ljava/lang/Class<TT;>;
0 2 2 layout Lcom/oracle/svm/core/config/ObjectLayout;
0 2 3 metaAccess Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
Signature: (Ljava/lang/Class<TT;>;Lcom/oracle/svm/core/config/ObjectLayout;Lcom/oracle/svm/hosted/meta/HostedMetaAccess;)V
MethodParameters:
Name Flags
hybridClass
layout
metaAccess
public void <init>(com.oracle.svm.hosted.meta.HostedInstanceClass, com.oracle.svm.core.config.ObjectLayout);
descriptor: (Lcom/oracle/svm/hosted/meta/HostedInstanceClass;Lcom/oracle/svm/core/config/ObjectLayout;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield com.oracle.svm.hosted.config.HybridLayout.layout:Lcom/oracle/svm/core/config/ObjectLayout;
2: ldc Lcom/oracle/svm/hosted/config/HybridLayoutSupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.config.HybridLayoutSupport
astore 3
start local 3 3: aload 3
aload 1
invokevirtual com.oracle.svm.hosted.config.HybridLayoutSupport.findHybridFields:(Lcom/oracle/svm/hosted/meta/HostedInstanceClass;)Lcom/oracle/svm/hosted/config/HybridLayoutSupport$HybridFields;
astore 4
start local 4 4: aload 0
aload 4
getfield com.oracle.svm.hosted.config.HybridLayoutSupport$HybridFields.arrayField:Lcom/oracle/svm/hosted/meta/HostedField;
putfield com.oracle.svm.hosted.config.HybridLayout.arrayField:Lcom/oracle/svm/hosted/meta/HostedField;
5: aload 0
aload 4
getfield com.oracle.svm.hosted.config.HybridLayoutSupport$HybridFields.typeIDSlotsField:Lcom/oracle/svm/hosted/meta/HostedField;
putfield com.oracle.svm.hosted.config.HybridLayout.typeIDSlotsField:Lcom/oracle/svm/hosted/meta/HostedField;
6: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.meta.HostedInstanceClass.getInstanceSize:()I
putfield com.oracle.svm.hosted.config.HybridLayout.instanceSize:I
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
0 8 1 hybridClass Lcom/oracle/svm/hosted/meta/HostedInstanceClass;
0 8 2 layout Lcom/oracle/svm/core/config/ObjectLayout;
3 8 3 utils Lcom/oracle/svm/hosted/config/HybridLayoutSupport;
4 8 4 hybridFields Lcom/oracle/svm/hosted/config/HybridLayoutSupport$HybridFields;
MethodParameters:
Name Flags
hybridClass
layout
public jdk.vm.ci.meta.JavaKind getArrayElementStorageKind();
descriptor: ()Ljdk/vm/ci/meta/JavaKind;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.config.HybridLayout.arrayField:Lcom/oracle/svm/hosted/meta/HostedField;
invokevirtual com.oracle.svm.hosted.meta.HostedField.getType:()Lcom/oracle/svm/hosted/meta/HostedType;
invokevirtual com.oracle.svm.hosted.meta.HostedType.getComponentType:()Lcom/oracle/svm/hosted/meta/HostedType;
invokevirtual com.oracle.svm.hosted.meta.HostedType.getStorageKind:()Ljdk/vm/ci/meta/JavaKind;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
public int getArrayBaseOffset();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.config.HybridLayout.instanceSize:I
aload 0
getfield com.oracle.svm.hosted.config.HybridLayout.layout:Lcom/oracle/svm/core/config/ObjectLayout;
aload 0
invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayElementStorageKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual com.oracle.svm.core.config.ObjectLayout.sizeInBytes:(Ljdk/vm/ci/meta/JavaKind;)I
invokestatic org.graalvm.compiler.core.common.NumUtil.roundUp:(II)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
public long getArrayElementOffset(int);
descriptor: (I)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayBaseOffset:()I
iload 1
aload 0
getfield com.oracle.svm.hosted.config.HybridLayout.layout:Lcom/oracle/svm/core/config/ObjectLayout;
aload 0
invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayElementStorageKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual com.oracle.svm.core.config.ObjectLayout.sizeInBytes:(Ljdk/vm/ci/meta/JavaKind;)I
imul
iadd
i2l
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
0 1 1 index I
MethodParameters:
Name Flags
index
public long getTotalSize(int);
descriptor: (I)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.config.HybridLayout.layout:Lcom/oracle/svm/core/config/ObjectLayout;
aload 0
iload 1
invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayElementOffset:(I)J
invokevirtual com.oracle.svm.core.config.ObjectLayout.alignUp:(J)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
0 1 1 length I
MethodParameters:
Name Flags
length
public com.oracle.svm.hosted.meta.HostedField getArrayField();
descriptor: ()Lcom/oracle/svm/hosted/meta/HostedField;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.config.HybridLayout.arrayField:Lcom/oracle/svm/hosted/meta/HostedField;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
public com.oracle.svm.hosted.meta.HostedField getTypeIDSlotsField();
descriptor: ()Lcom/oracle/svm/hosted/meta/HostedField;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.config.HybridLayout.typeIDSlotsField:Lcom/oracle/svm/hosted/meta/HostedField;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
public int getInstanceSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.config.HybridLayout.instanceSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/config/HybridLayout<TT;>;
public static int getTypeIDSlotsFieldOffset(com.oracle.svm.core.config.ObjectLayout);
descriptor: (Lcom/oracle/svm/core/config/ObjectLayout;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayLengthOffset:()I
aload 0
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokevirtual com.oracle.svm.core.config.ObjectLayout.sizeInBytes:(Ljdk/vm/ci/meta/JavaKind;)I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 layout Lcom/oracle/svm/core/config/ObjectLayout;
MethodParameters:
Name Flags
layout
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "HybridLayout.java"
InnerClasses:
public HybridFields = com.oracle.svm.hosted.config.HybridLayoutSupport$HybridFields of com.oracle.svm.hosted.config.HybridLayoutSupport