summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-04-05 23:16:42 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-04-05 23:16:42 +0200
commitad71f1f742661863e0de59a94746f5d01e80b346 (patch)
tree854fb6ca00e96ad58e6774c9525562ac6c9959a9
parentc41d54362d15d0c0c2a049c384c134134a3415f0 (diff)
xen: Fix rdtsc call for x86_64
* i386/i386/xen.h (hyp_cpu_clock): Replace "=A" register constraint with separate "=a" and "=d".
-rw-r--r--i386/i386/xen.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/i386/i386/xen.h b/i386/i386/xen.h
index 49564ebb..8a17748a 100644
--- a/i386/i386/xen.h
+++ b/i386/i386/xen.h
@@ -396,9 +396,9 @@ _hypcall1(unsigned long, get_debugreg, int, reg);
/* x86-specific */
MACH_INLINE uint64_t hyp_cpu_clock(void) {
- uint64_t tsc;
- asm volatile("rdtsc":"=A"(tsc));
- return tsc;
+ uint32_t hi, lo;
+ asm volatile("rdtsc" : "=d"(hi), "=a"(lo));
+ return (((uint64_t) hi) << 32) | lo;
}
#else /* __ASSEMBLER__ */