public class org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.aarch64.AArch64ControlFlow this
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.lir.aarch64.AArch64ControlFlow this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/aarch64/AArch64ControlFlow;

  private static void emitCompare(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value, org.graalvm.compiler.lir.ConstantValue);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/ConstantValue;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 1 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        start local 2 // jdk.vm.ci.meta.Value key
        start local 3 // jdk.vm.ci.meta.Value scratchValue
        start local 4 // org.graalvm.compiler.lir.ConstantValue c
         0: .line 388
            aload 4 /* c */
            invokevirtual org.graalvm.compiler.lir.ConstantValue.getJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 5 /* imm */
        start local 5 // long imm
         1: .line 389
            aload 2 /* key */
            invokevirtual jdk.vm.ci.meta.Value.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            invokeinterface jdk.vm.ci.meta.PlatformKind.getSizeInBytes:()I
            bipush 8
            imul
            istore 7 /* size */
        start local 7 // int size
         2: .line 390
            lload 5 /* imm */
            invokestatic org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.isComparisonImmediate:(J)Z
            ifeq 5
         3: .line 391
            aload 1 /* masm */
            iload 7 /* size */
            aload 2 /* key */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            lload 5 /* imm */
            l2i
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.cmp:(ILjdk/vm/ci/code/Register;I)V
         4: .line 392
            goto 7
         5: .line 393
      StackMap locals: long int
      StackMap stack:
            aload 0 /* crb */
            aload 1 /* masm */
            aload 3 /* scratchValue */
            invokestatic jdk.vm.ci.code.ValueUtil.asAllocatableValue:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            aload 4 /* c */
            invokestatic org.graalvm.compiler.lir.aarch64.AArch64Move.move:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
         6: .line 394
            aload 1 /* masm */
            iload 7 /* size */
            aload 2 /* key */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            aload 3 /* scratchValue */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.cmp:(ILjdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
         7: .line 396
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int size
        end local 5 // long imm
        end local 4 // org.graalvm.compiler.lir.ConstantValue c
        end local 3 // jdk.vm.ci.meta.Value scratchValue
        end local 2 // jdk.vm.ci.meta.Value key
        end local 1 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        end local 0 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0           crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0    8     1          masm  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;
            0    8     2           key  Ljdk/vm/ci/meta/Value;
            0    8     3  scratchValue  Ljdk/vm/ci/meta/Value;
            0    8     4             c  Lorg/graalvm/compiler/lir/ConstantValue;
            1    8     5           imm  J
            2    8     7          size  I
    MethodParameters:
              Name  Flags
      crb           
      masm          
      key           
      scratchValue  
      c             

  private static boolean isFarBranch(org.graalvm.compiler.lir.LIRInstruction, int, org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler, org.graalvm.compiler.asm.Label);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;ILorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;Lorg/graalvm/compiler/asm/Label;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.graalvm.compiler.lir.LIRInstruction instruction
        start local 1 // int offsetBits
        start local 2 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 3 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        start local 4 // org.graalvm.compiler.asm.Label label
         0: .line 400
            aload 4 /* label */
            invokevirtual org.graalvm.compiler.asm.Label.isBound:()Z
            ifeq 5
         1: .line 404
            iload 1 /* offsetBits */
            iconst_2
            iadd
            aload 3 /* masm */
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.position:()I
            aload 4 /* label */
            invokevirtual org.graalvm.compiler.asm.Label.position:()I
            isub
            invokestatic org.graalvm.compiler.core.common.NumUtil.isSignedNbit:(II)Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 5 /* isFarBranch */
        start local 5 // boolean isFarBranch
         4: .line 405
            goto 9
        end local 5 // boolean isFarBranch
         5: .line 409
      StackMap locals:
      StackMap stack:
            iconst_1
            iload 1 /* offsetBits */
            iconst_2
            isub
            ishl
            istore 6 /* maxLIRDistance */
        start local 6 // int maxLIRDistance
         6: .line 410
            aload 2 /* crb */
            aload 0 /* instruction */
            aload 4 /* label */
            iload 6 /* maxLIRDistance */
            invokevirtual org.graalvm.compiler.lir.asm.CompilationResultBuilder.labelWithinRange:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/asm/Label;I)Z
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction int org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler org.graalvm.compiler.asm.Label top int
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 5 /* isFarBranch */
        end local 6 // int maxLIRDistance
        start local 5 // boolean isFarBranch
         9: .line 412
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction int org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler org.graalvm.compiler.asm.Label int
      StackMap stack:
            iload 5 /* isFarBranch */
            ireturn
        end local 5 // boolean isFarBranch
        end local 4 // org.graalvm.compiler.asm.Label label
        end local 3 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        end local 2 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        end local 1 // int offsetBits
        end local 0 // org.graalvm.compiler.lir.LIRInstruction instruction
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0     instruction  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   10     1      offsetBits  I
            0   10     2             crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0   10     3            masm  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;
            0   10     4           label  Lorg/graalvm/compiler/asm/Label;
            4    5     5     isFarBranch  Z
            9   10     5     isFarBranch  Z
            6    9     6  maxLIRDistance  I
    MethodParameters:
             Name  Flags
      instruction  
      offsetBits   
      crb          
      masm         
      label        
}
SourceFile: "AArch64ControlFlow.java"
NestMembers:
  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$AbstractBranchOp  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$BitTestAndBranchOp  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$BranchOp  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$CompareBranchZeroOp  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$CondMoveOp  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$CondSetOp  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$ReturnOp  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$StrategySwitchOp  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$StrategySwitchOp$SwitchClosure  org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$TableSwitchOp
InnerClasses:
  public abstract AbstractBranchOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$AbstractBranchOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  public BitTestAndBranchOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$BitTestAndBranchOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  public BranchOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$BranchOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  public CompareBranchZeroOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$CompareBranchZeroOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  public CondMoveOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$CondMoveOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  public CondSetOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$CondSetOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  public final ReturnOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$ReturnOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  public StrategySwitchOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$StrategySwitchOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow
  public final TableSwitchOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$TableSwitchOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow