diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-04-05 23:16:42 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-04-05 23:16:42 +0200 |
commit | ad71f1f742661863e0de59a94746f5d01e80b346 (patch) | |
tree | 854fb6ca00e96ad58e6774c9525562ac6c9959a9 | |
parent | c41d54362d15d0c0c2a049c384c134134a3415f0 (diff) | |
download | gnumach-ad71f1f742661863e0de59a94746f5d01e80b346.tar.gz gnumach-ad71f1f742661863e0de59a94746f5d01e80b346.tar.bz2 gnumach-ad71f1f742661863e0de59a94746f5d01e80b346.zip |
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.h | 6 |
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__ */ |