Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | x64: cpu_wait: Implement MWAITX for non-MSVC compilers | Morph | 2023-06-28 | 1 | -0/+10 |
| | |||||
* | x64: cpu_wait: Remove magic values | Morph | 2023-06-28 | 1 | -3/+8 |
| | |||||
* | x64: cpu_wait: Make use of MWAITX in MicroSleep | Morph | 2023-06-28 | 1 | -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 usage | Morph | 2023-06-08 | 1 | -19/+1 |
| | |||||
* | x64: Simplify RDTSC on non-MSVC compilers | Morph | 2023-03-27 | 1 | -8/+5 |
| | | | | Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com> | ||||
* | x64: Add MicroSleep | Morph | 2023-03-27 | 1 | -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> |