diff options
Diffstat (limited to 'lib/xray/xray_x86_64.inc')
-rw-r--r-- | lib/xray/xray_x86_64.inc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/xray/xray_x86_64.inc b/lib/xray/xray_x86_64.inc index 4ad3f9810946..b3c475f9110c 100644 --- a/lib/xray/xray_x86_64.inc +++ b/lib/xray/xray_x86_64.inc @@ -21,9 +21,10 @@ namespace __xray { ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT { unsigned LongCPU; - uint64_t TSC = __rdtscp(&LongCPU); + unsigned long Rax, Rdx; + __asm__ __volatile__("rdtscp\n" : "=a"(Rax), "=d"(Rdx), "=c"(LongCPU) ::); CPU = LongCPU; - return TSC; + return (Rdx << 32) + Rax; } uint64_t getTSCFrequency(); |