mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-14 15:36:25 +00:00
negative decr fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1510 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
a368741bf2
commit
4e588a4d0e
9
hw/ppc.c
9
hw/ppc.c
@ -107,13 +107,16 @@ uint32_t cpu_ppc_load_decr (CPUState *env)
|
|||||||
{
|
{
|
||||||
ppc_tb_t *tb_env = env->tb_env;
|
ppc_tb_t *tb_env = env->tb_env;
|
||||||
uint32_t decr;
|
uint32_t decr;
|
||||||
|
int64_t diff;
|
||||||
|
|
||||||
decr = muldiv64(tb_env->decr_next - qemu_get_clock(vm_clock),
|
diff = tb_env->decr_next - qemu_get_clock(vm_clock);
|
||||||
tb_env->tb_freq, ticks_per_sec);
|
if (diff >= 0)
|
||||||
|
decr = muldiv64(diff, tb_env->tb_freq, ticks_per_sec);
|
||||||
|
else
|
||||||
|
decr = -muldiv64(-diff, tb_env->tb_freq, ticks_per_sec);
|
||||||
#if defined(DEBUG_TB)
|
#if defined(DEBUG_TB)
|
||||||
printf("%s: 0x%08x\n", __func__, decr);
|
printf("%s: 0x%08x\n", __func__, decr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return decr;
|
return decr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user