qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH v5 04/22] target/arm: Implement ALLINT MSR (immediate)


From: Richard Henderson
Subject: Re: [RFC PATCH v5 04/22] target/arm: Implement ALLINT MSR (immediate)
Date: Thu, 29 Feb 2024 11:48:52 -1000
User-agent: Mozilla Thunderbird

On 2/29/24 03:10, Jinjie Ruan via wrote:
+static bool trans_MSR_i_ALLINT(DisasContext *s, arg_i *a)
+{
+    if (!dc_isar_feature(aa64_nmi, s) || s->current_el == 0) {
+        return false;
+    }
+
+    if (a->imm == 0) {
+        clear_pstate_bits(PSTATE_ALLINT);
+    } else if (s->current_el > 1) {
+        set_pstate_bits(PSTATE_ALLINT);
+    } else {
+        gen_helper_msr_set_allint_el1(tcg_env);
+    }
+
+    s->base.is_jmp = DISAS_TOO_MANY;
+    return true;
+}

I just noticed one final item: for imm == 0, we need

    /* Exit the cpu loop to re-evaluate pending IRQs. */
    s->base.is_jmp = DISAS_UPDATE_EXIT;

like trans_MSR_i_DAIFCLEAR.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]