On Mon, 10 Jun 2024 15:01:55 GMT, Ferenc Rakoczi <d...@openjdk.org> wrote:
> This PR removes some unnecessary conversions between byte arrays and long > arrays during SHA3 digest computations. src/java.base/share/classes/sun/security/provider/SHA3.java line 100: > 98: b2lLittle(b, ofs, longBuf, 0, blockSize); > 99: for (int i = 0; i < blockSize / 8; i++) { > 100: state[i] ^= longBuf[i]; Clever. So the intrinsic (C2 code) still generates code corresponding original loop with `byte b[]` array. This will be confusing. It will also slowdown execution in Interpreter so - additional array copy. New code also assumes that `buffer.length == blockSize` and `(buffer.length % 8) == 0`. I hope there is some assertions/checks in java code to verify that. Some one from core-libs have to review this. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19632#discussion_r1633688295