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 778
            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.HotSpotMethodData$VMState, int);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;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.HotSpotMethodData$VMState state
        start local 2 // int tag
         0: .line 781
            aload 0 /* this */
            aload 1 /* state */
            iload 2 /* tag */
            aload 1 /* state */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataSize:I
            invokespecial jdk.vm.ci.hotspot.HotSpotMethodData$ArrayData.<init>:(Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;II)V
         1: .line 782
            return
        end local 2 // int tag
        end local 1 // jdk.vm.ci.hotspot.HotSpotMethodData$VMState state
        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  state  Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            0    2     2    tag  I
    MethodParameters:
       Name  Flags
      state  
      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 786
            aload 0 /* this */
            aload 1 /* data */
            iload 2 /* position */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getLength:(Ljdk/vm/ci/hotspot/HotSpotMethodData;I)I
            istore 3 /* arrayLength */
        start local 3 // int arrayLength
         1: .line 787
            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 788
      StackMap locals: int
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.$assertionsDisabled:Z
            ifne 3
            iload 3 /* arrayLength */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataRowSizeInCells: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 790
      StackMap locals:
      StackMap stack:
            iload 3 /* arrayLength */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataRowSizeInCells:I
            idiv
            istore 4 /* length */
        start local 4 // int length
         4: .line 791
            lconst_0
            lstore 5 /* totalCount */
        start local 5 // long totalCount
         5: .line 792
            iload 4 /* length */
            newarray 7
            astore 7 /* result */
        start local 7 // double[] result
         6: .line 795
            aload 0 /* this */
            aload 1 /* data */
            iload 2 /* position */
            iconst_0
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.readCount:(Ljdk/vm/ci/hotspot/HotSpotMethodData;II)J
            lstore 8 /* count */
        start local 8 // long count
         7: .line 796
            lload 5 /* totalCount */
            lload 8 /* count */
            ladd
            lstore 5 /* totalCount */
         8: .line 797
            aload 7 /* result */
            iload 4 /* length */
            iconst_1
            isub
            lload 8 /* count */
            l2d
            dastore
         9: .line 799
            iconst_1
            istore 10 /* i */
        start local 10 // int i
        10: goto 15
        11: .line 800
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData jdk.vm.ci.hotspot.HotSpotMethodData int int int long double[] long int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            iload 2 /* position */
            iload 10 /* i */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.readCount:(Ljdk/vm/ci/hotspot/HotSpotMethodData;II)J
            lstore 8 /* count */
        12: .line 801
            lload 5 /* totalCount */
            lload 8 /* count */
            ladd
            lstore 5 /* totalCount */
        13: .line 802
            aload 7 /* result */
            iload 10 /* i */
            iconst_1
            isub
            lload 8 /* count */
            l2d
            dastore
        14: .line 799
            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 805
            lload 5 /* totalCount */
            lconst_0
            lcmp
            ifgt 18
        17: .line 806
            aconst_null
            areturn
        18: .line 808
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        19: goto 22
        20: .line 809
      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 808
            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 811
            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 long readCount(jdk.vm.ci.hotspot.HotSpotMethodData, int, int);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotMethodData;II)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
        start local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        start local 2 // int position
        start local 3 // int i
         0: .line 818
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getCountOffset:(I)I
            istore 4 /* offset */
        start local 4 // int offset
         1: .line 819
            aload 1 /* data */
            iload 2 /* position */
            iload 4 /* offset */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            lstore 5 /* count */
        start local 5 // long count
         2: .line 820
            lload 5 /* count */
            lreturn
        end local 5 // long count
        end local 4 // int offset
        end local 3 // int i
        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    3     0      this  Ljdk/vm/ci/hotspot/HotSpotMethodData$MultiBranchData;
            0    3     1      data  Ljdk/vm/ci/hotspot/HotSpotMethodData;
            0    3     2  position  I
            0    3     3         i  I
            1    3     4    offset  I
            2    3     5     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 825
            aload 0 /* this */
            aload 1 /* data */
            iload 2 /* position */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getLength:(Ljdk/vm/ci/hotspot/HotSpotMethodData;I)I
            istore 3 /* arrayLength */
        start local 3 // int arrayLength
         1: .line 826
            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 827
      StackMap locals: int
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.$assertionsDisabled:Z
            ifne 3
            iload 3 /* arrayLength */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataRowSizeInCells: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 829
      StackMap locals:
      StackMap stack:
            iload 3 /* arrayLength */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataRowSizeInCells:I
            idiv
            istore 4 /* length */
        start local 4 // int length
         4: .line 830
            lconst_0
            lstore 5 /* totalCount */
        start local 5 // long totalCount
         5: .line 831
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 10
         7: .line 832
      StackMap locals: int long int
      StackMap stack:
            aload 0 /* this */
            iload 7 /* i */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getCountOffset:(I)I
            istore 8 /* offset */
        start local 8 // int offset
         8: .line 833
            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 831
            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 836
            lload 5 /* totalCount */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData$VMState.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 int getCountOffset(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
        start local 1 // int index
         0: .line 840
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataFirstCountOffset:I
            iload 1 /* index */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataRowSize:I
            imul
            iadd
            ireturn
        end local 1 // int index
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/vm/ci/hotspot/HotSpotMethodData$MultiBranchData;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  private int getDisplacementOffset(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
        start local 1 // int index
         0: .line 844
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataFirstDisplacementOffset:I
            iload 1 /* index */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataRowSize:I
            imul
            iadd
            ireturn
        end local 1 // int index
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/vm/ci/hotspot/HotSpotMethodData$MultiBranchData;
            0    1     1  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=9, 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 849
            aload 0 /* this */
            aload 2 /* data */
            iload 3 /* pos */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.getLength:(Ljdk/vm/ci/hotspot/HotSpotMethodData;I)I
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$MultiBranchData.state:Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            getfield jdk.vm.ci.hotspot.HotSpotMethodData$VMState.multiBranchDataRowSizeInCells:I
            idiv
            istore 4 /* entries */
        start local 4 // int entries
         1: .line 850
            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 851
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 852
      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 */
            aload 0 /* this */
            iload 5 /* i */
            invokevirtual 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 */
            aload 0 /* this */
            iload 5 /* i */
            invokevirtual 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 851
            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 854
            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
  final VMState = jdk.vm.ci.hotspot.HotSpotMethodData$VMState of jdk.vm.ci.hotspot.HotSpotMethodData