summaryrefslogtreecommitdiff
path: root/src/common/x64/cpu_wait.cpp
AgeCommit message (Collapse)Author
2023-06-28x64: cpu_wait: Implement MWAITX for non-MSVC compilersMorph
2023-06-28x64: cpu_wait: Remove magic valuesMorph
2023-06-28x64: cpu_wait: Make use of MWAITX in MicroSleepMorph
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 usageMorph
2023-03-27x64: Simplify RDTSC on non-MSVC compilersMorph
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
2023-03-27x64: Add MicroSleepMorph
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>