< prev index next >

test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java

Print this page
rev 60737 : 8252204: AArch64: Implement SHA3 accelerator/intrinsic
Reviewed-by: duke
Contributed-by: dongbo4@huawei.com

*** 95,109 **** new OrPredicate(new CPUSpecificPredicate("i386.*", new String[] { "sha" }, null), new OrPredicate(new CPUSpecificPredicate("x86.*", new String[] { "sha" }, null), new OrPredicate(new CPUSpecificPredicate("amd64.*", new String[] { "avx2", "bmi2" }, null), new CPUSpecificPredicate("x86_64", new String[] { "avx2", "bmi2" }, null))))))))); public static final BooleanSupplier ANY_SHA_INSTRUCTION_AVAILABLE = new OrPredicate(IntrinsicPredicates.SHA1_INSTRUCTION_AVAILABLE, ! new OrPredicate( ! IntrinsicPredicates.SHA256_INSTRUCTION_AVAILABLE, ! IntrinsicPredicates.SHA512_INSTRUCTION_AVAILABLE)); public static BooleanSupplier isMD5IntrinsicAvailable() { return new AndPredicate(IntrinsicPredicates.COMPILABLE_BY_C2, IntrinsicPredicates.isIntrinsicAvailable("sun.security.provider.MD5", "implCompress0")); } --- 95,112 ---- new OrPredicate(new CPUSpecificPredicate("i386.*", new String[] { "sha" }, null), new OrPredicate(new CPUSpecificPredicate("x86.*", new String[] { "sha" }, null), new OrPredicate(new CPUSpecificPredicate("amd64.*", new String[] { "avx2", "bmi2" }, null), new CPUSpecificPredicate("x86_64", new String[] { "avx2", "bmi2" }, null))))))))); + public static final BooleanSupplier SHA3_INSTRUCTION_AVAILABLE + // sha3 is only implemented on aarch64 for now + = new CPUSpecificPredicate("aarch64.*", new String[] {"sha3" }, null); + public static final BooleanSupplier ANY_SHA_INSTRUCTION_AVAILABLE = new OrPredicate(IntrinsicPredicates.SHA1_INSTRUCTION_AVAILABLE, ! new OrPredicate(IntrinsicPredicates.SHA256_INSTRUCTION_AVAILABLE, ! new OrPredicate(IntrinsicPredicates.SHA512_INSTRUCTION_AVAILABLE, IntrinsicPredicates.SHA3_INSTRUCTION_AVAILABLE))); public static BooleanSupplier isMD5IntrinsicAvailable() { return new AndPredicate(IntrinsicPredicates.COMPILABLE_BY_C2, IntrinsicPredicates.isIntrinsicAvailable("sun.security.provider.MD5", "implCompress0")); }
*** 121,130 **** --- 124,138 ---- public static BooleanSupplier isSHA512IntrinsicAvailable() { return new AndPredicate(IntrinsicPredicates.COMPILABLE_BY_C2, IntrinsicPredicates.isIntrinsicAvailable("sun.security.provider.SHA5", "implCompress0")); } + public static BooleanSupplier isSHA3IntrinsicAvailable() { + return new AndPredicate(IntrinsicPredicates.COMPILABLE_BY_C2, + IntrinsicPredicates.isIntrinsicAvailable("sun.security.provider.SHA3", "implCompress0")); + } + private static BooleanSupplier isIntrinsicAvailable(String klass, String method) { try { Method m = Class.forName(klass).getDeclaredMethod(method, byte[].class, int.class); return () -> WHITE_BOX.isIntrinsicAvailable(m, (int)IntrinsicPredicates.TIERED_MAX_LEVEL); } catch (Exception e) {
< prev index next >