Revision 6f5a9f7e
b/exec.c | ||
---|---|---|
672 | 672 |
#endif |
673 | 673 |
} |
674 | 674 |
#endif /* TARGET_HAS_PRECISE_SMC */ |
675 |
saved_tb = env->current_tb; |
|
676 |
env->current_tb = NULL; |
|
675 |
/* we need to do that to handle the case where a signal |
|
676 |
occurs while doing tb_phys_invalidate() */ |
|
677 |
saved_tb = NULL; |
|
678 |
if (env) { |
|
679 |
saved_tb = env->current_tb; |
|
680 |
env->current_tb = NULL; |
|
681 |
} |
|
677 | 682 |
tb_phys_invalidate(tb, -1); |
678 |
env->current_tb = saved_tb; |
|
679 |
if (env->interrupt_request && env->current_tb) |
|
680 |
cpu_interrupt(env, env->interrupt_request); |
|
683 |
if (env) { |
|
684 |
env->current_tb = saved_tb; |
|
685 |
if (env->interrupt_request && env->current_tb) |
|
686 |
cpu_interrupt(env, env->interrupt_request); |
|
687 |
} |
|
681 | 688 |
} |
682 | 689 |
tb = tb_next; |
683 | 690 |
} |
Also available in: Unified diff