From 4052bfb4ada22bc922461dab09bef886e3f114ae Mon Sep 17 00:00:00 2001
From: Merry <git@mary.rs>
Date: Sun, 3 Apr 2022 00:13:27 +0100
Subject: [PATCH] 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(-)

diff --git a/src/common/x64/native_clock.cpp b/src/common/x64/native_clock.cpp
index 63364f839a..7fd9d22f81 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.