Patchwork [RFC,3/5] target-arm: Infer ARMv6 feature

login
register
mail settings
Submitter Andreas Färber
Date Nov. 10, 2011, 10:31 a.m.
Message ID <1320921120-11574-4-git-send-email-andreas.faerber@web.de>
Download mbox | patch
Permalink /patch/124842/
State New
Headers show

Comments

Andreas Färber - Nov. 10, 2011, 10:31 a.m.
ARMv7 => ARMv6

Cc: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
---
 target-arm/helper.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

Patch

diff --git a/target-arm/helper.c b/target-arm/helper.c
index bd6173d..3de0781 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -124,7 +124,6 @@  static void cpu_reset_model_id(CPUARMState *env)
         env->cp15.c0_cachetype = 0x1dd20d2;
         break;
     case ARM_CPUID_CORTEXA8:
-        set_feature(env, ARM_FEATURE_V6);
         set_feature(env, ARM_FEATURE_V6K);
         set_feature(env, ARM_FEATURE_V7);
         set_feature(env, ARM_FEATURE_AUXCR);
@@ -146,7 +145,6 @@  static void cpu_reset_model_id(CPUARMState *env)
         env->cp15.c1_sys = 0x00c50078;
         break;
     case ARM_CPUID_CORTEXA9:
-        set_feature(env, ARM_FEATURE_V6);
         set_feature(env, ARM_FEATURE_V6K);
         set_feature(env, ARM_FEATURE_V7);
         set_feature(env, ARM_FEATURE_AUXCR);
@@ -173,14 +171,12 @@  static void cpu_reset_model_id(CPUARMState *env)
         env->cp15.c1_sys = 0x00c50078;
         break;
     case ARM_CPUID_CORTEXM3:
-        set_feature(env, ARM_FEATURE_V6);
         set_feature(env, ARM_FEATURE_THUMB2);
         set_feature(env, ARM_FEATURE_V7);
         set_feature(env, ARM_FEATURE_M);
         set_feature(env, ARM_FEATURE_THUMB_DIV);
         break;
     case ARM_CPUID_ANY: /* For userspace emulation.  */
-        set_feature(env, ARM_FEATURE_V6);
         set_feature(env, ARM_FEATURE_V6K);
         set_feature(env, ARM_FEATURE_V7);
         set_feature(env, ARM_FEATURE_THUMB2);
@@ -241,6 +237,7 @@  static void cpu_reset_model_id(CPUARMState *env)
     /* Some features automatically imply others: */
     if (arm_feature(env, ARM_FEATURE_V7)) {
         set_feature(env, ARM_FEATURE_VAPA);
+        set_feature(env, ARM_FEATURE_V6);
     }
     if (arm_feature(env, ARM_FEATURE_V6)) {
         set_feature(env, ARM_FEATURE_V5);