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.HotSpotJVMCIRuntime, 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/HotSpotJVMCIRuntime;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.HotSpotJVMCIRuntime 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 64
            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/HotSpotJVMCIRuntime;Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;)V
         1: .line 65
            aload 0 /* this */
            aload 6 /* nativeABICallerSaveRegisters */
            putfield org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.nativeABICallerSaveRegisters:[Ljdk/vm/ci/meta/Value;
         2: .line 66
            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.HotSpotJVMCIRuntime 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/HotSpotJVMCIRuntime;
            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, org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/options/OptionValues;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=15, locals=9, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider this
        start local 1 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        start local 2 // org.graalvm.compiler.options.OptionValues options
         0: .line 70
            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 3 /* config */
        start local 3 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         1: .line 71
            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 4 /* target */
        start local 4 // jdk.vm.ci.code.TargetDescription target
         2: .line 72
            aload 4 /* 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 5 /* word */
        start local 5 // jdk.vm.ci.meta.PlatformKind word
         3: .line 76
            getstatic jdk.vm.ci.aarch64.AArch64.r0:Ljdk/vm/ci/code/Register;
            aload 5 /* 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 6 /* exception */
        start local 6 // jdk.vm.ci.code.RegisterValue exception
         4: .line 77
            getstatic jdk.vm.ci.aarch64.AArch64.r3:Ljdk/vm/ci/code/Register;
            aload 5 /* 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 7 /* exceptionPc */
        start local 7 // jdk.vm.ci.code.RegisterValue exceptionPc
         5: .line 78
            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 6 /* exception */
            aastore
            dup
            iconst_1
            aload 7 /* exceptionPc */
            aastore
            invokespecial jdk.vm.ci.code.CallingConvention.<init>:(ILjdk/vm/ci/meta/AllocatableValue;[Ljdk/vm/ci/meta/AllocatableValue;)V
            astore 8 /* exceptionCc */
        start local 8 // jdk.vm.ci.code.CallingConvention exceptionCc
         6: .line 79
            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;
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability.REEXECUTABLE_ONLY_AFTER_EXCEPTION:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;
            aload 8 /* exceptionCc */
            aconst_null
            iconst_1
            anewarray jdk.internal.vm.compiler.word.LocationIdentity
            dup
            iconst_0
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/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;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;Ljdk/vm/ci/code/CallingConvention;Ljdk/vm/ci/code/CallingConvention;[Ljdk/internal/vm/compiler/word/LocationIdentity;)V
            invokevirtual org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.register:(Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
         7: .line 80
            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;
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability.REEXECUTABLE_ONLY_AFTER_EXCEPTION:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;
            aload 8 /* exceptionCc */
            aconst_null
            iconst_1
            anewarray jdk.internal.vm.compiler.word.LocationIdentity
            dup
            iconst_0
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/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;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;Ljdk/vm/ci/code/CallingConvention;Ljdk/vm/ci/code/CallingConvention;[Ljdk/internal/vm/compiler/word/LocationIdentity;)V
            invokevirtual org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider.register:(Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
         8: .line 83
            aload 3 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useCRC32Intrinsics:Z
            ifeq 10
         9: .line 84
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.replacements.CRC32Substitutions.UPDATE_BYTES_CRC32:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 3 /* 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;
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability.REEXECUTABLE_ONLY_AFTER_EXCEPTION:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;
            iconst_1
            anewarray jdk.internal.vm.compiler.word.LocationIdentity
            dup
            iconst_0
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/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;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
        10: .line 86
      StackMap locals: org.graalvm.compiler.hotspot.aarch64.AArch64HotSpotForeignCallsProvider org.graalvm.compiler.hotspot.meta.HotSpotProviders org.graalvm.compiler.options.OptionValues 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 3 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useCRC32CIntrinsics:Z
            ifeq 12
        11: .line 87
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.replacements.CRC32CSubstitutions.UPDATE_BYTES_CRC32C:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 3 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.updateBytesCRC32C: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;
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability.REEXECUTABLE_ONLY_AFTER_EXCEPTION:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;
            iconst_1
            anewarray jdk.internal.vm.compiler.word.LocationIdentity
            dup
            iconst_0
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/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;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
        12: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* providers */
            aload 2 /* options */
            invokespecial org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider.initialize:(Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/options/OptionValues;)V
        13: .line 91
            return
        end local 8 // jdk.vm.ci.code.CallingConvention exceptionCc
        end local 7 // jdk.vm.ci.code.RegisterValue exceptionPc
        end local 6 // jdk.vm.ci.code.RegisterValue exception
        end local 5 // jdk.vm.ci.meta.PlatformKind word
        end local 4 // jdk.vm.ci.code.TargetDescription target
        end local 3 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 2 // org.graalvm.compiler.options.OptionValues options
        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;
            0   14     2      options  Lorg/graalvm/compiler/options/OptionValues;
            1   14     3       config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            2   14     4       target  Ljdk/vm/ci/code/TargetDescription;
            3   14     5         word  Ljdk/vm/ci/meta/PlatformKind;
            4   14     6    exception  Ljdk/vm/ci/code/RegisterValue;
            5   14     7  exceptionPc  Ljdk/vm/ci/code/RegisterValue;
            6   14     8  exceptionCc  Ljdk/vm/ci/code/CallingConvention;
    MethodParameters:
           Name  Flags
      providers  
      options    

  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 95
            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 final Reexecutability = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
  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