summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2019-06-04 19:41:48 -0400
committerGravatar Lioncash2019-06-04 19:44:05 -0400
commit79189c7e3edfd2d628a927ea4be707eb0deeb4e3 (patch)
tree222036bfb19793d30eb7cf474258116ba9b226c4 /src
parentMerge pull request #2525 from FearlessTobi/remove-unused-settings (diff)
downloadyuzu-79189c7e3edfd2d628a927ea4be707eb0deeb4e3.tar.gz
yuzu-79189c7e3edfd2d628a927ea4be707eb0deeb4e3.tar.xz
yuzu-79189c7e3edfd2d628a927ea4be707eb0deeb4e3.zip
core/core_timing_utils: Simplify overload set
Removes unused overloads, simplifying the overall interface, deduplicating some code.
Diffstat (limited to 'src')
-rw-r--r--src/core/core_timing_util.cpp20
-rw-r--r--src/core/core_timing_util.h31
2 files changed, 2 insertions, 49 deletions
diff --git a/src/core/core_timing_util.cpp b/src/core/core_timing_util.cpp
index c0f08cddb..4d73a0d89 100644
--- a/src/core/core_timing_util.cpp
+++ b/src/core/core_timing_util.cpp
@@ -26,15 +26,7 @@ s64 usToCycles(s64 us) {
26} 26}
27 27
28s64 usToCycles(u64 us) { 28s64 usToCycles(u64 us) {
29 if (us / 1000000 > MAX_VALUE_TO_MULTIPLY) { 29 return usToCycles(static_cast<s64>(us));
30 LOG_ERROR(Core_Timing, "Integer overflow, use max value");
31 return std::numeric_limits<s64>::max();
32 }
33 if (us > MAX_VALUE_TO_MULTIPLY) {
34 LOG_DEBUG(Core_Timing, "Time very big, do rounding");
35 return BASE_CLOCK_RATE * static_cast<s64>(us / 1000000);
36 }
37 return (BASE_CLOCK_RATE * static_cast<s64>(us)) / 1000000;
38} 30}
39 31
40s64 nsToCycles(s64 ns) { 32s64 nsToCycles(s64 ns) {
@@ -50,15 +42,7 @@ s64 nsToCycles(s64 ns) {
50} 42}
51 43
52s64 nsToCycles(u64 ns) { 44s64 nsToCycles(u64 ns) {
53 if (ns / 1000000000 > MAX_VALUE_TO_MULTIPLY) { 45 return nsToCycles(static_cast<s64>(ns));
54 LOG_ERROR(Core_Timing, "Integer overflow, use max value");
55 return std::numeric_limits<s64>::max();
56 }
57 if (ns > MAX_VALUE_TO_MULTIPLY) {
58 LOG_DEBUG(Core_Timing, "Time very big, do rounding");
59 return BASE_CLOCK_RATE * (static_cast<s64>(ns) / 1000000000);
60 }
61 return (BASE_CLOCK_RATE * static_cast<s64>(ns)) / 1000000000;
62} 46}
63 47
64u64 CpuCyclesToClockCycles(u64 ticks) { 48u64 CpuCyclesToClockCycles(u64 ticks) {
diff --git a/src/core/core_timing_util.h b/src/core/core_timing_util.h
index 679aa3123..c8749ff12 100644
--- a/src/core/core_timing_util.h
+++ b/src/core/core_timing_util.h
@@ -13,41 +13,10 @@ namespace Core::Timing {
13constexpr u64 BASE_CLOCK_RATE = 1019215872; // Switch clock speed is 1020MHz un/docked 13constexpr u64 BASE_CLOCK_RATE = 1019215872; // Switch clock speed is 1020MHz un/docked
14constexpr u64 CNTFREQ = 19200000; // Value from fusee. 14constexpr u64 CNTFREQ = 19200000; // Value from fusee.
15 15
16inline s64 msToCycles(int ms) {
17 // since ms is int there is no way to overflow
18 return BASE_CLOCK_RATE * static_cast<s64>(ms) / 1000;
19}
20
21inline s64 msToCycles(float ms) {
22 return static_cast<s64>(BASE_CLOCK_RATE * (0.001f) * ms);
23}
24
25inline s64 msToCycles(double ms) {
26 return static_cast<s64>(BASE_CLOCK_RATE * (0.001) * ms);
27}
28
29inline s64 usToCycles(float us) {
30 return static_cast<s64>(BASE_CLOCK_RATE * (0.000001f) * us);
31}
32
33inline s64 usToCycles(int us) {
34 return (BASE_CLOCK_RATE * static_cast<s64>(us) / 1000000);
35}
36
37s64 usToCycles(s64 us); 16s64 usToCycles(s64 us);
38
39s64 usToCycles(u64 us); 17s64 usToCycles(u64 us);
40 18
41inline s64 nsToCycles(float ns) {
42 return static_cast<s64>(BASE_CLOCK_RATE * (0.000000001f) * ns);
43}
44
45inline s64 nsToCycles(int ns) {
46 return BASE_CLOCK_RATE * static_cast<s64>(ns) / 1000000000;
47}
48
49s64 nsToCycles(s64 ns); 19s64 nsToCycles(s64 ns);
50
51s64 nsToCycles(u64 ns); 20s64 nsToCycles(u64 ns);
52 21
53inline u64 cyclesToNs(s64 cycles) { 22inline u64 cyclesToNs(s64 cycles) {