[jdk21u] RFR: 8319184: RISC-V: improve MD5 intrinsic

Fei Yang fyang at openjdk.org
Tue Nov 14 10:59:43 UTC 2023


Backport to improve MD5 intrinsic performance on linux-riscv platform a bit more.
Especially, this changes usage of scratch registers `t0` and `t1` so that will be safer.

Correct testing on sifive unmatched:

test/jdk/java/security/MessageDigest
test/hotspot/jtreg/compiler/intrinsics/sha/sanity


Performance testing on sifive unmatched:

Before:
MessageDigests.digest                   md5        64     DEFAULT  avgt   15     1667.920 ±     6.533  ns/op
MessageDigests.digest                   md5     16384     DEFAULT  avgt   15   135510.890 ±   247.488  ns/op
MessageDigests.getAndDigest             md5        64     DEFAULT  avgt   15     3290.951 ±    23.638  ns/op
MessageDigests.getAndDigest             md5     16384     DEFAULT  avgt   15   138879.221 ±   696.435  ns/op

After:
MessageDigests.digest                   md5        64     DEFAULT  avgt   15     1659.244 ±     6.353  ns/op
MessageDigests.digest                   md5     16384     DEFAULT  avgt   15   134233.350 ±   274.260  ns/op
MessageDigests.getAndDigest             md5        64     DEFAULT  avgt   15     3273.962 ±    14.620  ns/op
MessageDigests.getAndDigest             md5     16384     DEFAULT  avgt   15   136928.942 ±   343.717  ns/op

-------------

Commit messages:
 - Backport fa331d71288f36ba67ee36af4c17ab80e9f2a23d

Changes: https://git.openjdk.org/jdk21u/pull/360/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk21u&pr=360&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8319184
  Stats: 140 lines in 1 file changed: 18 ins; 13 del; 109 mod
  Patch: https://git.openjdk.org/jdk21u/pull/360.diff
  Fetch: git fetch https://git.openjdk.org/jdk21u.git pull/360/head:pull/360

PR: https://git.openjdk.org/jdk21u/pull/360


More information about the jdk-updates-dev mailing list