Revision e2a7bb4b vl.c

b/vl.c
731 731
                   qemu_get_clock(vm_clock) + get_ticks_per_sec() / 10);
732 732
}
733 733

  
734
static int64_t qemu_icount_round(int64_t count)
735
{
736
    return (count + (1 << icount_time_shift) - 1) >> icount_time_shift;
737
}
738

  
734 739
static struct qemu_alarm_timer alarm_timers[] = {
735 740
#ifndef _WIN32
736 741
#ifdef __linux__
......
3960 3965
        qemu_icount -= (env->icount_decr.u16.low + env->icount_extra);
3961 3966
        env->icount_decr.u16.low = 0;
3962 3967
        env->icount_extra = 0;
3963
        count = qemu_next_deadline();
3964
        count = (count + (1 << icount_time_shift) - 1)
3965
                >> icount_time_shift;
3968
        count = qemu_icount_round (qemu_next_deadline());
3966 3969
        qemu_icount += count;
3967 3970
        decr = (count > 0xffff) ? 0xffff : count;
3968 3971
        count -= decr;
......
4072 4075
            if (add > 10000000)
4073 4076
                add = 10000000;
4074 4077
            delta += add;
4075
            add = (add + (1 << icount_time_shift) - 1)
4076
                  >> icount_time_shift;
4077
            qemu_icount += add;
4078
            qemu_icount += qemu_icount_round (add);
4078 4079
            timeout = delta / 1000000;
4079 4080
            if (timeout < 0)
4080 4081
                timeout = 0;

Also available in: Unified diff