microblaze: Clear exception in dslot ESR bit if not in dslot.
Signed-off-by: Edgar E. Iglesias <[email protected]>
diff --git a/target-microblaze/helper.c b/target-microblaze/helper.c
index 15a8239..7fbb5dd 100644
--- a/target-microblaze/helper.c
+++ b/target-microblaze/helper.c
@@ -129,6 +129,7 @@
case EXCP_MMU:
env->regs[17] = env->sregs[SR_PC];
+ env->sregs[SR_ESR] &= ~(1 << 12);
/* Exception breaks branch + dslot sequence? */
if (env->iflags & D_FLAG) {
D(qemu_log("D_FLAG set at exception bimm=%d\n", env->bimm));