diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2012-12-20 00:04:09 +0400 |
---|---|---|
committer | Michael Roth <mdroth@linux.vnet.ibm.com> | 2013-01-15 23:04:53 -0600 |
commit | 1205b8080fb596ce50b2dc0466587c012d9f979d (patch) | |
tree | 3914bcfb3539a2ee17f370a3bd082a4904cb8216 /target-xtensa | |
parent | ff0c079c1425b004019ab33f4ba1339d9ea365d2 (diff) | |
download | qemu-1205b8080fb596ce50b2dc0466587c012d9f979d.tar.gz |
target-xtensa: fix search_pc for the last TB opcode
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 <jcmvbkbc@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
(cherry picked from commit 36f25d2537c40c6c47f4abee5d31a24863d1adf7)
*modified to use older global version of gen_opc_instr_start
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Diffstat (limited to 'target-xtensa')
-rw-r--r-- | target-xtensa/translate.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c index e5a3f49a75..87f26c2cce 100644 --- a/target-xtensa/translate.c +++ b/target-xtensa/translate.c @@ -2962,7 +2962,11 @@ 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; + memset(gen_opc_instr_start + lj + 1, 0, + (j - lj) * sizeof(gen_opc_instr_start[0])); + } else { tb->size = dc.pc - pc_start; tb->icount = insn_count; } |