public class org.graalvm.compiler.replacements.ConstantBindingParameterPlugin implements org.graalvm.compiler.nodes.graphbuilderconf.ParameterPlugin
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.replacements.ConstantBindingParameterPlugin
  super_class: java.lang.Object
{
  private final java.lang.Object[] constantArgs;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.MetaAccessProvider metaAccess;
    descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection;
    descriptor: Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.Object[], jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.api.replacements.SnippetReflectionProvider);
    descriptor: ([Ljava/lang/Object;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.ConstantBindingParameterPlugin this
        start local 1 // java.lang.Object[] constantArgs
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 3 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            aload 1 /* constantArgs */
            putfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.constantArgs:[Ljava/lang/Object;
         2: .line 52
            aload 0 /* this */
            aload 2 /* metaAccess */
            putfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
         3: .line 53
            aload 0 /* this */
            aload 3 /* snippetReflection */
            putfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
         4: .line 54
            return
        end local 3 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // java.lang.Object[] constantArgs
        end local 0 // org.graalvm.compiler.replacements.ConstantBindingParameterPlugin this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lorg/graalvm/compiler/replacements/ConstantBindingParameterPlugin;
            0    5     1       constantArgs  [Ljava/lang/Object;
            0    5     2         metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    5     3  snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
    MethodParameters:
                   Name  Flags
      constantArgs       
      metaAccess         
      snippetReflection  

  public org.graalvm.compiler.nodes.calc.FloatingNode interceptParameter(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderTool, int, org.graalvm.compiler.core.common.type.StampPair);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderTool;ILorg/graalvm/compiler/core/common/type/StampPair;)Lorg/graalvm/compiler/nodes/calc/FloatingNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.replacements.ConstantBindingParameterPlugin this
        start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderTool b
        start local 2 // int index
        start local 3 // org.graalvm.compiler.core.common.type.StampPair stamp
         0: .line 58
            iload 2 /* index */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.constantArgs:[Ljava/lang/Object;
            arraylength
            if_icmpge 15
         1: .line 59
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.constantArgs:[Ljava/lang/Object;
            iload 2 /* index */
            aaload
            astore 4 /* arg */
        start local 4 // java.lang.Object arg
         2: .line 60
            aload 4 /* arg */
            ifnull 15
         3: .line 62
            aload 4 /* arg */
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifeq 10
         4: .line 63
            aload 4 /* arg */
            checkcast org.graalvm.compiler.nodes.ConstantNode
            astore 6 /* otherCon */
        start local 6 // org.graalvm.compiler.nodes.ConstantNode otherCon
         5: .line 64
            aload 6 /* otherCon */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 1 /* b */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderTool.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            if_acmpeq 8
         6: .line 69
            aload 3 /* stamp */
            invokevirtual org.graalvm.compiler.core.common.type.StampPair.getTrustedStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 6 /* otherCon */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.getValue:()Ljdk/vm/ci/meta/Constant;
            aload 6 /* otherCon */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.getStableDimension:()I
            aload 6 /* otherCon */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.isDefaultStable:()Z
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;IZLjdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 5 /* constantNode */
        start local 5 // org.graalvm.compiler.nodes.ConstantNode constantNode
         7: .line 70
            goto 14
        end local 5 // org.graalvm.compiler.nodes.ConstantNode constantNode
         8: .line 71
      StackMap locals: org.graalvm.compiler.replacements.ConstantBindingParameterPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderTool int org.graalvm.compiler.core.common.type.StampPair java.lang.Object top org.graalvm.compiler.nodes.ConstantNode
      StackMap stack:
            aload 6 /* otherCon */
            astore 5 /* constantNode */
        end local 6 // org.graalvm.compiler.nodes.ConstantNode otherCon
        start local 5 // org.graalvm.compiler.nodes.ConstantNode constantNode
         9: .line 73
            goto 14
        end local 5 // org.graalvm.compiler.nodes.ConstantNode constantNode
      StackMap locals: org.graalvm.compiler.replacements.ConstantBindingParameterPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderTool int org.graalvm.compiler.core.common.type.StampPair java.lang.Object
      StackMap stack:
        10: aload 4 /* arg */
            instanceof jdk.vm.ci.meta.Constant
            ifeq 13
        11: .line 74
            aload 3 /* stamp */
            invokevirtual org.graalvm.compiler.core.common.type.StampPair.getTrustedStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* arg */
            checkcast jdk.vm.ci.meta.Constant
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 5 /* constantNode */
        start local 5 // org.graalvm.compiler.nodes.ConstantNode constantNode
        12: .line 75
            goto 14
        end local 5 // org.graalvm.compiler.nodes.ConstantNode constantNode
        13: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            aload 3 /* stamp */
            invokevirtual org.graalvm.compiler.core.common.type.StampPair.getTrustedStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 4 /* arg */
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.forBoxed:(Ljdk/vm/ci/meta/JavaKind;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.ConstantBindingParameterPlugin.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 5 /* constantNode */
        start local 5 // org.graalvm.compiler.nodes.ConstantNode constantNode
        14: .line 78
      StackMap locals: org.graalvm.compiler.nodes.ConstantNode
      StackMap stack:
            aload 5 /* constantNode */
            areturn
        end local 5 // org.graalvm.compiler.nodes.ConstantNode constantNode
        end local 4 // java.lang.Object arg
        15: .line 81
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.graalvm.compiler.core.common.type.StampPair stamp
        end local 2 // int index
        end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderTool b
        end local 0 // org.graalvm.compiler.replacements.ConstantBindingParameterPlugin this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/graalvm/compiler/replacements/ConstantBindingParameterPlugin;
            0   16     1             b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderTool;
            0   16     2         index  I
            0   16     3         stamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            2   15     4           arg  Ljava/lang/Object;
            7    8     5  constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
            9   10     5  constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           12   13     5  constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
           14   15     5  constantNode  Lorg/graalvm/compiler/nodes/ConstantNode;
            5    9     6      otherCon  Lorg/graalvm/compiler/nodes/ConstantNode;
    MethodParameters:
       Name  Flags
      b      
      index  
      stamp  
}
SourceFile: "ConstantBindingParameterPlugin.java"