summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2012-12-20 00:04:09 +0400
committerBlue Swirl <blauwirbel@gmail.com>2012-12-22 12:09:24 +0000
commit36f25d2537c40c6c47f4abee5d31a24863d1adf7 (patch)
tree0cfc3217fd2a5b992c56bb03915a98dfe5ab2aed
parent3f124b687462ce3140d963a024705a89cdc8cee8 (diff)
downloadfocaccia-qemu-36f25d2537c40c6c47f4abee5d31a24863d1adf7.tar.gz
focaccia-qemu-36f25d2537c40c6c47f4abee5d31a24863d1adf7.zip
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>
-rw-r--r--target-xtensa/translate.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c
index 0a037291ef..7029ac4814 100644
--- a/target-xtensa/translate.c
+++ b/target-xtensa/translate.c
@@ -3005,7 +3005,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(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;
     }