src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHASubstitutions.java
changeset 55509 d58442b8abc1
parent 54084 84f10bbf993f
child 58299 6df94ce3ab2f
equal deleted inserted replaced
55508:a6e2d06391d6 55509:d58442b8abc1
    24 
    24 
    25 package org.graalvm.compiler.hotspot.replacements;
    25 package org.graalvm.compiler.hotspot.replacements;
    26 
    26 
    27 import static org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_INTRINSIC_CONTEXT;
    27 import static org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_INTRINSIC_CONTEXT;
    28 import static org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_METAACCESS;
    28 import static org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_METAACCESS;
    29 import static org.graalvm.compiler.serviceprovider.JavaVersionUtil.Java8OrEarlier;
       
    30 
    29 
    31 import org.graalvm.compiler.api.replacements.ClassSubstitution;
    30 import org.graalvm.compiler.api.replacements.ClassSubstitution;
    32 import org.graalvm.compiler.api.replacements.Fold;
    31 import org.graalvm.compiler.api.replacements.Fold;
    33 import org.graalvm.compiler.api.replacements.Fold.InjectedParameter;
    32 import org.graalvm.compiler.api.replacements.Fold.InjectedParameter;
    34 import org.graalvm.compiler.api.replacements.MethodSubstitution;
    33 import org.graalvm.compiler.api.replacements.MethodSubstitution;
    36 import org.graalvm.compiler.nodes.ComputeObjectAddressNode;
    35 import org.graalvm.compiler.nodes.ComputeObjectAddressNode;
    37 import org.graalvm.compiler.nodes.PiNode;
    36 import org.graalvm.compiler.nodes.PiNode;
    38 import org.graalvm.compiler.nodes.extended.RawLoadNode;
    37 import org.graalvm.compiler.nodes.extended.RawLoadNode;
    39 import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext;
    38 import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext;
    40 import org.graalvm.compiler.replacements.ReplacementsUtil;
    39 import org.graalvm.compiler.replacements.ReplacementsUtil;
       
    40 import org.graalvm.compiler.serviceprovider.JavaVersionUtil;
    41 import org.graalvm.compiler.word.Word;
    41 import org.graalvm.compiler.word.Word;
    42 import jdk.internal.vm.compiler.word.LocationIdentity;
    42 import jdk.internal.vm.compiler.word.LocationIdentity;
    43 import jdk.internal.vm.compiler.word.WordFactory;
    43 import jdk.internal.vm.compiler.word.WordFactory;
    44 
    44 
    45 import jdk.vm.ci.meta.JavaKind;
    45 import jdk.vm.ci.meta.JavaKind;
    46 
    46 
    47 @ClassSubstitution(className = "sun.security.provider.SHA", optional = true)
    47 @ClassSubstitution(className = "sun.security.provider.SHA", optional = true)
    48 public class SHASubstitutions {
    48 public class SHASubstitutions {
    49 
    49 
    50     public static final String implCompressName = Java8OrEarlier ? "implCompress" : "implCompress0";
    50     public static final String implCompressName = JavaVersionUtil.JAVA_SPEC <= 8 ? "implCompress" : "implCompress0";
    51 
    51 
    52     @MethodSubstitution(isStatic = false)
    52     @MethodSubstitution(isStatic = false)
    53     static void implCompress0(Object receiver, byte[] buf, int ofs) {
    53     static void implCompress0(Object receiver, byte[] buf, int ofs) {
    54         Object realReceiver = PiNode.piCastNonNull(receiver, HotSpotReplacementsUtil.methodHolderClass(INJECTED_INTRINSIC_CONTEXT));
    54         Object realReceiver = PiNode.piCastNonNull(receiver, HotSpotReplacementsUtil.methodHolderClass(INJECTED_INTRINSIC_CONTEXT));
    55         Object state = RawLoadNode.load(realReceiver, stateOffset(INJECTED_INTRINSIC_CONTEXT), JavaKind.Object, LocationIdentity.any());
    55         Object state = RawLoadNode.load(realReceiver, stateOffset(INJECTED_INTRINSIC_CONTEXT), JavaKind.Object, LocationIdentity.any());