diff options
author | Richard Henderson <rth@twiddle.net> | 2011-05-20 14:14:44 -0700 |
---|---|---|
committer | Richard Henderson <rth@anchor.twiddle.net> | 2011-05-31 10:18:05 -0700 |
commit | bba9bdcee8d4acc4e5f243f40d015a5a30493faa (patch) | |
tree | c512d089524c5a78eb5e9000a784e3dea0204901 | |
parent | ea879fc719b0756f1768f765ee3a5660ce05ca7b (diff) |
target-alpha: Use kernel mmu_idx for pal_mode.
Signed-off-by: Richard Henderson <rth@twiddle.net>
-rw-r--r-- | target-alpha/cpu.h | 8 | ||||
-rw-r--r-- | target-alpha/translate.c | 6 |
2 files changed, 9 insertions, 5 deletions
diff --git a/target-alpha/cpu.h b/target-alpha/cpu.h index 4407b32509..a59b39a6da 100644 --- a/target-alpha/cpu.h +++ b/target-alpha/cpu.h @@ -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 { diff --git a/target-alpha/translate.c b/target-alpha/translate.c index 2f3c637b68..a937356cbf 100644 --- a/target-alpha/translate.c +++ b/target-alpha/translate.c @@ -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 |