[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