Fix single stepping wrt pending interrupts

(Jason Wessel)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4160 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
aurel32 2008-04-04 17:16:35 +00:00
parent 41a00ab195
commit 95b010094c

4
vl.c
View File

@ -7541,7 +7541,7 @@ static int main_loop(void)
qemu_time += profile_getclock() - ti; qemu_time += profile_getclock() - ti;
#endif #endif
next_cpu = env->next_cpu ?: first_cpu; next_cpu = env->next_cpu ?: first_cpu;
if (event_pending) { if (event_pending && likely(ret != EXCP_DEBUG)) {
ret = EXCP_INTERRUPT; ret = EXCP_INTERRUPT;
event_pending = 0; event_pending = 0;
break; break;
@ -7573,7 +7573,7 @@ static int main_loop(void)
qemu_system_powerdown(); qemu_system_powerdown();
ret = EXCP_INTERRUPT; ret = EXCP_INTERRUPT;
} }
if (ret == EXCP_DEBUG) { if (unlikely(ret == EXCP_DEBUG)) {
vm_stop(EXCP_DEBUG); vm_stop(EXCP_DEBUG);
} }
/* If all cpus are halted then wait until the next IRQ */ /* If all cpus are halted then wait until the next IRQ */