public class org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider 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.sparc.SPARCHotSpotForeignCallsProvider
  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.sparc.SPARCHotSpotForeignCallsProvider 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 65
            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 66
            aload 0 /* this */
            aload 6 /* nativeABICallerSaveRegisters */
            putfield org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider.nativeABICallerSaveRegisters:[Ljdk/vm/ci/meta/Value;
         2: .line 67
            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.sparc.SPARCHotSpotForeignCallsProvider this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    3     0                          this  Lorg/graalvm/compiler/hotspot/sparc/SPARCHotSpotForeignCallsProvider;
            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=9, locals=12, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider this
        start local 1 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        start local 2 // org.graalvm.compiler.options.OptionValues options
         0: .line 71
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider.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 72
            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 73
            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 78
            getstatic jdk.vm.ci.sparc.SPARC.o0:Ljdk/vm/ci/code/Register;
            aload 4 /* target */
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.fromJavaKind:(Ljdk/vm/ci/code/Architecture;Ljdk/vm/ci/meta/JavaKind;)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 /* outgoingException */
        start local 6 // jdk.vm.ci.code.RegisterValue outgoingException
         4: .line 79
            getstatic jdk.vm.ci.sparc.SPARC.o1: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 /* outgoingExceptionPc */
        start local 7 // jdk.vm.ci.code.RegisterValue outgoingExceptionPc
         5: .line 80
            getstatic jdk.vm.ci.sparc.SPARC.i0:Ljdk/vm/ci/code/Register;
            aload 4 /* target */
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.fromJavaKind:(Ljdk/vm/ci/code/Architecture;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 8 /* incomingException */
        start local 8 // jdk.vm.ci.code.RegisterValue incomingException
         6: .line 81
            getstatic jdk.vm.ci.sparc.SPARC.i1: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 9 /* incomingExceptionPc */
        start local 9 // jdk.vm.ci.code.RegisterValue incomingExceptionPc
         7: .line 82
            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 /* outgoingException */
            aastore
            dup
            iconst_1
            aload 7 /* outgoingExceptionPc */
            aastore
            invokespecial jdk.vm.ci.code.CallingConvention.<init>:(ILjdk/vm/ci/meta/AllocatableValue;[Ljdk/vm/ci/meta/AllocatableValue;)V
            astore 10 /* outgoingExceptionCc */
        start local 10 // jdk.vm.ci.code.CallingConvention outgoingExceptionCc
         8: .line 83
            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 8 /* incomingException */
            aastore
            dup
            iconst_1
            aload 9 /* incomingExceptionPc */
            aastore
            invokespecial jdk.vm.ci.code.CallingConvention.<init>:(ILjdk/vm/ci/meta/AllocatableValue;[Ljdk/vm/ci/meta/AllocatableValue;)V
            astore 11 /* incomingExceptionCc */
        start local 11 // jdk.vm.ci.code.CallingConvention incomingExceptionCc
         9: .line 84
            aload 0 /* this */
            new org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
            dup
            getstatic org.graalvm.compiler.hotspot.HotSpotBackend.EXCEPTION_HANDLER:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
            lconst_0
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.DESTROYS_ALL_CALLER_SAVE_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
            aload 10 /* outgoingExceptionCc */
        10: .line 85
            aload 11 /* incomingExceptionCc */
            invokespecial org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.<init>:(Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention;Ljdk/vm/ci/code/CallingConvention;)V
        11: .line 84
            invokevirtual org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider.register:(Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
        12: .line 86
            aload 0 /* this */
            new org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
            dup
            getstatic org.graalvm.compiler.hotspot.HotSpotBackend.EXCEPTION_HANDLER_IN_CALLER:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
            ldc -2401018188504514833
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.DESTROYS_ALL_CALLER_SAVE_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
            aload 10 /* outgoingExceptionCc */
        13: .line 87
            aload 11 /* incomingExceptionCc */
            invokespecial org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.<init>:(Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention;Ljdk/vm/ci/code/CallingConvention;)V
        14: .line 86
            invokevirtual org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider.register:(Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
        15: .line 89
            aload 3 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useCRC32Intrinsics:Z
            ifeq 17
        16: .line 91
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.HotSpotBackend.UPDATE_BYTES_CRC32:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
            aload 3 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.updateBytesCRC32Stub:J
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            invokevirtual org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider.registerForeignCall:(Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;JLjdk/vm/ci/code/CallingConvention$Type;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
        17: .line 93
      StackMap locals: org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider 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.RegisterValue jdk.vm.ci.code.RegisterValue jdk.vm.ci.code.CallingConvention jdk.vm.ci.code.CallingConvention
      StackMap stack:
            aload 3 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useCRC32CIntrinsics:Z
            ifeq 19
        18: .line 94
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.HotSpotBackend.UPDATE_BYTES_CRC32C:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
            aload 3 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.updateBytesCRC32C:J
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            invokevirtual org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider.registerForeignCall:(Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;JLjdk/vm/ci/code/CallingConvention$Type;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
        19: .line 97
      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
        20: .line 98
            return
        end local 11 // jdk.vm.ci.code.CallingConvention incomingExceptionCc
        end local 10 // jdk.vm.ci.code.CallingConvention outgoingExceptionCc
        end local 9 // jdk.vm.ci.code.RegisterValue incomingExceptionPc
        end local 8 // jdk.vm.ci.code.RegisterValue incomingException
        end local 7 // jdk.vm.ci.code.RegisterValue outgoingExceptionPc
        end local 6 // jdk.vm.ci.code.RegisterValue outgoingException
        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.sparc.SPARCHotSpotForeignCallsProvider this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   21     0                 this  Lorg/graalvm/compiler/hotspot/sparc/SPARCHotSpotForeignCallsProvider;
            0   21     1            providers  Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            0   21     2              options  Lorg/graalvm/compiler/options/OptionValues;
            1   21     3               config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            2   21     4               target  Ljdk/vm/ci/code/TargetDescription;
            3   21     5                 word  Ljdk/vm/ci/meta/PlatformKind;
            4   21     6    outgoingException  Ljdk/vm/ci/code/RegisterValue;
            5   21     7  outgoingExceptionPc  Ljdk/vm/ci/code/RegisterValue;
            6   21     8    incomingException  Ljdk/vm/ci/code/RegisterValue;
            7   21     9  incomingExceptionPc  Ljdk/vm/ci/code/RegisterValue;
            8   21    10  outgoingExceptionCc  Ljdk/vm/ci/code/CallingConvention;
            9   21    11  incomingExceptionCc  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.sparc.SPARCHotSpotForeignCallsProvider this
         0: .line 102
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider.nativeABICallerSaveRegisters:[Ljdk/vm/ci/meta/Value;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.sparc.SPARCHotSpotForeignCallsProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/sparc/SPARCHotSpotForeignCallsProvider;
}
SourceFile: "SPARCHotSpotForeignCallsProvider.java"
InnerClasses:
  public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
  public final RegisterEffect = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage