Commit 8fcc55f9de36354a8dcae1b47cadf45e8bba5cca
1 parent
9d1b494a
target-alpha: stop translation if too long
Signed-off-by: Tristan Gingold <gingold@adacore.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7027 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
9 additions
and
5 deletions
target-alpha/translate.c
| ... | ... | @@ -2404,16 +2404,20 @@ static always_inline void gen_intermediate_code_internal (CPUState *env, |
| 2404 | 2404 | /* if we reach a page boundary or are single stepping, stop |
| 2405 | 2405 | * generation |
| 2406 | 2406 | */ |
| 2407 | - if (((ctx.pc & (TARGET_PAGE_SIZE - 1)) == 0) || | |
| 2408 | - num_insns >= max_insns) { | |
| 2409 | - break; | |
| 2410 | - } | |
| 2411 | - | |
| 2412 | 2407 | if (env->singlestep_enabled) { |
| 2413 | 2408 | gen_excp(&ctx, EXCP_DEBUG, 0); |
| 2414 | 2409 | break; |
| 2415 | 2410 | } |
| 2416 | 2411 | |
| 2412 | + if ((ctx.pc & (TARGET_PAGE_SIZE - 1)) == 0) | |
| 2413 | + break; | |
| 2414 | + | |
| 2415 | + if (gen_opc_ptr >= gen_opc_end) | |
| 2416 | + break; | |
| 2417 | + | |
| 2418 | + if (num_insns >= max_insns) | |
| 2419 | + break; | |
| 2420 | + | |
| 2417 | 2421 | if (singlestep) { |
| 2418 | 2422 | break; |
| 2419 | 2423 | } | ... | ... |