Native Clock: remove inaccuracy mask.
This commit is contained in:
parent
86ccce3721
commit
f5c1d7b8c8
|
@ -90,7 +90,7 @@ u64 NativeClock::GetRTSC() {
|
||||||
} while (!time_point.compare_exchange_weak(
|
} while (!time_point.compare_exchange_weak(
|
||||||
current_time_point, new_time_point, std::memory_order_release, std::memory_order_acquire));
|
current_time_point, new_time_point, std::memory_order_release, std::memory_order_acquire));
|
||||||
/// The clock cannot be more precise than the guest timer, remove the lower bits
|
/// The clock cannot be more precise than the guest timer, remove the lower bits
|
||||||
return new_time_point.accumulated_ticks & inaccuracy_mask;
|
return new_time_point.accumulated_ticks;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NativeClock::Pause(bool is_paused) {
|
void NativeClock::Pause(bool is_paused) {
|
||||||
|
|
|
@ -34,11 +34,6 @@ private:
|
||||||
u64 accumulated_ticks{};
|
u64 accumulated_ticks{};
|
||||||
};
|
};
|
||||||
|
|
||||||
/// value used to reduce the native clocks accuracy as some apss rely on
|
|
||||||
/// undefined behavior where the level of accuracy in the clock shouldn't
|
|
||||||
/// be higher.
|
|
||||||
static constexpr u64 inaccuracy_mask = ~(UINT64_C(0x400) - 1);
|
|
||||||
|
|
||||||
std::atomic<TimePoint> time_point;
|
std::atomic<TimePoint> time_point;
|
||||||
// factors
|
// factors
|
||||||
u64 clock_rtsc_factor{};
|
u64 clock_rtsc_factor{};
|
||||||
|
|
Reference in New Issue