summary refs log tree commit diff stats
path: root/cpu-exec.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-01-31 20:45:13 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-01-31 20:45:13 +0000
commit99c475abf16b10923baac09682a9d801ae421ac6 (patch)
tree3e1d1433c7f6f6e530bf50577625df75eb03274e /cpu-exec.c
parentdfe86665b8d61659f2c24f7365f75fe89f4705ac (diff)
downloadfocaccia-qemu-99c475abf16b10923baac09682a9d801ae421ac6.tar.gz
focaccia-qemu-99c475abf16b10923baac09682a9d801ae421ac6.zip
armv5te support (Paul Brook)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1258 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'cpu-exec.c')
-rw-r--r--cpu-exec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index df16428515..fe4bd906ec 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -160,7 +160,8 @@ int cpu_exec(CPUState *env1)
         env->CF = (psr >> 29) & 1;
         env->NZF = (psr & 0xc0000000) ^ 0x40000000;
         env->VF = (psr << 3) & 0x80000000;
-        env->cpsr = psr & ~0xf0000000;
+        env->QF = (psr >> 27) & 1;
+        env->cpsr = psr & ~CACHED_CPSR_BITS;
     }
 #elif defined(TARGET_SPARC)
 #elif defined(TARGET_PPC)
@@ -303,7 +304,7 @@ int cpu_exec(CPUState *env1)
 #elif defined(TARGET_ARM)
                     env->cpsr = compute_cpsr();
                     cpu_dump_state(env, logfile, fprintf, 0);
-                    env->cpsr &= ~0xf0000000;
+                    env->cpsr &= ~CACHED_CPSR_BITS;
 #elif defined(TARGET_SPARC)
                     cpu_dump_state (env, logfile, fprintf, 0);
 #elif defined(TARGET_PPC)
@@ -322,7 +323,7 @@ int cpu_exec(CPUState *env1)
                 cs_base = env->segs[R_CS].base;
                 pc = cs_base + env->eip;
 #elif defined(TARGET_ARM)
-                flags = 0;
+                flags = env->thumb;
                 cs_base = 0;
                 pc = env->regs[15];
 #elif defined(TARGET_SPARC)