* Add FreeBSD Arm64 detection
Getting all the features is handled by reading /var/run/dmesg.boot. Feature detections were taken from the freebsd kernel code sys/arm64/arm64/identcpu.c
* Add FreeBSD Arm64 tests
* Add flagm, flagm2 and rng detection
* Add HWCAP FreeBSD AArch64
* Update include to use linux hwcaps for powerpc
* Add FreeBSD aarch64 impl
* Separate Hwacps to freebsd and linux implementation
* Add aarch64 midr_el1 implementation
* Add detection hwcap cpuid to hwcaps.h
* Add MIDR_EL1 tests
* Add support for Apple M1 AArch64 SoCs
Completely based on #150. Thanks to @sbehnke!
+ Refactoring to accomodate the new source tree
+ Adding more feature flags
* revert minimum version to 3.0
* Update introspection table
* Simplify logic for Apple HAVE_SYSCTLBYNAME
---------
Co-authored-by: Guillaume Chatelet <gchatelet@google.com>
* Add Windows Arm64 support
To add Windows Arm64 support was added detection of features via Windows API function IsProcessorFeaturePresent. Added _M_ARM64 to detect CPU_FEATURES_AARCH64 macro on Windows. Added initial code for Windows Arm64 testing and provided test for Raspberry PI 4. We can't use "define_introspection_and_hwcaps.inl" as a common file for all operating systems due to msvc compiler error C2099: initializer is not a constant, so as a workaround for Windows I used separate "define_introspection.inl"
See also: #268, #284, #186
* [CMake] Add windows_utils.h to PROCESSOR_IS_AARCH64
* Add detection of armv8.1 atomic instructions
* Update note on win-arm64 implementation and move to cpuinfo_aarch64.h
* Remove redundant #ifdef CPU_FEATURES_OS_WINDOWS
* Add note on FP/SIMD and Cryptographic Extension for win-arm64
* Add comments to Aarch64Info fields
Added comments to specify that implementer, part and variant we set 0 for Windows, since Win API does not provide a way to get information. For revision added comment that we use GetNativeSystemInfo
* [NFC] clang-format codebase
* revert to 80 char columns at the price of uglier table init
* Specifically disabling clang-format for table initialization
This adds the following features: dcpodp, sve2, sveaes, svepmull,
svebitperm, svesha3, svesm4, flagm2, frint, svei8mm, svef32mm,
svef64mm, svebf16, i8mm, bf16, dgh and rng.
With these, all features used by Linux 5.8 on AArch64 is supported.
Fixes#126