On Tue, Dec 18, 2012 at 7:21 AM, Max Filippov <jcmvb...@gmail.com> wrote: > Zero out tcg_ctx.gen_opc_instr_start for instructions representing the > last guest opcode in the TB. > > Cc: qemu-sta...@nongnu.org > Signed-off-by: Max Filippov <jcmvb...@gmail.com> > --- > target-xtensa/translate.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c > index 5d8762c..d109a08 100644 > --- a/target-xtensa/translate.c > +++ b/target-xtensa/translate.c > @@ -3005,7 +3005,13 @@ static void gen_intermediate_code_internal( > gen_icount_end(tb, insn_count); > *tcg_ctx.gen_opc_ptr = INDEX_op_end; > > - if (!search_pc) { > + if (search_pc) { > + j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; > + lj++; > + while (lj <= j) { > + tcg_ctx.gen_opc_instr_start[lj++] = 0; > + }
Instead of the loop, how about something like memset(&tcg_ctx.gen_opc_instr_start[lj], 0, j - lj)? > + } else { > tb->size = dc.pc - pc_start; > tb->icount = insn_count; > } > -- > 1.7.7.6 >