this function is used for kvm too, add it to the cpu-common module. Signed-off-by: Claudio Fontana <cfont...@suse.de> --- target/arm/cpu-common.c | 15 +++++++++++++++ target/arm/tcg/helper.c | 11 ----------- 2 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/target/arm/cpu-common.c b/target/arm/cpu-common.c index a34f7f19d8..892e075298 100644 --- a/target/arm/cpu-common.c +++ b/target/arm/cpu-common.c @@ -342,3 +342,18 @@ uint32_t sve_zcr_len_for_el(CPUARMState *env, int el) } /* #endif TARGET_AARCH64 , see matching comment above */ + +uint64_t arm_sctlr(CPUARMState *env, int el) +{ + /* Only EL0 needs to be adjusted for EL1&0 or EL2&0. */ + if (el == 0) { +#ifdef TARGET_AARCH64 + ARMMMUIdx mmu_idx = arm_mmu_idx_el(env, 0); + el = (mmu_idx == ARMMMUIdx_E20_0 || mmu_idx == ARMMMUIdx_SE20_0) + ? 2 : 1; +#else + el = 1; +#endif /* TARGET_AARCH64 */ + } + return env->cp15.sctlr_el[el]; +} diff --git a/target/arm/tcg/helper.c b/target/arm/tcg/helper.c index 5bc0055c87..b72765ad8a 100644 --- a/target/arm/tcg/helper.c +++ b/target/arm/tcg/helper.c @@ -1675,17 +1675,6 @@ void arm_cpu_do_interrupt(CPUState *cs) } #endif /* !CONFIG_USER_ONLY */ -uint64_t arm_sctlr(CPUARMState *env, int el) -{ - /* Only EL0 needs to be adjusted for EL1&0 or EL2&0. */ - if (el == 0) { - ARMMMUIdx mmu_idx = arm_mmu_idx_el(env, 0); - el = (mmu_idx == ARMMMUIdx_E20_0 || mmu_idx == ARMMMUIdx_SE20_0) - ? 2 : 1; - } - return env->cp15.sctlr_el[el]; -} - /* Returns true if the stage 1 translation regime is using LPAE format page * tables. Used when raising alignment exceptions, whose FSR changes depending * on whether the long or short descriptor format is in use. */ -- 2.26.2