[aarch64-port-dev ] RFR: JDK8: Add support for CRC32 intrinsic
Andrew Haley
aph at redhat.com
Fri May 30 10:56:59 UTC 2014
On 05/23/2014 11:02 AM, Edward Nevill wrote:
> Hi,
>
> The following patch adds support for CRC32 intrinsic.
>
> The patch is a non neon patch. IE. It uses only the base aarch64 instruction set. Patch for neon to follow.
>
> Even without neon it gets 4.5 x improvement on my test case
>
> http://people.linaro.org/~edward.nevill/crc32/CRCTest.java
>
> As the patch is quite big (38K) I have put a copy of the patch @
>
> http://people.linaro.org/~edward.nevill/crc32/crc32.patch
>
> which may be easier to apply if anyone wishes to try this out.
>
> The algorithm uses 4 x tables and handles 16 bytes (1 ldp worth) per iteration. I experimented doing 32 bytes per loop but I could not measure the difference so I left it at 16. There are also algorithms that use 8 tables (Google slice by 8) but I think the returns from this over the simpler by 4 algorithm are minimal.
>
> The guts of the algorithm are in kernel_crc32 if anyone is interested!
Please make sure this goes into JDK9.
Andrew.
More information about the aarch64-port-dev
mailing list