class org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$36 implements org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$36
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$36 this
0: .line 795
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$36 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/StandardGraphBuilderPlugins$36;
public boolean apply(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=5
start local 0 // org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$36 this
start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
start local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
start local 4 // org.graalvm.compiler.nodes.ValueNode value
0: .line 798
aload 4 /* value */
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.ObjectStamp
astore 5 /* objectStamp */
start local 5 // org.graalvm.compiler.core.common.type.ObjectStamp objectStamp
1: .line 799
aload 5 /* objectStamp */
invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.nonNull:()Z
ifeq 4
2: .line 800
aload 1 /* b */
aload 4 /* value */
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
aload 4 /* value */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.addPush:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
3: .line 801
iconst_1
ireturn
4: .line 802
StackMap locals: org.graalvm.compiler.core.common.type.ObjectStamp
StackMap stack:
aload 5 /* objectStamp */
invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
ifeq 7
5: .line 803
aload 1 /* b */
new org.graalvm.compiler.nodes.DeoptimizeNode
dup
getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.NullCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
invokespecial org.graalvm.compiler.nodes.DeoptimizeNode.<init>:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
6: .line 804
iconst_1
ireturn
7: .line 806
StackMap locals:
StackMap stack:
aload 1 /* b */
aload 4 /* value */
invokestatic org.graalvm.compiler.nodes.calc.IsNullNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 6 /* isNull */
start local 6 // org.graalvm.compiler.nodes.LogicNode isNull
8: .line 807
aload 1 /* b */
new org.graalvm.compiler.nodes.FixedGuardNode
dup
aload 6 /* isNull */
getstatic jdk.vm.ci.meta.DeoptimizationReason.NullCheckException:Ljdk/vm/ci/meta/DeoptimizationReason;
getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
iconst_1
invokespecial org.graalvm.compiler.nodes.FixedGuardNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;Z)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.FixedGuardNode
astore 7 /* fixedGuard */
start local 7 // org.graalvm.compiler.nodes.FixedGuardNode fixedGuard
9: .line 808
aload 5 /* objectStamp */
invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.improveWith:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 8 /* newStamp */
start local 8 // org.graalvm.compiler.core.common.type.Stamp newStamp
10: .line 809
aload 1 /* b */
aload 4 /* value */
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
new org.graalvm.compiler.nodes.PiNode
dup
aload 4 /* value */
aload 8 /* newStamp */
aload 7 /* fixedGuard */
invokespecial org.graalvm.compiler.nodes.PiNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.addPush:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
11: .line 810
iconst_1
ireturn
end local 8 // org.graalvm.compiler.core.common.type.Stamp newStamp
end local 7 // org.graalvm.compiler.nodes.FixedGuardNode fixedGuard
end local 6 // org.graalvm.compiler.nodes.LogicNode isNull
end local 5 // org.graalvm.compiler.core.common.type.ObjectStamp objectStamp
end local 4 // org.graalvm.compiler.nodes.ValueNode value
end local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
end local 0 // org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$36 this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/graalvm/compiler/replacements/StandardGraphBuilderPlugins$36;
0 12 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 12 2 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 12 3 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
0 12 4 value Lorg/graalvm/compiler/nodes/ValueNode;
1 12 5 objectStamp Lorg/graalvm/compiler/core/common/type/ObjectStamp;
8 12 6 isNull Lorg/graalvm/compiler/nodes/LogicNode;
9 12 7 fixedGuard Lorg/graalvm/compiler/nodes/FixedGuardNode;
10 12 8 newStamp Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
b
targetMethod
receiver
value
}
SourceFile: "StandardGraphBuilderPlugins.java"
EnclosingMethod: org.graalvm.compiler.replacements.StandardGraphBuilderPlugins.registerGraalDirectivesPlugins:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;)V
NestHost: org.graalvm.compiler.replacements.StandardGraphBuilderPlugins
InnerClasses:
public abstract Receiver = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$36