abstract class org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp extends org.graalvm.compiler.lir.aarch64.AArch64BlockEndOp
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp
  super_class: org.graalvm.compiler.lir.aarch64.AArch64BlockEndOp
{
  private final org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config;
    descriptor: Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.code.Register thread;
    descriptor: Ljdk/vm/ci/code/Register;
    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 37
            ldc Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp;
            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 org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.graalvm.compiler.lir.LIRInstructionClass<? extends org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp>, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, jdk.vm.ci.code.Register);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstructionClass;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/code/Register;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp this
        start local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 3 // jdk.vm.ci.code.Register thread
         0: .line 43
            aload 0 /* this */
            aload 1 /* c */
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64BlockEndOp.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;)V
         1: .line 44
            aload 0 /* this */
            aload 2 /* config */
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
         2: .line 45
            aload 0 /* this */
            aload 3 /* thread */
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp.thread:Ljdk/vm/ci/code/Register;
         3: .line 46
            return
        end local 3 // jdk.vm.ci.code.Register thread
        end local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        end local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp;
            0    4     1       c  Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp;>;
            0    4     2  config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    4     3  thread  Ljdk/vm/ci/code/Register;
    Signature: (Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp;>;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/code/Register;)V
    MethodParameters:
        Name  Flags
      c       
      config  
      thread  

  protected void <init>(org.graalvm.compiler.lir.LIRInstructionClass<? extends org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp>, org.graalvm.compiler.hotspot.GraalHotSpotVMConfig);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstructionClass;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp this
        start local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         0: .line 49
            aload 0 /* this */
            aload 1 /* c */
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64BlockEndOp.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;)V
         1: .line 50
            aload 0 /* this */
            aload 2 /* config */
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
         2: .line 51
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp.thread:Ljdk/vm/ci/code/Register;
         3: .line 52
            return
        end local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        end local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp;
            0    4     1       c  Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp;>;
            0    4     2  config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    Signature: (Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp;>;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)V
    MethodParameters:
        Name  Flags
      c       
      config  

  protected void leaveFrame(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler, boolean);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp this
        start local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 2 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        start local 3 // boolean emitSafepoint
         0: .line 55
            getstatic org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp.$assertionsDisabled:Z
            ifne 1
            aload 1 /* crb */
            getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.frameContext:Lorg/graalvm/compiler/lir/asm/FrameContext;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            ldc "We never elide frames in aarch64"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 56
      StackMap locals:
      StackMap stack:
            aload 1 /* crb */
            getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.frameContext:Lorg/graalvm/compiler/lir/asm/FrameContext;
            aload 1 /* crb */
            invokeinterface org.graalvm.compiler.lir.asm.FrameContext.leave:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;)V
         2: .line 57
            iload 3 /* emitSafepoint */
            ifeq 13
         3: .line 58
            aconst_null
            astore 4
            aconst_null
            astore 5
         4: aload 2 /* masm */
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.getScratchRegister:()Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler$ScratchRegister;
            astore 6 /* sc */
        start local 6 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$ScratchRegister sc
         5: .line 59
            aload 6 /* sc */
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$ScratchRegister.getRegister:()Ljdk/vm/ci/code/Register;
            astore 7 /* scratch */
        start local 7 // jdk.vm.ci.code.Register scratch
         6: .line 60
            aload 1 /* crb */
            aload 2 /* masm */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            iconst_1
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp.thread:Ljdk/vm/ci/code/Register;
            aload 7 /* scratch */
            aconst_null
            invokestatic org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotSafepointOp.emitCode:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ZLjdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/lir/LIRFrameState;)V
        end local 7 // jdk.vm.ci.code.Register scratch
         7: .line 61
            aload 6 /* sc */
            ifnull 13
            aload 6 /* sc */
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$ScratchRegister.close:()V
            goto 13
      StackMap locals: org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$ScratchRegister
      StackMap stack: java.lang.Throwable
         8: astore 4
            aload 6 /* sc */
            ifnull 9
            aload 6 /* sc */
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$ScratchRegister.close:()V
        end local 6 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$ScratchRegister sc
      StackMap locals:
      StackMap stack:
         9: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 5
            aload 4
            ifnonnull 11
            aload 5
            astore 4
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 4
            aload 5
            if_acmpeq 12
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 4
            athrow
        13: .line 63
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean emitSafepoint
        end local 2 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
        end local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        end local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotEpilogueOp this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp;
            0   14     1            crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0   14     2           masm  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;
            0   14     3  emitSafepoint  Z
            5    9     6             sc  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler$ScratchRegister;
            6    7     7        scratch  Ljdk/vm/ci/code/Register;
      Exception table:
        from    to  target  type
           5     7       8  any
           4    10      10  any
    MethodParameters:
               Name  Flags
      crb            
      masm           
      emitSafepoint  
}
SourceFile: "AArch64HotSpotEpilogueOp.java"
InnerClasses:
  public ScratchRegister = org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler$ScratchRegister of org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler