aboutsummaryrefslogtreecommitdiff
path: root/target-m68k
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2007-06-02 17:59:59 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2007-06-02 17:59:59 +0000
commitcaf8fe8c32596480b2e2809f29061f4a386de7ae (patch)
tree795b76c4adda0c20a0ff3884b8e7690182a02af8 /target-m68k
parent3a95e3a7d9a6fd7610fe483778ff7016d23be5ec (diff)
Clear SR_M on a hardware interrupt.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2922 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-m68k')
-rw-r--r--target-m68k/op_helper.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target-m68k/op_helper.c b/target-m68k/op_helper.c
index f5593eca0c..8086238db4 100644
--- a/target-m68k/op_helper.c
+++ b/target-m68k/op_helper.c
@@ -148,6 +148,7 @@ void do_interrupt(int is_hw)
env->sr |= SR_S;
if (is_hw) {
env->sr = (env->sr & ~SR_I) | (env->pending_level << SR_I_SHIFT);
+ env->sr &= ~SR_M;
}
/* Jump to vector. */
env->pc = ldl_kernel(env->vbr + vector);