From ae6ea3b91ddb67dc6865084186fde47efb2ab70d Mon Sep 17 00:00:00 2001 From: Ryan Hileman Date: Tue, 9 May 2017 05:19:32 -0700 Subject: [PATCH] fix arm64 hang (fix #827) (#828) --- qemu/target-arm/translate-a64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qemu/target-arm/translate-a64.c b/qemu/target-arm/translate-a64.c index 1afaf3d2..364ab889 100644 --- a/qemu/target-arm/translate-a64.c +++ b/qemu/target-arm/translate-a64.c @@ -11113,7 +11113,7 @@ void gen_intermediate_code_internal_a64(ARMCPU *cpu, // imitate WFI instruction to halt emulation gen_tb_start(tcg_ctx); dc->is_jmp = DISAS_WFI; - goto done_generating; + goto tb_end; } // Unicorn: trace this block on request @@ -11209,6 +11209,7 @@ void gen_intermediate_code_internal_a64(ARMCPU *cpu, // gen_io_end(); //} +tb_end: if (unlikely(cs->singlestep_enabled || dc->ss_active) && dc->is_jmp != DISAS_EXC) { /* Note that this means single stepping WFI doesn't halt the CPU.