public class org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider extends org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider
  super_class: org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider
{
  private final jdk.vm.ci.meta.Value[] nativeABICallerSaveRegisters;
    descriptor: [Ljdk/vm/ci/meta/Value;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider, org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider, jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.code.CodeCacheProvider, org.graalvm.compiler.word.WordTypes, jdk.vm.ci.meta.Value[]);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;[Ljdk/vm/ci/meta/Value;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider this
        start local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider jvmciRuntime
        start local 2 // org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider runtime
        start local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 4 // jdk.vm.ci.code.CodeCacheProvider codeCache
        start local 5 // org.graalvm.compiler.word.WordTypes wordTypes
        start local 6 // jdk.vm.ci.meta.Value[] nativeABICallerSaveRegisters
         0: .line 61
            aload 0 /* this */
            aload 1 /* jvmciRuntime */
            aload 2 /* runtime */
            aload 3 /* metaAccess */
            aload 4 /* codeCache */
            aload 5 /* wordTypes */
            invokespecial org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider.<init>:(Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;)V
         1: .line 62
            aload 0 /* this */
            aload 6 /* nativeABICallerSaveRegisters */
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.nativeABICallerSaveRegisters:[Ljdk/vm/ci/meta/Value;
         2: .line 63
            return
        end local 6 // jdk.vm.ci.meta.Value[] nativeABICallerSaveRegisters
        end local 5 // org.graalvm.compiler.word.WordTypes wordTypes
        end local 4 // jdk.vm.ci.code.CodeCacheProvider codeCache
        end local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 2 // org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider runtime
        end local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider jvmciRuntime
        end local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    3     0                          this  Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotForeignCallsProvider;
            0    3     1                  jvmciRuntime  Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            0    3     2                       runtime  Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            0    3     3                    metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    3     4                     codeCache  Ljdk/vm/ci/code/CodeCacheProvider;
            0    3     5                     wordTypes  Lorg/graalvm/compiler/word/WordTypes;
            0    3     6  nativeABICallerSaveRegisters  [Ljdk/vm/ci/meta/Value;
    MethodParameters:
                              Name  Flags
      jvmciRuntime                  
      runtime                       
      metaAccess                    
      codeCache                     
      wordTypes                     
      nativeABICallerSaveRegisters  

  public void initialize(org.graalvm.compiler.hotspot.meta.HotSpotProviders);
    descriptor: (Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=15, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider this
        start local 1 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
         0: .line 67
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.runtime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            astore 2 /* config */
        start local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         1: .line 68
            aload 1 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
            invokevirtual jdk.vm.ci.hotspot.HotSpotCodeCacheProvider.getTarget:()Ljdk/vm/ci/code/TargetDescription;
            astore 3 /* target */
        start local 3 // jdk.vm.ci.code.TargetDescription target
         2: .line 69
            aload 3 /* target */
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            invokevirtual jdk.vm.ci.code.Architecture.getWordKind:()Ljdk/vm/ci/meta/PlatformKind;
            astore 4 /* word */
        start local 4 // jdk.vm.ci.meta.PlatformKind word
         3: .line 73
            getstatic jdk.vm.ci.aarch64.AArch64.r0:Ljdk/vm/ci/code/Register;
            aload 4 /* word */
            invokestatic org.graalvm.compiler.core.common.LIRKind.reference:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 5 /* exception */
        start local 5 // jdk.vm.ci.code.RegisterValue exception
         4: .line 74
            getstatic jdk.vm.ci.aarch64.AArch64.r3:Ljdk/vm/ci/code/Register;
            aload 4 /* word */
            invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 6 /* exceptionPc */
        start local 6 // jdk.vm.ci.code.RegisterValue exceptionPc
         5: .line 75
            new jdk.vm.ci.code.CallingConvention
            dup
            iconst_0
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            iconst_2
            anewarray jdk.vm.ci.meta.AllocatableValue
            dup
            iconst_0
            aload 5 /* exception */
            aastore
            dup
            iconst_1
            aload 6 /* exceptionPc */
            aastore
            invokespecial jdk.vm.ci.code.CallingConvention.<init>:(ILjdk/vm/ci/meta/AllocatableValue;[Ljdk/vm/ci/meta/AllocatableValue;)V
            astore 7 /* exceptionCc */
        start local 7 // jdk.vm.ci.code.CallingConvention exceptionCc
         6: .line 76
            aload 0 /* this */
            new org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
            dup
            getstatic org.graalvm.compiler.hotspot.HotSpotBackend.EXCEPTION_HANDLER:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            lconst_0
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.PRESERVES_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition.LEAF:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;
            aload 7 /* exceptionCc */
            aconst_null
            iconst_0
            iconst_1
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokespecial org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Ljdk/vm/ci/code/CallingConvention;Ljdk/vm/ci/code/CallingConvention;Z[Lorg/graalvm/compiler/core/common/LocationIdentity;)V
            invokevirtual org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.register:(Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
         7: .line 77
            aload 0 /* this */
            new org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
            dup
            getstatic org.graalvm.compiler.hotspot.HotSpotBackend.EXCEPTION_HANDLER_IN_CALLER:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            ldc -2401018188504514833
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.PRESERVES_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition.LEAF:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;
            aload 7 /* exceptionCc */
            aconst_null
            iconst_0
            iconst_1
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokespecial org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Ljdk/vm/ci/code/CallingConvention;Ljdk/vm/ci/code/CallingConvention;Z[Lorg/graalvm/compiler/core/common/LocationIdentity;)V
            invokevirtual org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.register:(Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
         8: .line 79
            getstatic org.graalvm.compiler.hotspot.HotSpotBackend$Options.PreferGraalStubs:Lorg/graalvm/compiler/options/OptionValue;
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 10
         9: .line 80
            ldc "PreferGraalStubs"
            invokestatic org.graalvm.compiler.debug.GraalError.unimplemented:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        10: .line 84
      StackMap locals: org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider org.graalvm.compiler.hotspot.meta.HotSpotProviders org.graalvm.compiler.hotspot.GraalHotSpotVMConfig jdk.vm.ci.code.TargetDescription jdk.vm.ci.meta.PlatformKind jdk.vm.ci.code.RegisterValue jdk.vm.ci.code.RegisterValue jdk.vm.ci.code.CallingConvention
      StackMap stack:
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useCRC32Intrinsics:Z
            ifeq 12
        11: .line 85
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.replacements.CRC32Substitutions.UPDATE_BYTES_CRC32:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 2 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.updateBytesCRC32Stub:J
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.PRESERVES_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition.LEAF:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;
            iconst_0
            iconst_1
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.registerForeignCall:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;JLjdk/vm/ci/code/CallingConvention$Type;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Z[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
        12: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* providers */
            invokespecial org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider.initialize:(Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;)V
        13: .line 89
            return
        end local 7 // jdk.vm.ci.code.CallingConvention exceptionCc
        end local 6 // jdk.vm.ci.code.RegisterValue exceptionPc
        end local 5 // jdk.vm.ci.code.RegisterValue exception
        end local 4 // jdk.vm.ci.meta.PlatformKind word
        end local 3 // jdk.vm.ci.code.TargetDescription target
        end local 2 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 1 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        end local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotForeignCallsProvider;
            0   14     1    providers  Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            1   14     2       config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            2   14     3       target  Ljdk/vm/ci/code/TargetDescription;
            3   14     4         word  Ljdk/vm/ci/meta/PlatformKind;
            4   14     5    exception  Ljdk/vm/ci/code/RegisterValue;
            5   14     6  exceptionPc  Ljdk/vm/ci/code/RegisterValue;
            6   14     7  exceptionCc  Ljdk/vm/ci/code/CallingConvention;
    MethodParameters:
           Name  Flags
      providers  

  public jdk.vm.ci.meta.Value[] getNativeABICallerSaveRegisters();
    descriptor: ()[Ljdk/vm/ci/meta/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider this
         0: .line 93
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.nativeABICallerSaveRegisters:[Ljdk/vm/ci/meta/Value;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/aarch64/AArch64HotSpotForeignCallsProvider;
}
SourceFile: "AArch64HotSpotForeignCallsProvider.java"
InnerClasses:
  public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
  public Options = org.graalvm.compiler.hotspot.HotSpotBackend$Options of org.graalvm.compiler.hotspot.HotSpotBackend
  public final RegisterEffect = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
  public final Transition = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage