class jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData extends jdk.vm.ci.hotspot.HotSpotMethodData$ArrayData
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData
  super_class: jdk.vm.ci.hotspot.HotSpotMethodData$ArrayData
{
  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 718
            ldc Ljdk/vm/ci/hotspot/HotSpotMethodData;
            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 jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.vm.ci.hotspot.HotSpotVMConfig, int);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotVMConfig;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
        start local 1 // jdk.vm.ci.hotspot.HotSpotVMConfig config
        start local 2 // int tag
         0: .line 721
            aload 0 /* this */
            aload 1 /* config */
            iload 2 /* tag */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_SIZE:I
            invokespecial jdk.vm.ci.hotspot.HotSpotMethodData$ArrayData.<init>:(Ljdk/vm/ci/hotspot/HotSpotVMConfig;II)V
         1: .line 722
            return
        end local 2 // int tag
        end local 1 // jdk.vm.ci.hotspot.HotSpotVMConfig config
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/vm/ci/hotspot/HotSpotMethodData$MultiBranchData;
            0    2     1  config  Ljdk/vm/ci/hotspot/HotSpotVMConfig;
            0    2     2     tag  I
    MethodParameters:
        Name  Flags
      config  
      tag     

  public double[] getSwitchProbabilities(jdk.vm.ci.hotspot.HotSpotMethodData, int);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotMethodData;I)[D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
        start local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        start local 2 // int position
         0: .line 726
            aload 1 /* data */
            iload 2 /* position */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getLength:(Ljdk/vm/ci/hotspot/HotSpotMethodData;I)I
            istore 3 /* arrayLength */
        start local 3 // int arrayLength
         1: .line 727
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.$assertionsDisabled:Z
            ifne 2
            iload 3 /* arrayLength */
            ifgt 2
            new java.lang.AssertionError
            dup
            ldc "switch must have at least the default case"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 728
      StackMap locals: int
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.$assertionsDisabled:Z
            ifne 3
            iload 3 /* arrayLength */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_ROW_SIZE_IN_CELLS:I
            irem
            ifeq 3
            new java.lang.AssertionError
            dup
            ldc "array must have full rows"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 730
      StackMap locals:
      StackMap stack:
            iload 3 /* arrayLength */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_ROW_SIZE_IN_CELLS:I
            idiv
            istore 4 /* length */
        start local 4 // int length
         4: .line 731
            lconst_0
            lstore 5 /* totalCount */
        start local 5 // long totalCount
         5: .line 732
            iload 4 /* length */
            newarray 7
            astore 7 /* result */
        start local 7 // double[] result
         6: .line 735
            aload 1 /* data */
            iload 2 /* position */
            iconst_0
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.readCount:(Ljdk/vm/ci/hotspot/HotSpotMethodData;II)J
            lstore 8 /* count */
        start local 8 // long count
         7: .line 736
            lload 5 /* totalCount */
            lload 8 /* count */
            ladd
            lstore 5 /* totalCount */
         8: .line 737
            aload 7 /* result */
            iload 4 /* length */
            iconst_1
            isub
            lload 8 /* count */
            l2d
            dastore
         9: .line 739
            iconst_1
            istore 10 /* i */
        start local 10 // int i
        10: goto 15
        11: .line 740
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData jdk.vm.ci.hotspot.HotSpotMethodData int int int long double[] long int
      StackMap stack:
            aload 1 /* data */
            iload 2 /* position */
            iload 10 /* i */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.readCount:(Ljdk/vm/ci/hotspot/HotSpotMethodData;II)J
            lstore 8 /* count */
        12: .line 741
            lload 5 /* totalCount */
            lload 8 /* count */
            ladd
            lstore 5 /* totalCount */
        13: .line 742
            aload 7 /* result */
            iload 10 /* i */
            iconst_1
            isub
            lload 8 /* count */
            l2d
            dastore
        14: .line 739
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 10 /* i */
            iload 4 /* length */
            if_icmplt 11
        end local 10 // int i
        16: .line 745
            lload 5 /* totalCount */
            lconst_0
            lcmp
            ifgt 18
        17: .line 746
            aconst_null
            areturn
        18: .line 748
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        19: goto 22
        20: .line 749
      StackMap locals: int
      StackMap stack:
            aload 7 /* result */
            iload 10 /* i */
            aload 7 /* result */
            iload 10 /* i */
            daload
            lload 5 /* totalCount */
            l2d
            ddiv
            dastore
        21: .line 748
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 10 /* i */
            iload 4 /* length */
            if_icmplt 20
        end local 10 // int i
        23: .line 751
            aload 7 /* result */
            areturn
        end local 8 // long count
        end local 7 // double[] result
        end local 5 // long totalCount
        end local 4 // int length
        end local 3 // int arrayLength
        end local 2 // int position
        end local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Ljdk/vm/ci/hotspot/HotSpotMethodData$MultiBranchData;
            0   24     1         data  Ljdk/vm/ci/hotspot/HotSpotMethodData;
            0   24     2     position  I
            1   24     3  arrayLength  I
            4   24     4       length  I
            5   24     5   totalCount  J
            6   24     7       result  [D
            7   24     8        count  J
           10   16    10            i  I
           19   23    10            i  I
    MethodParameters:
          Name  Flags
      data      
      position  

  private static long readCount(jdk.vm.ci.hotspot.HotSpotMethodData, int, int);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotMethodData;II)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData data
        start local 1 // int position
        start local 2 // int i
         0: .line 758
            iload 2 /* i */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getCountOffset:(I)I
            istore 3 /* offset */
        start local 3 // int offset
         1: .line 759
            aload 0 /* data */
            iload 1 /* position */
            iload 3 /* offset */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            lstore 4 /* count */
        start local 4 // long count
         2: .line 760
            lload 4 /* count */
            lreturn
        end local 4 // long count
        end local 3 // int offset
        end local 2 // int i
        end local 1 // int position
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData data
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      data  Ljdk/vm/ci/hotspot/HotSpotMethodData;
            0    3     1  position  I
            0    3     2         i  I
            1    3     3    offset  I
            2    3     4     count  J
    MethodParameters:
          Name  Flags
      data      
      position  
      i         

  public int getExecutionCount(jdk.vm.ci.hotspot.HotSpotMethodData, int);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotMethodData;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
        start local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        start local 2 // int position
         0: .line 765
            aload 1 /* data */
            iload 2 /* position */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getLength:(Ljdk/vm/ci/hotspot/HotSpotMethodData;I)I
            istore 3 /* arrayLength */
        start local 3 // int arrayLength
         1: .line 766
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.$assertionsDisabled:Z
            ifne 2
            iload 3 /* arrayLength */
            ifgt 2
            new java.lang.AssertionError
            dup
            ldc "switch must have at least the default case"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 767
      StackMap locals: int
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.$assertionsDisabled:Z
            ifne 3
            iload 3 /* arrayLength */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_ROW_SIZE_IN_CELLS:I
            irem
            ifeq 3
            new java.lang.AssertionError
            dup
            ldc "array must have full rows"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 769
      StackMap locals:
      StackMap stack:
            iload 3 /* arrayLength */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_ROW_SIZE_IN_CELLS:I
            idiv
            istore 4 /* length */
        start local 4 // int length
         4: .line 770
            lconst_0
            lstore 5 /* totalCount */
        start local 5 // long totalCount
         5: .line 771
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 10
         7: .line 772
      StackMap locals: int long int
      StackMap stack:
            iload 7 /* i */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getCountOffset:(I)I
            istore 8 /* offset */
        start local 8 // int offset
         8: .line 773
            lload 5 /* totalCount */
            aload 1 /* data */
            iload 2 /* position */
            iload 8 /* offset */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            ladd
            lstore 5 /* totalCount */
        end local 8 // int offset
         9: .line 771
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            iload 4 /* length */
            if_icmplt 7
        end local 7 // int i
        11: .line 776
            lload 5 /* totalCount */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData.truncateLongToInt:(J)I
            ireturn
        end local 5 // long totalCount
        end local 4 // int length
        end local 3 // int arrayLength
        end local 2 // int position
        end local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Ljdk/vm/ci/hotspot/HotSpotMethodData$MultiBranchData;
            0   12     1         data  Ljdk/vm/ci/hotspot/HotSpotMethodData;
            0   12     2     position  I
            1   12     3  arrayLength  I
            4   12     4       length  I
            5   12     5   totalCount  J
            6   11     7            i  I
            8    9     8       offset  I
    MethodParameters:
          Name  Flags
      data      
      position  

  private static int getCountOffset(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int index
         0: .line 780
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_FIRST_COUNT_OFFSET:I
            iload 0 /* index */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_ROW_SIZE:I
            imul
            iadd
            ireturn
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  index  I
    MethodParameters:
       Name  Flags
      index  

  private static int getDisplacementOffset(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int index
         0: .line 784
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_FIRST_DISPLACEMENT_OFFSET:I
            iload 0 /* index */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_ROW_SIZE:I
            imul
            iadd
            ireturn
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  index  I
    MethodParameters:
       Name  Flags
      index  

  public java.lang.StringBuilder appendTo(java.lang.StringBuilder, jdk.vm.ci.hotspot.HotSpotMethodData, int);
    descriptor: (Ljava/lang/StringBuilder;Ljdk/vm/ci/hotspot/HotSpotMethodData;I)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
        start local 1 // java.lang.StringBuilder sb
        start local 2 // jdk.vm.ci.hotspot.HotSpotMethodData data
        start local 3 // int pos
         0: .line 789
            aload 2 /* data */
            iload 3 /* pos */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getLength:(Ljdk/vm/ci/hotspot/HotSpotMethodData;I)I
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.MULTI_BRANCH_DATA_ROW_SIZE_IN_CELLS:I
            idiv
            istore 4 /* entries */
        start local 4 // int entries
         1: .line 790
            aload 1 /* sb */
            ldc "entries(%d)"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 4 /* entries */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 791
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 792
      StackMap locals: int int
      StackMap stack:
            aload 1 /* sb */
            ldc "%n  %d: count(%d) displacement(%d)"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 5 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 2 /* data */
            iload 3 /* pos */
            iload 5 /* i */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getCountOffset:(I)I
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 2 /* data */
            iload 3 /* pos */
            iload 5 /* i */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getDisplacementOffset:(I)I
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 791
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 4 /* entries */
            if_icmplt 4
        end local 5 // int i
         7: .line 794
            aload 1 /* sb */
            areturn
        end local 4 // int entries
        end local 3 // int pos
        end local 2 // jdk.vm.ci.hotspot.HotSpotMethodData data
        end local 1 // java.lang.StringBuilder sb
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljdk/vm/ci/hotspot/HotSpotMethodData$MultiBranchData;
            0    8     1       sb  Ljava/lang/StringBuilder;
            0    8     2     data  Ljdk/vm/ci/hotspot/HotSpotMethodData;
            0    8     3      pos  I
            1    8     4  entries  I
            3    7     5        i  I
    MethodParameters:
      Name  Flags
      sb    
      data  
      pos   
}
SourceFile: "HotSpotMethodData.java"
NestHost: jdk.vm.ci.hotspot.HotSpotMethodData
InnerClasses:
  ArrayData = jdk.vm.ci.hotspot.HotSpotMethodData$ArrayData of jdk.vm.ci.hotspot.HotSpotMethodData
  MultiBranchData = jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData of jdk.vm.ci.hotspot.HotSpotMethodData