Index: target-mips/translate.c =================================================================== RCS file: /sources/qemu/qemu/target-mips/translate.c,v retrieving revision 1.37 diff -u -b -B -u -r1.37 translate.c --- target-mips/translate.c 18 Mar 2007 00:30:29 -0000 1.37 +++ target-mips/translate.c 19 Mar 2007 20:26:31 -0000 @@ -1371,6 +1371,13 @@ target_ulong btarget; int blink, bcond; + if (ctx->hflags & MIPS_HFLAG_BMASK) { + if (loglevel & CPU_LOG_TB_IN_ASM) { + fprintf(logfile, + "undefined branch in delay slot at pc 0x%08x\n", ctx->pc); + } + } + btarget = -1; blink = 0; bcond = 0; @@ -1480,7 +1487,7 @@ MIPS_DEBUG("jal %08x", btarget); break; case OPC_JR: - ctx->hflags |= MIPS_HFLAG_BR; + ctx->hflags = ((ctx->hflags & ~MIPS_HFLAG_BMASK) | MIPS_HFLAG_BR); MIPS_DEBUG("jr %s", regnames[rs]); break; case OPC_JALR: @@ -4999,7 +5006,7 @@ } } -int gen_intermediate_code_internal (CPUState *env, TranslationBlock *tb, +static int gen_intermediate_code_internal (CPUState *env, TranslationBlock *tb, int search_pc) { DisasContext ctx, *ctxp = &ctx;