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,16 +2404,20 @@ static always_inline void gen_intermediate_code_internal (CPUState *env, | ||
2404 | /* if we reach a page boundary or are single stepping, stop | 2404 | /* if we reach a page boundary or are single stepping, stop |
2405 | * generation | 2405 | * generation |
2406 | */ | 2406 | */ |
2407 | - if (((ctx.pc & (TARGET_PAGE_SIZE - 1)) == 0) || | ||
2408 | - num_insns >= max_insns) { | ||
2409 | - break; | ||
2410 | - } | ||
2411 | - | ||
2412 | if (env->singlestep_enabled) { | 2407 | if (env->singlestep_enabled) { |
2413 | gen_excp(&ctx, EXCP_DEBUG, 0); | 2408 | gen_excp(&ctx, EXCP_DEBUG, 0); |
2414 | break; | 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 | if (singlestep) { | 2421 | if (singlestep) { |
2418 | break; | 2422 | break; |
2419 | } | 2423 | } |