Tags: bitcoin-core/crc32c-subtree
Tags
Gate ARM64-accelerated impl on hwcap() having the HWCAP_PMULL flag. (#6) The hardware-accelerated CRC32C implementation that takes advantage of ARM64 instructions is currently runtime-gated on hwcap() returning a value that has the HWCAP_CRC32 flag set. This covers the __crc32c{b,h,w,d} intrinsics, but does not cover the vmull_p64 call. The later should be gated on the presence of the HWCAP_PMULL flag. This is a speculative fix for Chrome crashes observed at the first vmull_64 callsite on MSM8916-based boards.
More conservative check for <string_view> availability. (#4) has_include(<string_view>) does not imply that the header can be included and will work. The assumption fails on MSVC and libc++ [1, 2]. Conversely, checking that __cplusplus > 201402L is not sufficient on its own either, as the toolchain on Mac OS 10.12 passes that check but does not contain a <string_view> header. [1] https://crbug.com/759349 [2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79433