From: aurel32 Date: Tue, 7 Apr 2009 21:44:52 +0000 (+0000) Subject: target-alpha: stop translation if too long X-Git-Tag: v0.11.0-rc0~961 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8fcc55f9de36354a8dcae1b47cadf45e8bba5cca;p=thirdparty%2Fqemu.git target-alpha: stop translation if too long Signed-off-by: Tristan Gingold Signed-off-by: Aurelien Jarno git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7027 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/target-alpha/translate.c b/target-alpha/translate.c index 1e1da542d02..cdfeaa64761 100644 --- a/target-alpha/translate.c +++ b/target-alpha/translate.c @@ -2404,16 +2404,20 @@ static always_inline void gen_intermediate_code_internal (CPUState *env, /* if we reach a page boundary or are single stepping, stop * generation */ - if (((ctx.pc & (TARGET_PAGE_SIZE - 1)) == 0) || - num_insns >= max_insns) { - break; - } - if (env->singlestep_enabled) { gen_excp(&ctx, EXCP_DEBUG, 0); break; } + if ((ctx.pc & (TARGET_PAGE_SIZE - 1)) == 0) + break; + + if (gen_opc_ptr >= gen_opc_end) + break; + + if (num_insns >= max_insns) + break; + if (singlestep) { break; }