On Sun, Feb 16, 2014 at 2:07 AM, Peter Maydell <peter.mayd...@linaro.org> wrote: > 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 <peter.mayd...@linaro.org>
Reviewed-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> Sorry about the delay > --- > target-arm/translate-a64.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c > index 1714df2..948470f 100644 > --- a/target-arm/translate-a64.c > +++ b/target-arm/translate-a64.c > @@ -1065,9 +1065,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 */ > @@ -8955,6 +8957,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; > } > -- > 1.8.5 > >