summaryrefslogtreecommitdiff
path: root/lib/xray/xray_x86_64.inc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/xray/xray_x86_64.inc')
-rw-r--r--lib/xray/xray_x86_64.inc5
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();