target/arm: Split out arm_mmu_idx_el
Avoid calling arm_current_el() twice. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20191023150057.25731-14-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
3d74e2e9ff
commit
164690b29f
@ -11026,15 +11026,12 @@ ARMMMUIdx arm_v7m_mmu_idx_for_secstate(CPUARMState *env, bool secstate)
|
||||
}
|
||||
#endif
|
||||
|
||||
ARMMMUIdx arm_mmu_idx(CPUARMState *env)
|
||||
ARMMMUIdx arm_mmu_idx_el(CPUARMState *env, int el)
|
||||
{
|
||||
int el;
|
||||
|
||||
if (arm_feature(env, ARM_FEATURE_M)) {
|
||||
return arm_v7m_mmu_idx_for_secstate(env, env->v7m.secure);
|
||||
}
|
||||
|
||||
el = arm_current_el(env);
|
||||
if (el < 2 && arm_is_secure_below_el3(env)) {
|
||||
return ARMMMUIdx_S1SE0 + el;
|
||||
} else {
|
||||
@ -11042,6 +11039,11 @@ ARMMMUIdx arm_mmu_idx(CPUARMState *env)
|
||||
}
|
||||
}
|
||||
|
||||
ARMMMUIdx arm_mmu_idx(CPUARMState *env)
|
||||
{
|
||||
return arm_mmu_idx_el(env, arm_current_el(env));
|
||||
}
|
||||
|
||||
int cpu_mmu_index(CPUARMState *env, bool ifetch)
|
||||
{
|
||||
return arm_to_core_mmu_idx(arm_mmu_idx(env));
|
||||
@ -11202,7 +11204,7 @@ static uint32_t rebuild_hflags_internal(CPUARMState *env)
|
||||
{
|
||||
int el = arm_current_el(env);
|
||||
int fp_el = fp_exception_el(env, el);
|
||||
ARMMMUIdx mmu_idx = arm_mmu_idx(env);
|
||||
ARMMMUIdx mmu_idx = arm_mmu_idx_el(env, el);
|
||||
|
||||
if (is_a64(env)) {
|
||||
return rebuild_hflags_a64(env, el, fp_el, mmu_idx);
|
||||
|
@ -949,6 +949,15 @@ void arm_cpu_update_virq(ARMCPU *cpu);
|
||||
*/
|
||||
void arm_cpu_update_vfiq(ARMCPU *cpu);
|
||||
|
||||
/**
|
||||
* arm_mmu_idx_el:
|
||||
* @env: The cpu environment
|
||||
* @el: The EL to use.
|
||||
*
|
||||
* Return the full ARMMMUIdx for the translation regime for EL.
|
||||
*/
|
||||
ARMMMUIdx arm_mmu_idx_el(CPUARMState *env, int el);
|
||||
|
||||
/**
|
||||
* arm_mmu_idx:
|
||||
* @env: The cpu environment
|
||||
|
Loading…
Reference in New Issue
Block a user