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