[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 1/8] target-arm: add feature flag for ARMv8
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 1/8] target-arm: add feature flag for ARMv8 |
Date: |
Mon, 15 Jul 2013 17:16:55 +0100 |
From: Mans Rullgard <address@hidden>
Signed-off-by: Mans Rullgard <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
---
target-arm/cpu.c | 7 ++++++-
target-arm/cpu.h | 1 +
target-arm/translate.c | 1 +
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index be26acc..9f1696f 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -157,6 +157,11 @@ static void arm_cpu_realizefn(DeviceState *dev, Error
**errp)
CPUARMState *env = &cpu->env;
/* Some features automatically imply others: */
+ if (arm_feature(env, ARM_FEATURE_V8)) {
+ set_feature(env, ARM_FEATURE_V7);
+ set_feature(env, ARM_FEATURE_ARM_DIV);
+ set_feature(env, ARM_FEATURE_LPAE);
+ }
if (arm_feature(env, ARM_FEATURE_V7)) {
set_feature(env, ARM_FEATURE_VAPA);
set_feature(env, ARM_FEATURE_THUMB2);
@@ -744,7 +749,7 @@ static void pxa270c5_initfn(Object *obj)
static void arm_any_initfn(Object *obj)
{
ARMCPU *cpu = ARM_CPU(obj);
- set_feature(&cpu->env, ARM_FEATURE_V7);
+ set_feature(&cpu->env, ARM_FEATURE_V8);
set_feature(&cpu->env, ARM_FEATURE_VFP4);
set_feature(&cpu->env, ARM_FEATURE_VFP_FP16);
set_feature(&cpu->env, ARM_FEATURE_NEON);
diff --git a/target-arm/cpu.h b/target-arm/cpu.h
index 1369604..c798b27 100644
--- a/target-arm/cpu.h
+++ b/target-arm/cpu.h
@@ -387,6 +387,7 @@ enum arm_features {
ARM_FEATURE_MPIDR, /* has cp15 MPIDR */
ARM_FEATURE_PXN, /* has Privileged Execute Never bit */
ARM_FEATURE_LPAE, /* has Large Physical Address Extension */
+ ARM_FEATURE_V8,
};
static inline int arm_feature(CPUARMState *env, int feature)
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 9310c58..0db1132 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -42,6 +42,7 @@
#define ENABLE_ARCH_6K arm_feature(env, ARM_FEATURE_V6K)
#define ENABLE_ARCH_6T2 arm_feature(env, ARM_FEATURE_THUMB2)
#define ENABLE_ARCH_7 arm_feature(env, ARM_FEATURE_V7)
+#define ENABLE_ARCH_8 arm_feature(env, ARM_FEATURE_V8)
#define ARCH(x) do { if (!ENABLE_ARCH_##x) goto illegal_op; } while(0)
--
1.7.9.5
- [Qemu-devel] [PULL 0/8] target-arm queue, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 2/8] target-arm: implement LDA/STL instructions, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 7/8] target-arm: avoid undefined behaviour when writing TTBCR, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 6/8] target-arm/helper.c: Allow const opaques in arm CP, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 8/8] target-arm: Avoid g_hash_table_get_keys(), Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 4/8] target-arm/helper.c: OMAP/StrongARM cp15 crn=0 cleanup, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 1/8] target-arm: add feature flag for ARMv8,
Peter Maydell <=
- [Qemu-devel] [PULL 5/8] target-arm/helper.c: Implement MIDR aliases, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 3/8] target-arm: explicitly decode SEVL instruction, Peter Maydell, 2013/07/15