diff --git a/timing/glow-extras/timing/Cycler.hh b/timing/glow-extras/timing/Cycler.hh index b41fca6c7ed1170eef84321e2e7cfa390aca5428..9a0935260fe104908acae7cb2ec664149e4813fa 100644 --- a/timing/glow-extras/timing/Cycler.hh +++ b/timing/glow-extras/timing/Cycler.hh @@ -6,33 +6,14 @@ #include <cstdlib> #include <iostream> -#ifdef _WIN32 -#include <intrin.h> -#endif +#include <clean-core/intrinsics.hh> namespace glow { namespace timing { -// Windows -#ifdef _WIN32 -inline uint64_t cycles() -{ - return __rdtsc(); -} - -// Linux/GCC -#else - -inline uint64_t cycles() -{ - unsigned int lo, hi; - __asm__ __volatile__("rdtsc" : "=a"(lo), "=d"(hi)); - return ((uint64_t)hi << 32) | lo; -} - -#endif +inline uint64_t cycles() { return cc::intrin_rdtsc(); } /** * Usage: