public class org.graalvm.compiler.hotspot.replacements.DigestBaseSubstitutions
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.replacements.DigestBaseSubstitutions
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.replacements.DigestBaseSubstitutions this
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.replacements.DigestBaseSubstitutions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/replacements/DigestBaseSubstitutions;

  static int implCompressMultiBlock0(java.lang.Object, byte[], int, int);
    descriptor: (Ljava/lang/Object;[BII)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // java.lang.Object receiver
        start local 1 // byte[] buf
        start local 2 // int ofs
        start local 3 // int limit
         0: .line 53
            aload 0 /* receiver */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.methodHolderClass:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokestatic org.graalvm.compiler.nodes.PiNode.piCastNonNull:(Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Object;
            astore 4 /* realReceiver */
        start local 4 // java.lang.Object realReceiver
         1: .line 54
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            ldc "Lsun/security/provider/SHA;"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 5 /* sha1type */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType sha1type
         2: .line 55
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            ldc "Lsun/security/provider/SHA2;"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 6 /* sha256type */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType sha256type
         3: .line 56
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            ldc "Lsun/security/provider/SHA5;"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 7 /* sha512type */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaType sha512type
         4: .line 58
            aload 1 /* buf */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            iload 2 /* ofs */
            iadd
            i2l
            invokestatic org.graalvm.compiler.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 8 /* bufAddr */
        start local 8 // org.graalvm.compiler.word.Word bufAddr
         5: .line 59
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.DigestBaseSubstitutions.useSHA1Intrinsics:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifeq 10
            aload 5 /* sha1type */
            aload 4 /* realReceiver */
            invokestatic org.graalvm.compiler.nodes.java.InstanceOfNode.doInstanceof:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Object;)Z
            ifeq 10
         6: .line 60
            aload 4 /* realReceiver */
            aload 5 /* sha1type */
            invokestatic org.graalvm.compiler.nodes.PiNode.piCastNonNull:(Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Object;
            astore 9 /* sha1obj */
        start local 9 // java.lang.Object sha1obj
         7: .line 61
            aload 9 /* sha1obj */
            aload 5 /* sha1type */
            ldc "state"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getFieldOffset:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;)I
            i2l
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljava/lang/Object;
            astore 10 /* state */
        start local 10 // java.lang.Object state
         8: .line 62
            aload 10 /* state */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            i2l
            invokestatic org.graalvm.compiler.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 11 /* stateAddr */
        start local 11 // org.graalvm.compiler.word.Word stateAddr
         9: .line 63
            aload 8 /* bufAddr */
            aload 11 /* stateAddr */
            iload 2 /* ofs */
            iload 3 /* limit */
            invokestatic org.graalvm.compiler.hotspot.HotSpotBackend.shaImplCompressMBStub:(Lorg/graalvm/compiler/word/Word;Ljava/lang/Object;II)I
            ireturn
        end local 11 // org.graalvm.compiler.word.Word stateAddr
        end local 10 // java.lang.Object state
        end local 9 // java.lang.Object sha1obj
        10: .line 64
      StackMap locals: java.lang.Object byte[] int int java.lang.Object jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.word.Word
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.DigestBaseSubstitutions.useSHA256Intrinsics:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifeq 15
            aload 6 /* sha256type */
            aload 4 /* realReceiver */
            invokestatic org.graalvm.compiler.nodes.java.InstanceOfNode.doInstanceof:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Object;)Z
            ifeq 15
        11: .line 65
            aload 4 /* realReceiver */
            aload 6 /* sha256type */
            invokestatic org.graalvm.compiler.nodes.PiNode.piCastNonNull:(Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Object;
            astore 9 /* sha256obj */
        start local 9 // java.lang.Object sha256obj
        12: .line 66
            aload 9 /* sha256obj */
            aload 6 /* sha256type */
            ldc "state"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getFieldOffset:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;)I
            i2l
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljava/lang/Object;
            astore 10 /* state */
        start local 10 // java.lang.Object state
        13: .line 67
            aload 10 /* state */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            i2l
            invokestatic org.graalvm.compiler.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 11 /* stateAddr */
        start local 11 // org.graalvm.compiler.word.Word stateAddr
        14: .line 68
            aload 8 /* bufAddr */
            aload 11 /* stateAddr */
            iload 2 /* ofs */
            iload 3 /* limit */
            invokestatic org.graalvm.compiler.hotspot.HotSpotBackend.sha2ImplCompressMBStub:(Lorg/graalvm/compiler/word/Word;Ljava/lang/Object;II)I
            ireturn
        end local 11 // org.graalvm.compiler.word.Word stateAddr
        end local 10 // java.lang.Object state
        end local 9 // java.lang.Object sha256obj
        15: .line 69
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.DigestBaseSubstitutions.useSHA512Intrinsics:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifeq 20
            aload 7 /* sha512type */
            aload 4 /* realReceiver */
            invokestatic org.graalvm.compiler.nodes.java.InstanceOfNode.doInstanceof:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Object;)Z
            ifeq 20
        16: .line 70
            aload 4 /* realReceiver */
            aload 7 /* sha512type */
            invokestatic org.graalvm.compiler.nodes.PiNode.piCastNonNull:(Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Object;
            astore 9 /* sha512obj */
        start local 9 // java.lang.Object sha512obj
        17: .line 71
            aload 9 /* sha512obj */
            aload 7 /* sha512type */
            ldc "state"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getFieldOffset:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;)I
            i2l
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljava/lang/Object;
            astore 10 /* state */
        start local 10 // java.lang.Object state
        18: .line 72
            aload 10 /* state */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            i2l
            invokestatic org.graalvm.compiler.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 11 /* stateAddr */
        start local 11 // org.graalvm.compiler.word.Word stateAddr
        19: .line 73
            aload 8 /* bufAddr */
            aload 11 /* stateAddr */
            iload 2 /* ofs */
            iload 3 /* limit */
            invokestatic org.graalvm.compiler.hotspot.HotSpotBackend.sha5ImplCompressMBStub:(Lorg/graalvm/compiler/word/Word;Ljava/lang/Object;II)I
            ireturn
        end local 11 // org.graalvm.compiler.word.Word stateAddr
        end local 10 // java.lang.Object state
        end local 9 // java.lang.Object sha512obj
        20: .line 75
      StackMap locals:
      StackMap stack:
            aload 4 /* realReceiver */
            aload 1 /* buf */
            iload 2 /* ofs */
            iload 3 /* limit */
            invokestatic org.graalvm.compiler.hotspot.replacements.DigestBaseSubstitutions.implCompressMultiBlock0:(Ljava/lang/Object;[BII)I
            ireturn
        end local 8 // org.graalvm.compiler.word.Word bufAddr
        end local 7 // jdk.vm.ci.meta.ResolvedJavaType sha512type
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType sha256type
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType sha1type
        end local 4 // java.lang.Object realReceiver
        end local 3 // int limit
        end local 2 // int ofs
        end local 1 // byte[] buf
        end local 0 // java.lang.Object receiver
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0      receiver  Ljava/lang/Object;
            0   21     1           buf  [B
            0   21     2           ofs  I
            0   21     3         limit  I
            1   21     4  realReceiver  Ljava/lang/Object;
            2   21     5      sha1type  Ljdk/vm/ci/meta/ResolvedJavaType;
            3   21     6    sha256type  Ljdk/vm/ci/meta/ResolvedJavaType;
            4   21     7    sha512type  Ljdk/vm/ci/meta/ResolvedJavaType;
            5   21     8       bufAddr  Lorg/graalvm/compiler/word/Word;
            7   10     9       sha1obj  Ljava/lang/Object;
            8   10    10         state  Ljava/lang/Object;
            9   10    11     stateAddr  Lorg/graalvm/compiler/word/Word;
           12   15     9     sha256obj  Ljava/lang/Object;
           13   15    10         state  Ljava/lang/Object;
           14   15    11     stateAddr  Lorg/graalvm/compiler/word/Word;
           17   20     9     sha512obj  Ljava/lang/Object;
           18   20    10         state  Ljava/lang/Object;
           19   20    11     stateAddr  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = false)
    MethodParameters:
          Name  Flags
      receiver  
      buf       
      ofs       
      limit     

  public static boolean useSHA1Intrinsics(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         0: .line 81
            aload 0 /* config */
            invokevirtual org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useSHA1Intrinsics:()Z
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
        Name  Flags
      config  

  public static boolean useSHA256Intrinsics(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         0: .line 86
            aload 0 /* config */
            invokevirtual org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useSHA256Intrinsics:()Z
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
        Name  Flags
      config  

  public static boolean useSHA512Intrinsics(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         0: .line 91
            aload 0 /* config */
            invokevirtual org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useSHA512Intrinsics:()Z
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
        Name  Flags
      config  
}
SourceFile: "DigestBaseSubstitutions.java"
InnerClasses:
  public abstract InjectedParameter = org.graalvm.compiler.api.replacements.Fold$InjectedParameter of org.graalvm.compiler.api.replacements.Fold
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.ClassSubstitution(className = {"sun.security.provider.DigestBase"}, optional = true)