summaryrefslogtreecommitdiff
path: root/src/common/x64/cpu_wait.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-06-28x64: cpu_wait: Implement MWAITX for non-MSVC compilersGravatar Morph1-0/+10
2023-06-28x64: cpu_wait: Remove magic valuesGravatar Morph1-3/+8
2023-06-28x64: cpu_wait: Make use of MWAITX in MicroSleepGravatar Morph1-12/+21
MWAITX is equivalent to UMWAIT on Intel's Alder Lake CPUs. We can emulate TPAUSE by using MONITORX in conjunction with MWAITX to wait for 100K cycles.
2023-06-07x64: Deduplicate RDTSC usageGravatar Morph1-19/+1
2023-03-27x64: Simplify RDTSC on non-MSVC compilersGravatar Morph1-8/+5
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
2023-03-27x64: Add MicroSleepGravatar Morph1-0/+72
MicroSleep allows the processor to pause for a "short" amount of time (in the microsecond range). This is useful for spin-waiting that does not require nanosecond precision. This uses the new TPAUSE instruction introduced on Intel's newest processors as part of the waitpkg instructions. For CPUs that do not support waitpkg instructions, this is equivalent to yield(). Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>