Commit 907a5b26903d593d53abbe6b52a7c72453625e71
1 parent
0849bf08
fixed invalid irq jump chaining
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@300 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
7 additions
and
0 deletions
cpu-exec.c
| @@ -194,6 +194,13 @@ int cpu_exec(CPUState *env1) | @@ -194,6 +194,13 @@ int cpu_exec(CPUState *env1) | ||
| 194 | } | 194 | } |
| 195 | do_interrupt(intno, 0, 0, 0); | 195 | do_interrupt(intno, 0, 0, 0); |
| 196 | env->interrupt_request &= ~CPU_INTERRUPT_HARD; | 196 | env->interrupt_request &= ~CPU_INTERRUPT_HARD; |
| 197 | + /* ensure that no TB jump will be modified as | ||
| 198 | + the program flow was changed */ | ||
| 199 | +#ifdef __sparc__ | ||
| 200 | + tmp_T0 = 0; | ||
| 201 | +#else | ||
| 202 | + T0 = 0; | ||
| 203 | +#endif | ||
| 197 | } | 204 | } |
| 198 | #endif | 205 | #endif |
| 199 | if (interrupt_request & CPU_INTERRUPT_EXIT) { | 206 | if (interrupt_request & CPU_INTERRUPT_EXIT) { |