mirror of https://github.com/xemu-project/xemu.git
target/arm: Export arm_v7m_mrs_control
Allow the function to be used outside of m_helper.c. Rename with an "arm_" prefix. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: David Reiss <dreiss@meta.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20230227213329.793795-13-richard.henderson@linaro.org [rth: Split out of a larger patch] Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
e995d5cce4
commit
48688c9441
|
@ -1357,6 +1357,9 @@ void arm_cpu_pauth_finalize(ARMCPU *cpu, Error **errp);
|
||||||
void arm_cpu_lpa2_finalize(ARMCPU *cpu, Error **errp);
|
void arm_cpu_lpa2_finalize(ARMCPU *cpu, Error **errp);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Read the CONTROL register as the MRS instruction would. */
|
||||||
|
uint32_t arm_v7m_mrs_control(CPUARMState *env, uint32_t secure);
|
||||||
|
|
||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
static inline void define_cortex_a72_a57_a53_cp_reginfo(ARMCPU *cpu) { }
|
static inline void define_cortex_a72_a57_a53_cp_reginfo(ARMCPU *cpu) { }
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -56,7 +56,7 @@ static uint32_t v7m_mrs_xpsr(CPUARMState *env, uint32_t reg, unsigned el)
|
||||||
return xpsr_read(env) & mask;
|
return xpsr_read(env) & mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t v7m_mrs_control(CPUARMState *env, uint32_t secure)
|
uint32_t arm_v7m_mrs_control(CPUARMState *env, uint32_t secure)
|
||||||
{
|
{
|
||||||
uint32_t value = env->v7m.control[secure];
|
uint32_t value = env->v7m.control[secure];
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ uint32_t HELPER(v7m_mrs)(CPUARMState *env, uint32_t reg)
|
||||||
case 0 ... 7: /* xPSR sub-fields */
|
case 0 ... 7: /* xPSR sub-fields */
|
||||||
return v7m_mrs_xpsr(env, reg, 0);
|
return v7m_mrs_xpsr(env, reg, 0);
|
||||||
case 20: /* CONTROL */
|
case 20: /* CONTROL */
|
||||||
return v7m_mrs_control(env, 0);
|
return arm_v7m_mrs_control(env, 0);
|
||||||
default:
|
default:
|
||||||
/* Unprivileged reads others as zero. */
|
/* Unprivileged reads others as zero. */
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2465,7 +2465,7 @@ uint32_t HELPER(v7m_mrs)(CPUARMState *env, uint32_t reg)
|
||||||
case 0 ... 7: /* xPSR sub-fields */
|
case 0 ... 7: /* xPSR sub-fields */
|
||||||
return v7m_mrs_xpsr(env, reg, el);
|
return v7m_mrs_xpsr(env, reg, el);
|
||||||
case 20: /* CONTROL */
|
case 20: /* CONTROL */
|
||||||
return v7m_mrs_control(env, env->v7m.secure);
|
return arm_v7m_mrs_control(env, env->v7m.secure);
|
||||||
case 0x94: /* CONTROL_NS */
|
case 0x94: /* CONTROL_NS */
|
||||||
/*
|
/*
|
||||||
* We have to handle this here because unprivileged Secure code
|
* We have to handle this here because unprivileged Secure code
|
||||||
|
|
Loading…
Reference in New Issue