public class org.graalvm.compiler.asm.sparc.SPARCInstructionCounter implements org.graalvm.compiler.asm.Assembler$InstructionCounter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.asm.sparc.SPARCInstructionCounter
  super_class: java.lang.Object
{
  private static final java.util.TreeMap<java.lang.String, org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch> INSTRUCTION_MATCHER;
    descriptor: Ljava/util/TreeMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/TreeMap<Ljava/lang/String;Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter$SPARCInstructionMatch;>;

  private final org.graalvm.compiler.asm.sparc.SPARCAssembler asm;
    descriptor: Lorg/graalvm/compiler/asm/sparc/SPARCAssembler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=0, args_size=0
         0: .line 31
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            putstatic org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.INSTRUCTION_MATCHER:Ljava/util/TreeMap;
         1: .line 35
            getstatic org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.INSTRUCTION_MATCHER:Ljava/util/TreeMap;
            ldc "nop"
            new org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch
            dup
            iconst_m1
            iconst_1
            newarray 10
            dup
            iconst_0
            ldc 16777216
            iastore
            invokespecial org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch.<init>:(I[I)V
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 36
            getstatic org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.INSTRUCTION_MATCHER:Ljava/util/TreeMap;
            ldc "st"
            new org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$OP3LowBitsMatcher
            dup
            iconst_3
            bipush 6
            newarray 10
            dup
            iconst_0
            iconst_4
            iastore
            dup
            iconst_1
            iconst_5
            iastore
            dup
            iconst_2
            bipush 6
            iastore
            dup
            iconst_3
            bipush 7
            iastore
            dup
            iconst_4
            bipush 14
            iastore
            dup
            iconst_5
            bipush 15
            iastore
            invokespecial org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$OP3LowBitsMatcher.<init>:(I[I)V
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 37
            getstatic org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.INSTRUCTION_MATCHER:Ljava/util/TreeMap;
            ldc "ld"
            new org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$OP3LowBitsMatcher
            dup
            iconst_3
            bipush 10
            newarray 10
            dup
            iconst_0
            iconst_0
            iastore
            dup
            iconst_1
            iconst_1
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_3
            iastore
            dup
            iconst_4
            bipush 8
            iastore
            dup
            iconst_5
            bipush 9
            iastore
            dup
            bipush 6
            bipush 10
            iastore
            dup
            bipush 7
            bipush 11
            iastore
            dup
            bipush 8
            bipush 12
            iastore
            dup
            bipush 9
            bipush 13
            iastore
            invokespecial org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$OP3LowBitsMatcher.<init>:(I[I)V
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 38
            getstatic org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.INSTRUCTION_MATCHER:Ljava/util/TreeMap;
            ldc "all"
            new org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch
            dup
            iconst_0
            iconst_1
            newarray 10
            dup
            iconst_0
            iconst_0
            iastore
            invokespecial org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch.<init>:(I[I)V
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 40
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.asm.sparc.SPARCAssembler);
    descriptor: (Lorg/graalvm/compiler/asm/sparc/SPARCAssembler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter this
        start local 1 // org.graalvm.compiler.asm.sparc.SPARCAssembler asm
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* asm */
            putfield org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.asm:Lorg/graalvm/compiler/asm/sparc/SPARCAssembler;
         2: .line 47
            return
        end local 1 // org.graalvm.compiler.asm.sparc.SPARCAssembler asm
        end local 0 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter;
            0    3     1   asm  Lorg/graalvm/compiler/asm/sparc/SPARCAssembler;
    MethodParameters:
      Name  Flags
      asm   

  public int[] countInstructions(java.lang.String[], int, int);
    descriptor: ([Ljava/lang/String;II)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter this
        start local 1 // java.lang.String[] instructionTypes
        start local 2 // int beginPc
        start local 3 // int endPc
         0: .line 51
            aload 1 /* instructionTypes */
            arraylength
            anewarray org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch
            astore 4 /* matchers */
        start local 4 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch[] matchers
         1: .line 52
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 8
         3: .line 53
      StackMap locals: org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch[] int
      StackMap stack:
            aload 1 /* instructionTypes */
            iload 5 /* i */
            aaload
            astore 6 /* typeName */
        start local 6 // java.lang.String typeName
         4: .line 54
            aload 4 /* matchers */
            iload 5 /* i */
            getstatic org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.INSTRUCTION_MATCHER:Ljava/util/TreeMap;
            aload 6 /* typeName */
            invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch
            aastore
         5: .line 55
            aload 4 /* matchers */
            iload 5 /* i */
            aaload
            ifnonnull 7
         6: .line 56
            new java.lang.IllegalArgumentException
            dup
            ldc "Unknown instruction class %s, supported types are: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* typeName */
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.INSTRUCTION_MATCHER:Ljava/util/TreeMap;
            invokevirtual java.util.TreeMap.keySet:()Ljava/util/Set;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String typeName
         7: .line 52
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 1 /* instructionTypes */
            arraylength
            if_icmplt 3
        end local 5 // int i
         9: .line 59
            aload 0 /* this */
            aload 4 /* matchers */
            iload 2 /* beginPc */
            iload 3 /* endPc */
            invokevirtual org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.countBetween:([Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter$SPARCInstructionMatch;II)[I
            areturn
        end local 4 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch[] matchers
        end local 3 // int endPc
        end local 2 // int beginPc
        end local 1 // java.lang.String[] instructionTypes
        end local 0 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter;
            0   10     1  instructionTypes  [Ljava/lang/String;
            0   10     2           beginPc  I
            0   10     3             endPc  I
            1   10     4          matchers  [Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter$SPARCInstructionMatch;
            2    9     5                 i  I
            4    7     6          typeName  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      instructionTypes  
      beginPc           
      endPc             

  private int[] countBetween(org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch[], int, int);
    descriptor: ([Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter$SPARCInstructionMatch;II)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter this
        start local 1 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch[] matchers
        start local 2 // int startPc
        start local 3 // int endPc
         0: .line 63
            aload 1 /* matchers */
            arraylength
            newarray 10
            astore 4 /* counts */
        start local 4 // int[] counts
         1: .line 64
            iload 2 /* startPc */
            istore 5 /* p */
        start local 5 // int p
         2: goto 12
         3: .line 65
      StackMap locals: int[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.asm:Lorg/graalvm/compiler/asm/sparc/SPARCAssembler;
            iload 5 /* p */
            invokevirtual org.graalvm.compiler.asm.sparc.SPARCAssembler.getInt:(I)I
            istore 6 /* instr */
        start local 6 // int instr
         4: .line 66
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 10
         6: .line 67
      StackMap locals: int int
      StackMap stack:
            aload 1 /* matchers */
            iload 7 /* i */
            aaload
            astore 8 /* matcher */
        start local 8 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch matcher
         7: .line 68
            aload 8 /* matcher */
            iload 6 /* instr */
            invokevirtual org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch.matches:(I)Z
            ifeq 9
         8: .line 69
            aload 4 /* counts */
            iload 7 /* i */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        end local 8 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch matcher
         9: .line 66
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            aload 1 /* matchers */
            arraylength
            if_icmplt 6
        end local 7 // int i
        end local 6 // int instr
        11: .line 64
            iinc 5 /* p */ 4
      StackMap locals:
      StackMap stack:
        12: iload 5 /* p */
            iload 3 /* endPc */
            if_icmplt 3
        end local 5 // int p
        13: .line 73
            aload 4 /* counts */
            areturn
        end local 4 // int[] counts
        end local 3 // int endPc
        end local 2 // int startPc
        end local 1 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch[] matchers
        end local 0 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter;
            0   14     1  matchers  [Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter$SPARCInstructionMatch;
            0   14     2   startPc  I
            0   14     3     endPc  I
            1   14     4    counts  [I
            2   13     5         p  I
            4   11     6     instr  I
            5   11     7         i  I
            7    9     8   matcher  Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter$SPARCInstructionMatch;
    MethodParameters:
          Name  Flags
      matchers  
      startPc   
      endPc     

  public java.lang.String[] getSupportedInstructionTypes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter this
         0: .line 78
            getstatic org.graalvm.compiler.asm.sparc.SPARCInstructionCounter.INSTRUCTION_MATCHER:Ljava/util/TreeMap;
            invokevirtual java.util.TreeMap.keySet:()Ljava/util/Set;
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // org.graalvm.compiler.asm.sparc.SPARCInstructionCounter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/asm/sparc/SPARCInstructionCounter;
}
SourceFile: "SPARCInstructionCounter.java"
NestMembers:
  org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$OP3LowBitsMatcher  org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch
InnerClasses:
  public abstract InstructionCounter = org.graalvm.compiler.asm.Assembler$InstructionCounter of org.graalvm.compiler.asm.Assembler
  private OP3LowBitsMatcher = org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$OP3LowBitsMatcher of org.graalvm.compiler.asm.sparc.SPARCInstructionCounter
  private SPARCInstructionMatch = org.graalvm.compiler.asm.sparc.SPARCInstructionCounter$SPARCInstructionMatch of org.graalvm.compiler.asm.sparc.SPARCInstructionCounter