public abstract class org.graalvm.compiler.hotspot.HotSpotCounterOp extends org.graalvm.compiler.lir.LIRInstruction
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.hotspot.HotSpotCounterOp
  super_class: org.graalvm.compiler.lir.LIRInstruction
{
  public static final org.graalvm.compiler.lir.LIRInstructionClass<org.graalvm.compiler.hotspot.HotSpotCounterOp> TYPE;
    descriptor: Lorg/graalvm/compiler/lir/LIRInstructionClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/compiler/lir/LIRInstructionClass<Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;>;

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

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

  protected final jdk.vm.ci.code.Register thread;
    descriptor: Ljdk/vm/ci/code/Register;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config;
    descriptor: Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected jdk.vm.ci.meta.Value[] increments;
    descriptor: [Ljdk/vm/ci/meta/Value;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$Alive(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.CONST:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 46
            ldc Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;
            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 org.graalvm.compiler.hotspot.HotSpotCounterOp.$assertionsDisabled:Z
         3: .line 47
            ldc Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;
            invokestatic org.graalvm.compiler.lir.LIRInstructionClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/lir/LIRInstructionClass;
            putstatic org.graalvm.compiler.hotspot.HotSpotCounterOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.lir.LIRInstructionClass<? extends org.graalvm.compiler.hotspot.HotSpotCounterOp>, java.lang.String, java.lang.String, jdk.vm.ci.meta.Value, org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstructionClass;Ljava/lang/String;Ljava/lang/String;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
        start local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        start local 2 // java.lang.String name
        start local 3 // java.lang.String group
        start local 4 // jdk.vm.ci.meta.Value increment
        start local 5 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 6 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         0: .line 56
            aload 0 /* this */
            aload 1 /* c */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* name */
            aastore
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 3 /* group */
            aastore
            iconst_1
            anewarray jdk.vm.ci.meta.Value
            dup
            iconst_0
            aload 4 /* increment */
            aastore
            aload 5 /* registers */
            aload 6 /* config */
            invokespecial org.graalvm.compiler.hotspot.HotSpotCounterOp.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;[Ljava/lang/String;[Ljava/lang/String;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)V
         1: .line 57
            return
        end local 6 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 5 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        end local 4 // jdk.vm.ci.meta.Value increment
        end local 3 // java.lang.String group
        end local 2 // java.lang.String name
        end local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        end local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;
            0    2     1          c  Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;>;
            0    2     2       name  Ljava/lang/String;
            0    2     3      group  Ljava/lang/String;
            0    2     4  increment  Ljdk/vm/ci/meta/Value;
            0    2     5  registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0    2     6     config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    Signature: (Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;>;Ljava/lang/String;Ljava/lang/String;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)V
    MethodParameters:
           Name  Flags
      c          
      name       
      group      
      increment  
      registers  
      config     

  public void <init>(org.graalvm.compiler.lir.LIRInstructionClass<? extends org.graalvm.compiler.hotspot.HotSpotCounterOp>, java.lang.String[], java.lang.String[], jdk.vm.ci.meta.Value[], org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstructionClass;[Ljava/lang/String;[Ljava/lang/String;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
        start local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        start local 2 // java.lang.String[] names
        start local 3 // java.lang.String[] groups
        start local 4 // jdk.vm.ci.meta.Value[] increments
        start local 5 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 6 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         0: .line 60
            aload 0 /* this */
            aload 1 /* c */
            invokespecial org.graalvm.compiler.lir.LIRInstruction.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;)V
         1: .line 62
            getstatic org.graalvm.compiler.hotspot.HotSpotCounterOp.$assertionsDisabled:Z
            ifne 2
            aload 2 /* names */
            arraylength
            aload 3 /* groups */
            arraylength
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 63
      StackMap locals: org.graalvm.compiler.hotspot.HotSpotCounterOp org.graalvm.compiler.lir.LIRInstructionClass java.lang.String[] java.lang.String[] jdk.vm.ci.meta.Value[] org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider org.graalvm.compiler.hotspot.GraalHotSpotVMConfig
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.HotSpotCounterOp.$assertionsDisabled:Z
            ifne 3
            aload 3 /* groups */
            arraylength
            aload 4 /* increments */
            arraylength
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* names */
            putfield org.graalvm.compiler.hotspot.HotSpotCounterOp.names:[Ljava/lang/String;
         4: .line 66
            aload 0 /* this */
            aload 3 /* groups */
            putfield org.graalvm.compiler.hotspot.HotSpotCounterOp.groups:[Ljava/lang/String;
         5: .line 67
            aload 0 /* this */
            aload 4 /* increments */
            putfield org.graalvm.compiler.hotspot.HotSpotCounterOp.increments:[Ljdk/vm/ci/meta/Value;
         6: .line 68
            aload 0 /* this */
            aload 5 /* registers */
            invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
            putfield org.graalvm.compiler.hotspot.HotSpotCounterOp.thread:Ljdk/vm/ci/code/Register;
         7: .line 69
            aload 0 /* this */
            aload 6 /* config */
            putfield org.graalvm.compiler.hotspot.HotSpotCounterOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
         8: .line 70
            return
        end local 6 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 5 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        end local 4 // jdk.vm.ci.meta.Value[] increments
        end local 3 // java.lang.String[] groups
        end local 2 // java.lang.String[] names
        end local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        end local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;
            0    9     1           c  Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;>;
            0    9     2       names  [Ljava/lang/String;
            0    9     3      groups  [Ljava/lang/String;
            0    9     4  increments  [Ljdk/vm/ci/meta/Value;
            0    9     5   registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0    9     6      config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    Signature: (Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;>;[Ljava/lang/String;[Ljava/lang/String;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)V
    MethodParameters:
            Name  Flags
      c           
      names       
      groups      
      increments  
      registers   
      config      

  protected static int getDisplacementForLongIndex(jdk.vm.ci.code.TargetDescription, long);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;J)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // jdk.vm.ci.code.TargetDescription target
        start local 1 // long index
         0: .line 73
            lload 1 /* index */
            aload 0 /* target */
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.code.Architecture.getPlatformKind:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/PlatformKind;
            invokeinterface jdk.vm.ci.meta.PlatformKind.getSizeInBytes:()I
            i2l
            lmul
            lstore 3 /* finalDisp */
        start local 3 // long finalDisp
         1: .line 74
            lload 3 /* finalDisp */
            invokestatic org.graalvm.compiler.asm.NumUtil.isInt:(J)Z
            ifne 3
         2: .line 75
            new java.lang.StringBuilder
            dup
            ldc "cannot deal with indices that big: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.unimplemented:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 77
      StackMap locals: long
      StackMap stack:
            lload 3 /* finalDisp */
            l2i
            ireturn
        end local 3 // long finalDisp
        end local 1 // long index
        end local 0 // jdk.vm.ci.code.TargetDescription target
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0     target  Ljdk/vm/ci/code/TargetDescription;
            0    4     1      index  J
            1    4     3  finalDisp  J
    MethodParameters:
        Name  Flags
      target  
      index   

  protected void forEachCounter(org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure, jdk.vm.ci.code.TargetDescription);
    descriptor: (Lorg/graalvm/compiler/hotspot/HotSpotCounterOp$CounterProcedure;Ljdk/vm/ci/code/TargetDescription;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
        start local 1 // org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure proc
        start local 2 // jdk.vm.ci.code.TargetDescription target
         0: .line 99
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.names:[Ljava/lang/String;
            arraylength
            iconst_1
            if_icmpne 5
         1: .line 100
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.names:[Ljava/lang/String;
            iconst_0
            aaload
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.groups:[Ljava/lang/String;
            iconst_0
            aaload
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.increments:[Ljdk/vm/ci/meta/Value;
            iconst_0
            aaload
            invokevirtual org.graalvm.compiler.hotspot.HotSpotCounterOp.getIndex:(Ljava/lang/String;Ljava/lang/String;Ljdk/vm/ci/meta/Value;)I
            istore 3 /* arrayIndex */
        start local 3 // int arrayIndex
         2: .line 101
            aload 2 /* target */
            iload 3 /* arrayIndex */
            i2l
            invokestatic org.graalvm.compiler.hotspot.HotSpotCounterOp.getDisplacementForLongIndex:(Ljdk/vm/ci/code/TargetDescription;J)I
            istore 4 /* displacement */
        start local 4 // int displacement
         3: .line 102
            aload 1 /* proc */
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.increments:[Ljdk/vm/ci/meta/Value;
            iconst_0
            aaload
            iload 4 /* displacement */
            invokeinterface org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure.apply:(ILjdk/vm/ci/meta/Value;I)V
        end local 4 // int displacement
        end local 3 // int arrayIndex
         4: .line 103
            goto 21
         5: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.names:[Ljava/lang/String;
            arraylength
            newarray 10
            astore 3 /* displacements */
        start local 3 // int[] displacements
         6: .line 105
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.names:[Ljava/lang/String;
            arraylength
            invokespecial java.util.HashMap.<init>:(I)V
            astore 4 /* offsetMap */
        start local 4 // java.util.HashMap offsetMap
         7: .line 106
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 13
         9: .line 107
      StackMap locals: int[] java.util.HashMap int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.names:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.groups:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.increments:[Ljdk/vm/ci/meta/Value;
            iload 5 /* i */
            aaload
            invokevirtual org.graalvm.compiler.hotspot.HotSpotCounterOp.getIndex:(Ljava/lang/String;Ljava/lang/String;Ljdk/vm/ci/meta/Value;)I
            istore 6 /* arrayIndex */
        start local 6 // int arrayIndex
        10: .line 108
            aload 3 /* displacements */
            iload 5 /* i */
            aload 2 /* target */
            iload 6 /* arrayIndex */
            i2l
            invokestatic org.graalvm.compiler.hotspot.HotSpotCounterOp.getDisplacementForLongIndex:(Ljdk/vm/ci/code/TargetDescription;J)I
            iastore
        11: .line 109
            aload 4 /* offsetMap */
            aload 3 /* displacements */
            iload 5 /* i */
            iaload
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 5 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // int arrayIndex
        12: .line 106
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.names:[Ljava/lang/String;
            arraylength
            if_icmplt 9
        end local 5 // int i
        14: .line 111
            aload 3 /* displacements */
            invokestatic java.util.Arrays.sort:([I)V
        15: .line 113
            aload 3 /* displacements */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 20
      StackMap locals: org.graalvm.compiler.hotspot.HotSpotCounterOp org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure jdk.vm.ci.code.TargetDescription int[] java.util.HashMap top int int int[]
      StackMap stack:
        16: aload 8
            iload 6
            iaload
            istore 5 /* offset */
        start local 5 // int offset
        17: .line 114
            aload 4 /* offsetMap */
            iload 5 /* offset */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 9 /* idx */
        start local 9 // int idx
        18: .line 115
            aload 1 /* proc */
            iload 9 /* idx */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.increments:[Ljdk/vm/ci/meta/Value;
            iload 9 /* idx */
            aaload
            aload 3 /* displacements */
            iload 9 /* idx */
            iaload
            invokeinterface org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure.apply:(ILjdk/vm/ci/meta/Value;I)V
        end local 9 // int idx
        end local 5 // int offset
        19: .line 113
            iinc 6 1
      StackMap locals:
      StackMap stack:
        20: iload 6
            iload 7
            if_icmplt 16
        end local 4 // java.util.HashMap offsetMap
        end local 3 // int[] displacements
        21: .line 118
      StackMap locals: org.graalvm.compiler.hotspot.HotSpotCounterOp org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure jdk.vm.ci.code.TargetDescription
      StackMap stack:
            return
        end local 2 // jdk.vm.ci.code.TargetDescription target
        end local 1 // org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure proc
        end local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0           this  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;
            0   22     1           proc  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp$CounterProcedure;
            0   22     2         target  Ljdk/vm/ci/code/TargetDescription;
            2    4     3     arrayIndex  I
            3    4     4   displacement  I
            6   21     3  displacements  [I
            7   21     4      offsetMap  Ljava/util/HashMap<Ljava/lang/Integer;Ljava/lang/Integer;>;
            8   14     5              i  I
           10   12     6     arrayIndex  I
           17   19     5         offset  I
           18   19     9            idx  I
    MethodParameters:
        Name  Flags
      proc    
      target  

  protected int getIndex(java.lang.String, java.lang.String, jdk.vm.ci.meta.Value);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljdk/vm/ci/meta/Value;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String group
        start local 3 // jdk.vm.ci.meta.Value increment
         0: .line 121
            aload 3 /* increment */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isJavaConstant:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 2
         1: .line 123
            aload 1 /* name */
            aload 2 /* group */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            aload 3 /* increment */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asJavaConstant:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/JavaConstant;
            invokestatic org.graalvm.compiler.hotspot.HotSpotCounterOp.asLong:(Ljdk/vm/ci/meta/JavaConstant;)J
            invokestatic org.graalvm.compiler.hotspot.debug.BenchmarkCounters.getIndexConstantIncrement:(Ljava/lang/String;Ljava/lang/String;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;J)I
            ireturn
         2: .line 125
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.HotSpotCounterOp.$assertionsDisabled:Z
            ifne 3
            aload 3 /* increment */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifne 3
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected Value: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* increment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 127
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            aload 2 /* group */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.debug.BenchmarkCounters.getIndex:(Ljava/lang/String;Ljava/lang/String;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            ireturn
        end local 3 // jdk.vm.ci.meta.Value increment
        end local 2 // java.lang.String group
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;
            0    4     1       name  Ljava/lang/String;
            0    4     2      group  Ljava/lang/String;
            0    4     3  increment  Ljdk/vm/ci/meta/Value;
    MethodParameters:
           Name  Flags
      name       
      group      
      increment  

  public void patchCounterIncrement(org.graalvm.compiler.asm.Assembler, int[]);
    descriptor: (Lorg/graalvm/compiler/asm/Assembler;[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
        start local 1 // org.graalvm.compiler.asm.Assembler asm
        start local 2 // int[] increment
         0: .line 138
            invokestatic org.graalvm.compiler.debug.GraalError.unimplemented:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // int[] increment
        end local 1 // org.graalvm.compiler.asm.Assembler asm
        end local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;
            0    1     1        asm  Lorg/graalvm/compiler/asm/Assembler;
            0    1     2  increment  [I
    MethodParameters:
           Name  Flags
      asm        
      increment  

  private static long asLong(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaConstant value
         0: .line 142
            aload 0 /* value */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 1 /* kind */
        start local 1 // jdk.vm.ci.meta.JavaKind kind
         1: .line 143
            invokestatic org.graalvm.compiler.hotspot.HotSpotCounterOp.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 2 - 7
                    2: 2
                    3: 2
                    4: 2
                    5: 2
                    6: 4
                    7: 3
              default: 4
          }
         2: .line 148
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 0 /* value */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            i2l
            lreturn
         3: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lreturn
         4: .line 152
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "not an integer kind: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // jdk.vm.ci.meta.JavaConstant value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  value  Ljdk/vm/ci/meta/JavaConstant;
            1    5     1   kind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
       Name  Flags
      value  

  protected static int asInt(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaConstant value
         0: .line 157
            aload 0 /* value */
            invokestatic org.graalvm.compiler.hotspot.HotSpotCounterOp.asLong:(Ljdk/vm/ci/meta/JavaConstant;)J
            lstore 1 /* l */
        start local 1 // long l
         1: .line 158
            lload 1 /* l */
            invokestatic org.graalvm.compiler.asm.NumUtil.isInt:(J)Z
            ifne 3
         2: .line 159
            new java.lang.StringBuilder
            dup
            ldc "value does not fit into int: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* l */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 161
      StackMap locals: long
      StackMap stack:
            lload 1 /* l */
            l2i
            ireturn
        end local 1 // long l
        end local 0 // jdk.vm.ci.meta.JavaConstant value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  value  Ljdk/vm/ci/meta/JavaConstant;
            1    4     1      l  J
    MethodParameters:
       Name  Flags
      value  

  public java.lang.String[] getNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
         0: .line 165
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.names:[Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;

  public java.lang.String[] getGroups();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
         0: .line 169
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotCounterOp.groups:[Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp;

  static int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 46
            getstatic org.graalvm.compiler.hotspot.HotSpotCounterOp.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jdk.vm.ci.meta.JavaKind.values:()[Ljdk/vm/ci/meta/JavaKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 8
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 6
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 11
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_5
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 7
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 9
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_3
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 10
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            dup
            putstatic org.graalvm.compiler.hotspot.HotSpotCounterOp.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
}
SourceFile: "HotSpotCounterOp.java"
NestMembers:
  org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure
InnerClasses:
  protected abstract CounterProcedure = org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure of org.graalvm.compiler.hotspot.HotSpotCounterOp
  public abstract Alive = org.graalvm.compiler.lir.LIRInstruction$Alive of org.graalvm.compiler.lir.LIRInstruction
  public final OperandFlag = org.graalvm.compiler.lir.LIRInstruction$OperandFlag of org.graalvm.compiler.lir.LIRInstruction