qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH] Undefine SWP instruction unless SCTLR.SW bit is set


From: Alexey Starikovskiy
Subject: [Qemu-devel] [PATCH] Undefine SWP instruction unless SCTLR.SW bit is set
Date: Tue, 17 Apr 2012 15:39:16 +0400
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20


Signed-off-by: Alexey Starikovskiy <address@hidden>
---
 target-arm/translate.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 7a3c7d6..b35c85f 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -7415,6 +7415,12 @@ static void disas_arm_insn(CPUARMState * env, 
DisasContext *s)
                         }
                         tcg_temp_free(addr);
                     } else {
+                        if (!(env->cp15.c1_sys & (1 << 10))) {
+                            /* Check if SCTLR.SW is set. Any change to SCTLR
+                             * invalidates all translations, so we are safe.
+                             */
+                            goto illegal_op;
+                        }
                         /* SWP instruction */
                         rm = (insn) & 0xf;






reply via email to

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