Patchwork [10/10] Implement cpu_get_real_ticks for Alpha.

login
register
mail settings
Submitter Richard Henderson
Date April 12, 2010, 11:19 p.m.
Message ID <29d618c3c7e0f73507abf2c0204cf8a83187a3e0.1271114639.git.rth@twiddle.net>
Download mbox | patch
Permalink /patch/50007/
State New
Headers show

Comments

Richard Henderson - April 12, 2010, 11:19 p.m.
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 qemu-timer.h |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

Patch

diff --git a/qemu-timer.h b/qemu-timer.h
index d2e15f4..6e2d2e1 100644
--- a/qemu-timer.h
+++ b/qemu-timer.h
@@ -209,6 +209,19 @@  static inline int64_t cpu_get_real_ticks(void)
     return (int64_t)(count * cyc_per_count);
 }
 
+#elif defined(__alpha__)
+
+static inline int64_t cpu_get_real_ticks(void)
+{
+    uint64_t cc;
+    uint32_t cur, ofs;
+
+    asm volatile("rpcc %0" : "=r"(cc));
+    cur = cc;
+    ofs = cc >> 32;
+    return cur - ofs;
+}
+
 #else
 /* The host CPU doesn't have an easily accessible cycle counter.
    Just return a monotonically increasing value.  This will be