On 2/21/24 09:09, Richard Henderson 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;
+ }
+ gen_helper_msr_i_allint(tcg_env, tcg_constant_i32(a->imm));
You're passing all of #imm4, not #imm1, which meant the test in your msr_i_allint helper
was wrong.
To work with the generalized helper above, this would be
tcg_constant_tl((a->imm & 1) * PSTATE_ALLINT);
Actually, I should have read further in the pseudocode -- (imm & 0xe) != 0 is
undefined.
r~