Commit 252ec405 authored by Rob Herring's avatar Rob Herring Committed by Peter Maydell
Browse files

target-arm: implement WFE/YIELD as a yield for AArch64



Like was done for AArch32 for WFE, implement both WFE and YIELD as a
yield operation. This speeds up multi-core system emulation.

Signed-off-by: default avatarRob Herring <rob.herring@linaro.org>
Message-id: 1397588401-20366-1-git-send-email-robherring2@gmail.com
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent e3da9921
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1151,6 +1151,8 @@ static void handle_hint(DisasContext *s, uint32_t insn,
        return;
    case 1: /* YIELD */
    case 2: /* WFE */
        s->is_jmp = DISAS_WFE;
        return;
    case 4: /* SEV */
    case 5: /* SEVL */
        /* we treat all as NOP at least for now */
@@ -10765,6 +10767,10 @@ void gen_intermediate_code_internal_a64(ARMCPU *cpu,
        case DISAS_EXC:
        case DISAS_SWI:
            break;
        case DISAS_WFE:
            gen_a64_set_pc_im(dc->pc);
            gen_helper_wfe(cpu_env);
            break;
        case DISAS_WFI:
            /* This is a special case because we don't want to just halt the CPU
             * if trying to debug across a WFI.