public abstract class org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure implements org.graalvm.compiler.lir.SwitchStrategy$SwitchClosure
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure
  super_class: java.lang.Object
{
  private final org.graalvm.compiler.lir.asm.CompilationResultBuilder crb;
    descriptor: Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final org.graalvm.compiler.lir.LabelRef[] keyTargets;
    descriptor: [Lorg/graalvm/compiler/lir/LabelRef;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.lir.LabelRef defaultTarget;
    descriptor: Lorg/graalvm/compiler/lir/LabelRef;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.Assembler, org.graalvm.compiler.lir.LabelRef[], org.graalvm.compiler.lir.LabelRef);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/Assembler;[Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
        start local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 2 // org.graalvm.compiler.asm.Assembler masm
        start local 3 // org.graalvm.compiler.lir.LabelRef[] keyTargets
        start local 4 // org.graalvm.compiler.lir.LabelRef defaultTarget
         0: .line 100
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 101
            aload 0 /* this */
            aload 1 /* crb */
            putfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.crb:Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
         2: .line 102
            aload 0 /* this */
            aload 2 /* masm */
            putfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.masm:Lorg/graalvm/compiler/asm/Assembler;
         3: .line 103
            aload 0 /* this */
            aload 3 /* keyTargets */
            putfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.keyTargets:[Lorg/graalvm/compiler/lir/LabelRef;
         4: .line 104
            aload 0 /* this */
            aload 4 /* defaultTarget */
            putfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.defaultTarget:Lorg/graalvm/compiler/lir/LabelRef;
         5: .line 105
            return
        end local 4 // org.graalvm.compiler.lir.LabelRef defaultTarget
        end local 3 // org.graalvm.compiler.lir.LabelRef[] keyTargets
        end local 2 // org.graalvm.compiler.asm.Assembler masm
        end local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        end local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/graalvm/compiler/lir/SwitchStrategy$BaseSwitchClosure;
            0    6     1            crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0    6     2           masm  Lorg/graalvm/compiler/asm/Assembler;
            0    6     3     keyTargets  [Lorg/graalvm/compiler/lir/LabelRef;
            0    6     4  defaultTarget  Lorg/graalvm/compiler/lir/LabelRef;
    MethodParameters:
               Name  Flags
      crb            
      masm           
      keyTargets     
      defaultTarget  

  protected abstract void conditionalJump(int, org.graalvm.compiler.core.common.calc.Condition, org.graalvm.compiler.asm.Label);
    descriptor: (ILorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/asm/Label;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      index      
      condition  
      target     

  public void conditionalJump(int, org.graalvm.compiler.core.common.calc.Condition, boolean);
    descriptor: (ILorg/graalvm/compiler/core/common/calc/Condition;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
        start local 1 // int index
        start local 2 // org.graalvm.compiler.core.common.calc.Condition condition
        start local 3 // boolean targetDefault
         0: .line 115
            iload 3 /* targetDefault */
            ifeq 1
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.defaultTarget:Lorg/graalvm/compiler/lir/LabelRef;
            invokevirtual org.graalvm.compiler.lir.LabelRef.label:()Lorg/graalvm/compiler/asm/Label;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.keyTargets:[Lorg/graalvm/compiler/lir/LabelRef;
            iload 1 /* index */
            aaload
            invokevirtual org.graalvm.compiler.lir.LabelRef.label:()Lorg/graalvm/compiler/asm/Label;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.asm.Label
         2: astore 4 /* target */
        start local 4 // org.graalvm.compiler.asm.Label target
         3: .line 116
            aload 2 /* condition */
            ifnonnull 6
         4: .line 117
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.masm:Lorg/graalvm/compiler/asm/Assembler;
            aload 4 /* target */
            invokevirtual org.graalvm.compiler.asm.Assembler.jmp:(Lorg/graalvm/compiler/asm/Label;)V
         5: .line 118
            goto 7
         6: .line 119
      StackMap locals: org.graalvm.compiler.asm.Label
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            aload 2 /* condition */
            aload 4 /* target */
            invokevirtual org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.conditionalJump:(ILorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/asm/Label;)V
         7: .line 121
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.asm.Label target
        end local 3 // boolean targetDefault
        end local 2 // org.graalvm.compiler.core.common.calc.Condition condition
        end local 1 // int index
        end local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/graalvm/compiler/lir/SwitchStrategy$BaseSwitchClosure;
            0    8     1          index  I
            0    8     2      condition  Lorg/graalvm/compiler/core/common/calc/Condition;
            0    8     3  targetDefault  Z
            3    8     4         target  Lorg/graalvm/compiler/asm/Label;
    MethodParameters:
               Name  Flags
      index          
      condition      
      targetDefault  

  public void conditionalJumpOrDefault(int, org.graalvm.compiler.core.common.calc.Condition, boolean);
    descriptor: (ILorg/graalvm/compiler/core/common/calc/Condition;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
        start local 1 // int index
        start local 2 // org.graalvm.compiler.core.common.calc.Condition condition
        start local 3 // boolean canFallThrough
         0: .line 125
            iload 3 /* canFallThrough */
            ifeq 3
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.crb:Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.defaultTarget:Lorg/graalvm/compiler/lir/LabelRef;
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.isSuccessorEdge:(Lorg/graalvm/compiler/lir/LabelRef;)Z
            ifeq 3
         1: .line 126
            aload 0 /* this */
            iload 1 /* index */
            aload 2 /* condition */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.keyTargets:[Lorg/graalvm/compiler/lir/LabelRef;
            iload 1 /* index */
            aaload
            invokevirtual org.graalvm.compiler.lir.LabelRef.label:()Lorg/graalvm/compiler/asm/Label;
            invokevirtual org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.conditionalJump:(ILorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/asm/Label;)V
         2: .line 127
            goto 8
      StackMap locals:
      StackMap stack:
         3: iload 3 /* canFallThrough */
            ifeq 6
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.crb:Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.keyTargets:[Lorg/graalvm/compiler/lir/LabelRef;
            iload 1 /* index */
            aaload
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.isSuccessorEdge:(Lorg/graalvm/compiler/lir/LabelRef;)Z
            ifeq 6
         4: .line 128
            aload 0 /* this */
            iload 1 /* index */
            aload 2 /* condition */
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.defaultTarget:Lorg/graalvm/compiler/lir/LabelRef;
            invokevirtual org.graalvm.compiler.lir.LabelRef.label:()Lorg/graalvm/compiler/asm/Label;
            invokevirtual org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.conditionalJump:(ILorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/asm/Label;)V
         5: .line 129
            goto 8
         6: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            aload 2 /* condition */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.keyTargets:[Lorg/graalvm/compiler/lir/LabelRef;
            iload 1 /* index */
            aaload
            invokevirtual org.graalvm.compiler.lir.LabelRef.label:()Lorg/graalvm/compiler/asm/Label;
            invokevirtual org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.conditionalJump:(ILorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/asm/Label;)V
         7: .line 131
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.masm:Lorg/graalvm/compiler/asm/Assembler;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.defaultTarget:Lorg/graalvm/compiler/lir/LabelRef;
            invokevirtual org.graalvm.compiler.lir.LabelRef.label:()Lorg/graalvm/compiler/asm/Label;
            invokevirtual org.graalvm.compiler.asm.Assembler.jmp:(Lorg/graalvm/compiler/asm/Label;)V
         8: .line 133
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean canFallThrough
        end local 2 // org.graalvm.compiler.core.common.calc.Condition condition
        end local 1 // int index
        end local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lorg/graalvm/compiler/lir/SwitchStrategy$BaseSwitchClosure;
            0    9     1           index  I
            0    9     2       condition  Lorg/graalvm/compiler/core/common/calc/Condition;
            0    9     3  canFallThrough  Z
    MethodParameters:
                Name  Flags
      index           
      condition       
      canFallThrough  

  public org.graalvm.compiler.asm.Label conditionalJump(int, org.graalvm.compiler.core.common.calc.Condition);
    descriptor: (ILorg/graalvm/compiler/core/common/calc/Condition;)Lorg/graalvm/compiler/asm/Label;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
        start local 1 // int index
        start local 2 // org.graalvm.compiler.core.common.calc.Condition condition
         0: .line 137
            new org.graalvm.compiler.asm.Label
            dup
            invokespecial org.graalvm.compiler.asm.Label.<init>:()V
            astore 3 /* label */
        start local 3 // org.graalvm.compiler.asm.Label label
         1: .line 138
            aload 0 /* this */
            iload 1 /* index */
            aload 2 /* condition */
            aload 3 /* label */
            invokevirtual org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.conditionalJump:(ILorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/asm/Label;)V
         2: .line 139
            aload 3 /* label */
            areturn
        end local 3 // org.graalvm.compiler.asm.Label label
        end local 2 // org.graalvm.compiler.core.common.calc.Condition condition
        end local 1 // int index
        end local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/graalvm/compiler/lir/SwitchStrategy$BaseSwitchClosure;
            0    3     1      index  I
            0    3     2  condition  Lorg/graalvm/compiler/core/common/calc/Condition;
            1    3     3      label  Lorg/graalvm/compiler/asm/Label;
    MethodParameters:
           Name  Flags
      index      
      condition  

  public void bind(org.graalvm.compiler.asm.Label);
    descriptor: (Lorg/graalvm/compiler/asm/Label;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
        start local 1 // org.graalvm.compiler.asm.Label label
         0: .line 144
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.masm:Lorg/graalvm/compiler/asm/Assembler;
            aload 1 /* label */
            invokevirtual org.graalvm.compiler.asm.Assembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
         1: .line 145
            return
        end local 1 // org.graalvm.compiler.asm.Label label
        end local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/graalvm/compiler/lir/SwitchStrategy$BaseSwitchClosure;
            0    2     1  label  Lorg/graalvm/compiler/asm/Label;
    MethodParameters:
       Name  Flags
      label  

  public boolean isSameTarget(int, int);
    descriptor: (II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
        start local 1 // int index1
        start local 2 // int index2
         0: .line 149
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.keyTargets:[Lorg/graalvm/compiler/lir/LabelRef;
            iload 1 /* index1 */
            aaload
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure.keyTargets:[Lorg/graalvm/compiler/lir/LabelRef;
            iload 2 /* index2 */
            aaload
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // int index2
        end local 1 // int index1
        end local 0 // org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/graalvm/compiler/lir/SwitchStrategy$BaseSwitchClosure;
            0    2     1  index1  I
            0    2     2  index2  I
    MethodParameters:
        Name  Flags
      index1  
      index2  
}
SourceFile: "SwitchStrategy.java"
NestHost: org.graalvm.compiler.lir.SwitchStrategy
InnerClasses:
  public abstract BaseSwitchClosure = org.graalvm.compiler.lir.SwitchStrategy$BaseSwitchClosure of org.graalvm.compiler.lir.SwitchStrategy
  private abstract SwitchClosure = org.graalvm.compiler.lir.SwitchStrategy$SwitchClosure of org.graalvm.compiler.lir.SwitchStrategy