projects
/
qemu
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a368741
)
negative decr fix
author
bellard
<bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 7 Jul 2005 21:46:29 +0000
(21:46 +0000)
committer
bellard
<bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 7 Jul 2005 21:46:29 +0000
(21:46 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1510
c046a42c
-6fe2-441c-8c8c-
71466251a162
hw/ppc.c
patch
|
blob
|
history
diff --git
a/hw/ppc.c
b/hw/ppc.c
index
2146739
..
c460fec
100644
(file)
--- a/
hw/ppc.c
+++ b/
hw/ppc.c
@@
-107,13
+107,16
@@
uint32_t cpu_ppc_load_decr (CPUState *env)
{
ppc_tb_t *tb_env = env->tb_env;
uint32_t decr;
+ int64_t diff;
- decr = muldiv64(tb_env->decr_next - qemu_get_clock(vm_clock),
- tb_env->tb_freq, ticks_per_sec);
+ diff = tb_env->decr_next - qemu_get_clock(vm_clock);
+ 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)
printf("%s: 0x%08x\n", __func__, decr);
#endif
-
return decr;
}