summaryrefslogtreecommitdiff
path: root/src/common/x64/cpu_detect.cpp
AgeCommit message (Collapse)Author
2022-03-19common: Reduce unused includesameerj
2022-03-11cpu_detect: Add additional x86 flags and telemetryWunkolo
Adds detection of additional CPU flags to cpu_detect and additions to telemetry output. This is not exhaustive but guided by features that [dynarmic utilizes](https://github.com/merryhime/dynarmic/blob/bcfe377aaa5138af740e90af5be7a7dff7b62a52/src/dynarmic/backend/x64/host_feature.h#L12-L33) as well as features that are currently utilized but not reported to telemetry(invariant_tsc). This is intended to guide future optimizations. AVX512 in particular is broken up into its individual subsets and some other processor features such as [sha](https://en.wikipedia.org/wiki/Intel_SHA_extensions) and [gfni](https://en.wikipedia.org/wiki/AVX-512#GFNI) are added to have some forward-facing data-points. What used to be a single `CPU_Extension_x64_AVX512` telemetry field is also broken up into individual `CPU_Extension_x64_AVX512{F,VL,CD,...}` fields.
2022-03-09cpu_detect: Revert `__cpuid{ex}` array-type argumentWunkolo
Restores compatibility with MSVC's `__cpuid` intrinsic.
2022-03-09cpu_detect: Add missing `lzcnt` detectionWunkolo
2022-03-09cpu_detect: Refactor cpu/manufacturer identificationWunkolo
Set the zero-enum value to Unknown Move the Manufacterer enum into the CPUCaps structure namespace Add "ParseManufacturer" utility-function Fix cpu/brand string buffer sizes(!)
2022-03-09cpu_detect: Update array-types to `span` and `array`Wunkolo
Update some uses of `int` into some more explicitly sized types as well
2022-03-09cpu_detect: Utilize `Bit<N>` utility functionWunkolo
2021-12-13common/cpu_detect: Remove CPU family and modelMorph
We currently do not make use of these fields, remove them for now.
2020-06-28Merge pull request #3396 from FernandoS27/prometheus-1David
Implement SpinLocks, Fibers and a Host Timer
2020-06-20common/cpu_detect: Add AVX512 detectionMorph
2020-06-18Common: Implement WallClock Interface and implement a native clock for x64Fernando Sahmkow
2020-01-17Remove unused CPU Vendor string and telemtry fieldJames Rowe
The information is duplicated in the brand string and the telemetry field is unused
2018-03-26cpu_detect.cpp: Change comment from citra to yuzuN00byKing
2017-05-27Common: Fix some out-of-style includesYuri Kunde Schlesner
2017-03-12common/cpu_detect: Add missing include and fix namespace scopeYuri Kunde Schlesner
2016-10-27common: use system CPUID routine on DragonFly as wellJan Beich
2016-10-27common: some FreeBSD headers are incomplete to avoid namespace pollutionJan Beich
In file included from src/common/x64/cpu_detect.cpp:16: /usr/include/machine/cpufunc.h:66:17: error: unknown type name 'u_int' static __inline u_int ^ /usr/include/machine/cpufunc.h:67:6: error: unknown type name 'u_int' bsfl(u_int mask) ^ /usr/include/machine/cpufunc.h:69:2: error: unknown type name 'u_int' u_int result; ^ /usr/include/machine/cpufunc.h:75:17: error: unknown type name 'u_long'; did you mean 'long'? static __inline u_long ^ /usr/include/machine/cpufunc.h:76:6: error: unknown type name 'u_long'; did you mean 'long'? bsfq(u_long mask) ^ /usr/include/machine/cpufunc.h:78:2: error: use of undeclared identifier 'u_long'; did you mean 'long'? u_long result; ^ [...]
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot
2015-08-15Common: Cleanup CPU capability detection code.bunnei
2015-08-15Common: Move cpu_detect to x64 directory.bunnei