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 49
            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 54
            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 55
            aload 0 /* this */
            aload 6 /* backupSlot */
            putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotCounterOp.backupSlot:Ljdk/vm/ci/meta/AllocatableValue;
         2: .line 56
            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 59
            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 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[] 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 65
            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 66
            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 71
            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 72
            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 73
            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 74
            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 75
            goto 9
        end local 4 // jdk.vm.ci.code.Register scratch
         8: .line 79
      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 83
      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 84
            aload 4 /* scratch */
            astore 6 /* countersArrayReg */
        start local 6 // jdk.vm.ci.code.Register countersArrayReg
        11: .line 87
            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 90
            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 91
            aload 2 /* masm */
            aload 6 /* countersArrayReg */
            invokedynamic apply(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/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 92
            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 95
            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 96
            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 102
            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 103
            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 104
            iconst_1
            ireturn
        end local 2 // jdk.vm.ci.meta.Value increment
         4: .line 102
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 107
            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.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.meta.Value, int);
    descriptor: (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=6, args_size=4
        start local 0 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler masm
        start local 1 // jdk.vm.ci.code.Register countersArrayReg
        start local 2 // jdk.vm.ci.meta.Value incrementValue
        start local 3 // int displacement
         0: .line 112
            new org.graalvm.compiler.asm.amd64.AMD64Address
            dup
            aload 1 /* countersArrayReg */
            iload 3 /* displacement */
            invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
            astore 4 /* counterAddr */
        start local 4 // org.graalvm.compiler.asm.amd64.AMD64Address counterAddr
         1: .line 114
            aload 2 /* incrementValue */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isJavaConstant:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 5
         2: .line 115
            aload 2 /* 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 5 /* increment */
        start local 5 // int increment
         3: .line 116
            aload 0 /* masm */
            aload 4 /* counterAddr */
            iload 5 /* increment */
            invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.incrementq:(Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
        end local 5 // int increment
         4: .line 117
            goto 6
         5: .line 118
      StackMap locals: org.graalvm.compiler.asm.amd64.AMD64Address
      StackMap stack:
            aload 0 /* masm */
            aload 4 /* counterAddr */
            aload 2 /* 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 121
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.asm.amd64.AMD64Address counterAddr
        end local 3 // int displacement
        end local 2 // jdk.vm.ci.meta.Value incrementValue
        end local 1 // jdk.vm.ci.code.Register countersArrayReg
        end local 0 // org.graalvm.compiler.asm.amd64.AMD64MacroAssembler masm
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              masm  Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
            0    7     1  countersArrayReg  Ljdk/vm/ci/code/Register;
            0    7     2    incrementValue  Ljdk/vm/ci/meta/Value;
            0    7     3      displacement  I
            1    7     4       counterAddr  Lorg/graalvm/compiler/asm/amd64/AMD64Address;
            3    4     5         increment  I
    MethodParameters:
                  Name  Flags
      masm              
      countersArrayReg  
      incrementValue    
      displacement      

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