public class jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider implements jdk.vm.ci.meta.MethodHandleAccessProvider
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider
super_class: java.lang.Object
{
private final jdk.vm.ci.meta.ConstantReflectionProvider constantReflection;
descriptor: Ljdk/vm/ci/meta/ConstantReflectionProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider;
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.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.meta.ConstantReflectionProvider);
descriptor: (Ljdk/vm/ci/meta/ConstantReflectionProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.constantReflection:Ljdk/vm/ci/meta/ConstantReflectionProvider;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider;
0 3 1 constantReflection Ljdk/vm/ci/meta/ConstantReflectionProvider;
MethodParameters:
Name Flags
constantReflection
public jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod lookupMethodHandleIntrinsic(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl
invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl.intrinsicId:()I
istore 2
start local 2 1: iload 2
ifeq 3
2: iload 2
invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.getMethodHandleIntrinsic:(I)Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
areturn
3: StackMap locals: int
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider;
0 4 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 4 2 intrinsicId I
MethodParameters:
Name Flags
method
public static jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod getMethodHandleIntrinsic(int);
descriptor: (I)Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
astore 1
start local 1 1: iload 0
aload 1
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.vmIntrinsicInvokeBasic:I
if_icmpne 3
2: getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.INVOKE_BASIC:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
areturn
3: StackMap locals: jdk.vm.ci.hotspot.HotSpotVMConfig
StackMap stack:
iload 0
aload 1
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.vmIntrinsicLinkToInterface:I
if_icmpne 5
4: getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_INTERFACE:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
areturn
5: StackMap locals:
StackMap stack:
iload 0
aload 1
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.vmIntrinsicLinkToSpecial:I
if_icmpne 7
6: getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_SPECIAL:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
areturn
7: StackMap locals:
StackMap stack:
iload 0
aload 1
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.vmIntrinsicLinkToStatic:I
if_icmpne 9
8: getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_STATIC:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
areturn
9: StackMap locals:
StackMap stack:
iload 0
aload 1
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.vmIntrinsicLinkToVirtual:I
if_icmpne 11
10: getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_VIRTUAL:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
areturn
11: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 intrinsicId I
1 12 1 config Ljdk/vm/ci/hotspot/HotSpotVMConfig;
MethodParameters:
Name Flags
intrinsicId
public jdk.vm.ci.meta.ResolvedJavaMethod resolveInvokeBasicTarget(jdk.vm.ci.meta.JavaConstant, boolean);
descriptor: (Ljdk/vm/ci/meta/JavaConstant;Z)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.constantReflection:Ljdk/vm/ci/meta/ConstantReflectionProvider;
getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization.methodHandleFormField:Ljdk/vm/ci/meta/ResolvedJavaField;
aload 1
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readFieldValue:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
astore 3
start local 3 3: aload 3
ifnull 4
aload 3
invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
ifeq 5
4: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.constantReflection:Ljdk/vm/ci/meta/ConstantReflectionProvider;
getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization.lambdaFormVmentryField:Ljdk/vm/ci/meta/ResolvedJavaField;
aload 3
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readFieldValue:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
astore 4
start local 4 6: aload 4
invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
ifeq 11
iload 2
ifeq 11
7: aload 3
checkcast jdk.vm.ci.hotspot.HotSpotObjectConstant
getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization.lambdaFormType:Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.hotspot.HotSpotObjectConstant.asObject:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Object;
astore 5
start local 5 8: invokestatic jdk.vm.ci.hotspot.CompilerToVM.compilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
aload 5
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual jdk.vm.ci.hotspot.CompilerToVM.compileToBytecode:(Ljava/lang/Object;)V
9: aload 0
getfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.constantReflection:Ljdk/vm/ci/meta/ConstantReflectionProvider;
getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization.lambdaFormVmentryField:Ljdk/vm/ci/meta/ResolvedJavaField;
aload 3
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readFieldValue:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
astore 4
10: getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.$assertionsDisabled:Z
ifne 11
aload 4
invokeinterface jdk.vm.ci.meta.JavaConstant.isNonNull:()Z
ifne 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 5 11: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.constantReflection:Ljdk/vm/ci/meta/ConstantReflectionProvider;
getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization.methodField:Ljdk/vm/ci/meta/ResolvedJavaField;
aload 4
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readFieldValue:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
astore 5
start local 5 12: aload 5
invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.getTargetMethod:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider;
0 13 1 methodHandle Ljdk/vm/ci/meta/JavaConstant;
0 13 2 forceBytecodeGeneration Z
3 13 3 lambdaForm Ljdk/vm/ci/meta/JavaConstant;
6 13 4 memberName Ljdk/vm/ci/meta/JavaConstant;
8 11 5 lf Ljava/lang/Object;
12 13 5 method Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
methodHandle
forceBytecodeGeneration
public jdk.vm.ci.meta.ResolvedJavaMethod resolveLinkToTarget(jdk.vm.ci.meta.JavaConstant);
descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.constantReflection:Ljdk/vm/ci/meta/ConstantReflectionProvider;
getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization.methodField:Ljdk/vm/ci/meta/ResolvedJavaField;
aload 1
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readFieldValue:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
astore 2
start local 2 3: aload 2
invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.getTargetMethod:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider;
0 4 1 memberName Ljdk/vm/ci/meta/JavaConstant;
3 4 2 method Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
memberName
private static jdk.vm.ci.meta.ResolvedJavaMethod getTargetMethod(jdk.vm.ci.meta.JavaConstant);
descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "unexpected type for memberName"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
astore 1
start local 1 3: invokestatic jdk.vm.ci.hotspot.CompilerToVM.compilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
aload 1
getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization.vmtargetField:Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getOffset:()I
i2l
invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaMethod:(Ljava/lang/Object;J)Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 method Ljdk/vm/ci/meta/JavaConstant;
3 4 1 object Ljava/lang/Object;
MethodParameters:
Name Flags
method
}
SourceFile: "HotSpotMethodHandleAccessProvider.java"
NestMembers:
jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization
InnerClasses:
LazyInitialization = jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$LazyInitialization of jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider
public final IntrinsicMethod = jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod of jdk.vm.ci.meta.MethodHandleAccessProvider