public abstract class org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp extends org.graalvm.compiler.lir.aarch64.AArch64Call$CallOp
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp
  super_class: org.graalvm.compiler.lir.aarch64.AArch64Call$CallOp
{
  protected final org.graalvm.compiler.core.common.spi.ForeignCallLinkage callTarget;
    descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallLinkage;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.graalvm.compiler.asm.Label label;
    descriptor: Lorg/graalvm/compiler/asm/Label;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected void <init>(org.graalvm.compiler.lir.LIRInstructionClass<? extends org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp>, org.graalvm.compiler.core.common.spi.ForeignCallLinkage, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value[], jdk.vm.ci.meta.Value[], org.graalvm.compiler.lir.LIRFrameState, org.graalvm.compiler.asm.Label);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstructionClass;Lorg/graalvm/compiler/core/common/spi/ForeignCallLinkage;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;Lorg/graalvm/compiler/asm/Label;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=8
        start local 0 // org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp this
        start local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        start local 2 // org.graalvm.compiler.core.common.spi.ForeignCallLinkage callTarget
        start local 3 // jdk.vm.ci.meta.Value result
        start local 4 // jdk.vm.ci.meta.Value[] parameters
        start local 5 // jdk.vm.ci.meta.Value[] temps
        start local 6 // org.graalvm.compiler.lir.LIRFrameState state
        start local 7 // org.graalvm.compiler.asm.Label label
         0: .line 134
            aload 0 /* this */
            aload 1 /* c */
            aload 3 /* result */
            aload 4 /* parameters */
            aload 5 /* temps */
            aload 6 /* state */
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64Call$CallOp.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;)V
         1: .line 135
            aload 0 /* this */
            aload 2 /* callTarget */
            putfield org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp.callTarget:Lorg/graalvm/compiler/core/common/spi/ForeignCallLinkage;
         2: .line 136
            aload 0 /* this */
            aload 7 /* label */
            putfield org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp.label:Lorg/graalvm/compiler/asm/Label;
         3: .line 137
            return
        end local 7 // org.graalvm.compiler.asm.Label label
        end local 6 // org.graalvm.compiler.lir.LIRFrameState state
        end local 5 // jdk.vm.ci.meta.Value[] temps
        end local 4 // jdk.vm.ci.meta.Value[] parameters
        end local 3 // jdk.vm.ci.meta.Value result
        end local 2 // org.graalvm.compiler.core.common.spi.ForeignCallLinkage callTarget
        end local 1 // org.graalvm.compiler.lir.LIRInstructionClass c
        end local 0 // org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/graalvm/compiler/lir/aarch64/AArch64Call$ForeignCallOp;
            0    4     1           c  Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/lir/aarch64/AArch64Call$ForeignCallOp;>;
            0    4     2  callTarget  Lorg/graalvm/compiler/core/common/spi/ForeignCallLinkage;
            0    4     3      result  Ljdk/vm/ci/meta/Value;
            0    4     4  parameters  [Ljdk/vm/ci/meta/Value;
            0    4     5       temps  [Ljdk/vm/ci/meta/Value;
            0    4     6       state  Lorg/graalvm/compiler/lir/LIRFrameState;
            0    4     7       label  Lorg/graalvm/compiler/asm/Label;
    Signature: (Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/lir/aarch64/AArch64Call$ForeignCallOp;>;Lorg/graalvm/compiler/core/common/spi/ForeignCallLinkage;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;Lorg/graalvm/compiler/asm/Label;)V
    MethodParameters:
            Name  Flags
      c           
      callTarget  
      result      
      parameters  
      temps       
      state       
      label       

  public boolean destroysCallerSavedRegisters();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp this
         0: .line 141
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp.callTarget:Lorg/graalvm/compiler/core/common/spi/ForeignCallLinkage;
            invokeinterface org.graalvm.compiler.core.common.spi.ForeignCallLinkage.destroysRegisters:()Z
            ireturn
        end local 0 // org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/aarch64/AArch64Call$ForeignCallOp;

  public void emitCode(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp this
        start local 1 // org.graalvm.compiler.lir.asm.CompilationResultBuilder crb
        start local 2 // org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler masm
         0: .line 146
            aload 0 /* this */
            aload 1 /* crb */
            aload 2 /* masm */
            invokevirtual org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp.emitCall:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;)V
         1: .line 147
            return
        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.lir.aarch64.AArch64Call$ForeignCallOp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/aarch64/AArch64Call$ForeignCallOp;
            0    2     1   crb  Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
            0    2     2  masm  Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;
    MethodParameters:
      Name  Flags
      crb   
      masm  

  protected abstract void emitCall(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler);
    descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/aarch64/AArch64MacroAssembler;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      crb   
      masm  
}
SourceFile: "AArch64Call.java"
NestHost: org.graalvm.compiler.lir.aarch64.AArch64Call
InnerClasses:
  public abstract CallOp = org.graalvm.compiler.lir.aarch64.AArch64Call$CallOp of org.graalvm.compiler.lir.aarch64.AArch64Call
  public abstract ForeignCallOp = org.graalvm.compiler.lir.aarch64.AArch64Call$ForeignCallOp of org.graalvm.compiler.lir.aarch64.AArch64Call