672 |
#endif |
#endif |
673 |
} |
} |
674 |
#endif /* TARGET_HAS_PRECISE_SMC */ |
#endif /* TARGET_HAS_PRECISE_SMC */ |
675 |
saved_tb = env->current_tb; |
/* we need to do that to handle the case where a signal |
676 |
env->current_tb = NULL; |
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 |
|
} |
682 |
tb_phys_invalidate(tb, -1); |
tb_phys_invalidate(tb, -1); |
683 |
env->current_tb = saved_tb; |
if (env) { |
684 |
if (env->interrupt_request && env->current_tb) |
env->current_tb = saved_tb; |
685 |
cpu_interrupt(env, env->interrupt_request); |
if (env->interrupt_request && env->current_tb) |
686 |
|
cpu_interrupt(env, env->interrupt_request); |
687 |
|
} |
688 |
} |
} |
689 |
tb = tb_next; |
tb = tb_next; |
690 |
} |
} |