aboutsummaryrefslogtreecommitdiff
path: root/src/core/core_timing_util.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-03-16 21:58:59 -0400
committerGitHub <noreply@github.com>2019-03-16 21:58:59 -0400
commit059465d496df3ccf6681e8a1d5aee4be3cc0b7e7 (patch)
treed4fb745d01e5c351a4c6646fb886c84cab5e5afe /src/core/core_timing_util.cpp
parent29c242721a420c75e181f5a1ac583da14e9af769 (diff)
parenta8d4927e29bb1acbf5f3267f368801847acd4222 (diff)
Merge pull request #2129 from FernandoS27/cntpct
Correct CNTPCT from using CPU Cycles to using Clock Cycles
Diffstat (limited to 'src/core/core_timing_util.cpp')
-rw-r--r--src/core/core_timing_util.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/core_timing_util.cpp b/src/core/core_timing_util.cpp
index 88ff70233..7942f30d6 100644
--- a/src/core/core_timing_util.cpp
+++ b/src/core/core_timing_util.cpp
@@ -7,6 +7,7 @@
#include <cinttypes>
#include <limits>
#include "common/logging/log.h"
+#include "common/uint128.h"
namespace Core::Timing {
@@ -60,4 +61,9 @@ s64 nsToCycles(u64 ns) {
return (BASE_CLOCK_RATE * static_cast<s64>(ns)) / 1000000000;
}
+u64 CpuCyclesToClockCycles(u64 ticks) {
+ const u128 temporal = Common::Multiply64Into128(ticks, CNTFREQ);
+ return Common::Divide128On32(temporal, static_cast<u32>(BASE_CLOCK_RATE)).first;
+}
+
} // namespace Core::Timing