Files
ardour/libs/pbd
Ayan Shafqat bb31125c94 Fix CPUID to detect AVX512F
CPUID is part of x86_64 ISA to query CPU features. In order to determine
AVX512F ISA extension, EAX and ECX needs to be set to 7 and 0
respectively before invoking `cpuid` instruction. This commit also
removes inline assembly for __cpuid in favor of using compiler provided
intrinsic functions. Both GCC and clang provides __cpuid like function
via __cpuid_count intrinsic.

This commit also creates a portable wrapper over compiler intrinsic
functions, __cpuid and __cpuidex. `cpuid' provides base level ISA query
and `cpuidex` provides extra extension information like AVX512F. These
wrappers lean towards MSVC like API.

References:
CPUID Docs: https://en.wikipedia.org/wiki/CPUID

GCC's ``docs" on __cpuid_count:
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config/i386/cpuid.h

Clang's docs on __cpuid_count:
https://clang.llvm.org/doxygen/cpuid_8h.html

MSVC's docs on __cpuid and __cpuidex:
https://learn.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex
2023-02-08 23:20:20 +01:00
..
2023-02-04 23:07:17 +01:00
2020-11-07 10:37:52 +01:00
2022-04-23 23:12:13 +02:00
2020-10-13 21:27:16 +02:00
2020-03-18 18:16:29 +01:00
2020-10-13 21:27:16 +02:00
2021-05-05 17:57:16 +02:00
2023-02-08 23:20:20 +01:00
2021-06-26 18:47:08 -06:00
2022-12-11 11:54:03 -05:00
2020-12-02 21:34:52 +01:00
2022-11-13 03:01:50 +01:00
2020-10-13 21:27:16 +02:00
2022-09-10 10:20:37 +01:00
2021-06-26 18:40:44 -06:00
2022-09-21 19:09:55 -06:00