aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
Diffstat (limited to 'target')
-rw-r--r--target/mips/cp0_timer.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/target/mips/cp0_timer.c b/target/mips/cp0_timer.c
index 9c38e9da1c..5194c967ae 100644
--- a/target/mips/cp0_timer.c
+++ b/target/mips/cp0_timer.c
@@ -32,13 +32,14 @@
/* MIPS R4K timer */
static void cpu_mips_timer_update(CPUMIPSState *env)
{
- uint64_t now, next;
+ uint64_t now_ns, next_ns;
uint32_t wait;
- now = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
- wait = env->CP0_Compare - env->CP0_Count - (uint32_t)(now / TIMER_PERIOD);
- next = now + (uint64_t)wait * TIMER_PERIOD;
- timer_mod(env->timer, next);
+ now_ns = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
+ wait = env->CP0_Compare - env->CP0_Count -
+ (uint32_t)(now_ns / TIMER_PERIOD);
+ next_ns = now_ns + (uint64_t)wait * TIMER_PERIOD;
+ timer_mod(env->timer, next_ns);
}
/* Expire the timer. */
@@ -56,16 +57,16 @@ uint32_t cpu_mips_get_count(CPUMIPSState *env)
if (env->CP0_Cause & (1 << CP0Ca_DC)) {
return env->CP0_Count;
} else {
- uint64_t now;
+ uint64_t now_ns;
- now = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
+ now_ns = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
if (timer_pending(env->timer)
- && timer_expired(env->timer, now)) {
+ && timer_expired(env->timer, now_ns)) {
/* The timer has already expired. */
cpu_mips_timer_expire(env);
}
- return env->CP0_Count + (uint32_t)(now / TIMER_PERIOD);
+ return env->CP0_Count + (uint32_t)(now_ns / TIMER_PERIOD);
}
}