[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 15/51] target/arm: Split out arm_mmu_idx_el
From: |
Peter Maydell |
Subject: |
[PULL 15/51] target/arm: Split out arm_mmu_idx_el |
Date: |
Thu, 24 Oct 2019 17:26:48 +0100 |
From: Richard Henderson <address@hidden>
Avoid calling arm_current_el() twice.
Reviewed-by: Alex Bennée <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
---
target/arm/internals.h | 9 +++++++++
target/arm/helper.c | 12 +++++++-----
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/target/arm/internals.h b/target/arm/internals.h
index 232d9638753..f5313dd3d42 100644
--- a/target/arm/internals.h
+++ b/target/arm/internals.h
@@ -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
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 85de96d071a..3f7d3f257d8 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -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);
--
2.20.1
- [PULL 01/51] hw/gpio: Fix property accessors of the AST2600 GPIO 1.8V model, (continued)
- [PULL 01/51] hw/gpio: Fix property accessors of the AST2600 GPIO 1.8V model, Peter Maydell, 2019/10/24
- [PULL 05/51] target/arm: Split out rebuild_hflags_common_32, Peter Maydell, 2019/10/24
- [PULL 04/51] target/arm: Split out rebuild_hflags_a64, Peter Maydell, 2019/10/24
- [PULL 06/51] target/arm: Split arm_cpu_data_is_big_endian, Peter Maydell, 2019/10/24
- [PULL 08/51] target/arm: Reduce tests vs M-profile in cpu_get_tb_cpu_state, Peter Maydell, 2019/10/24
- [PULL 09/51] target/arm: Split out rebuild_hflags_a32, Peter Maydell, 2019/10/24
- [PULL 11/51] target/arm: Hoist XSCALE_CPAR, VECLEN, VECSTRIDE in cpu_get_tb_cpu_state, Peter Maydell, 2019/10/24
- [PULL 10/51] target/arm: Split out rebuild_hflags_aprofile, Peter Maydell, 2019/10/24
- [PULL 07/51] target/arm: Split out rebuild_hflags_m32, Peter Maydell, 2019/10/24
- [PULL 14/51] target/arm: Add arm_rebuild_hflags, Peter Maydell, 2019/10/24
- [PULL 15/51] target/arm: Split out arm_mmu_idx_el,
Peter Maydell <=
- [PULL 16/51] target/arm: Hoist store to cs_base in cpu_get_tb_cpu_state, Peter Maydell, 2019/10/24
- [PULL 12/51] target/arm: Simplify set of PSTATE_SS in cpu_get_tb_cpu_state, Peter Maydell, 2019/10/24
- [PULL 18/51] target/arm: Rebuild hflags at EL changes, Peter Maydell, 2019/10/24
- [PULL 13/51] target/arm: Hoist computation of TBFLAG_A32.VFPEN, Peter Maydell, 2019/10/24
- [PULL 17/51] target/arm: Add HELPER(rebuild_hflags_{a32, a64, m32}), Peter Maydell, 2019/10/24
- [PULL 19/51] target/arm: Rebuild hflags at MSR writes, Peter Maydell, 2019/10/24
- [PULL 20/51] target/arm: Rebuild hflags at CPSR writes, Peter Maydell, 2019/10/24
- [PULL 21/51] target/arm: Rebuild hflags at Xscale SCTLR writes, Peter Maydell, 2019/10/24
- [PULL 22/51] target/arm: Rebuild hflags for M-profile, Peter Maydell, 2019/10/24
- [PULL 23/51] target/arm: Rebuild hflags for M-profile NVIC, Peter Maydell, 2019/10/24