qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 5/5] target-arm: Thread ID Registers are ARMv6K +


From: Riku Voipio
Subject: [Qemu-devel] [PATCH 5/5] target-arm: Thread ID Registers are ARMv6K +
Date: Tue, 26 Jan 2010 16:00:04 +0000

From: Riku Voipio <address@hidden>

Change the system-emulation code also to only support accessing
the cp15.c13 Thread ID registers on ARMv6K and newer.

Signed-off-by: Riku Voipio <address@hidden>
---
 target-arm/helper.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/target-arm/helper.c b/target-arm/helper.c
index 68578ce..1245d9d 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -1517,12 +1517,18 @@ void HELPER(set_cp15)(CPUState *env, uint32_t insn, 
uint32_t val)
             env->cp15.c13_context = val;
             break;
         case 2:
+            if (!arm_feature(env, ARM_FEATURE_V6K))
+                goto bad_reg;
             env->cp15.c13_tls1 = val;
             break;
         case 3:
+            if (!arm_feature(env, ARM_FEATURE_V6K))
+                goto bad_reg;
             env->cp15.c13_tls2 = val;
             break;
         case 4:
+            if (!arm_feature(env, ARM_FEATURE_V6K))
+                goto bad_reg;
             env->cp15.c13_tls3 = val;
             break;
         default:
@@ -1805,10 +1811,16 @@ uint32_t HELPER(get_cp15)(CPUState *env, uint32_t insn)
         case 1:
             return env->cp15.c13_context;
         case 2:
+            if (!arm_feature(env, ARM_FEATURE_V6K))
+                goto bad_reg;
             return env->cp15.c13_tls1;
         case 3:
+            if (!arm_feature(env, ARM_FEATURE_V6K))
+                goto bad_reg;
             return env->cp15.c13_tls2;
         case 4:
+            if (!arm_feature(env, ARM_FEATURE_V6K))
+                goto bad_reg;
             return env->cp15.c13_tls3;
         default:
             goto bad_reg;
-- 
1.6.5





reply via email to

[Prev in Thread] Current Thread [Next in Thread]