diff options
Diffstat (limited to 'target-alpha/sys_helper.c')
-rw-r--r-- | target-alpha/sys_helper.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/target-alpha/sys_helper.c b/target-alpha/sys_helper.c index 1c59e108b9..f01eb96e1c 100644 --- a/target-alpha/sys_helper.c +++ b/target-alpha/sys_helper.c @@ -45,10 +45,7 @@ void helper_hw_ret(CPUAlphaState *env, uint64_t a) env->pc = a & ~3; env->intr_flag = 0; env->lock_addr = -1; - if ((a & 1) == 0) { - env->pal_mode = 0; - swap_shadow_regs(env); - } + env->pal_mode = a & 1; } void helper_call_pal(CPUAlphaState *env, uint64_t pc, uint64_t entry_ofs) @@ -56,10 +53,7 @@ void helper_call_pal(CPUAlphaState *env, uint64_t pc, uint64_t entry_ofs) int pal_mode = env->pal_mode; env->exc_addr = pc | pal_mode; env->pc = env->palbr + entry_ofs; - if (!pal_mode) { - env->pal_mode = 1; - swap_shadow_regs(env); - } + env->pal_mode = 1; } void helper_tbia(CPUAlphaState *env) |