muldiv64() is used to convert microseconds to nanoseconds. Use qemu_clock_get_ns() instead of qemu_clock_get_us() to avoid this operation.
Signed-off-by: Laurent Vivier <[email protected]> --- target-arm/helper.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/target-arm/helper.c b/target-arm/helper.c index 1568aa6..f5e8fd8 100644 --- a/target-arm/helper.c +++ b/target-arm/helper.c @@ -678,8 +678,7 @@ void pmccntr_sync(CPUARMState *env) { uint64_t temp_ticks; - temp_ticks = muldiv64(qemu_clock_get_us(QEMU_CLOCK_VIRTUAL), - get_ticks_per_sec(), 1000000); + temp_ticks = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); if (env->cp15.c9_pmcr & PMCRD) { /* Increment once every 64 processor clock cycles */ @@ -717,8 +716,7 @@ static uint64_t pmccntr_read(CPUARMState *env, const ARMCPRegInfo *ri) return env->cp15.c15_ccnt; } - total_ticks = muldiv64(qemu_clock_get_us(QEMU_CLOCK_VIRTUAL), - get_ticks_per_sec(), 1000000); + total_ticks = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); if (env->cp15.c9_pmcr & PMCRD) { /* Increment once every 64 processor clock cycles */ @@ -738,8 +736,7 @@ static void pmccntr_write(CPUARMState *env, const ARMCPRegInfo *ri, return; } - total_ticks = muldiv64(qemu_clock_get_us(QEMU_CLOCK_VIRTUAL), - get_ticks_per_sec(), 1000000); + total_ticks = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); if (env->cp15.c9_pmcr & PMCRD) { /* Increment once every 64 processor clock cycles */ -- 2.1.0
