mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-11 07:56:27 +01:00
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 |
||
|---|---|---|
| .. | ||
| appleutility | ||
| ardour | ||
| ardouralsautil | ||
| audiographer | ||
| auscan | ||
| backends | ||
| canvas | ||
| clearlooks-newer | ||
| ctrl-interface | ||
| evoral | ||
| fluidsynth | ||
| fst | ||
| gtkmm2ext | ||
| hidapi | ||
| libltc | ||
| lua | ||
| midi++2 | ||
| panners | ||
| pbd | ||
| plugins | ||
| ptformat | ||
| qm-dsp | ||
| surfaces | ||
| temporal | ||
| vamp-plugins | ||
| vamp-pyin | ||
| vfork | ||
| vst3 | ||
| waveview | ||
| widgets | ||
| zita-convolver | ||
| zita-resampler | ||