target/arm: Implement SMSTART, SMSTOP

These two instructions are aliases of MSR (immediate).
Use the two helpers to properly implement svcr_write.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220620175235.60881-11-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Richard Henderson 2022-06-20 10:51:54 -07:00 committed by Peter Maydell
parent dc993a01a7
commit f84734b874
7 changed files with 112 additions and 3 deletions

View file

@ -6366,9 +6366,9 @@ static CPAccessResult access_esm(CPUARMState *env, const ARMCPRegInfo *ri,
static void svcr_write(CPUARMState *env, const ARMCPRegInfo *ri,
uint64_t value)
{
value &= R_SVCR_SM_MASK | R_SVCR_ZA_MASK;
/* TODO: Side effects. */
env->svcr = value;
helper_set_pstate_sm(env, FIELD_EX64(value, SVCR, SM));
helper_set_pstate_za(env, FIELD_EX64(value, SVCR, ZA));
arm_rebuild_hflags(env);
}
static void smcr_write(CPUARMState *env, const ARMCPRegInfo *ri,