diff options
| author | David <25727384+ogniK5377@users.noreply.github.com> | 2020-06-28 01:34:07 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-28 01:34:07 +1000 |
| commit | a83f0b607e2b335b851cbccd08a6f4000656d02b (patch) | |
| tree | a83acb1e779b98d31fa54389bae4be5669573a41 /src/core/core_timing_util.cpp | |
| parent | d3c8f5d4c8a17c3b23ff8116e3bb3d406f0b0a25 (diff) | |
| parent | fda14542cb1401b4deebe0baf9f3007f2714ea54 (diff) | |
Merge pull request #3396 from FernandoS27/prometheus-1
Implement SpinLocks, Fibers and a Host Timer
Diffstat (limited to 'src/core/core_timing_util.cpp')
| -rw-r--r-- | src/core/core_timing_util.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/core_timing_util.cpp b/src/core/core_timing_util.cpp index de50d3b14f..be34b26fe4 100644 --- a/src/core/core_timing_util.cpp +++ b/src/core/core_timing_util.cpp @@ -49,6 +49,21 @@ s64 nsToCycles(std::chrono::nanoseconds ns) { return (Hardware::BASE_CLOCK_RATE * ns.count()) / 1000000000; } +u64 msToClockCycles(std::chrono::milliseconds ns) { + const u128 temp = Common::Multiply64Into128(ns.count(), Hardware::CNTFREQ); + return Common::Divide128On32(temp, 1000).first; +} + +u64 usToClockCycles(std::chrono::microseconds ns) { + const u128 temp = Common::Multiply64Into128(ns.count(), Hardware::CNTFREQ); + return Common::Divide128On32(temp, 1000000).first; +} + +u64 nsToClockCycles(std::chrono::nanoseconds ns) { + const u128 temp = Common::Multiply64Into128(ns.count(), Hardware::CNTFREQ); + return Common::Divide128On32(temp, 1000000000).first; +} + u64 CpuCyclesToClockCycles(u64 ticks) { const u128 temporal = Common::Multiply64Into128(ticks, Hardware::CNTFREQ); return Common::Divide128On32(temporal, static_cast<u32>(Hardware::BASE_CLOCK_RATE)).first; |
