diff options
Diffstat (limited to 'target/m68k/helper.c')
-rw-r--r-- | target/m68k/helper.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/target/m68k/helper.c b/target/m68k/helper.c index 1efd6e4f65..4185ca94ce 100644 --- a/target/m68k/helper.c +++ b/target/m68k/helper.c @@ -463,7 +463,8 @@ void m68k_switch_sp(CPUM68KState *env) env->sp[env->current_sp] = env->aregs[7]; if (m68k_feature(env, M68K_FEATURE_M68000)) { if (env->sr & SR_S) { - if (env->sr & SR_M) { + /* SR:Master-Mode bit unimplemented then ISP is not available */ + if (!m68k_feature(env, M68K_FEATURE_MSP) || env->sr & SR_M) { new_sp = M68K_SSP; } else { new_sp = M68K_ISP; |