aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKONRAD Frederic <fred.konrad@greensocs.com>2014-08-01 01:37:15 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2014-08-06 17:53:07 +0200
commit3f03131390a8c91a0cac530f7ae79b04b42ab928 (patch)
tree1e064390a7287a86717ae45538e0fb22002d051d
parentd09eae3726418d4c8df2e195fd1a3bf05074dd48 (diff)
downloadqemu-arm-3f03131390a8c91a0cac530f7ae79b04b42ab928.tar.gz
timer: add cpu_icount_to_ns function.
This adds cpu_icount_to_ns function which is needed for reverse execution. It returns the time for a specific instruction. Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--cpus.c7
-rw-r--r--include/qemu/timer.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/cpus.c b/cpus.c
index a6b6557146..62636a65a8 100644
--- a/cpus.c
+++ b/cpus.c
@@ -146,7 +146,7 @@ static int64_t cpu_get_icount_locked(void)
}
icount -= (cpu->icount_decr.u16.low + cpu->icount_extra);
}
- return timers_state.qemu_icount_bias + (icount << icount_time_shift);
+ return timers_state.qemu_icount_bias + cpu_icount_to_ns(icount);
}
int64_t cpu_get_icount(void)
@@ -162,6 +162,11 @@ int64_t cpu_get_icount(void)
return icount;
}
+int64_t cpu_icount_to_ns(int64_t icount)
+{
+ return icount << icount_time_shift;
+}
+
/* return the host CPU cycle counter and handle stop/restart */
/* Caller must hold the BQL */
int64_t cpu_get_ticks(void)
diff --git a/include/qemu/timer.h b/include/qemu/timer.h
index 7f9a074c2a..e12c7149e1 100644
--- a/include/qemu/timer.h
+++ b/include/qemu/timer.h
@@ -745,6 +745,7 @@ static inline int64_t get_clock(void)
/* icount */
int64_t cpu_get_icount(void);
int64_t cpu_get_clock(void);
+int64_t cpu_icount_to_ns(int64_t icount);
/*******************************************/
/* host CPU ticks (if available) */