We want to move sme_helper into the tcg directory, but the cpregs accessor functions cannot go along, otherwise they would be separate from the respective ARMCPRegInfo definition which needs to be compiled with CONFIG_TCG=n as well.
Signed-off-by: Fabiano Rosas <faro...@suse.de> --- target/arm/cpregs.c | 29 +++++++++++++++++++++++++++++ target/arm/sme_helper.c | 29 ----------------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/target/arm/cpregs.c b/target/arm/cpregs.c index 88d71dbe70..a6deae9926 100644 --- a/target/arm/cpregs.c +++ b/target/arm/cpregs.c @@ -6633,6 +6633,35 @@ static CPAccessResult access_esm(CPUARMState *env, const ARMCPRegInfo *ri, return CP_ACCESS_OK; } +void helper_set_pstate_sm(CPUARMState *env, uint32_t i) +{ + if (i == FIELD_EX64(env->svcr, SVCR, SM)) { + return; + } + env->svcr ^= R_SVCR_SM_MASK; + arm_reset_sve_state(env); +} + +void helper_set_pstate_za(CPUARMState *env, uint32_t i) +{ + if (i == FIELD_EX64(env->svcr, SVCR, ZA)) { + return; + } + env->svcr ^= R_SVCR_ZA_MASK; + + /* + * ResetSMEState. + * + * SetPSTATE_ZA zeros on enable and disable. We can zero this only + * on enable: while disabled, the storage is inaccessible and the + * value does not matter. We're not saving the storage in vmstate + * when disabled either. + */ + if (i) { + memset(env->zarray, 0, sizeof(env->zarray)); + } +} + static void svcr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) { diff --git a/target/arm/sme_helper.c b/target/arm/sme_helper.c index f891306bb9..ed04daf5d4 100644 --- a/target/arm/sme_helper.c +++ b/target/arm/sme_helper.c @@ -38,35 +38,6 @@ void arm_reset_sve_state(CPUARMState *env) vfp_set_fpcr(env, 0x0800009f); } -void helper_set_pstate_sm(CPUARMState *env, uint32_t i) -{ - if (i == FIELD_EX64(env->svcr, SVCR, SM)) { - return; - } - env->svcr ^= R_SVCR_SM_MASK; - arm_reset_sve_state(env); -} - -void helper_set_pstate_za(CPUARMState *env, uint32_t i) -{ - if (i == FIELD_EX64(env->svcr, SVCR, ZA)) { - return; - } - env->svcr ^= R_SVCR_ZA_MASK; - - /* - * ResetSMEState. - * - * SetPSTATE_ZA zeros on enable and disable. We can zero this only - * on enable: while disabled, the storage is inaccessible and the - * value does not matter. We're not saving the storage in vmstate - * when disabled either. - */ - if (i) { - memset(env->zarray, 0, sizeof(env->zarray)); - } -} - void helper_sme_zero(CPUARMState *env, uint32_t imm, uint32_t svl) { uint32_t i; -- 2.35.3