public class org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp extends org.graalvm.compiler.hotspot.HotSpotCounterOp
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp
  super_class: org.graalvm.compiler.hotspot.HotSpotCounterOp
{
  public static final org.graalvm.compiler.lir.LIRInstructionClass<org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp> 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/amd64/AMD64HotSpotCounterOp;>;

  private jdk.vm.ci.meta.AllocatableValue backupSlot;
    descriptor: Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$Alive(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.STACK:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.UNINITIALIZED:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 54
            ldc Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotCounterOp;
            invokestatic org.graalvm.compiler.lir.LIRInstructionClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/lir/LIRInstructionClass;
            putstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String, jdk.vm.ci.meta.Value, org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/meta/AllocatableValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String group
        start local 3 // jdk.vm.ci.meta.Value increment
        start local 4 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 5 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 6 // jdk.vm.ci.meta.AllocatableValue backupSlot
         0: .line 59
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
            aload 1 /* name */
            aload 2 /* group */
            aload 3 /* increment */
            aload 4 /* registers */
            aload 5 /* 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 60
            aload 0 /* this */
            aload 6 /* backupSlot */
            putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.backupSlot:Ljdk/vm/ci/meta/AllocatableValue;
         2: .line 61
            return
        end local 6 // jdk.vm.ci.meta.AllocatableValue backupSlot
        end local 5 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 4 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        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.amd64.AMD64HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotCounterOp;
            0    3     1        name  Ljava/lang/String;
            0    3     2       group  Ljava/lang/String;
            0    3     3   increment  Ljdk/vm/ci/meta/Value;
            0    3     4   registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0    3     5      config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    3     6  backupSlot  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
            Name  Flags
      name        
      group       
      increment   
      registers   
      config      
      backupSlot  

  public void <init>(java.lang.String[], java.lang.String[], jdk.vm.ci.meta.Value[], org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, jdk.vm.ci.meta.AllocatableValue);
    descriptor: ([Ljava/lang/String;[Ljava/lang/String;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/meta/AllocatableValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp this
        start local 1 // java.lang.String[] names
        start local 2 // java.lang.String[] groups
        start local 3 // jdk.vm.ci.meta.Value[] increments
        start local 4 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 5 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 6 // jdk.vm.ci.meta.AllocatableValue backupSlot
         0: .line 64
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
            aload 1 /* names */
            aload 2 /* groups */
            aload 3 /* increments */
            aload 4 /* registers */
            aload 5 /* 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 65
            aload 0 /* this */
            aload 6 /* backupSlot */
            putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.backupSlot:Ljdk/vm/ci/meta/AllocatableValue;
         2: .line 66
            return
        end local 6 // jdk.vm.ci.meta.AllocatableValue backupSlot
        end local 5 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 4 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        end local 3 // jdk.vm.ci.meta.Value[] increments
        end local 2 // java.lang.String[] groups
        end local 1 // java.lang.String[] names
        end local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotCounterOp;
            0    3     1       names  [Ljava/lang/String;
            0    3     2      groups  [Ljava/lang/String;
            0    3     3  increments  [Ljdk/vm/ci/meta/Value;
            0    3     4   registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0    3     5      config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    3     6  backupSlot  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
            Name  Flags
      names       
      groups      
      increments  
      registers   
      config      
      backupSlot  

  public void emitCode(org.graalvm.compiler.lir.asm.CompilationResultBuilder);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp this
        start local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
         0: .line 70
            aload 1 /* crb */
            getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.asm:Lorg/graalvm/compiler/asm/Assembler;
            checkcast org.graalvm.compiler.asm.amd64.AMD64MacroAssembler
            astore 2 /* masm */
        start local 2 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler masm
         1: .line 71
            aload 1 /* crb */
            getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
            astore 3 /* target */
        start local 3 // jdk.vm.ci.code.TargetDescription target
         2: .line 76
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.increments:[Ljdk/vm/ci/meta/Value;
            getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
            invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.contains:([Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/code/Register;)Z
            ifne 5
         3: .line 77
            getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
            astore 4 /* scratch */
        start local 4 // jdk.vm.ci.code.Register scratch
         4: .line 78
            goto 9
        end local 4 // jdk.vm.ci.code.Register scratch
      StackMap locals: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.TargetDescription
      StackMap stack:
         5: aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.increments:[Ljdk/vm/ci/meta/Value;
            getstatic jdk.vm.ci.amd64.AMD64.rbx:Ljdk/vm/ci/code/Register;
            invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.contains:([Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/code/Register;)Z
            ifne 8
         6: .line 79
            getstatic jdk.vm.ci.amd64.AMD64.rbx:Ljdk/vm/ci/code/Register;
            astore 4 /* scratch */
        start local 4 // jdk.vm.ci.code.Register scratch
         7: .line 80
            goto 9
        end local 4 // jdk.vm.ci.code.Register scratch
         8: .line 84
      StackMap locals:
      StackMap stack:
            ldc "RAX and RBX are increment registers at the same time, spilling over the scratch register is not supported right now"
            invokestatic org.graalvm.compiler.debug.GraalError.unimplemented:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        start local 4 // jdk.vm.ci.code.Register scratch
         9: .line 88
      StackMap locals: jdk.vm.ci.code.Register
      StackMap stack:
            new org.graalvm.compiler.asm.amd64.AMD64Address
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.thread:Ljdk/vm/ci/code/Register;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.jvmciCountersThreadOffset:I
            invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
            astore 5 /* countersArrayAddr */
        start local 5 // org.graalvm.compiler.asm.amd64.AMD64Address countersArrayAddr
        10: .line 89
            aload 4 /* scratch */
            astore 6 /* countersArrayReg */
        start local 6 // jdk.vm.ci.code.Register countersArrayReg
        11: .line 92
            aload 2 /* masm */
            aload 1 /* crb */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.backupSlot:Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.asAddress:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/asm/AbstractAddress;
            checkcast org.graalvm.compiler.asm.amd64.AMD64Address
            aload 4 /* scratch */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Lorg/graalvm/compiler/asm/amd64/AMD64Address;Ljdk/vm/ci/code/Register;)V
        12: .line 95
            aload 2 /* masm */
            aload 6 /* countersArrayReg */
            aload 5 /* countersArrayAddr */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movptr:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
        13: .line 96
            aload 1 /* crb */
            aload 2 /* masm */
            aload 6 /* countersArrayReg */
            invokedynamic apply(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/hotspot/HotSpotCounterOp$CounterProcedure;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (ILjdk/vm/ci/meta/Value;I)V
                  org/graalvm/compiler/hotspot/amd64/AMD64HotSpotCounterOp.lambda$0(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;ILjdk/vm/ci/meta/Value;I)V (6)
                  (ILjdk/vm/ci/meta/Value;I)V
            astore 7 /* emitProcedure */
        start local 7 // org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure emitProcedure
        14: .line 97
            aload 0 /* this */
            aload 7 /* emitProcedure */
            aload 3 /* target */
            invokevirtual org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.forEachCounter:(Lorg/graalvm/compiler/hotspot/HotSpotCounterOp$CounterProcedure;Ljdk/vm/ci/code/TargetDescription;)V
        15: .line 100
            aload 2 /* masm */
            aload 4 /* scratch */
            aload 1 /* crb */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.backupSlot:Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.asAddress:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/asm/AbstractAddress;
            checkcast org.graalvm.compiler.asm.amd64.AMD64Address
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
        16: .line 101
            return
        end local 7 // org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure emitProcedure
        end local 6 // jdk.vm.ci.code.Register countersArrayReg
        end local 5 // org.graalvm.compiler.asm.amd64.AMD64Address countersArrayAddr
        end local 4 // jdk.vm.ci.code.Register scratch
        end local 3 // jdk.vm.ci.code.TargetDescription target
        end local 2 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler masm
        end local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        end local 0 // org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotCounterOp;
            0   17     1                crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            1   17     2               masm  Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
            2   17     3             target  Ljdk/vm/ci/code/TargetDescription;
            4    5     4            scratch  Ljdk/vm/ci/code/Register;
            7    8     4            scratch  Ljdk/vm/ci/code/Register;
            9   17     4            scratch  Ljdk/vm/ci/code/Register;
           10   17     5  countersArrayAddr  Lorg/graalvm/compiler/asm/amd64/AMD64Address;
           11   17     6   countersArrayReg  Ljdk/vm/ci/code/Register;
           14   17     7      emitProcedure  Lorg/graalvm/compiler/hotspot/HotSpotCounterOp$CounterProcedure;
    MethodParameters:
      Name  Flags
      crb   

  private static boolean contains(jdk.vm.ci.meta.Value[], jdk.vm.ci.code.Register);
    descriptor: ([Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/code/Register;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // jdk.vm.ci.meta.Value[] increments
        start local 1 // jdk.vm.ci.code.Register register
         0: .line 107
            aload 0 /* increments */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: jdk.vm.ci.meta.Value[] jdk.vm.ci.code.Register top int int jdk.vm.ci.meta.Value[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* increment */
        start local 2 // jdk.vm.ci.meta.Value increment
         2: .line 108
            aload 2 /* increment */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 4
            aload 2 /* increment */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            aload 1 /* register */
            invokevirtual jdk.vm.ci.code.Register.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 109
            iconst_1
            ireturn
        end local 2 // jdk.vm.ci.meta.Value increment
         4: .line 107
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 112
            iconst_0
            ireturn
        end local 1 // jdk.vm.ci.code.Register register
        end local 0 // jdk.vm.ci.meta.Value[] increments
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  increments  [Ljdk/vm/ci/meta/Value;
            0    7     1    register  Ljdk/vm/ci/code/Register;
            2    4     2   increment  Ljdk/vm/ci/meta/Value;
    MethodParameters:
            Name  Flags
      increments  
      register    

  private static void emitIncrement(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.meta.Value, int);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/Value;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 1 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler masm
        start local 2 // jdk.vm.ci.code.Register countersArrayReg
        start local 3 // jdk.vm.ci.meta.Value incrementValue
        start local 4 // int displacement
         0: .line 117
            new org.graalvm.compiler.asm.amd64.AMD64Address
            dup
            aload 2 /* countersArrayReg */
            iload 4 /* displacement */
            invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
            astore 5 /* counterAddr */
        start local 5 // org.graalvm.compiler.asm.amd64.AMD64Address counterAddr
         1: .line 119
            aload 3 /* incrementValue */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isJavaConstant:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 5
         2: .line 120
            aload 3 /* incrementValue */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asJavaConstant:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/JavaConstant;
            invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.asInt:(Ljdk/vm/ci/meta/JavaConstant;)I
            istore 6 /* increment */
        start local 6 // int increment
         3: .line 121
            aload 1 /* masm */
            aload 5 /* counterAddr */
            iload 6 /* increment */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.incrementq:(Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
        end local 6 // int increment
         4: .line 122
            goto 6
         5: .line 123
      StackMap locals: org.graalvm.compiler.asm.amd64.AMD64Address
      StackMap stack:
            aload 1 /* masm */
            aload 5 /* counterAddr */
            aload 3 /* incrementValue */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.addq:(Lorg/graalvm/compiler/asm/amd64/AMD64Address;Ljdk/vm/ci/code/Register;)V
         6: .line 125
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.debug.BenchmarkCounters$Options.AbortOnBenchmarkCounterOverflow:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* crb */
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 12
         7: .line 126
            new org.graalvm.compiler.asm.Label
            dup
            invokespecial org.graalvm.compiler.asm.Label.<init>:()V
            astore 6 /* target */
        start local 6 // org.graalvm.compiler.asm.Label target
         8: .line 127
            aload 1 /* masm */
            getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NoOverflow:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
            aload 6 /* target */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
         9: .line 128
            aload 0 /* crb */
            ldc "[BENCHMARK COUNTER OVERFLOW]"
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.blockComment:(Ljava/lang/String;)V
        10: .line 129
            aload 1 /* masm */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.illegal:()V
        11: .line 130
            aload 1 /* masm */
            aload 6 /* target */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
        end local 6 // org.graalvm.compiler.asm.Label target
        12: .line 132
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.graalvm.compiler.asm.amd64.AMD64Address counterAddr
        end local 4 // int displacement
        end local 3 // jdk.vm.ci.meta.Value incrementValue
        end local 2 // jdk.vm.ci.code.Register countersArrayReg
        end local 1 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler masm
        end local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0               crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0   13     1              masm  Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
            0   13     2  countersArrayReg  Ljdk/vm/ci/code/Register;
            0   13     3    incrementValue  Ljdk/vm/ci/meta/Value;
            0   13     4      displacement  I
            1   13     5       counterAddr  Lorg/graalvm/compiler/asm/amd64/AMD64Address;
            3    4     6         increment  I
            8   12     6            target  Lorg/graalvm/compiler/asm/Label;
    MethodParameters:
                  Name  Flags
      crb               
      masm              
      countersArrayReg  
      incrementValue    
      displacement      

  private static void lambda$0(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, int, jdk.vm.ci.meta.Value, int);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;ILjdk/vm/ci/meta/Value;I)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=6, args_size=6
        start local 3 // int counterIndex
        start local 4 // jdk.vm.ci.meta.Value increment
        start local 5 // int displacement
         0: .line 96
            aload 0
            aload 1
            aload 2
            aload 4 /* increment */
            iload 5 /* displacement */
            invokestatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.emitIncrement:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/Value;I)V
            return
        end local 5 // int displacement
        end local 4 // jdk.vm.ci.meta.Value increment
        end local 3 // int counterIndex
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     3  counterIndex  I
            0    1     4     increment  Ljdk/vm/ci/meta/Value;
            0    1     5  displacement  I
}
SourceFile: "AMD64HotSpotCounterOp.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final ConditionFlag = org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag of org.graalvm.compiler.asm.amd64.AMD64Assembler
  protected abstract CounterProcedure = org.graalvm.compiler.hotspot.HotSpotCounterOp$CounterProcedure of org.graalvm.compiler.hotspot.HotSpotCounterOp
  public Options = org.graalvm.compiler.hotspot.debug.BenchmarkCounters$Options of org.graalvm.compiler.hotspot.debug.BenchmarkCounters
  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
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.Opcode(value = "BenchMarkCounter")