From 34a708d80cc4e00d91021247ae26cfa2964dd86c Mon Sep 17 00:00:00 2001 From: Mohamed EZ-ZARGHILI Date: Thu, 10 Oct 2019 22:09:24 +0100 Subject: [PATCH 1/2] handle intrinsics correctly. --- .../hotspot/test/CheckGraalIntrinsics.java | 42 ++++++---------- .../test/HotSpotCryptoSubstitutionTest.java | 9 ++-- .../hotspot/test/TestSHASubstitutions.java | 13 ++--- .../meta/HotSpotGraphBuilderPlugins.java | 49 +++++++++++-------- .../replacements/SHA2Substitutions.java | 3 -- .../replacements/SHA5Substitutions.java | 3 -- .../replacements/SHASubstitutions.java | 3 -- 7 files changed, 54 insertions(+), 68 deletions(-) diff --git a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java index 43927e7db752..404acb36d9ae 100644 --- a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java +++ b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java @@ -24,9 +24,6 @@ */ package org.graalvm.compiler.hotspot.test; -import static org.graalvm.compiler.hotspot.meta.HotSpotGraphBuilderPlugins.aesDecryptName; -import static org.graalvm.compiler.hotspot.meta.HotSpotGraphBuilderPlugins.aesEncryptName; - import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; @@ -367,10 +364,6 @@ public CheckGraalIntrinsics() { add(ignore, "com/sun/crypto/provider/GHASH.processBlocks([BII[J[J)V"); } - if (!(config.useSHA1Intrinsics() || config.useSHA256Intrinsics() || config.useSHA512Intrinsics())) { - add(ignore, - "sun/security/provider/DigestBase.implCompressMultiBlock0([BII)I"); - } if (!config.useFMAIntrinsics) { add(ignore, "java/lang/Math.fma(DDD)D", @@ -505,15 +498,16 @@ public CheckGraalIntrinsics() { "java/util/zip/CRC32C.updateDirectByteBuffer(IJII)I"); } - boolean implNames = HotSpotGraphBuilderPlugins.cbcUsesImplNames(config); - String cbcEncryptName = implNames ? "implEncrypt" : "encrypt"; - String cbcDecryptName = implNames ? "implDecrypt" : "decrypt"; - + String cbcEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining", "implEncrypt", "encrypt"); + String cbcDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining", "implDecrypt", "decrypt"); + String aesEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt", "implEncryptBlock", "encryptBlock" ); + String aesDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt", "implDecryptBlock", "decryptBlock" ); + // AES intrinsics if (!config.useAESIntrinsics) { add(ignore, - "com/sun/crypto/provider/AESCrypt." + aesDecryptName + "([BI[BI)V", "com/sun/crypto/provider/AESCrypt." + aesEncryptName + "([BI[BI)V", + "com/sun/crypto/provider/AESCrypt." + aesDecryptName + "([BI[BI)V", "com/sun/crypto/provider/CipherBlockChaining." + cbcDecryptName + "([BII[BI)I", "com/sun/crypto/provider/CipherBlockChaining." + cbcEncryptName + "([BII[BI)I"); } @@ -538,28 +532,20 @@ public CheckGraalIntrinsics() { if (!config.useSquareToLenIntrinsic()) { add(ignore, "java/math/BigInteger.implSquareToLen([II[II)[I"); } - + // DigestBase intrinsics + if (HotSpotGraphBuilderPlugins.isIntrinsicName(config, "sun/security/provider/DigestBase", "implCompressMultiBlock0") && !(config.useSHA1Intrinsics() || config.useSHA256Intrinsics() || config.useSHA512Intrinsics())) { + add(ignore, "sun/security/provider/DigestBase.implCompressMultiBlock0([BII)I"); + } // SHA intrinsics + String shaCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "sun/security/provider/SHA", "implCompress0", "implCompress"); if (!config.useSHA1Intrinsics()) { - if (isJDK9OrHigher()) { - add(ignore, "sun/security/provider/SHA.implCompress0([BI)V"); - } else { - add(ignore, "sun/security/provider/SHA.implCompress([BI)V"); - } + add(ignore, "sun/security/provider/SHA." + shaCompressName + "([BI)V"); } if (!config.useSHA256Intrinsics()) { - if (isJDK9OrHigher()) { - add(ignore, "sun/security/provider/SHA2.implCompress0([BI)V"); - } else { - add(ignore, "sun/security/provider/SHA2.implCompress([BI)V"); - } + add(ignore, "sun/security/provider/SHA2." + shaCompressName + "([BI)V"); } if (!config.useSHA512Intrinsics()) { - if (isJDK9OrHigher()) { - add(ignore, "sun/security/provider/SHA5.implCompress0([BI)V"); - } else { - add(ignore, "sun/security/provider/SHA5.implCompress([BI)V"); - } + add(ignore, "sun/security/provider/SHA5." + shaCompressName + "([BI)V"); } } diff --git a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java index f39f93dca42d..72c8e69e7622 100644 --- a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java +++ b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java @@ -80,7 +80,9 @@ public HotSpotCryptoSubstitutionTest() throws Exception { @Test public void testAESCryptIntrinsics() throws Exception { - if (compileAndInstall("com.sun.crypto.provider.AESCrypt", HotSpotGraphBuilderPlugins.aesEncryptName, HotSpotGraphBuilderPlugins.aesDecryptName)) { + String aesEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(runtime().getVMConfig(), "com/sun/crypto/provider/AESCrypt", "implEncryptBlock" , "encryptBlock"); + String aesDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(runtime().getVMConfig(), "com/sun/crypto/provider/AESCrypt", "implDecryptBlock" , "decryptBlock"); + if (compileAndInstall("com.sun.crypto.provider.AESCrypt", aesEncryptName, aesDecryptName)) { ByteArrayOutputStream actual = new ByteArrayOutputStream(); actual.write(runEncryptDecrypt(aesKey, "AES/CBC/NoPadding")); actual.write(runEncryptDecrypt(aesKey, "AES/CBC/PKCS5Padding")); @@ -90,9 +92,8 @@ public void testAESCryptIntrinsics() throws Exception { @Test public void testCipherBlockChainingIntrinsics() throws Exception { - boolean implNames = HotSpotGraphBuilderPlugins.cbcUsesImplNames(runtime().getVMConfig()); - String cbcEncryptName = implNames ? "implEncrypt" : "encrypt"; - String cbcDecryptName = implNames ? "implDecrypt" : "decrypt"; + String cbcEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(runtime().getVMConfig(), "com/sun/crypto/provider/CipherBlockChaining", "implEncrypt", "encrypt"); + String cbcDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(runtime().getVMConfig(), "com/sun/crypto/provider/CipherBlockChaining", "implDecrypt", "decrypt"); if (compileAndInstall("com.sun.crypto.provider.CipherBlockChaining", cbcEncryptName, cbcDecryptName)) { ByteArrayOutputStream actual = new ByteArrayOutputStream(); actual.write(runEncryptDecrypt(aesKey, "AES/CBC/NoPadding")); diff --git a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestSHASubstitutions.java b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestSHASubstitutions.java index 24c4cfc5975c..d759abc48b05 100644 --- a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestSHASubstitutions.java +++ b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestSHASubstitutions.java @@ -34,9 +34,7 @@ import org.graalvm.compiler.api.test.Graal; import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig; import org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider; -import org.graalvm.compiler.hotspot.replacements.SHA2Substitutions; -import org.graalvm.compiler.hotspot.replacements.SHA5Substitutions; -import org.graalvm.compiler.hotspot.replacements.SHASubstitutions; +import org.graalvm.compiler.hotspot.meta.HotSpotGraphBuilderPlugins; import org.graalvm.compiler.runtime.RuntimeProvider; import jdk.vm.ci.code.InstalledCode; @@ -74,7 +72,8 @@ GraalHotSpotVMConfig getConfig() { @Test public void testSha1() { if (getConfig().useSHA1Intrinsics()) { - testWithInstalledIntrinsic("sun.security.provider.SHA", SHASubstitutions.implCompressName, "testDigest", "SHA-1", getData()); + String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0" , "implCompress"); + testWithInstalledIntrinsic("sun.security.provider.SHA", implCompressName, "testDigest", "SHA-1", getData()); } } @@ -107,14 +106,16 @@ void testWithInstalledIntrinsic(String className, String methodName, String test @Test public void testSha256() { if (getConfig().useSHA256Intrinsics()) { - testWithInstalledIntrinsic("sun.security.provider.SHA2", SHA2Substitutions.implCompressName, "testDigest", "SHA-256", getData()); + String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0" , "implCompress"); + testWithInstalledIntrinsic("sun.security.provider.SHA2", implCompressName, "testDigest", "SHA-256", getData()); } } @Test public void testSha512() { if (getConfig().useSHA512Intrinsics()) { - testWithInstalledIntrinsic("sun.security.provider.SHA5", SHA5Substitutions.implCompressName, "testDigest", "SHA-512", getData()); + String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0" , "implCompress"); + testWithInstalledIntrinsic("sun.security.provider.SHA5", implCompressName, "testDigest", "SHA-512", getData()); } } diff --git a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java index 010e5c18d927..ad0ff4cd3691 100644 --- a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java +++ b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java @@ -435,39 +435,44 @@ public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Rec r.registerMethodSubstitution(ThreadSubstitutions.class, "isInterrupted", Receiver.class, boolean.class); } - public static final String aesEncryptName; - public static final String aesDecryptName; public static final String reflectionClass; public static final String constantPoolClass; static { if (JavaVersionUtil.JAVA_SPEC <= 8) { - aesEncryptName = "encryptBlock"; - aesDecryptName = "decryptBlock"; reflectionClass = "sun.reflect.Reflection"; constantPoolClass = "sun.reflect.ConstantPool"; } else { - aesEncryptName = "implEncryptBlock"; - aesDecryptName = "implDecryptBlock"; reflectionClass = "jdk.internal.reflect.Reflection"; constantPoolClass = "jdk.internal.reflect.ConstantPool"; } } - public static boolean cbcUsesImplNames(GraalHotSpotVMConfig config) { + public static String lookupIntrinsicName(GraalHotSpotVMConfig config, String className, String name1, String name2) { for (VMIntrinsicMethod intrinsic : config.getStore().getIntrinsics()) { - if ("com/sun/crypto/provider/CipherBlockChaining".equals(intrinsic.declaringClass)) { - if ("encrypt".equals(intrinsic.name)) { - return false; - } else if ("implEncrypt".equals(intrinsic.name)) { - return true; + if (className.equals(intrinsic.declaringClass)) { + if (name1.equals(intrinsic.name)) { + return name1; + } else if (name2.equals(intrinsic.name)) { + return name2; } } } throw GraalError.shouldNotReachHere(); } + public static boolean isIntrinsicName(GraalHotSpotVMConfig config, String className, String name) { + for (VMIntrinsicMethod intrinsic : config.getStore().getIntrinsics()) { + if (className.equals(intrinsic.declaringClass)) { + if (name.equals(intrinsic.name)) { + return true; + } + } + } + return false; + } + private static void registerAESPlugins(InvocationPlugins plugins, GraalHotSpotVMConfig config, BytecodeProvider bytecodeProvider) { if (config.useAESIntrinsics) { assert config.aescryptEncryptBlockStub != 0L; @@ -476,15 +481,16 @@ private static void registerAESPlugins(InvocationPlugins plugins, GraalHotSpotVM assert config.cipherBlockChainingDecryptAESCryptStub != 0L; String arch = config.osArch; String decryptSuffix = arch.equals("sparc") ? "WithOriginalKey" : ""; - Registration r = new Registration(plugins, "com.sun.crypto.provider.CipherBlockChaining", bytecodeProvider); - - boolean implNames = cbcUsesImplNames(config); - String cbcEncryptName = implNames ? "implEncrypt" : "encrypt"; - String cbcDecryptName = implNames ? "implDecrypt" : "decrypt"; + String cbcEncryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining" , "implEncrypt" , "encrypt"); + String cbcDecryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining" , "implDecrypt" , "decrypt"); + Registration r = new Registration(plugins, "com.sun.crypto.provider.CipherBlockChaining", bytecodeProvider); r.registerMethodSubstitution(CipherBlockChainingSubstitutions.class, cbcEncryptName, Receiver.class, byte[].class, int.class, int.class, byte[].class, int.class); r.registerMethodSubstitution(CipherBlockChainingSubstitutions.class, cbcDecryptName, cbcDecryptName + decryptSuffix, Receiver.class, byte[].class, int.class, int.class, byte[].class, int.class); + + String aesEncryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt" , "implEncryptBlock" , "encryptBlock"); + String aesDecryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt" , "implDecryptBlock" , "decryptBlock"); r = new Registration(plugins, "com.sun.crypto.provider.AESCrypt", bytecodeProvider); r.registerMethodSubstitution(AESCryptSubstitutions.class, aesEncryptName, Receiver.class, byte[].class, int.class, byte[].class, int.class); @@ -523,25 +529,26 @@ private static void registerSHAPlugins(InvocationPlugins plugins, GraalHotSpotVM boolean useSha256 = config.useSHA256Intrinsics(); boolean useSha512 = config.useSHA512Intrinsics(); - if (JavaVersionUtil.JAVA_SPEC > 8 && (useSha1 || useSha256 || useSha512)) { + if (isIntrinsicName(config, "sun.security.provider.DigestBase", "implCompressMultiBlock0") && (useSha1 || useSha256 || useSha512)) { Registration r = new Registration(plugins, "sun.security.provider.DigestBase", bytecodeProvider); r.registerMethodSubstitution(DigestBaseSubstitutions.class, "implCompressMultiBlock0", Receiver.class, byte[].class, int.class, int.class); } + String implCompressName = lookupIntrinsicName(config, "sun/security/provider/SHA", "implCompress" , "implCompress0"); if (useSha1) { assert config.sha1ImplCompress != 0L; Registration r = new Registration(plugins, "sun.security.provider.SHA", bytecodeProvider); - r.registerMethodSubstitution(SHASubstitutions.class, SHASubstitutions.implCompressName, "implCompress0", Receiver.class, byte[].class, int.class); + r.registerMethodSubstitution(SHASubstitutions.class, implCompressName, "implCompress0", Receiver.class, byte[].class, int.class); } if (useSha256) { assert config.sha256ImplCompress != 0L; Registration r = new Registration(plugins, "sun.security.provider.SHA2", bytecodeProvider); - r.registerMethodSubstitution(SHA2Substitutions.class, SHA2Substitutions.implCompressName, "implCompress0", Receiver.class, byte[].class, int.class); + r.registerMethodSubstitution(SHA2Substitutions.class, implCompressName, "implCompress0", Receiver.class, byte[].class, int.class); } if (useSha512) { assert config.sha512ImplCompress != 0L; Registration r = new Registration(plugins, "sun.security.provider.SHA5", bytecodeProvider); - r.registerMethodSubstitution(SHA5Substitutions.class, SHA5Substitutions.implCompressName, "implCompress0", Receiver.class, byte[].class, int.class); + r.registerMethodSubstitution(SHA5Substitutions.class, implCompressName, "implCompress0", Receiver.class, byte[].class, int.class); } } diff --git a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA2Substitutions.java b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA2Substitutions.java index 785ba08dd56b..dbf3301a44bc 100644 --- a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA2Substitutions.java +++ b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA2Substitutions.java @@ -36,7 +36,6 @@ import org.graalvm.compiler.nodes.extended.RawLoadNode; import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext; import org.graalvm.compiler.replacements.ReplacementsUtil; -import org.graalvm.compiler.serviceprovider.JavaVersionUtil; import org.graalvm.compiler.word.Word; import org.graalvm.word.LocationIdentity; import org.graalvm.word.WordFactory; @@ -46,8 +45,6 @@ @ClassSubstitution(className = "sun.security.provider.SHA2", optional = true) public class SHA2Substitutions { - public static final String implCompressName = JavaVersionUtil.JAVA_SPEC <= 8 ? "implCompress" : "implCompress0"; - @MethodSubstitution(isStatic = false) static void implCompress0(Object receiver, byte[] buf, int ofs) { Object realReceiver = PiNode.piCastNonNull(receiver, HotSpotReplacementsUtil.methodHolderClass(INJECTED_INTRINSIC_CONTEXT)); diff --git a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA5Substitutions.java b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA5Substitutions.java index 526e96d9d824..77a4bdf5d4c0 100644 --- a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA5Substitutions.java +++ b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA5Substitutions.java @@ -37,7 +37,6 @@ import org.graalvm.compiler.nodes.extended.RawLoadNode; import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext; import org.graalvm.compiler.replacements.ReplacementsUtil; -import org.graalvm.compiler.serviceprovider.JavaVersionUtil; import org.graalvm.compiler.word.Word; import org.graalvm.word.LocationIdentity; import org.graalvm.word.WordFactory; @@ -47,8 +46,6 @@ @ClassSubstitution(className = "sun.security.provider.SHA5", optional = true) public class SHA5Substitutions { - public static final String implCompressName = JavaVersionUtil.JAVA_SPEC <= 8 ? "implCompress" : "implCompress0"; - @MethodSubstitution(isStatic = false) static void implCompress0(Object receiver, byte[] buf, int ofs) { Object realReceiver = PiNode.piCastNonNull(receiver, HotSpotReplacementsUtil.methodHolderClass(INJECTED_INTRINSIC_CONTEXT)); diff --git a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHASubstitutions.java b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHASubstitutions.java index 0031cf0791d1..41bf643d2d82 100644 --- a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHASubstitutions.java +++ b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHASubstitutions.java @@ -37,7 +37,6 @@ import org.graalvm.compiler.nodes.extended.RawLoadNode; import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext; import org.graalvm.compiler.replacements.ReplacementsUtil; -import org.graalvm.compiler.serviceprovider.JavaVersionUtil; import org.graalvm.compiler.word.Word; import org.graalvm.word.LocationIdentity; import org.graalvm.word.WordFactory; @@ -47,8 +46,6 @@ @ClassSubstitution(className = "sun.security.provider.SHA", optional = true) public class SHASubstitutions { - public static final String implCompressName = JavaVersionUtil.JAVA_SPEC <= 8 ? "implCompress" : "implCompress0"; - @MethodSubstitution(isStatic = false) static void implCompress0(Object receiver, byte[] buf, int ofs) { Object realReceiver = PiNode.piCastNonNull(receiver, HotSpotReplacementsUtil.methodHolderClass(INJECTED_INTRINSIC_CONTEXT)); From 41bb4a317c6c5f49bd3c188872ddaa894c1301ab Mon Sep 17 00:00:00 2001 From: Mohamed EZ-ZARGHILI Date: Sat, 12 Oct 2019 01:45:49 +0100 Subject: [PATCH 2/2] Update to JVMCI-19.2-b03. --- .travis.yml | 4 ++-- common.hocon | 6 +++--- compiler/mx.compiler/suite.py | 4 ++-- .../hotspot/test/CheckGraalIntrinsics.java | 9 +++++---- .../test/HotSpotCryptoSubstitutionTest.java | 4 ++-- .../hotspot/test/TestSHASubstitutions.java | 6 +++--- .../meta/HotSpotGraphBuilderPlugins.java | 17 ++++++++--------- regex/mx.regex/suite.py | 4 ++-- sdk/mx.sdk/suite.py | 4 ++-- substratevm/mx.substratevm/suite.py | 4 ++-- tools/mx.tools/suite.py | 4 ++-- truffle/mx.truffle/suite.py | 4 ++-- vm/mx.vm/suite.py | 8 ++++---- 13 files changed, 39 insertions(+), 39 deletions(-) diff --git a/.travis.yml b/.travis.yml index f9158cbaffe1..2a9e03139925 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,8 +18,8 @@ jdk: env: global: - - JVMCI_VERSION="jvmci-19.2-b01" - - JDK8_UPDATE_VERSION="212" + - JVMCI_VERSION="jvmci-19.2-b03" + - JDK8_UPDATE_VERSION="232" - JDK8_UPDATE_VERSION_SUFFIX="" matrix: diff --git a/common.hocon b/common.hocon index e9adcc045ca8..c3756ca92a63 100644 --- a/common.hocon +++ b/common.hocon @@ -6,9 +6,9 @@ overlay = 24a9cd249544a2c8b61e225aa1f02c85db569fc4 # openjdk8 JDKs on Linux are built by Oracle Labs # openjdk8 JDKs on macOS are based on AdoptOpenJDK binaries jdks: { - oraclejdk8: {name : oraclejdk, version : "8u221-jvmci-19.2-b02", platformspecific: true} - openjdk8: {name : openjdk, version : "8u222-jvmci-19.2-b02", platformspecific: true} - oraclejdk8Debug: {name : oraclejdk, version : "8u221-jvmci-19.2-b02-fastdebug", platformspecific: true} + oraclejdk8: {name : oraclejdk, version : "8u231-jvmci-19.2-b03", platformspecific: true} + openjdk8: {name : openjdk, version : "8u232-jvmci-19.2-b03", platformspecific: true} + oraclejdk8Debug: {name : oraclejdk, version : "8u231-jvmci-19.2-b03-fastdebug", platformspecific: true} oraclejdk11: {name : oraclejdk, version : "11.0.3+12", platformspecific: true} openjdk11: {name : openjdk, version : "11.0.3+7", platformspecific: true} } diff --git a/compiler/mx.compiler/suite.py b/compiler/mx.compiler/suite.py index 987b57d9fd00..4a3c75f001fc 100644 --- a/compiler/mx.compiler/suite.py +++ b/compiler/mx.compiler/suite.py @@ -4,8 +4,8 @@ "sourceinprojectwhitelist" : [], "groupId" : "org.graalvm.compiler", - "version" : "19.2.0.1", - "release" : True, + "version" : "19.2.1", + "release" : False, "url" : "http://www.graalvm.org/", "developer" : { "name" : "Truffle and Graal developers", diff --git a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java index 404acb36d9ae..f49bc09e6e6f 100644 --- a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java +++ b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java @@ -500,9 +500,9 @@ public CheckGraalIntrinsics() { String cbcEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining", "implEncrypt", "encrypt"); String cbcDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining", "implDecrypt", "decrypt"); - String aesEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt", "implEncryptBlock", "encryptBlock" ); - String aesDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt", "implDecryptBlock", "decryptBlock" ); - + String aesEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt", "implEncryptBlock", "encryptBlock"); + String aesDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt", "implDecryptBlock", "decryptBlock"); + // AES intrinsics if (!config.useAESIntrinsics) { add(ignore, @@ -533,7 +533,8 @@ public CheckGraalIntrinsics() { add(ignore, "java/math/BigInteger.implSquareToLen([II[II)[I"); } // DigestBase intrinsics - if (HotSpotGraphBuilderPlugins.isIntrinsicName(config, "sun/security/provider/DigestBase", "implCompressMultiBlock0") && !(config.useSHA1Intrinsics() || config.useSHA256Intrinsics() || config.useSHA512Intrinsics())) { + if (HotSpotGraphBuilderPlugins.isIntrinsicName(config, "sun/security/provider/DigestBase", "implCompressMultiBlock0") && + !(config.useSHA1Intrinsics() || config.useSHA256Intrinsics() || config.useSHA512Intrinsics())) { add(ignore, "sun/security/provider/DigestBase.implCompressMultiBlock0([BII)I"); } // SHA intrinsics diff --git a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java index 72c8e69e7622..b85e103c1f25 100644 --- a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java +++ b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java @@ -80,8 +80,8 @@ public HotSpotCryptoSubstitutionTest() throws Exception { @Test public void testAESCryptIntrinsics() throws Exception { - String aesEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(runtime().getVMConfig(), "com/sun/crypto/provider/AESCrypt", "implEncryptBlock" , "encryptBlock"); - String aesDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(runtime().getVMConfig(), "com/sun/crypto/provider/AESCrypt", "implDecryptBlock" , "decryptBlock"); + String aesEncryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(runtime().getVMConfig(), "com/sun/crypto/provider/AESCrypt", "implEncryptBlock", "encryptBlock"); + String aesDecryptName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(runtime().getVMConfig(), "com/sun/crypto/provider/AESCrypt", "implDecryptBlock", "decryptBlock"); if (compileAndInstall("com.sun.crypto.provider.AESCrypt", aesEncryptName, aesDecryptName)) { ByteArrayOutputStream actual = new ByteArrayOutputStream(); actual.write(runEncryptDecrypt(aesKey, "AES/CBC/NoPadding")); diff --git a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestSHASubstitutions.java b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestSHASubstitutions.java index d759abc48b05..20a792e6f154 100644 --- a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestSHASubstitutions.java +++ b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestSHASubstitutions.java @@ -72,7 +72,7 @@ GraalHotSpotVMConfig getConfig() { @Test public void testSha1() { if (getConfig().useSHA1Intrinsics()) { - String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0" , "implCompress"); + String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0", "implCompress"); testWithInstalledIntrinsic("sun.security.provider.SHA", implCompressName, "testDigest", "SHA-1", getData()); } } @@ -106,7 +106,7 @@ void testWithInstalledIntrinsic(String className, String methodName, String test @Test public void testSha256() { if (getConfig().useSHA256Intrinsics()) { - String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0" , "implCompress"); + String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0", "implCompress"); testWithInstalledIntrinsic("sun.security.provider.SHA2", implCompressName, "testDigest", "SHA-256", getData()); } } @@ -114,7 +114,7 @@ public void testSha256() { @Test public void testSha512() { if (getConfig().useSHA512Intrinsics()) { - String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0" , "implCompress"); + String implCompressName = HotSpotGraphBuilderPlugins.lookupIntrinsicName(getConfig(), "sun/security/provider/SHA", "implCompress0", "implCompress"); testWithInstalledIntrinsic("sun.security.provider.SHA5", implCompressName, "testDigest", "SHA-512", getData()); } } diff --git a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java index ad0ff4cd3691..18b9627229e6 100644 --- a/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java +++ b/compiler/src/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java @@ -435,7 +435,6 @@ public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Rec r.registerMethodSubstitution(ThreadSubstitutions.class, "isInterrupted", Receiver.class, boolean.class); } - public static final String reflectionClass; public static final String constantPoolClass; @@ -472,7 +471,7 @@ public static boolean isIntrinsicName(GraalHotSpotVMConfig config, String classN } return false; } - + private static void registerAESPlugins(InvocationPlugins plugins, GraalHotSpotVMConfig config, BytecodeProvider bytecodeProvider) { if (config.useAESIntrinsics) { assert config.aescryptEncryptBlockStub != 0L; @@ -482,15 +481,15 @@ private static void registerAESPlugins(InvocationPlugins plugins, GraalHotSpotVM String arch = config.osArch; String decryptSuffix = arch.equals("sparc") ? "WithOriginalKey" : ""; - String cbcEncryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining" , "implEncrypt" , "encrypt"); - String cbcDecryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining" , "implDecrypt" , "decrypt"); + String cbcEncryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining", "implEncrypt", "encrypt"); + String cbcDecryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/CipherBlockChaining", "implDecrypt", "decrypt"); Registration r = new Registration(plugins, "com.sun.crypto.provider.CipherBlockChaining", bytecodeProvider); r.registerMethodSubstitution(CipherBlockChainingSubstitutions.class, cbcEncryptName, Receiver.class, byte[].class, int.class, int.class, byte[].class, int.class); r.registerMethodSubstitution(CipherBlockChainingSubstitutions.class, cbcDecryptName, cbcDecryptName + decryptSuffix, Receiver.class, byte[].class, int.class, int.class, byte[].class, int.class); - - String aesEncryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt" , "implEncryptBlock" , "encryptBlock"); - String aesDecryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt" , "implDecryptBlock" , "decryptBlock"); + + String aesEncryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt", "implEncryptBlock", "encryptBlock"); + String aesDecryptName = lookupIntrinsicName(config, "com/sun/crypto/provider/AESCrypt", "implDecryptBlock", "decryptBlock"); r = new Registration(plugins, "com.sun.crypto.provider.AESCrypt", bytecodeProvider); r.registerMethodSubstitution(AESCryptSubstitutions.class, aesEncryptName, Receiver.class, byte[].class, int.class, byte[].class, int.class); @@ -529,12 +528,12 @@ private static void registerSHAPlugins(InvocationPlugins plugins, GraalHotSpotVM boolean useSha256 = config.useSHA256Intrinsics(); boolean useSha512 = config.useSHA512Intrinsics(); - if (isIntrinsicName(config, "sun.security.provider.DigestBase", "implCompressMultiBlock0") && (useSha1 || useSha256 || useSha512)) { + if (isIntrinsicName(config, "sun/security/provider/DigestBase", "implCompressMultiBlock0") && (useSha1 || useSha256 || useSha512)) { Registration r = new Registration(plugins, "sun.security.provider.DigestBase", bytecodeProvider); r.registerMethodSubstitution(DigestBaseSubstitutions.class, "implCompressMultiBlock0", Receiver.class, byte[].class, int.class, int.class); } - String implCompressName = lookupIntrinsicName(config, "sun/security/provider/SHA", "implCompress" , "implCompress0"); + String implCompressName = lookupIntrinsicName(config, "sun/security/provider/SHA", "implCompress", "implCompress0"); if (useSha1) { assert config.sha1ImplCompress != 0L; Registration r = new Registration(plugins, "sun.security.provider.SHA", bytecodeProvider); diff --git a/regex/mx.regex/suite.py b/regex/mx.regex/suite.py index 5be5cf4f179b..8f08cf38d12e 100644 --- a/regex/mx.regex/suite.py +++ b/regex/mx.regex/suite.py @@ -29,8 +29,8 @@ "name" : "regex", - "version" : "19.2.0.1", - "release" : True, + "version" : "19.2.1", + "release" : False, "groupId" : "org.graalvm.regex", "url" : "http://www.graalvm.org/", "developer" : { diff --git a/sdk/mx.sdk/suite.py b/sdk/mx.sdk/suite.py index 681e2e2ecc0e..5dcf3e24ba68 100644 --- a/sdk/mx.sdk/suite.py +++ b/sdk/mx.sdk/suite.py @@ -41,8 +41,8 @@ suite = { "mxversion" : "5.223.0", "name" : "sdk", - "version" : "19.2.0.1", - "release" : True, + "version" : "19.2.1", + "release" : False, "sourceinprojectwhitelist" : [], "url" : "https://github.com/oracle/graal", "groupId" : "org.graalvm.sdk", diff --git a/substratevm/mx.substratevm/suite.py b/substratevm/mx.substratevm/suite.py index 3fc11d1a4345..665136e4963a 100644 --- a/substratevm/mx.substratevm/suite.py +++ b/substratevm/mx.substratevm/suite.py @@ -1,8 +1,8 @@ suite = { "mxversion": "5.223.0", "name": "substratevm", - "version" : "19.2.0.1", - "release" : True, + "version" : "19.2.1", + "release" : False, "url" : "https://github.com/oracle/graal/tree/master/substratevm", "developer" : { diff --git a/tools/mx.tools/suite.py b/tools/mx.tools/suite.py index 8d937a18e272..69ce4995961a 100644 --- a/tools/mx.tools/suite.py +++ b/tools/mx.tools/suite.py @@ -4,8 +4,8 @@ "defaultLicense" : "GPLv2-CPE", "groupId" : "org.graalvm.tools", - "version" : "19.2.0.1", - "release" : True, + "version" : "19.2.1", + "release" : False, "url" : "http://openjdk.java.net/projects/graal", "developer" : { "name" : "Truffle and Graal developers", diff --git a/truffle/mx.truffle/suite.py b/truffle/mx.truffle/suite.py index b742cec1c10c..760f9866106c 100644 --- a/truffle/mx.truffle/suite.py +++ b/truffle/mx.truffle/suite.py @@ -41,8 +41,8 @@ suite = { "mxversion" : "5.223.0", "name" : "truffle", - "version" : "19.2.0.1", - "release" : True, + "version" : "19.2.1", + "release" : False, "groupId" : "org.graalvm.truffle", "sourceinprojectwhitelist" : [], "url" : "http://openjdk.java.net/projects/graal", diff --git a/vm/mx.vm/suite.py b/vm/mx.vm/suite.py index 2246448c6233..b2ad879f4900 100644 --- a/vm/mx.vm/suite.py +++ b/vm/mx.vm/suite.py @@ -1,8 +1,8 @@ suite = { "name": "vm", - "version" : "19.2.0.1", + "version" : "19.2.1", "mxversion" : "5.227.0", - "release" : True, + "release" : False, "groupId" : "org.graalvm", "url" : "http://www.graalvm.org/", @@ -32,7 +32,7 @@ "name": "graal-nodejs", "subdir": True, "dynamic": True, - "version": "5680c31767d17574089be120ba60ce750347bbc9", + "version": "a40c01b135b0db5fd0d671e483e955175c46d181", "urls" : [ {"url" : "https://github.com/graalvm/graaljs.git", "kind" : "git"}, {"url": "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind": "binary"}, @@ -42,7 +42,7 @@ "name": "graal-js", "subdir": True, "dynamic": True, - "version": "5680c31767d17574089be120ba60ce750347bbc9", + "version": "a40c01b135b0db5fd0d671e483e955175c46d181", "urls": [ {"url": "https://github.com/graalvm/graaljs.git", "kind" : "git"}, {"url": "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind": "binary"},