public final class jdk.vm.ci.meta.JavaTypeProfile extends jdk.vm.ci.meta.AbstractJavaProfile<jdk.vm.ci.meta.JavaTypeProfile$ProfiledType, jdk.vm.ci.meta.ResolvedJavaType>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.vm.ci.meta.JavaTypeProfile
  super_class: jdk.vm.ci.meta.AbstractJavaProfile
{
  private static final jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] EMPTY_ARRAY;
    descriptor: [Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final jdk.vm.ci.meta.TriState nullSeen;
    descriptor: Ljdk/vm/ci/meta/TriState;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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 35
            ldc Ljdk/vm/ci/meta/JavaTypeProfile;
            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.meta.JavaTypeProfile.$assertionsDisabled:Z
         3: .line 37
            iconst_0
            anewarray jdk.vm.ci.meta.JavaTypeProfile$ProfiledType
            putstatic jdk.vm.ci.meta.JavaTypeProfile.EMPTY_ARRAY:[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(jdk.vm.ci.meta.TriState, double, jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]);
    descriptor: (Ljdk/vm/ci/meta/TriState;D[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
        start local 1 // jdk.vm.ci.meta.TriState nullSeen
        start local 2 // double notRecordedProbability
        start local 4 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] pitems
         0: .line 42
            aload 0 /* this */
            dload 2 /* notRecordedProbability */
            aload 4 /* pitems */
            invokespecial jdk.vm.ci.meta.AbstractJavaProfile.<init>:(D[Ljdk/vm/ci/meta/AbstractProfiledItem;)V
         1: .line 43
            aload 0 /* this */
            aload 1 /* nullSeen */
            putfield jdk.vm.ci.meta.JavaTypeProfile.nullSeen:Ljdk/vm/ci/meta/TriState;
         2: .line 44
            return
        end local 4 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] pitems
        end local 2 // double notRecordedProbability
        end local 1 // jdk.vm.ci.meta.TriState nullSeen
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Ljdk/vm/ci/meta/JavaTypeProfile;
            0    3     1                nullSeen  Ljdk/vm/ci/meta/TriState;
            0    3     2  notRecordedProbability  D
            0    3     4                  pitems  [Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
    MethodParameters:
                        Name  Flags
      nullSeen                
      notRecordedProbability  
      pitems                  

  public jdk.vm.ci.meta.TriState getNullSeen();
    descriptor: ()Ljdk/vm/ci/meta/TriState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
         0: .line 50
            aload 0 /* this */
            getfield jdk.vm.ci.meta.JavaTypeProfile.nullSeen:Ljdk/vm/ci/meta/TriState;
            areturn
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/meta/JavaTypeProfile;

  public jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] getTypes();
    descriptor: ()[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
         0: .line 59
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            areturn
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/meta/JavaTypeProfile;

  public jdk.vm.ci.meta.JavaTypeProfile restrict(jdk.vm.ci.meta.JavaTypeProfile);
    descriptor: (Ljdk/vm/ci/meta/JavaTypeProfile;)Ljdk/vm/ci/meta/JavaTypeProfile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
        start local 1 // jdk.vm.ci.meta.JavaTypeProfile otherProfile
         0: .line 63
            aload 1 /* otherProfile */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNotRecordedProbability:()D
            dconst_0
            dcmpl
            ifle 2
         1: .line 65
            aload 0 /* this */
            areturn
         2: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNotRecordedProbability:()D
            dconst_0
            dcmpl
            ifle 4
         3: .line 70
            aload 1 /* otherProfile */
            areturn
         4: .line 73
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.ArrayList result
         5: .line 74
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         6: goto 12
         7: .line 75
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            iload 3 /* i */
            aaload
            astore 4 /* ptype */
        start local 4 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType ptype
         8: .line 76
            aload 4 /* ptype */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getItem:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            astore 5 /* type */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType type
         9: .line 77
            aload 1 /* otherProfile */
            aload 5 /* type */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.isIncluded:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 78
            aload 2 /* result */
            aload 4 /* ptype */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 4 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType ptype
        11: .line 74
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            arraylength
            if_icmplt 7
        end local 3 // int i
        13: .line 82
            aload 1 /* otherProfile */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNullSeen:()Ljdk/vm/ci/meta/TriState;
            getstatic jdk.vm.ci.meta.TriState.FALSE:Ljdk/vm/ci/meta/TriState;
            if_acmpne 14
            getstatic jdk.vm.ci.meta.TriState.FALSE:Ljdk/vm/ci/meta/TriState;
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNullSeen:()Ljdk/vm/ci/meta/TriState;
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.TriState
        15: astore 3 /* newNullSeen */
        start local 3 // jdk.vm.ci.meta.TriState newNullSeen
        16: .line 83
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNotRecordedProbability:()D
            dstore 4 /* newNotRecorded */
        start local 4 // double newNotRecorded
        17: .line 84
            aload 0 /* this */
            aload 2 /* result */
            aload 3 /* newNullSeen */
            dload 4 /* newNotRecorded */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.createAdjustedProfile:(Ljava/util/ArrayList;Ljdk/vm/ci/meta/TriState;D)Ljdk/vm/ci/meta/JavaTypeProfile;
            areturn
        end local 4 // double newNotRecorded
        end local 3 // jdk.vm.ci.meta.TriState newNullSeen
        end local 2 // java.util.ArrayList result
        end local 1 // jdk.vm.ci.meta.JavaTypeProfile otherProfile
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Ljdk/vm/ci/meta/JavaTypeProfile;
            0   18     1    otherProfile  Ljdk/vm/ci/meta/JavaTypeProfile;
            5   18     2          result  Ljava/util/ArrayList<Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;>;
            6   13     3               i  I
            8   11     4           ptype  Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
            9   11     5            type  Ljdk/vm/ci/meta/ResolvedJavaType;
           16   18     3     newNullSeen  Ljdk/vm/ci/meta/TriState;
           17   18     4  newNotRecorded  D
    MethodParameters:
              Name  Flags
      otherProfile  

  public jdk.vm.ci.meta.JavaTypeProfile restrict(jdk.vm.ci.meta.ResolvedJavaType, boolean);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Z)Ljdk/vm/ci/meta/JavaTypeProfile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType declaredType
        start local 2 // boolean nonNull
         0: .line 88
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.ArrayList result
         1: .line 89
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 8
         3: .line 90
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            iload 4 /* i */
            aaload
            astore 5 /* ptype */
        start local 5 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType ptype
         4: .line 91
            aload 5 /* ptype */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getItem:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            astore 6 /* type */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType type
         5: .line 92
            aload 1 /* declaredType */
            aload 6 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 7
         6: .line 93
            aload 3 /* result */
            aload 5 /* ptype */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 5 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType ptype
         7: .line 89
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            arraylength
            if_icmplt 3
        end local 4 // int i
         9: .line 97
            iload 2 /* nonNull */
            ifeq 10
            getstatic jdk.vm.ci.meta.TriState.FALSE:Ljdk/vm/ci/meta/TriState;
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNullSeen:()Ljdk/vm/ci/meta/TriState;
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.TriState
        11: astore 4 /* newNullSeen */
        start local 4 // jdk.vm.ci.meta.TriState newNullSeen
        12: .line 98
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNotRecordedProbability:()D
            dstore 5 /* newNotRecorded */
        start local 5 // double newNotRecorded
        13: .line 100
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            arraylength
            ifeq 15
        14: .line 101
            dload 5 /* newNotRecorded */
            aload 3 /* result */
            invokevirtual java.util.ArrayList.size:()I
            i2d
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            arraylength
            i2d
            ddiv
            dmul
            dstore 5 /* newNotRecorded */
        15: .line 103
      StackMap locals: jdk.vm.ci.meta.TriState double
      StackMap stack:
            aload 0 /* this */
            aload 3 /* result */
            aload 4 /* newNullSeen */
            dload 5 /* newNotRecorded */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.createAdjustedProfile:(Ljava/util/ArrayList;Ljdk/vm/ci/meta/TriState;D)Ljdk/vm/ci/meta/JavaTypeProfile;
            areturn
        end local 5 // double newNotRecorded
        end local 4 // jdk.vm.ci.meta.TriState newNullSeen
        end local 3 // java.util.ArrayList result
        end local 2 // boolean nonNull
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType declaredType
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Ljdk/vm/ci/meta/JavaTypeProfile;
            0   16     1    declaredType  Ljdk/vm/ci/meta/ResolvedJavaType;
            0   16     2         nonNull  Z
            1   16     3          result  Ljava/util/ArrayList<Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;>;
            2    9     4               i  I
            4    7     5           ptype  Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
            5    7     6            type  Ljdk/vm/ci/meta/ResolvedJavaType;
           12   16     4     newNullSeen  Ljdk/vm/ci/meta/TriState;
           13   16     5  newNotRecorded  D
    MethodParameters:
              Name  Flags
      declaredType  
      nonNull       

  private jdk.vm.ci.meta.JavaTypeProfile createAdjustedProfile(java.util.ArrayList<jdk.vm.ci.meta.JavaTypeProfile$ProfiledType>, jdk.vm.ci.meta.TriState, double);
    descriptor: (Ljava/util/ArrayList;Ljdk/vm/ci/meta/TriState;D)Ljdk/vm/ci/meta/JavaTypeProfile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=10, args_size=4
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
        start local 1 // java.util.ArrayList result
        start local 2 // jdk.vm.ci.meta.TriState newNullSeen
        start local 3 // double newNotRecorded
         0: .line 107
            aload 1 /* result */
            invokevirtual java.util.ArrayList.size:()I
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            arraylength
            if_icmpne 1
            dload 3 /* newNotRecorded */
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNotRecordedProbability:()D
            dcmpl
            ifne 1
            aload 2 /* newNullSeen */
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNullSeen:()Ljdk/vm/ci/meta/TriState;
            if_acmpeq 24
         1: .line 108
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.util.ArrayList.size:()I
            ifne 3
         2: .line 109
            new jdk.vm.ci.meta.JavaTypeProfile
            dup
            aload 2 /* newNullSeen */
            dconst_1
            getstatic jdk.vm.ci.meta.JavaTypeProfile.EMPTY_ARRAY:[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
            invokespecial jdk.vm.ci.meta.JavaTypeProfile.<init>:(Ljdk/vm/ci/meta/TriState;D[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;)V
            areturn
         3: .line 112
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.util.ArrayList.size:()I
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getItems:()[Ljdk/vm/ci/meta/AbstractProfiledItem;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[]
            arraylength
            if_icmpne 6
         4: .line 114
            dconst_1
            dstore 5 /* factor */
        start local 5 // double factor
         5: .line 115
            goto 15
        end local 5 // double factor
         6: .line 116
      StackMap locals:
      StackMap stack:
            dconst_0
            dstore 7 /* probabilitySum */
        start local 7 // double probabilitySum
         7: .line 117
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         8: goto 11
         9: .line 118
      StackMap locals: jdk.vm.ci.meta.JavaTypeProfile java.util.ArrayList jdk.vm.ci.meta.TriState double top top double int
      StackMap stack:
            dload 7 /* probabilitySum */
            aload 1 /* result */
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getProbability:()D
            dadd
            dstore 7 /* probabilitySum */
        10: .line 117
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 9 /* i */
            aload 1 /* result */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 9
        end local 9 // int i
        12: .line 120
            dload 7 /* probabilitySum */
            dload 3 /* newNotRecorded */
            dadd
            dstore 7 /* probabilitySum */
        13: .line 122
            dconst_1
            dload 7 /* probabilitySum */
            ddiv
            dstore 5 /* factor */
        start local 5 // double factor
        14: .line 123
            getstatic jdk.vm.ci.meta.JavaTypeProfile.$assertionsDisabled:Z
            ifne 15
            dload 5 /* factor */
            dconst_1
            dcmpl
            ifge 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 7 // double probabilitySum
        15: .line 125
      StackMap locals: jdk.vm.ci.meta.JavaTypeProfile java.util.ArrayList jdk.vm.ci.meta.TriState double double
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.util.ArrayList.size:()I
            anewarray jdk.vm.ci.meta.JavaTypeProfile$ProfiledType
            astore 7 /* newResult */
        start local 7 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] newResult
        16: .line 126
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        17: goto 21
        18: .line 127
      StackMap locals: jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] int
      StackMap stack:
            aload 1 /* result */
            iload 8 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.JavaTypeProfile$ProfiledType
            astore 9 /* curType */
        start local 9 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType curType
        19: .line 128
            aload 7 /* newResult */
            iload 8 /* i */
            new jdk.vm.ci.meta.JavaTypeProfile$ProfiledType
            dup
            aload 9 /* curType */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getItem:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            dconst_1
            aload 9 /* curType */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getProbability:()D
            dload 5 /* factor */
            dmul
            invokestatic java.lang.Math.min:(DD)D
            invokespecial jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;D)V
            aastore
        end local 9 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType curType
        20: .line 126
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 8 /* i */
            aload 7 /* newResult */
            arraylength
            if_icmplt 18
        end local 8 // int i
        22: .line 130
            dconst_1
            dload 3 /* newNotRecorded */
            dload 5 /* factor */
            dmul
            invokestatic java.lang.Math.min:(DD)D
            dstore 8 /* newNotRecordedTypeProbability */
        start local 8 // double newNotRecordedTypeProbability
        23: .line 131
            new jdk.vm.ci.meta.JavaTypeProfile
            dup
            aload 2 /* newNullSeen */
            dload 8 /* newNotRecordedTypeProbability */
            aload 7 /* newResult */
            invokespecial jdk.vm.ci.meta.JavaTypeProfile.<init>:(Ljdk/vm/ci/meta/TriState;D[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;)V
            areturn
        end local 8 // double newNotRecordedTypeProbability
        end local 7 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType[] newResult
        end local 5 // double factor
        24: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // double newNotRecorded
        end local 2 // jdk.vm.ci.meta.TriState newNullSeen
        end local 1 // java.util.ArrayList result
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   25     0                           this  Ljdk/vm/ci/meta/JavaTypeProfile;
            0   25     1                         result  Ljava/util/ArrayList<Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;>;
            0   25     2                    newNullSeen  Ljdk/vm/ci/meta/TriState;
            0   25     3                 newNotRecorded  D
            5    6     5                         factor  D
           14   24     5                         factor  D
            7   15     7                 probabilitySum  D
            8   12     9                              i  I
           16   24     7                      newResult  [Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
           17   22     8                              i  I
           19   20     9                        curType  Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
           23   24     8  newNotRecordedTypeProbability  D
    Signature: (Ljava/util/ArrayList<Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;>;Ljdk/vm/ci/meta/TriState;D)Ljdk/vm/ci/meta/JavaTypeProfile;
    MethodParameters:
                Name  Flags
      result          
      newNullSeen     
      newNotRecorded  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
        start local 1 // java.lang.Object other
         0: .line 138
            aload 0 /* this */
            aload 1 /* other */
            invokespecial jdk.vm.ci.meta.AbstractJavaProfile.equals:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* this */
            getfield jdk.vm.ci.meta.JavaTypeProfile.nullSeen:Ljdk/vm/ci/meta/TriState;
            aload 1 /* other */
            checkcast jdk.vm.ci.meta.JavaTypeProfile
            getfield jdk.vm.ci.meta.JavaTypeProfile.nullSeen:Ljdk/vm/ci/meta/TriState;
            invokevirtual jdk.vm.ci.meta.TriState.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/vm/ci/meta/JavaTypeProfile;
            0    2     1  other  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      other  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
         0: .line 143
            aload 0 /* this */
            getfield jdk.vm.ci.meta.JavaTypeProfile.nullSeen:Ljdk/vm/ci/meta/TriState;
            invokevirtual jdk.vm.ci.meta.TriState.hashCode:()I
            aload 0 /* this */
            invokespecial jdk.vm.ci.meta.AbstractJavaProfile.hashCode:()I
            iadd
            ireturn
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/meta/JavaTypeProfile;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
         0: .line 168
            new java.lang.StringBuilder
            dup
            ldc "JavaTypeProfile<nullSeen="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNullSeen:()Ljdk/vm/ci/meta/TriState;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", types=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         1: .line 169
            iconst_0
            istore 2 /* j */
        start local 2 // int j
         2: goto 8
         3: .line 170
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 2 /* j */
            ifeq 5
         4: .line 171
            aload 1 /* buf */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getTypes:()[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
            iload 2 /* j */
            aaload
            astore 3 /* ptype */
        start local 3 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType ptype
         6: .line 174
            aload 1 /* buf */
            ldc "%.6f:%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* ptype */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getProbability:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            aload 3 /* ptype */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            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
        end local 3 // jdk.vm.ci.meta.JavaTypeProfile$ProfiledType ptype
         7: .line 169
            iinc 2 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* j */
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getTypes:()[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
            arraylength
            if_icmplt 3
        end local 2 // int j
         9: .line 176
            aload 1 /* buf */
            ldc "], notRecorded:%.6f>"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNotRecordedProbability:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buf
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Ljdk/vm/ci/meta/JavaTypeProfile;
            1   10     1    buf  Ljava/lang/StringBuilder;
            2    9     2      j  I
            6    7     3  ptype  Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;

  public boolean allTypesRecorded();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
         0: .line 183
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getNotRecordedProbability:()D
            dconst_0
            dcmpl
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/vm/ci/meta/JavaTypeProfile;

  public jdk.vm.ci.meta.ResolvedJavaType asSingleType();
    descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaTypeProfile this
         0: .line 191
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.allTypesRecorded:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getTypes:()[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
            arraylength
            iconst_1
            if_icmpne 2
         1: .line 192
            aload 0 /* this */
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile.getTypes:()[Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;
            iconst_0
            aaload
            invokevirtual jdk.vm.ci.meta.JavaTypeProfile$ProfiledType.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            areturn
         2: .line 194
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // jdk.vm.ci.meta.JavaTypeProfile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/vm/ci/meta/JavaTypeProfile;
}
Signature: Ljdk/vm/ci/meta/AbstractJavaProfile<Ljdk/vm/ci/meta/JavaTypeProfile$ProfiledType;Ljdk/vm/ci/meta/ResolvedJavaType;>;
SourceFile: "JavaTypeProfile.java"
NestMembers:
  jdk.vm.ci.meta.JavaTypeProfile$ProfiledType
InnerClasses:
  public ProfiledType = jdk.vm.ci.meta.JavaTypeProfile$ProfiledType of jdk.vm.ci.meta.JavaTypeProfile