aboutsummaryrefslogtreecommitdiff
path: root/target-xtensa
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2012-09-21 02:59:50 +0400
committermalc <av1474@comtv.ru>2012-09-21 03:07:27 +0400
commitc26032b2c91721245bfec542d94f37a0238e986e (patch)
tree19f5a51dc69245a7661836ac1acb1fc869590926 /target-xtensa
parentf9cb5045d1eb6d187b0849d0f36735d3aac1a37f (diff)
target-xtensa: don't emit extra tcg_gen_goto_tb
Unconditional gen_check_loop_end at the end of disas_xtensa_insn can emit tcg_gen_goto_tb with slot id already used in the TB (e.g. when TB ends at LEND with a branch). Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Cc: qemu-stable <qemu-stable@nongnu.org> Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'target-xtensa')
-rw-r--r--target-xtensa/translate.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c
index 7a1c528fc8..b6643eb818 100644
--- a/target-xtensa/translate.c
+++ b/target-xtensa/translate.c
@@ -2520,7 +2520,9 @@ static void disas_xtensa_insn(DisasContext *dc)
break;
}
- gen_check_loop_end(dc, 0);
+ if (dc->is_jmp == DISAS_NEXT) {
+ gen_check_loop_end(dc, 0);
+ }
dc->pc = dc->next_pc;
return;