From patchwork Mon Feb 4 10:41:06 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [56/60] target-xtensa: fix search_pc for the last TB opcode Date: Mon, 04 Feb 2013 00:41:06 -0000 From: Michael Tokarev X-Patchwork-Id: 217920 Message-Id: <1359974470-17044-57-git-send-email-mjt@msgid.tls.msk.ru> To: qemu-devel@nongnu.org Cc: Blue Swirl , Max Filippov , Michael Tokarev , qemu-stable@nongnu.org From: Max Filippov Zero out tcg_ctx.gen_opc_instr_start for instructions representing the last guest opcode in the TB. Cc: qemu-stable@nongnu.org Signed-off-by: Max Filippov Signed-off-by: Blue Swirl (cherry picked from commit 36f25d2537c40c6c47f4abee5d31a24863d1adf7) Signed-off-by: Michael Tokarev --- target-xtensa/translate.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c index 94c51ae..cc82cd9 100644 --- a/target-xtensa/translate.c +++ b/target-xtensa/translate.c @@ -2654,7 +2654,11 @@ static void gen_intermediate_code_internal( gen_icount_end(tb, insn_count); *gen_opc_ptr = INDEX_op_end; - if (!search_pc) { + if (search_pc) { + j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; + memset(tcg_ctx.gen_opc_instr_start + lj + 1, 0, + (j - lj) * sizeof(tcg_ctx.gen_opc_instr_start[0])); + } else { tb->size = dc.pc - pc_start; tb->icount = insn_count; }