summaryrefslogtreecommitdiffstats
path: root/src/common/x64/cpu_detect.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-07-06guard against div-by-zeroMarshall Mohror1-2/+5
2022-07-06common/x64: Use TSC clock rate from CPUID when availableMarshall Mohror1-0/+13
The current method used to estimate the TSC is fairly accurate - within a few kHz - but the exact value can be extracted from CPUID if available.
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-2/+3
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-03-19common: Reduce unused includesameerj1-1/+0
2022-03-11cpu_detect: Add additional x86 flags and telemetryWunkolo1-8/+22
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-10cpu_detect: Revert `__cpuid{ex}` array-type argumentWunkolo1-6/+6
Restores compatibility with MSVC's `__cpuid` intrinsic.
2022-03-09cpu_detect: Add missing `lzcnt` detectionWunkolo1-0/+1
2022-03-09cpu_detect: Refactor cpu/manufacturer identificationWunkolo1-15/+22
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`Wunkolo1-11/+13
Update some uses of `int` into some more explicitly sized types as well
2022-03-09cpu_detect: Utilize `Bit<N>` utility functionWunkolo1-32/+20
2021-12-14common/cpu_detect: Remove CPU family and modelMorph1-12/+0
We currently do not make use of these fields, remove them for now.
2020-06-20common/cpu_detect: Add AVX512 detectionMorph1-0/+5
2020-06-18Common: Implement WallClock Interface and implement a native clock for x64Fernando Sahmkow1-0/+33
2020-01-18Remove unused CPU Vendor string and telemtry fieldJames Rowe1-68/+0
The information is duplicated in the brand string and the telemetry field is unused
2018-03-26cpu_detect.cpp: Change comment from citra to yuzuN00byKing1-1/+1
2017-05-28Common: Fix some out-of-style includesYuri Kunde Schlesner1-1/+1
2017-03-13common/cpu_detect: Add missing include and fix namespace scopeYuri Kunde Schlesner1-5/+7
2016-10-28common: use system CPUID routine on DragonFly as wellJan Beich1-2/+2
2016-10-28common: some FreeBSD headers are incomplete to avoid namespace pollutionJan Beich1-1/+3
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 Schlesner1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-3/+1
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 Peyrot1-36/+56
2015-08-16Common: Cleanup CPU capability detection code.bunnei1-131/+89
2015-08-16Common: Move cpu_detect to x64 directory.bunnei1-2/+2
2015-08-16x64: Refactor to remove fake interfaces and general cleanups.bunnei1-1/+1
2015-08-15Common: Added MurmurHash3 hash function for general-purpose use.bunnei1-0/+1
2015-08-15Common: Ported over Dolphin's code for x86 CPU capability detection.bunnei1-0/+228