summaryrefslogtreecommitdiff
path: root/src/common/x64/cpu_wait.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* x64: cpu_wait: Implement MWAITX for non-MSVC compilersGravatar Morph2023-06-281-0/+10
|
* x64: cpu_wait: Remove magic valuesGravatar Morph2023-06-281-3/+8
|
* x64: cpu_wait: Make use of MWAITX in MicroSleepGravatar Morph2023-06-281-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.
* x64: Deduplicate RDTSC usageGravatar Morph2023-06-071-19/+1
|
* x64: Simplify RDTSC on non-MSVC compilersGravatar Morph2023-03-271-8/+5
| | | | Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
* x64: Add MicroSleepGravatar Morph2023-03-271-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>