35 import org.graalvm.compiler.nodes.ComputeObjectAddressNode; |
35 import org.graalvm.compiler.nodes.ComputeObjectAddressNode; |
36 import org.graalvm.compiler.nodes.PiNode; |
36 import org.graalvm.compiler.nodes.PiNode; |
37 import org.graalvm.compiler.nodes.extended.RawLoadNode; |
37 import org.graalvm.compiler.nodes.extended.RawLoadNode; |
38 import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext; |
38 import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext; |
39 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; |
40 import org.graalvm.compiler.word.Word; |
42 import jdk.internal.vm.compiler.word.LocationIdentity; |
41 import jdk.internal.vm.compiler.word.LocationIdentity; |
43 import jdk.internal.vm.compiler.word.WordFactory; |
42 import jdk.internal.vm.compiler.word.WordFactory; |
44 |
43 |
45 import jdk.vm.ci.meta.JavaKind; |
44 import jdk.vm.ci.meta.JavaKind; |
46 |
45 |
47 @ClassSubstitution(className = "sun.security.provider.SHA5", optional = true) |
46 @ClassSubstitution(className = "sun.security.provider.SHA5", optional = true) |
48 public class SHA5Substitutions { |
47 public class SHA5Substitutions { |
49 |
|
50 public static final String implCompressName = JavaVersionUtil.JAVA_SPEC <= 8 ? "implCompress" : "implCompress0"; |
|
51 |
48 |
52 @MethodSubstitution(isStatic = false) |
49 @MethodSubstitution(isStatic = false) |
53 static void implCompress0(Object receiver, byte[] buf, int ofs) { |
50 static void implCompress0(Object receiver, byte[] buf, int ofs) { |
54 Object realReceiver = PiNode.piCastNonNull(receiver, HotSpotReplacementsUtil.methodHolderClass(INJECTED_INTRINSIC_CONTEXT)); |
51 Object realReceiver = PiNode.piCastNonNull(receiver, HotSpotReplacementsUtil.methodHolderClass(INJECTED_INTRINSIC_CONTEXT)); |
55 Object state = RawLoadNode.load(realReceiver, stateOffset(INJECTED_INTRINSIC_CONTEXT), JavaKind.Object, LocationIdentity.any()); |
52 Object state = RawLoadNode.load(realReceiver, stateOffset(INJECTED_INTRINSIC_CONTEXT), JavaKind.Object, LocationIdentity.any()); |