RFR: 8302113: Improve CRC32 intrinsic with crypto pmull on AArch64 [v2]
Yi-Fan Tsai
duke at openjdk.org
Thu Feb 16 02:33:47 UTC 2023
On Wed, 15 Feb 2023 09:51:45 GMT, Volker Simonis <simonis at openjdk.org> wrote:
> Why does `UseCryptoPmullForCRC32` depend on `VM_Version::supports_sha3()`?
The implementation uses [eor3](https://developer.arm.com/documentation/ddi0602/2022-06/SIMD-FP-Instructions/EOR3--Three-way-Exclusive-OR-) as well, and it is only available when SHA3 is implemented.
> Does `VM_Version::supports_pmull()` really check for the `pmull` in the cryptographic extension?
supports_pmull() returns true when CPU_PMULL/HWCAP_PMULL of VM_Version::_features is [enabled](https://github.com/openjdk/jdk/blob/3ba156082b73c4a8e9d890a57a42fb68df2bf98f/src/hotspot/cpu/aarch64/vm_version_aarch64.hpp#L121). HWCAP_PMULL refers to the [functionality](https://docs.kernel.org/arm64/elf_hwcaps.html) implied by ID_AA64ISAR0_EL1.AES == 0b0010, i.e. [PMULL/PMULL2](https://developer.arm.com/documentation/ddi0595/2021-03/AArch64-Registers/ID-AA64ISAR0-EL1--AArch64-Instruction-Set-Attribute-Register-0) instructions operating on 64-bit data quantities.
-------------
PR: https://git.openjdk.org/jdk/pull/12480
More information about the hotspot-dev
mailing list