From 4052bfb4ada22bc922461dab09bef886e3f114ae Mon Sep 17 00:00:00 2001 From: Merry Date: Sun, 3 Apr 2022 00:13:27 +0100 Subject: native_clock: Internal linkage for FencedRDTSC __forceinline required on MSVC for function to be inlined --- src/common/x64/native_clock.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/common/x64/native_clock.cpp b/src/common/x64/native_clock.cpp index 63364f839..7fd9d22f8 100644 --- a/src/common/x64/native_clock.cpp +++ b/src/common/x64/native_clock.cpp @@ -16,15 +16,17 @@ namespace Common { -inline u64 FencedRDTSC() { #ifdef _MSC_VER +__forceinline static u64 FencedRDTSC() { _mm_lfence(); _ReadWriteBarrier(); const u64 result = __rdtsc(); _mm_lfence(); _ReadWriteBarrier(); return result; +} #else +static u64 FencedRDTSC() { u64 result; asm volatile("lfence\n\t" "rdtsc\n\t" @@ -35,8 +37,8 @@ inline u64 FencedRDTSC() { : : "rdx", "memory", "cc"); return result; -#endif } +#endif u64 EstimateRDTSCFrequency() { // Discard the first result measuring the rdtsc. -- cgit v1.2.3