summaryrefslogtreecommitdiffstats
path: root/src/common/x64/cpu_detect.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* guard against div-by-zeroMarshall Mohror2022-07-061-2/+5
|
* common/x64: Use TSC clock rate from CPUID when availableMarshall Mohror2022-07-061-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.
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-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.
* common: Reduce unused includesameerj2022-03-191-1/+0
|
* cpu_detect: Add additional x86 flags and telemetryWunkolo2022-03-111-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.
* cpu_detect: Revert `__cpuid{ex}` array-type argumentWunkolo2022-03-101-6/+6
| | | | Restores compatibility with MSVC's `__cpuid` intrinsic.
* cpu_detect: Add missing `lzcnt` detectionWunkolo2022-03-091-0/+1
|
* cpu_detect: Refactor cpu/manufacturer identificationWunkolo2022-03-091-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(!)
* cpu_detect: Update array-types to `span` and `array`Wunkolo2022-03-091-11/+13
| | | | Update some uses of `int` into some more explicitly sized types as well
* cpu_detect: Utilize `Bit<N>` utility functionWunkolo2022-03-091-32/+20
|
* common/cpu_detect: Remove CPU family and modelMorph2021-12-141-12/+0
| | | | We currently do not make use of these fields, remove them for now.
* Merge pull request #3396 from FernandoS27/prometheus-1David2020-06-271-0/+33
|\ | | | | Implement SpinLocks, Fibers and a Host Timer
| * Common: Implement WallClock Interface and implement a native clock for x64Fernando Sahmkow2020-06-181-0/+33
| |
* | common/cpu_detect: Add AVX512 detectionMorph2020-06-201-0/+5
|/
* Remove unused CPU Vendor string and telemtry fieldJames Rowe2020-01-181-68/+0
| | | | The information is duplicated in the brand string and the telemetry field is unused
* cpu_detect.cpp: Change comment from citra to yuzuN00byKing2018-03-261-1/+1
|
* Common: Fix some out-of-style includesYuri Kunde Schlesner2017-05-281-1/+1
|
* common/cpu_detect: Add missing include and fix namespace scopeYuri Kunde Schlesner2017-03-131-5/+7
|
* common: use system CPUID routine on DragonFly as wellJan Beich2016-10-281-2/+2
|
* common: some FreeBSD headers are incomplete to avoid namespace pollutionJan Beich2016-10-281-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; ^ [...]
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-211-1/+1
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-3/+1
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-36/+56
|
* Common: Cleanup CPU capability detection code.bunnei2015-08-161-131/+89
|
* Common: Move cpu_detect to x64 directory.bunnei2015-08-161-0/+229