From: Peter Maydell Date: Wed, 26 Feb 2014 17:20:06 +0000 (+0000) Subject: target-arm: A64: Implement WFI X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=1ed69e82b8f1dc69eb4c3e556a6417885a5dd49c;p=qemu.git target-arm: A64: Implement WFI Implement the WFI instruction for A64; this just involves wiring up the instruction, and adding a gen_a64_set_pc_im() which was accidentally omitted from the A64 decoder top loop. Signed-off-by: Peter Maydell Reviewed-by: Peter Crosthwaite --- diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c index a6c8fabb61..2f47ec5a72 100644 --- a/target-arm/translate-a64.c +++ b/target-arm/translate-a64.c @@ -1080,9 +1080,11 @@ static void handle_hint(DisasContext *s, uint32_t insn, switch (selector) { case 0: /* NOP */ return; + case 3: /* WFI */ + s->is_jmp = DISAS_WFI; + return; case 1: /* YIELD */ case 2: /* WFE */ - case 3: /* WFI */ case 4: /* SEV */ case 5: /* SEVL */ /* we treat all as NOP at least for now */ @@ -9124,6 +9126,7 @@ void gen_intermediate_code_internal_a64(ARMCPU *cpu, /* This is a special case because we don't want to just halt the CPU * if trying to debug across a WFI. */ + gen_a64_set_pc_im(dc->pc); gen_helper_wfi(cpu_env); break; }