On 3/26/21 1:36 PM, Claudio Fontana wrote:
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 */
+    }

My comment was merely an observation; I'm not sure it's a good idea. And you should never make this functional change while moving code.


r~

Reply via email to