class jdk.vm.ci.hotspot.HotSpotMethodData$BranchData extends jdk.vm.ci.hotspot.HotSpotMethodData$JumpData
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.vm.ci.hotspot.HotSpotMethodData$BranchData
  super_class: jdk.vm.ci.hotspot.HotSpotMethodData$JumpData
{
  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$BranchData this
        start local 1 // jdk.vm.ci.hotspot.HotSpotVMConfig config
        start local 2 // int tag
         0: .line 661
            aload 0 /* this */
            aload 1 /* config */
            iload 2 /* tag */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.BRANCH_DATA_SIZE:I
            invokespecial jdk.vm.ci.hotspot.HotSpotMethodData$JumpData.<init>:(Ljdk/vm/ci/hotspot/HotSpotVMConfig;II)V
         1: .line 662
            return
        end local 2 // int tag
        end local 1 // jdk.vm.ci.hotspot.HotSpotVMConfig config
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$BranchData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/vm/ci/hotspot/HotSpotMethodData$BranchData;
            0    2     1  config  Ljdk/vm/ci/hotspot/HotSpotVMConfig;
            0    2     2     tag  I
    MethodParameters:
        Name  Flags
      config  
      tag     

  public double getBranchTakenProbability(jdk.vm.ci.hotspot.HotSpotMethodData, int);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotMethodData;I)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$BranchData this
        start local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        start local 2 // int position
         0: .line 666
            aload 1 /* data */
            iload 2 /* position */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.TAKEN_COUNT_OFFSET:I
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            lstore 3 /* takenCount */
        start local 3 // long takenCount
         1: .line 667
            aload 1 /* data */
            iload 2 /* position */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.NOT_TAKEN_COUNT_OFFSET:I
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            lstore 5 /* notTakenCount */
        start local 5 // long notTakenCount
         2: .line 668
            lload 3 /* takenCount */
            lload 5 /* notTakenCount */
            ladd
            lstore 7 /* total */
        start local 7 // long total
         3: .line 670
            lload 7 /* total */
            lconst_0
            lcmp
            ifgt 4
            ldc -1.0
            goto 5
      StackMap locals: long long long
      StackMap stack:
         4: lload 3 /* takenCount */
            l2d
            lload 7 /* total */
            l2d
            ddiv
      StackMap locals:
      StackMap stack: double
         5: dreturn
        end local 7 // long total
        end local 5 // long notTakenCount
        end local 3 // long takenCount
        end local 2 // int position
        end local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$BranchData this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Ljdk/vm/ci/hotspot/HotSpotMethodData$BranchData;
            0    6     1           data  Ljdk/vm/ci/hotspot/HotSpotMethodData;
            0    6     2       position  I
            1    6     3     takenCount  J
            2    6     5  notTakenCount  J
            3    6     7          total  J
    MethodParameters:
          Name  Flags
      data      
      position  

  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=5, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$BranchData this
        start local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        start local 2 // int position
         0: .line 675
            aload 1 /* data */
            iload 2 /* position */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.TAKEN_COUNT_OFFSET:I
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            aload 1 /* data */
            iload 2 /* position */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.NOT_TAKEN_COUNT_OFFSET:I
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            ladd
            lstore 3 /* count */
        start local 3 // long count
         1: .line 676
            lload 3 /* count */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodData.truncateLongToInt:(J)I
            ireturn
        end local 3 // long count
        end local 2 // int position
        end local 1 // jdk.vm.ci.hotspot.HotSpotMethodData data
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$BranchData this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljdk/vm/ci/hotspot/HotSpotMethodData$BranchData;
            0    2     1      data  Ljdk/vm/ci/hotspot/HotSpotMethodData;
            0    2     2  position  I
            1    2     3     count  J
    MethodParameters:
          Name  Flags
      data      
      position  

  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=10, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodData$BranchData this
        start local 1 // java.lang.StringBuilder sb
        start local 2 // jdk.vm.ci.hotspot.HotSpotMethodData data
        start local 3 // int pos
         0: .line 681
            aload 2 /* data */
            iload 3 /* pos */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.TAKEN_COUNT_OFFSET:I
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            lstore 4 /* taken */
        start local 4 // long taken
         1: .line 682
            aload 2 /* data */
            iload 3 /* pos */
            getstatic jdk.vm.ci.hotspot.HotSpotMethodData.NOT_TAKEN_COUNT_OFFSET:I
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData.readUnsignedInt:(II)J
            lstore 6 /* notTaken */
        start local 6 // long notTaken
         2: .line 683
            aload 0 /* this */
            aload 2 /* data */
            iload 3 /* pos */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$BranchData.getBranchTakenProbability:(Ljdk/vm/ci/hotspot/HotSpotMethodData;I)D
            dstore 8 /* takenProbability */
        start local 8 // double takenProbability
         3: .line 684
            aload 1 /* sb */
            ldc "taken(%d, %4.2f) not_taken(%d, %4.2f) displacement(%d)"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            lload 4 /* taken */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            dload 8 /* takenProbability */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_2
            lload 6 /* notTaken */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_3
            dconst_1
            dload 8 /* takenProbability */
            dsub
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            aload 2 /* data */
            iload 3 /* pos */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMethodData$BranchData.getTakenDisplacement:(Ljdk/vm/ci/hotspot/HotSpotMethodData;I)I
            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;
            areturn
        end local 8 // double takenProbability
        end local 6 // long notTaken
        end local 4 // long taken
        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$BranchData this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Ljdk/vm/ci/hotspot/HotSpotMethodData$BranchData;
            0    4     1                sb  Ljava/lang/StringBuilder;
            0    4     2              data  Ljdk/vm/ci/hotspot/HotSpotMethodData;
            0    4     3               pos  I
            1    4     4             taken  J
            2    4     6          notTaken  J
            3    4     8  takenProbability  D
    MethodParameters:
      Name  Flags
      sb    
      data  
      pos   
}
SourceFile: "HotSpotMethodData.java"
NestHost: jdk.vm.ci.hotspot.HotSpotMethodData
InnerClasses:
  BranchData = jdk.vm.ci.hotspot.HotSpotMethodData$BranchData of jdk.vm.ci.hotspot.HotSpotMethodData
  JumpData = jdk.vm.ci.hotspot.HotSpotMethodData$JumpData of jdk.vm.ci.hotspot.HotSpotMethodData