mirror of
https://github.com/intel/isa-l.git
synced 2024-12-12 09:23:50 +01:00
183385f02f
Some CPUs report "illegal instruction" error for the crc test because they do not support the relevant optional feature . This can be fixed by introducing CPU feature detection for AArch64 . The difference with the x86 implementation is the dispatcher . It is based on the glibc function `getauxval(AT_HWCAP)` and `getauxval(AT_HWCAP2)` , not registers or instructions . On a heterogeneous system (big.LITTLE) , it is dangerous to detect CPU features using identification registers . And while it is possible to use architectural feature registers from userspace on recent kernels, this won't necessarily work with older platforms . Thus we use the HW_CAPs exported from the kernel (and visible in getauxval) as the solution. - According to kernel suggestion , getauxval should be used for this purpose . - [CPU Feature detection](https://github.com/torvalds/linux/blob/master/Documentation/arm64/cpu-feature-registers.rst) - According to AAPCS result/paramter registers should be saved/restore for function call - [AAPCS](http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf) - [GLibc](https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=blob;f=sysdeps/aarch64/dl-trampoline.S) Signed-off-by: Jerry Yu <jerry.h.yu@arm.com> Change-Id: Ic9abe0d2268ac95537e1abf10acc642fc58a5054 |
||
---|---|---|
.. | ||
crc16_t10dif_copy_pmull.S | ||
crc16_t10dif_pmull.S | ||
crc32_gzip_refl_hw_fold.S | ||
crc32_gzip_refl_pmull.h | ||
crc32_gzip_refl_pmull.S | ||
crc32_ieee_norm_pmull.h | ||
crc32_ieee_norm_pmull.S | ||
crc32_iscsi_refl_hw_fold.S | ||
crc32_iscsi_refl_pmull.h | ||
crc32_iscsi_refl_pmull.S | ||
crc32_norm_common_pmull.h | ||
crc32_refl_common_pmull.h | ||
crc64_ecma_norm_pmull.h | ||
crc64_ecma_norm_pmull.S | ||
crc64_ecma_refl_pmull.h | ||
crc64_ecma_refl_pmull.S | ||
crc64_iso_norm_pmull.h | ||
crc64_iso_norm_pmull.S | ||
crc64_iso_refl_pmull.h | ||
crc64_iso_refl_pmull.S | ||
crc64_jones_norm_pmull.h | ||
crc64_jones_norm_pmull.S | ||
crc64_jones_refl_pmull.h | ||
crc64_jones_refl_pmull.S | ||
crc64_norm_common_pmull.h | ||
crc64_refl_common_pmull.h | ||
crc_aarch64_dispatcher.c | ||
crc_multibinary_arm.S | ||
Makefile.am |