aboutsummaryrefslogtreecommitdiff
path: root/target-microblaze
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>2009-09-03 10:15:17 +0200
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>2009-09-03 10:15:17 +0200
commita75cf0c52d353d90594007b69f27fcba1d5f1022 (patch)
tree1bc7d294eb6e4edc190399b121f64d2dcbea935d /target-microblaze
parent21d20636057742d7a2ce9bde0f95a18127c4c92e (diff)
downloadqemu-a75cf0c52d353d90594007b69f27fcba1d5f1022.zip
qemu-a75cf0c52d353d90594007b69f27fcba1d5f1022.tar.gz
qemu-a75cf0c52d353d90594007b69f27fcba1d5f1022.tar.bz2
microblaze: Clear exception in dslot ESR bit if not in dslot.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Diffstat (limited to 'target-microblaze')
-rw-r--r--target-microblaze/helper.c1
1 files changed, 1 insertions, 0 deletions
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 @@ void do_interrupt(CPUState *env)
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));