class org.graalvm.compiler.replacements.SnippetTemplate$CacheKey
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.graalvm.compiler.replacements.SnippetTemplate$CacheKey
  super_class: java.lang.Object
{
  private final jdk.vm.ci.meta.ResolvedJavaMethod method;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object[] values;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage;
    descriptor: Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage loweringStage;
    descriptor: Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int hash;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  protected void <init>(org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo, org.graalvm.compiler.nodes.StructuredGraph$GuardsStage, org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage);
    descriptor: (Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey this
        start local 1 // org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo info
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage loweringStage
         0: .line 510
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 511
            aload 0 /* this */
            aload 1 /* info */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            putfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         2: .line 512
            aload 0 /* this */
            aload 2 /* guardsStage */
            putfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.guardsStage:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
         3: .line 513
            aload 0 /* this */
            aload 3 /* loweringStage */
            putfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.loweringStage:Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
         4: .line 514
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getParameterCount:()I
            anewarray java.lang.Object
            putfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.values:[Ljava/lang/Object;
         5: .line 515
            aload 0 /* this */
            aload 1 /* info */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.lang.Object.hashCode:()I
            bipush 31
            aload 2 /* guardsStage */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.ordinal:()I
            imul
            iadd
            putfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.hash:I
         6: .line 516
            return
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage loweringStage
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph$GuardsStage guardsStage
        end local 1 // org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo info
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
            0    7     1           info  Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            0    7     2    guardsStage  Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            0    7     3  loweringStage  Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
    MethodParameters:
               Name  Flags
      info           
      guardsStage    
      loweringStage  

  protected void setParam(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey this
        start local 1 // int paramIdx
        start local 2 // java.lang.Object value
         0: .line 519
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.values:[Ljava/lang/Object;
            iload 1 /* paramIdx */
            aload 2 /* value */
            aastore
         1: .line 520
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.hash:I
            bipush 31
            imul
            aload 2 /* value */
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$CacheKey int java.lang.Object
      StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$CacheKey int
         2: aload 2 /* value */
            invokevirtual java.lang.Object.hashCode:()I
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$CacheKey int java.lang.Object
      StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$CacheKey int int
         3: ixor
            putfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.hash:I
         4: .line 521
            return
        end local 2 // java.lang.Object value
        end local 1 // int paramIdx
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
            0    5     1  paramIdx  I
            0    5     2     value  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      paramIdx  
      value     

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey this
        start local 1 // java.lang.Object obj
         0: .line 525
            aload 1 /* obj */
            instanceof org.graalvm.compiler.replacements.SnippetTemplate$CacheKey
            ifne 2
         1: .line 526
            iconst_0
            ireturn
         2: .line 528
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.graalvm.compiler.replacements.SnippetTemplate$CacheKey
            astore 2 /* other */
        start local 2 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey other
         3: .line 529
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 2 /* other */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.method:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 530
            iconst_0
            ireturn
         5: .line 532
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$CacheKey
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.guardsStage:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 2 /* other */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.guardsStage:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            if_acmpne 6
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.loweringStage:Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            aload 2 /* other */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.loweringStage:Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            if_acmpeq 7
         6: .line 533
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         7: .line 535
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 12
         9: .line 536
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.values:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            ifnull 11
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.values:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            aload 2 /* other */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.values:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 537
            iconst_0
            ireturn
        11: .line 535
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.values:[Ljava/lang/Object;
            arraylength
            if_icmplt 9
        end local 3 // int i
        13: .line 540
            iconst_1
            ireturn
        end local 2 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey other
        end local 1 // java.lang.Object obj
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
            0   14     1    obj  Ljava/lang/Object;
            3   14     2  other  Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
            8   13     3      i  I
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey this
         0: .line 545
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.SnippetTemplate$CacheKey.hash:I
            ireturn
        end local 0 // org.graalvm.compiler.replacements.SnippetTemplate$CacheKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/SnippetTemplate$CacheKey;
}
SourceFile: "SnippetTemplate.java"
NestHost: org.graalvm.compiler.replacements.SnippetTemplate
InnerClasses:
  public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
  public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
  CacheKey = org.graalvm.compiler.replacements.SnippetTemplate$CacheKey of org.graalvm.compiler.replacements.SnippetTemplate
  public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate