summaryrefslogtreecommitdiff
path: root/src/common/x64
AgeCommit message (Collapse)Author
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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-04-03native_clock: Internal linkage for FencedRDTSCMerry
__forceinline required on MSVC for function to be inlined
2022-04-03native_clock: Use lfence with rdtscmerry
2022-04-02native_clock: Use writeback from CAS to avoid double-loadingmerry
2022-04-02native_clock: Use AtomicLoad128Merry
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
2022-03-09cpu_detect: Compact capability fieldsWunkolo
As this structure gets more explicit, bools can be bitfields and small enums can use smaller types for their span of values.
2022-01-30common: wall_clock: Utilize constants for ms, us, and ns ratiosMorph
2022-01-26common/xbyak_api: Make BuildRegSet() constexprLioncash
This allows us to eliminate any static constructors that would have been emitted due to the function not being constexpr.
2021-12-13common/cpu_detect: Remove CPU family and modelMorph
We currently do not make use of these fields, remove them for now.
2021-12-03native_clock: Wait for less time in EstimateRDTSCFrequencyMorph
In my testing, waiting for 200ms provided the same level of precision as the previous implementation when estimating the RDTSC frequency. This significantly improves the yuzu executable launch times since we reduced the wait time from 3 seconds to 200 milliseconds.
2021-12-02general: Replace high_resolution_clock with steady_clockMorph
On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock.
2021-08-15xbyak: Update include pathMerry
2021-02-15common: Merge uint128 to a single header file with inlines.bunnei
2021-01-02X86/NativeClock: Reimplement RTDSC access to be lock free.Fernando Sahmkow
2021-01-02X86/NativeClock: Improve performance of clock calculations on hot path.Fernando Sahmkow
2020-12-05xbyak_abi: Shorten std::size_t to size_tLioncash
Makes for less reading.
2020-12-05xbyak_abi: Avoid implicit sign conversionsLioncash
2020-12-03audio_core: Make shadowing and unused parameters errorsLioncash
Moves the audio code closer to enabling warnings as errors in general.
2020-11-02common: Enable warnings as errorsLioncash
Cleans up common so that we can enable warnings as errors.
2020-09-30common/wall_clock: Add virtual destructorsReinUsesLisp
From -fsanitize=address, this code wasn't calling the proper destructor. Adding virtual destructors for each inherited class and the base class fixes this bug. While we are at it, mark the functions as final.
2020-08-30externals: Update Xbyak to 5.96Lioncash
I made a request on the Xbyak issue tracker to allow some constructors to be constexpr in order to avoid static constructors from needing to execute for some of our register constants. This request was implemented, so this updates Xbyak so that we can make use of it.
2020-06-27Core/Common: Address Feedback.Fernando Sahmkow
2020-06-27Common/NativeClockx86: Reduce native clock accuracy further.Fernando Sahmkow
2020-06-27X64 Clock: Reduce accuracy to be less or equal to guest accuracy.Fernando Sahmkow
2020-06-27HostTiming: Pause the hardware clock on pause.Fernando Sahmkow
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: Refactor & Document Wall clock.Fernando Sahmkow
2020-06-18Common: Implement WallClock Interface and implement a native clock for x64Fernando Sahmkow
2020-06-15xbyak_abi: Prefer returning a struct to using out parameters in ↵MerryMage
ABI_CalculateFrameSize
2020-06-15xbyak_abi: Register indexes should be unsignedMerryMage
2020-06-15xbyak_abi: Remove *GPS variants of stack manipulation functionsMerryMage
2020-06-15xbyak_abi: Fix ABI_PushRegistersAndAdjustStackMerryMage
Pushing GPRs twice.
2020-05-30Add xbyak externalDavid Marcec
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-11-21common: Remove dependency on xbyakLioncash
Xbyak is currently entirely unused. Rather than carting it along, remove it and get rid of a dependency. If it's ever needed in the future, then it can be re-added (and likely be more up to date at that point in time).
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-08-14common/xbyak_abi: Mark defined functions in header as inlineLioncash
Avoids potential One Definition Rule violations when these are used in the future.
2018-08-14common/xbyak: Use nested namespace specifiers where applicableLioncash
2018-08-07common: Convert type traits templates over to variable template versions ↵Lioncash
where applicable Uses the C++17 inline variable variants
2018-03-26cpu_detect.cpp: Change comment from citra to yuzuN00byKing
2018-01-20Format: Run the new clang format on everythingJames Rowe
2017-05-27Common: Fix some out-of-style includesYuri Kunde Schlesner