Clear SR_M on a hardware interrupt.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2922 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
pbrook 2007-06-02 17:59:59 +00:00
parent 3a95e3a7d9
commit caf8fe8c32

View File

@ -148,6 +148,7 @@ void do_interrupt(int is_hw)
env->sr |= SR_S; env->sr |= SR_S;
if (is_hw) { if (is_hw) {
env->sr = (env->sr & ~SR_I) | (env->pending_level << SR_I_SHIFT); env->sr = (env->sr & ~SR_I) | (env->pending_level << SR_I_SHIFT);
env->sr &= ~SR_M;
} }
/* Jump to vector. */ /* Jump to vector. */
env->pc = ldl_kernel(env->vbr + vector); env->pc = ldl_kernel(env->vbr + vector);