target-alpha: Use kernel mmu_idx for pal_mode.
authorRichard Henderson <rth@twiddle.net>
Fri, 20 May 2011 21:14:44 +0000 (14:14 -0700)
committerRichard Henderson <rth@anchor.twiddle.net>
Tue, 31 May 2011 17:18:05 +0000 (10:18 -0700)
Signed-off-by: Richard Henderson <rth@twiddle.net>
target-alpha/cpu.h
target-alpha/translate.c

index 4407b3250954a4600315a1ab4bc0cdb437f4d552..a59b39a6daf1ee173031823902f5cd065231a904 100644 (file)
@@ -341,7 +341,13 @@ enum {
 
 static inline int cpu_mmu_index(CPUState *env)
 {
-    return (env->ps & PS_USER_MODE) != 0;
+    if (env->pal_mode) {
+        return MMU_KERNEL_IDX;
+    } else if (env->ps & PS_USER_MODE) {
+        return MMU_USER_IDX;
+    } else {
+        return MMU_KERNEL_IDX;
+    }
 }
 
 enum {
index 2f3c637b68f59d86d677c97a3f4bf0cb93d77f22..a937356cbf0b4e471f30817bed424e658c1f4b38 100644 (file)
@@ -3098,10 +3098,8 @@ static inline void gen_intermediate_code_internal(CPUState *env,
     ctx.env = env;
     ctx.pc = pc_start;
     ctx.amask = env->amask;
-#if defined (CONFIG_USER_ONLY)
-    ctx.mem_idx = 0;
-#else
-    ctx.mem_idx = ((env->ps >> 3) & 3);
+    ctx.mem_idx = cpu_mmu_index(env);
+#if !defined (CONFIG_USER_ONLY)
     ctx.pal_mode = env->pal_mode;
 #endif