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>
This commit is contained in:
KONRAD Frederic 2014-08-01 01:37:15 +02:00 committed by Paolo Bonzini
parent d09eae3726
commit 3f03131390
2 changed files with 7 additions and 1 deletions

7
cpus.c
View File

@ -146,7 +146,7 @@ static int64_t cpu_get_icount_locked(void)
} }
icount -= (cpu->icount_decr.u16.low + cpu->icount_extra); 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) int64_t cpu_get_icount(void)
@ -162,6 +162,11 @@ int64_t cpu_get_icount(void)
return icount; 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 */ /* return the host CPU cycle counter and handle stop/restart */
/* Caller must hold the BQL */ /* Caller must hold the BQL */
int64_t cpu_get_ticks(void) int64_t cpu_get_ticks(void)

View File

@ -745,6 +745,7 @@ static inline int64_t get_clock(void)
/* icount */ /* icount */
int64_t cpu_get_icount(void); int64_t cpu_get_icount(void);
int64_t cpu_get_clock(void); int64_t cpu_get_clock(void);
int64_t cpu_icount_to_ns(int64_t icount);
/*******************************************/ /*******************************************/
/* host CPU ticks (if available) */ /* host CPU ticks (if available) */